@schukai/monster 4.136.4 → 4.136.5
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/package.json +1 -1
- package/source/components/form/select.mjs +444 -69
- package/source/components/form/style/select.pcss +18 -0
- package/source/components/form/stylesheet/context-error.mjs +13 -6
- package/source/components/form/stylesheet/context-help.mjs +13 -6
- package/source/components/form/stylesheet/select.mjs +7 -14
- package/source/components/form/util/floating-ui.mjs +83 -22
- package/test/cases/components/form/select.mjs +195 -1
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"author":"Volker Schukai","dependencies":{"@floating-ui/dom":"^1.7.6"},"description":"Monster is a simple library for creating fast, robust and lightweight websites.","homepage":"https://monsterjs.org/","keywords":["framework","web","dom","css","sass","mobile-first","app","front-end","templates","schukai","core","shopcloud","alvine","monster","buildmap","stack","observer","observable","uuid","node","nodelist","css-in-js","logger","log","theme"],"license":"AGPL 3.0","main":"source/monster.mjs","module":"source/monster.mjs","name":"@schukai/monster","repository":{"type":"git","url":"https://gitlab.schukai.com/oss/libraries/javascript/monster.git"},"type":"module","version":"4.136.
|
|
1
|
+
{"author":"Volker Schukai","dependencies":{"@floating-ui/dom":"^1.7.6"},"description":"Monster is a simple library for creating fast, robust and lightweight websites.","homepage":"https://monsterjs.org/","keywords":["framework","web","dom","css","sass","mobile-first","app","front-end","templates","schukai","core","shopcloud","alvine","monster","buildmap","stack","observer","observable","uuid","node","nodelist","css-in-js","logger","log","theme"],"license":"AGPL 3.0","main":"source/monster.mjs","module":"source/monster.mjs","name":"@schukai/monster","repository":{"type":"git","url":"https://gitlab.schukai.com/oss/libraries/javascript/monster.git"},"type":"module","version":"4.136.5"}
|
|
@@ -41,6 +41,7 @@ import { getLocaleOfDocument } from "../../dom/locale.mjs";
|
|
|
41
41
|
import {
|
|
42
42
|
findElementWithSelectorUpwards,
|
|
43
43
|
getDocument,
|
|
44
|
+
getWindow,
|
|
44
45
|
} from "../../dom/util.mjs";
|
|
45
46
|
import {
|
|
46
47
|
getDocumentTranslations,
|
|
@@ -69,6 +70,7 @@ import {
|
|
|
69
70
|
isPositionedPopperOpen,
|
|
70
71
|
openPositionedPopper,
|
|
71
72
|
positionPopper,
|
|
73
|
+
resolveClippingBoundaryElement,
|
|
72
74
|
} from "./util/floating-ui.mjs";
|
|
73
75
|
import { Pathfinder } from "../../data/pathfinder.mjs";
|
|
74
76
|
import { TokenList } from "../../types/tokenlist.mjs";
|
|
@@ -76,9 +78,14 @@ import { TokenList } from "../../types/tokenlist.mjs";
|
|
|
76
78
|
import "../datatable/pagination.mjs";
|
|
77
79
|
|
|
78
80
|
export {
|
|
81
|
+
getDefaultSelectPopperPositionProfile,
|
|
79
82
|
getSelectionTemplate,
|
|
80
83
|
getSummaryTemplate,
|
|
81
84
|
popperElementSymbol,
|
|
85
|
+
resolveSelectPopperWidthConstraints,
|
|
86
|
+
resolveSelectListDimension,
|
|
87
|
+
resolveSelectVisibleRect,
|
|
88
|
+
resolveSelectViewportMetrics,
|
|
82
89
|
Select,
|
|
83
90
|
};
|
|
84
91
|
|
|
@@ -129,6 +136,14 @@ const clearOptionEventHandler = Symbol("clearOptionEventHandler");
|
|
|
129
136
|
* @type {Symbol}
|
|
130
137
|
*/
|
|
131
138
|
const resizeObserverSymbol = Symbol("resizeObserver");
|
|
139
|
+
const resizeObserverFrameSymbol = Symbol("resizeObserverFrame");
|
|
140
|
+
const visualViewportResizeHandlerSymbol = Symbol("visualViewportResizeHandler");
|
|
141
|
+
const visualViewportScrollHandlerSymbol = Symbol("visualViewportScrollHandler");
|
|
142
|
+
const visibilityChangeHandlerSymbol = Symbol("visibilityChangeHandler");
|
|
143
|
+
const windowResizeHandlerSymbol = Symbol("windowResizeHandler");
|
|
144
|
+
const windowOrientationChangeHandlerSymbol = Symbol(
|
|
145
|
+
"windowOrientationChangeHandler",
|
|
146
|
+
);
|
|
132
147
|
|
|
133
148
|
/**
|
|
134
149
|
* local symbol
|
|
@@ -343,6 +358,9 @@ const FILTER_POSITION_POPPER = "popper";
|
|
|
343
358
|
* @type {string}
|
|
344
359
|
*/
|
|
345
360
|
const FILTER_POSITION_INLINE = "inline";
|
|
361
|
+
const SELECT_MIN_POPPER_WIDTH = 240;
|
|
362
|
+
const SELECT_MAX_POPPER_HEIGHT = 500;
|
|
363
|
+
const SELECT_VIEWPORT_PADDING = 12;
|
|
346
364
|
|
|
347
365
|
/**
|
|
348
366
|
* A select control that can be used to select o
|
|
@@ -1975,21 +1993,8 @@ function initOptionsFromArguments() {
|
|
|
1975
1993
|
* @private
|
|
1976
1994
|
*/
|
|
1977
1995
|
function attachResizeObserver() {
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
if (this[timerCallbackSymbol] instanceof DeadMansSwitch) {
|
|
1981
|
-
try {
|
|
1982
|
-
this[timerCallbackSymbol].touch();
|
|
1983
|
-
return;
|
|
1984
|
-
} catch (e) {
|
|
1985
|
-
delete this[timerCallbackSymbol];
|
|
1986
|
-
}
|
|
1987
|
-
}
|
|
1988
|
-
|
|
1989
|
-
this[timerCallbackSymbol] = new DeadMansSwitch(200, () => {
|
|
1990
|
-
updatePopper.call(this);
|
|
1991
|
-
delete this[timerCallbackSymbol];
|
|
1992
|
-
});
|
|
1996
|
+
this[resizeObserverSymbol] = new ResizeObserver(() => {
|
|
1997
|
+
scheduleResizeObserverPopperUpdate.call(this);
|
|
1993
1998
|
});
|
|
1994
1999
|
|
|
1995
2000
|
let parent = this.parentNode;
|
|
@@ -2000,6 +2005,70 @@ function attachResizeObserver() {
|
|
|
2000
2005
|
if (parent instanceof HTMLElement) {
|
|
2001
2006
|
this[resizeObserverSymbol].observe(parent);
|
|
2002
2007
|
}
|
|
2008
|
+
|
|
2009
|
+
for (const element of [
|
|
2010
|
+
this,
|
|
2011
|
+
this[controlElementSymbol],
|
|
2012
|
+
this[popperElementSymbol],
|
|
2013
|
+
this[popperFilterContainerElementSymbol],
|
|
2014
|
+
this[optionsElementSymbol],
|
|
2015
|
+
this[paginationElementSymbol],
|
|
2016
|
+
]) {
|
|
2017
|
+
if (element instanceof HTMLElement) {
|
|
2018
|
+
this[resizeObserverSymbol].observe(element);
|
|
2019
|
+
}
|
|
2020
|
+
}
|
|
2021
|
+
|
|
2022
|
+
const boundaryElement = resolveClippingBoundaryElement(
|
|
2023
|
+
this[controlElementSymbol],
|
|
2024
|
+
this[popperElementSymbol],
|
|
2025
|
+
);
|
|
2026
|
+
if (boundaryElement instanceof HTMLElement) {
|
|
2027
|
+
this[resizeObserverSymbol].observe(boundaryElement);
|
|
2028
|
+
}
|
|
2029
|
+
|
|
2030
|
+
const viewport = getGlobal().visualViewport;
|
|
2031
|
+
const windowObject = getWindow();
|
|
2032
|
+
this[visualViewportResizeHandlerSymbol] = () => {
|
|
2033
|
+
updatePopper.call(this);
|
|
2034
|
+
};
|
|
2035
|
+
this[visualViewportScrollHandlerSymbol] = () => {
|
|
2036
|
+
updatePopper.call(this);
|
|
2037
|
+
};
|
|
2038
|
+
this[visibilityChangeHandlerSymbol] = () => {
|
|
2039
|
+
if (document.visibilityState === "visible") {
|
|
2040
|
+
updatePopper.call(this);
|
|
2041
|
+
}
|
|
2042
|
+
};
|
|
2043
|
+
this[windowResizeHandlerSymbol] = () => {
|
|
2044
|
+
updatePopper.call(this);
|
|
2045
|
+
};
|
|
2046
|
+
this[windowOrientationChangeHandlerSymbol] = () => {
|
|
2047
|
+
updatePopper.call(this);
|
|
2048
|
+
};
|
|
2049
|
+
|
|
2050
|
+
if (viewport) {
|
|
2051
|
+
viewport.addEventListener(
|
|
2052
|
+
"resize",
|
|
2053
|
+
this[visualViewportResizeHandlerSymbol],
|
|
2054
|
+
);
|
|
2055
|
+
viewport.addEventListener(
|
|
2056
|
+
"scroll",
|
|
2057
|
+
this[visualViewportScrollHandlerSymbol],
|
|
2058
|
+
);
|
|
2059
|
+
}
|
|
2060
|
+
|
|
2061
|
+
document.addEventListener(
|
|
2062
|
+
"visibilitychange",
|
|
2063
|
+
this[visibilityChangeHandlerSymbol],
|
|
2064
|
+
);
|
|
2065
|
+
if (windowObject?.addEventListener instanceof Function) {
|
|
2066
|
+
windowObject.addEventListener("resize", this[windowResizeHandlerSymbol]);
|
|
2067
|
+
windowObject.addEventListener(
|
|
2068
|
+
"orientationchange",
|
|
2069
|
+
this[windowOrientationChangeHandlerSymbol],
|
|
2070
|
+
);
|
|
2071
|
+
}
|
|
2003
2072
|
}
|
|
2004
2073
|
|
|
2005
2074
|
/**
|
|
@@ -2009,6 +2078,83 @@ function disconnectResizeObserver() {
|
|
|
2009
2078
|
if (this[resizeObserverSymbol] instanceof ResizeObserver) {
|
|
2010
2079
|
this[resizeObserverSymbol].disconnect();
|
|
2011
2080
|
}
|
|
2081
|
+
cancelScheduledResizeObserverPopperUpdate.call(this);
|
|
2082
|
+
|
|
2083
|
+
const viewport = getGlobal().visualViewport;
|
|
2084
|
+
if (
|
|
2085
|
+
viewport &&
|
|
2086
|
+
this[visualViewportResizeHandlerSymbol] instanceof Function
|
|
2087
|
+
) {
|
|
2088
|
+
viewport.removeEventListener(
|
|
2089
|
+
"resize",
|
|
2090
|
+
this[visualViewportResizeHandlerSymbol],
|
|
2091
|
+
);
|
|
2092
|
+
}
|
|
2093
|
+
if (
|
|
2094
|
+
viewport &&
|
|
2095
|
+
this[visualViewportScrollHandlerSymbol] instanceof Function
|
|
2096
|
+
) {
|
|
2097
|
+
viewport.removeEventListener(
|
|
2098
|
+
"scroll",
|
|
2099
|
+
this[visualViewportScrollHandlerSymbol],
|
|
2100
|
+
);
|
|
2101
|
+
}
|
|
2102
|
+
if (this[visibilityChangeHandlerSymbol] instanceof Function) {
|
|
2103
|
+
document.removeEventListener(
|
|
2104
|
+
"visibilitychange",
|
|
2105
|
+
this[visibilityChangeHandlerSymbol],
|
|
2106
|
+
);
|
|
2107
|
+
}
|
|
2108
|
+
const windowObject = getWindow();
|
|
2109
|
+
if (
|
|
2110
|
+
windowObject?.removeEventListener instanceof Function &&
|
|
2111
|
+
this[windowResizeHandlerSymbol] instanceof Function
|
|
2112
|
+
) {
|
|
2113
|
+
windowObject.removeEventListener("resize", this[windowResizeHandlerSymbol]);
|
|
2114
|
+
}
|
|
2115
|
+
if (
|
|
2116
|
+
windowObject?.removeEventListener instanceof Function &&
|
|
2117
|
+
this[windowOrientationChangeHandlerSymbol] instanceof Function
|
|
2118
|
+
) {
|
|
2119
|
+
windowObject.removeEventListener(
|
|
2120
|
+
"orientationchange",
|
|
2121
|
+
this[windowOrientationChangeHandlerSymbol],
|
|
2122
|
+
);
|
|
2123
|
+
}
|
|
2124
|
+
}
|
|
2125
|
+
|
|
2126
|
+
function scheduleResizeObserverPopperUpdate() {
|
|
2127
|
+
const globalObject = getGlobal();
|
|
2128
|
+
if (typeof this[resizeObserverFrameSymbol] === "number") {
|
|
2129
|
+
return;
|
|
2130
|
+
}
|
|
2131
|
+
|
|
2132
|
+
const schedule =
|
|
2133
|
+
globalObject?.requestAnimationFrame instanceof Function
|
|
2134
|
+
? globalObject.requestAnimationFrame.bind(globalObject)
|
|
2135
|
+
: (callback) => {
|
|
2136
|
+
return globalObject.setTimeout(callback, 16);
|
|
2137
|
+
};
|
|
2138
|
+
|
|
2139
|
+
this[resizeObserverFrameSymbol] = schedule(() => {
|
|
2140
|
+
delete this[resizeObserverFrameSymbol];
|
|
2141
|
+
updatePopper.call(this);
|
|
2142
|
+
});
|
|
2143
|
+
}
|
|
2144
|
+
|
|
2145
|
+
function cancelScheduledResizeObserverPopperUpdate() {
|
|
2146
|
+
const globalObject = getGlobal();
|
|
2147
|
+
const frameId = this[resizeObserverFrameSymbol];
|
|
2148
|
+
if (typeof frameId !== "number") {
|
|
2149
|
+
return;
|
|
2150
|
+
}
|
|
2151
|
+
|
|
2152
|
+
if (globalObject?.cancelAnimationFrame instanceof Function) {
|
|
2153
|
+
globalObject.cancelAnimationFrame(frameId);
|
|
2154
|
+
} else {
|
|
2155
|
+
globalObject.clearTimeout(frameId);
|
|
2156
|
+
}
|
|
2157
|
+
delete this[resizeObserverFrameSymbol];
|
|
2012
2158
|
}
|
|
2013
2159
|
|
|
2014
2160
|
/**
|
|
@@ -2468,10 +2614,9 @@ function calcAndSetOptionsDimension() {
|
|
|
2468
2614
|
}
|
|
2469
2615
|
|
|
2470
2616
|
let visible = 0;
|
|
2471
|
-
|
|
2617
|
+
const visibleOptionHeights = [];
|
|
2472
2618
|
const max = this.getOption("showMaxOptions", 10);
|
|
2473
2619
|
|
|
2474
|
-
let scrollFlag = false;
|
|
2475
2620
|
for (const [, option] of Object.entries(options)) {
|
|
2476
2621
|
const computedStyle = getGlobal().getComputedStyle(option);
|
|
2477
2622
|
if (computedStyle.display === "none") continue;
|
|
@@ -2479,18 +2624,8 @@ function calcAndSetOptionsDimension() {
|
|
|
2479
2624
|
let h = option.getBoundingClientRect().height;
|
|
2480
2625
|
h += parseInt(computedStyle.getPropertyValue("margin-top"), 10);
|
|
2481
2626
|
h += parseInt(computedStyle.getPropertyValue("margin-bottom"), 10);
|
|
2482
|
-
|
|
2483
|
-
|
|
2627
|
+
visibleOptionHeights.push(h);
|
|
2484
2628
|
visible++;
|
|
2485
|
-
|
|
2486
|
-
if (visible > max) {
|
|
2487
|
-
break;
|
|
2488
|
-
}
|
|
2489
|
-
}
|
|
2490
|
-
|
|
2491
|
-
if (visible > max) {
|
|
2492
|
-
visible = max;
|
|
2493
|
-
scrollFlag = true;
|
|
2494
2629
|
}
|
|
2495
2630
|
|
|
2496
2631
|
if (visible === 0) {
|
|
@@ -2535,61 +2670,299 @@ function calcAndSetOptionsDimension() {
|
|
|
2535
2670
|
let margin = parseInt(styles.getPropertyValue("margin-top"), 10);
|
|
2536
2671
|
margin += parseInt(styles.getPropertyValue("margin-bottom"), 10);
|
|
2537
2672
|
|
|
2538
|
-
|
|
2539
|
-
const
|
|
2540
|
-
|
|
2541
|
-
|
|
2542
|
-
|
|
2673
|
+
const geometry = getSelectPopperGeometry.call(this);
|
|
2674
|
+
const listDimension = resolveSelectListDimension({
|
|
2675
|
+
visibleOptionHeights,
|
|
2676
|
+
maxVisibleOptions: max,
|
|
2677
|
+
availableHeight: geometry.availableHeight,
|
|
2678
|
+
padding,
|
|
2679
|
+
margin,
|
|
2680
|
+
});
|
|
2681
|
+
const widthConstraints = resolveSelectPopperWidthConstraints({
|
|
2682
|
+
controlWidth: this[controlElementSymbol].getBoundingClientRect().width,
|
|
2683
|
+
availableWidth: geometry.availableWidth,
|
|
2684
|
+
});
|
|
2543
2685
|
|
|
2544
|
-
container.style.height =
|
|
2686
|
+
container.style.height =
|
|
2687
|
+
listDimension.desiredHeight > 0 ? `${listDimension.desiredHeight}px` : "0px";
|
|
2688
|
+
container.style.maxHeight =
|
|
2689
|
+
listDimension.maxHeight > 0 ? `${listDimension.maxHeight}px` : "0px";
|
|
2690
|
+
container.style.overflowY = listDimension.overflowY;
|
|
2545
2691
|
|
|
2546
|
-
|
|
2547
|
-
|
|
2692
|
+
this[popperElementSymbol].dataset.monsterPreferredWidth = `${Math.ceil(
|
|
2693
|
+
widthConstraints.preferredWidth,
|
|
2694
|
+
)}`;
|
|
2695
|
+
if (
|
|
2696
|
+
Number.isFinite(widthConstraints.maxWidth) &&
|
|
2697
|
+
widthConstraints.maxWidth > 0
|
|
2698
|
+
) {
|
|
2699
|
+
this[popperElementSymbol].dataset.monsterPreferredMaxWidth = `${Math.ceil(
|
|
2700
|
+
widthConstraints.maxWidth,
|
|
2701
|
+
)}`;
|
|
2702
|
+
this[popperElementSymbol].style.maxWidth = `${Math.ceil(
|
|
2703
|
+
widthConstraints.maxWidth,
|
|
2704
|
+
)}px`;
|
|
2548
2705
|
} else {
|
|
2549
|
-
|
|
2706
|
+
delete this[popperElementSymbol].dataset.monsterPreferredMaxWidth;
|
|
2707
|
+
this[popperElementSymbol].style.removeProperty("maxWidth");
|
|
2708
|
+
}
|
|
2709
|
+
this[popperElementSymbol].style.width = "";
|
|
2710
|
+
this[popperElementSymbol].style.removeProperty("minWidth");
|
|
2711
|
+
this[popperElementSymbol].style.maxHeight = `${Math.ceil(
|
|
2712
|
+
Math.min(geometry.availableHeight, SELECT_MAX_POPPER_HEIGHT),
|
|
2713
|
+
)}px`;
|
|
2714
|
+
container.style.overflowX = "hidden";
|
|
2715
|
+
|
|
2716
|
+
if (content instanceof HTMLElement) {
|
|
2717
|
+
content.style.overflow = "hidden";
|
|
2718
|
+
content.style.maxHeight =
|
|
2719
|
+
listDimension.maxHeight > 0 ? `${listDimension.maxHeight}px` : "";
|
|
2550
2720
|
}
|
|
2721
|
+
}
|
|
2551
2722
|
|
|
2552
|
-
|
|
2723
|
+
function resolveSelectPopperPreferredWidth(controlWidth) {
|
|
2724
|
+
return Math.max(Math.ceil(controlWidth), SELECT_MIN_POPPER_WIDTH);
|
|
2725
|
+
}
|
|
2553
2726
|
|
|
2554
|
-
|
|
2555
|
-
|
|
2556
|
-
|
|
2557
|
-
|
|
2558
|
-
|
|
2559
|
-
|
|
2727
|
+
function resolveSelectPopperWidthConstraints({
|
|
2728
|
+
controlWidth = 0,
|
|
2729
|
+
availableWidth = 0,
|
|
2730
|
+
}) {
|
|
2731
|
+
const preferredWidth = resolveSelectPopperPreferredWidth(controlWidth);
|
|
2732
|
+
const maxWidth = Math.max(0, availableWidth);
|
|
2560
2733
|
|
|
2561
|
-
|
|
2562
|
-
|
|
2563
|
-
|
|
2734
|
+
return {
|
|
2735
|
+
preferredWidth,
|
|
2736
|
+
maxWidth: maxWidth > 0 ? maxWidth : Infinity,
|
|
2737
|
+
};
|
|
2738
|
+
}
|
|
2739
|
+
|
|
2740
|
+
function resolveSelectListDimension({
|
|
2741
|
+
visibleOptionHeights = [],
|
|
2742
|
+
maxVisibleOptions = 10,
|
|
2743
|
+
availableHeight,
|
|
2744
|
+
padding = 0,
|
|
2745
|
+
margin = 0,
|
|
2746
|
+
}) {
|
|
2747
|
+
const visibleHeights = visibleOptionHeights.filter((height) => {
|
|
2748
|
+
return Number.isFinite(height) && height > 0;
|
|
2749
|
+
});
|
|
2750
|
+
const naturalListHeight =
|
|
2751
|
+
visibleHeights
|
|
2752
|
+
.slice(0, Math.max(0, maxVisibleOptions))
|
|
2753
|
+
.reduce((sum, height) => {
|
|
2754
|
+
return sum + height;
|
|
2755
|
+
}, 0) +
|
|
2756
|
+
padding +
|
|
2757
|
+
margin;
|
|
2758
|
+
const fullListHeight =
|
|
2759
|
+
visibleHeights.reduce((sum, height) => {
|
|
2760
|
+
return sum + height;
|
|
2761
|
+
}, 0) +
|
|
2762
|
+
padding +
|
|
2763
|
+
margin;
|
|
2764
|
+
const maxHeight = resolveSelectListMaxHeight({
|
|
2765
|
+
availableHeight,
|
|
2766
|
+
});
|
|
2767
|
+
const desiredHeight = Math.min(
|
|
2768
|
+
maxHeight,
|
|
2769
|
+
fullListHeight > 0 ? naturalListHeight : 0,
|
|
2770
|
+
);
|
|
2771
|
+
|
|
2772
|
+
return {
|
|
2773
|
+
desiredHeight,
|
|
2774
|
+
fullHeight: fullListHeight,
|
|
2775
|
+
maxHeight,
|
|
2776
|
+
overflowY: fullListHeight > desiredHeight ? "auto" : "hidden",
|
|
2777
|
+
};
|
|
2778
|
+
}
|
|
2779
|
+
|
|
2780
|
+
function resolveSelectListMaxHeight(geometry) {
|
|
2781
|
+
if (!geometry || !Number.isFinite(geometry.availableHeight)) {
|
|
2782
|
+
return SELECT_MAX_POPPER_HEIGHT;
|
|
2564
2783
|
}
|
|
2784
|
+
|
|
2785
|
+
return Math.max(
|
|
2786
|
+
0,
|
|
2787
|
+
Math.min(geometry.availableHeight, SELECT_MAX_POPPER_HEIGHT),
|
|
2788
|
+
);
|
|
2565
2789
|
}
|
|
2566
2790
|
|
|
2567
|
-
|
|
2568
|
-
|
|
2569
|
-
|
|
2570
|
-
|
|
2571
|
-
|
|
2572
|
-
|
|
2791
|
+
function getViewportMetrics() {
|
|
2792
|
+
const globalObject = getGlobal();
|
|
2793
|
+
const documentElement = globalObject.document?.documentElement;
|
|
2794
|
+
const viewport = globalObject.visualViewport;
|
|
2795
|
+
const metrics = resolveSelectViewportMetrics({
|
|
2796
|
+
layoutWidth: Math.max(
|
|
2797
|
+
documentElement?.clientWidth || 0,
|
|
2798
|
+
globalObject.innerWidth || 0,
|
|
2799
|
+
),
|
|
2800
|
+
layoutHeight: Math.max(
|
|
2801
|
+
documentElement?.clientHeight || 0,
|
|
2802
|
+
globalObject.innerHeight || 0,
|
|
2803
|
+
),
|
|
2804
|
+
visualWidth: viewport?.width || 0,
|
|
2805
|
+
visualHeight: viewport?.height || 0,
|
|
2806
|
+
offsetLeft: viewport?.offsetLeft || 0,
|
|
2807
|
+
offsetTop: viewport?.offsetTop || 0,
|
|
2808
|
+
padding: SELECT_VIEWPORT_PADDING,
|
|
2809
|
+
});
|
|
2573
2810
|
|
|
2574
|
-
|
|
2575
|
-
|
|
2576
|
-
|
|
2811
|
+
return {
|
|
2812
|
+
width: metrics.width,
|
|
2813
|
+
height: metrics.height,
|
|
2814
|
+
left: metrics.left,
|
|
2815
|
+
top: metrics.top,
|
|
2816
|
+
padding: metrics.padding,
|
|
2817
|
+
};
|
|
2818
|
+
}
|
|
2577
2819
|
|
|
2578
|
-
|
|
2820
|
+
function resolveSelectViewportMetrics({
|
|
2821
|
+
layoutWidth = 0,
|
|
2822
|
+
layoutHeight = 0,
|
|
2823
|
+
visualWidth = 0,
|
|
2824
|
+
visualHeight = 0,
|
|
2825
|
+
offsetLeft = 0,
|
|
2826
|
+
offsetTop = 0,
|
|
2827
|
+
padding = SELECT_VIEWPORT_PADDING,
|
|
2828
|
+
}) {
|
|
2829
|
+
return {
|
|
2830
|
+
width: Math.max(layoutWidth, visualWidth),
|
|
2831
|
+
height: Math.max(layoutHeight, visualHeight),
|
|
2832
|
+
left: offsetLeft,
|
|
2833
|
+
top: offsetTop,
|
|
2834
|
+
padding,
|
|
2835
|
+
};
|
|
2836
|
+
}
|
|
2579
2837
|
|
|
2580
|
-
|
|
2581
|
-
|
|
2582
|
-
|
|
2838
|
+
function resolveSelectVisibleRect({
|
|
2839
|
+
viewportMetrics,
|
|
2840
|
+
boundaryRect = null,
|
|
2841
|
+
}) {
|
|
2842
|
+
const viewportLeft = (viewportMetrics?.left || 0) + (viewportMetrics?.padding || 0);
|
|
2843
|
+
const viewportTop = (viewportMetrics?.top || 0) + (viewportMetrics?.padding || 0);
|
|
2844
|
+
const viewportRight =
|
|
2845
|
+
(viewportMetrics?.left || 0) +
|
|
2846
|
+
(viewportMetrics?.width || 0) -
|
|
2847
|
+
(viewportMetrics?.padding || 0);
|
|
2848
|
+
const viewportBottom =
|
|
2849
|
+
(viewportMetrics?.top || 0) +
|
|
2850
|
+
(viewportMetrics?.height || 0) -
|
|
2851
|
+
(viewportMetrics?.padding || 0);
|
|
2852
|
+
|
|
2853
|
+
const left = boundaryRect
|
|
2854
|
+
? Math.max(viewportLeft, boundaryRect.left)
|
|
2855
|
+
: viewportLeft;
|
|
2856
|
+
const top = boundaryRect
|
|
2857
|
+
? Math.max(viewportTop, boundaryRect.top)
|
|
2858
|
+
: viewportTop;
|
|
2859
|
+
const right = boundaryRect
|
|
2860
|
+
? Math.min(viewportRight, boundaryRect.right)
|
|
2861
|
+
: viewportRight;
|
|
2862
|
+
const bottom = boundaryRect
|
|
2863
|
+
? Math.min(viewportBottom, boundaryRect.bottom)
|
|
2864
|
+
: viewportBottom;
|
|
2583
2865
|
|
|
2584
|
-
|
|
2585
|
-
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
|
|
2866
|
+
return {
|
|
2867
|
+
left,
|
|
2868
|
+
top,
|
|
2869
|
+
right,
|
|
2870
|
+
bottom,
|
|
2871
|
+
width: Math.max(0, right - left),
|
|
2872
|
+
height: Math.max(0, bottom - top),
|
|
2873
|
+
};
|
|
2874
|
+
}
|
|
2875
|
+
|
|
2876
|
+
function getSelectPopperGeometry() {
|
|
2877
|
+
const viewport = getViewportMetrics();
|
|
2878
|
+
const boundaryElement = resolveClippingBoundaryElement(
|
|
2879
|
+
this[controlElementSymbol],
|
|
2880
|
+
this[popperElementSymbol],
|
|
2881
|
+
);
|
|
2882
|
+
const controlRect = this[controlElementSymbol].getBoundingClientRect();
|
|
2883
|
+
const boundaryRect =
|
|
2884
|
+
boundaryElement instanceof HTMLElement
|
|
2885
|
+
? boundaryElement.getBoundingClientRect()
|
|
2886
|
+
: null;
|
|
2887
|
+
const visibleRect = resolveSelectVisibleRect({
|
|
2888
|
+
viewportMetrics: viewport,
|
|
2889
|
+
boundaryRect,
|
|
2890
|
+
});
|
|
2891
|
+
const spaceAbove = Math.max(
|
|
2892
|
+
0,
|
|
2893
|
+
controlRect.top - visibleRect.top,
|
|
2894
|
+
);
|
|
2895
|
+
const spaceBelow = Math.max(
|
|
2896
|
+
0,
|
|
2897
|
+
visibleRect.bottom - controlRect.bottom,
|
|
2898
|
+
);
|
|
2899
|
+
const availableHeight = Math.max(spaceAbove, spaceBelow, 0);
|
|
2900
|
+
|
|
2901
|
+
return {
|
|
2902
|
+
spaceAbove,
|
|
2903
|
+
spaceBelow,
|
|
2904
|
+
availableHeight,
|
|
2905
|
+
availableWidth: visibleRect.width,
|
|
2906
|
+
boundaryElement,
|
|
2907
|
+
};
|
|
2908
|
+
}
|
|
2909
|
+
|
|
2910
|
+
function getSelectPopperPositionOptions() {
|
|
2911
|
+
const popperOptions = Object.assign({}, this.getOption("popper", {}));
|
|
2912
|
+
const middleware = popperOptions.middleware;
|
|
2913
|
+
const usesLegacyDefaultMiddleware =
|
|
2914
|
+
isArray(middleware) &&
|
|
2915
|
+
middleware.length === 2 &&
|
|
2916
|
+
middleware[0] === "flip" &&
|
|
2917
|
+
middleware[1] === "offset:1";
|
|
2918
|
+
|
|
2919
|
+
if (
|
|
2920
|
+
!isArray(middleware) ||
|
|
2921
|
+
middleware.length === 0 ||
|
|
2922
|
+
usesLegacyDefaultMiddleware
|
|
2923
|
+
) {
|
|
2924
|
+
popperOptions.middleware = getDefaultSelectPopperPositionProfile().middleware;
|
|
2925
|
+
}
|
|
2926
|
+
|
|
2927
|
+
if (
|
|
2928
|
+
!isString(popperOptions.placement) ||
|
|
2929
|
+
popperOptions.placement === "bottom"
|
|
2930
|
+
) {
|
|
2931
|
+
popperOptions.placement =
|
|
2932
|
+
getDefaultSelectPopperPositionProfile().placement;
|
|
2590
2933
|
}
|
|
2591
2934
|
|
|
2592
|
-
return
|
|
2935
|
+
return popperOptions;
|
|
2936
|
+
}
|
|
2937
|
+
|
|
2938
|
+
function getDefaultSelectPopperPositionProfile() {
|
|
2939
|
+
return {
|
|
2940
|
+
placement: "bottom-start",
|
|
2941
|
+
middleware: ["flip", "offset:4", "shift:crossAxis", "size"],
|
|
2942
|
+
};
|
|
2943
|
+
}
|
|
2944
|
+
|
|
2945
|
+
function resetSelectPopperDimensionStyles() {
|
|
2946
|
+
if (!(this[popperElementSymbol] instanceof HTMLElement)) {
|
|
2947
|
+
return;
|
|
2948
|
+
}
|
|
2949
|
+
|
|
2950
|
+
delete this[popperElementSymbol].dataset.monsterPreferredWidth;
|
|
2951
|
+
delete this[popperElementSymbol].dataset.monsterPreferredMaxWidth;
|
|
2952
|
+
this[popperElementSymbol].style.removeProperty("width");
|
|
2953
|
+
this[popperElementSymbol].style.removeProperty("minWidth");
|
|
2954
|
+
this[popperElementSymbol].style.removeProperty("maxWidth");
|
|
2955
|
+
this[popperElementSymbol].style.removeProperty("maxHeight");
|
|
2956
|
+
|
|
2957
|
+
const content = this[popperElementSymbol].querySelector('[part="content"]');
|
|
2958
|
+
if (content instanceof HTMLElement) {
|
|
2959
|
+
content.style.removeProperty("maxHeight");
|
|
2960
|
+
}
|
|
2961
|
+
|
|
2962
|
+
if (this[optionsElementSymbol] instanceof HTMLElement) {
|
|
2963
|
+
this[optionsElementSymbol].style.removeProperty("height");
|
|
2964
|
+
this[optionsElementSymbol].style.removeProperty("maxHeight");
|
|
2965
|
+
}
|
|
2593
2966
|
}
|
|
2594
2967
|
|
|
2595
2968
|
/**
|
|
@@ -3751,6 +4124,7 @@ function fetchData(url) {
|
|
|
3751
4124
|
* @private
|
|
3752
4125
|
*/
|
|
3753
4126
|
function hide() {
|
|
4127
|
+
resetSelectPopperDimensionStyles.call(this);
|
|
3754
4128
|
closePositionedPopper(this[popperElementSymbol]);
|
|
3755
4129
|
setStatusOrRemoveBadges.call(this, "closed");
|
|
3756
4130
|
removeAttributeToken(this[controlElementSymbol], "class", "open");
|
|
@@ -3819,11 +4193,12 @@ function show() {
|
|
|
3819
4193
|
return;
|
|
3820
4194
|
}
|
|
3821
4195
|
|
|
4196
|
+
resetSelectPopperDimensionStyles.call(this);
|
|
3822
4197
|
this[popperElementSymbol].style.visibility = "hidden";
|
|
3823
4198
|
openPositionedPopper(
|
|
3824
4199
|
this[controlElementSymbol],
|
|
3825
4200
|
this[popperElementSymbol],
|
|
3826
|
-
|
|
4201
|
+
getSelectPopperPositionOptions.call(this),
|
|
3827
4202
|
);
|
|
3828
4203
|
setStatusOrRemoveBadges.call(this, "open");
|
|
3829
4204
|
|
|
@@ -4493,7 +4868,7 @@ function updatePopper() {
|
|
|
4493
4868
|
this,
|
|
4494
4869
|
this[controlElementSymbol],
|
|
4495
4870
|
this[popperElementSymbol],
|
|
4496
|
-
|
|
4871
|
+
getSelectPopperPositionOptions.call(this),
|
|
4497
4872
|
);
|
|
4498
4873
|
requestAnimationFrame(() => {
|
|
4499
4874
|
refreshSelectPaginationLayout.call(this);
|
|
@@ -258,10 +258,14 @@ div[data-monster-role=selection] {
|
|
|
258
258
|
box-sizing: border-box;
|
|
259
259
|
display: flex;
|
|
260
260
|
flex-direction: column;
|
|
261
|
+
width: 100%;
|
|
262
|
+
max-width: 100%;
|
|
263
|
+
min-width: 0;
|
|
261
264
|
flex-grow: 1;
|
|
262
265
|
scrollbar-color: var(--monster-color-primary-1) var(--monster-bg-color-primary-1);
|
|
263
266
|
scrollbar-width: thin;
|
|
264
267
|
transition: height 0.3s ease;
|
|
268
|
+
overflow-x: hidden;
|
|
265
269
|
}
|
|
266
270
|
|
|
267
271
|
[data-monster-role=option] {
|
|
@@ -269,6 +273,9 @@ div[data-monster-role=selection] {
|
|
|
269
273
|
align-items: center;
|
|
270
274
|
display: flex;
|
|
271
275
|
box-sizing: border-box;
|
|
276
|
+
width: 100%;
|
|
277
|
+
max-width: 100%;
|
|
278
|
+
min-width: 0;
|
|
272
279
|
}
|
|
273
280
|
|
|
274
281
|
[data-monster-role=option] label {
|
|
@@ -277,6 +284,8 @@ div[data-monster-role=selection] {
|
|
|
277
284
|
justify-content: flex-start;
|
|
278
285
|
align-items: center;
|
|
279
286
|
width: 100%;
|
|
287
|
+
max-width: 100%;
|
|
288
|
+
min-width: 0;
|
|
280
289
|
}
|
|
281
290
|
|
|
282
291
|
|
|
@@ -286,9 +295,18 @@ div[data-monster-role=selection] {
|
|
|
286
295
|
flex-direction: row;
|
|
287
296
|
align-items: center;
|
|
288
297
|
width: 100%;
|
|
298
|
+
max-width: 100%;
|
|
299
|
+
min-width: 0;
|
|
289
300
|
outline: none;
|
|
290
301
|
}
|
|
291
302
|
|
|
303
|
+
[part=option-label] {
|
|
304
|
+
max-width: 100%;
|
|
305
|
+
min-width: 0;
|
|
306
|
+
overflow-wrap: anywhere;
|
|
307
|
+
word-break: break-word;
|
|
308
|
+
}
|
|
309
|
+
|
|
292
310
|
[data-monster-role="no-options"] {
|
|
293
311
|
}
|
|
294
312
|
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
* For more information about purchasing a commercial license, please contact Volker Schukai.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import {addAttributeToken} from "../../../dom/attributes.mjs";
|
|
14
|
-
import {ATTRIBUTE_ERRORMESSAGE} from "../../../dom/constants.mjs";
|
|
13
|
+
import { addAttributeToken } from "../../../dom/attributes.mjs";
|
|
14
|
+
import { ATTRIBUTE_ERRORMESSAGE } from "../../../dom/constants.mjs";
|
|
15
15
|
|
|
16
|
-
export {ContextErrorStyleSheet}
|
|
16
|
+
export { ContextErrorStyleSheet };
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* @private
|
|
@@ -22,10 +22,17 @@ export {ContextErrorStyleSheet}
|
|
|
22
22
|
const ContextErrorStyleSheet = new CSSStyleSheet();
|
|
23
23
|
|
|
24
24
|
try {
|
|
25
|
-
|
|
25
|
+
ContextErrorStyleSheet.insertRule(
|
|
26
|
+
`
|
|
26
27
|
@layer contexterror {
|
|
27
28
|
[data-monster-role=control]{box-sizing:border-box;outline:none;width:100%}[data-monster-role=control].flex{align-items:center;display:flex;flex-direction:row}:host{box-sizing:border-box;display:block}div[data-monster-role=popper]{align-content:center;background:var(--monster-bg-color-primary-1);border-color:var(--monster-bg-color-primary-4);border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width);box-shadow:var(--monster-box-shadow-1);box-sizing:border-box;color:var(--monster-color-primary-1);display:none;justify-content:space-between;left:0;max-height:var(--monster-popper-max-height,calc(100vh - 2rem));max-width:var(--monster-popper-max-width,calc(100vw - 2rem));padding:1.1em;position:absolute;top:0;width:-moz-max-content;width:max-content;z-index:var(--monster-z-index-modal)}div[data-monster-role=popper]>[part=content]{max-height:var(--monster-popper-content-max-height,calc(100vh - 4.2rem));overflow:auto}div[data-monster-role=popper]>[part=content][data-monster-overflow-mode=horizontal]{clip-path:none;overflow:visible}div[data-monster-role=popper]>[part=content][data-monster-overflow-mode=visible]{clip-path:none;max-height:none;max-width:none;overflow:visible}div[data-monster-role=popper] div[data-monster-role=arrow]{background:var(--monster-bg-color-primary-1);height:calc(max(var(--monster-popper-witharrrow-distance), -1 * var(--monster-popper-witharrrow-distance))*2);pointer-events:none;position:absolute;width:calc(max(var(--monster-popper-witharrrow-distance), -1 * var(--monster-popper-witharrrow-distance))*2);z-index:-1}[data-monster-role=control]{line-height:1em;margin:0;padding:0;position:relative}[data-monster-role=control] [data-monster-role=button]{display:inline-block;position:relative}:is([data-monster-role=control] [data-monster-role=button]) svg{cursor:pointer}:is([data-monster-role=control] [data-monster-role=button]) svg.hidden{cursor:default;pointer-events:none;visibility:hidden}:host{display:inline-block;margin:0 .2em;padding:0;position:relative;vertical-align:bottom}div[data-monster-role=popper]{max-width:min(var(--monster-popper-max-width,calc(100vw - 2rem)),32rem)}div[data-monster-role=popper]>[part=content]{display:block;max-width:100%;overflow-wrap:anywhere;text-wrap:pretty;white-space:normal;word-break:break-word}:host([disabled]) [data-monster-role=button] svg{cursor:default;pointer-events:none}
|
|
28
|
-
}`,
|
|
29
|
+
}`,
|
|
30
|
+
0,
|
|
31
|
+
);
|
|
29
32
|
} catch (e) {
|
|
30
|
-
|
|
33
|
+
addAttributeToken(
|
|
34
|
+
document.getRootNode().querySelector("html"),
|
|
35
|
+
ATTRIBUTE_ERRORMESSAGE,
|
|
36
|
+
e + "",
|
|
37
|
+
);
|
|
31
38
|
}
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
* For more information about purchasing a commercial license, please contact Volker Schukai.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import {addAttributeToken} from "../../../dom/attributes.mjs";
|
|
14
|
-
import {ATTRIBUTE_ERRORMESSAGE} from "../../../dom/constants.mjs";
|
|
13
|
+
import { addAttributeToken } from "../../../dom/attributes.mjs";
|
|
14
|
+
import { ATTRIBUTE_ERRORMESSAGE } from "../../../dom/constants.mjs";
|
|
15
15
|
|
|
16
|
-
export {ContextHelpStyleSheet}
|
|
16
|
+
export { ContextHelpStyleSheet };
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* @private
|
|
@@ -22,10 +22,17 @@ export {ContextHelpStyleSheet}
|
|
|
22
22
|
const ContextHelpStyleSheet = new CSSStyleSheet();
|
|
23
23
|
|
|
24
24
|
try {
|
|
25
|
-
|
|
25
|
+
ContextHelpStyleSheet.insertRule(
|
|
26
|
+
`
|
|
26
27
|
@layer contexthelp {
|
|
27
28
|
[data-monster-role=control]{box-sizing:border-box;outline:none;width:100%}[data-monster-role=control].flex{align-items:center;display:flex;flex-direction:row}:host{box-sizing:border-box;display:block}div[data-monster-role=popper]{align-content:center;background:var(--monster-bg-color-primary-1);border-color:var(--monster-bg-color-primary-4);border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width);box-shadow:var(--monster-box-shadow-1);box-sizing:border-box;color:var(--monster-color-primary-1);display:none;justify-content:space-between;left:0;max-height:var(--monster-popper-max-height,calc(100vh - 2rem));max-width:var(--monster-popper-max-width,calc(100vw - 2rem));padding:1.1em;position:absolute;top:0;width:-moz-max-content;width:max-content;z-index:var(--monster-z-index-modal)}div[data-monster-role=popper]>[part=content]{max-height:var(--monster-popper-content-max-height,calc(100vh - 4.2rem));overflow:auto}div[data-monster-role=popper]>[part=content][data-monster-overflow-mode=horizontal]{clip-path:none;overflow:visible}div[data-monster-role=popper]>[part=content][data-monster-overflow-mode=visible]{clip-path:none;max-height:none;max-width:none;overflow:visible}div[data-monster-role=popper] div[data-monster-role=arrow]{background:var(--monster-bg-color-primary-1);height:calc(max(var(--monster-popper-witharrrow-distance), -1 * var(--monster-popper-witharrrow-distance))*2);pointer-events:none;position:absolute;width:calc(max(var(--monster-popper-witharrrow-distance), -1 * var(--monster-popper-witharrrow-distance))*2);z-index:-1}[data-monster-role=control]{line-height:1em;margin:0;padding:0;position:relative}[data-monster-role=control] [data-monster-role=button]{display:inline-block;position:relative}:is([data-monster-role=control] [data-monster-role=button]) svg{cursor:pointer}:is([data-monster-role=control] [data-monster-role=button]) svg.hidden{cursor:default;pointer-events:none;visibility:hidden}div[data-monster-role=popper]{max-width:min(var(--monster-popper-max-width,calc(100vw - 2rem)),32rem);z-index:var(--monster-z-index-tooltip-overlay)}div[data-monster-role=popper]>[part=content]{display:block;max-width:100%;overflow-wrap:anywhere;text-wrap:pretty;white-space:normal;word-break:break-word}:host{display:inline-block;margin:0 .2em;padding:0;position:relative;vertical-align:bottom}:host([disabled]) [data-monster-role=button] svg{cursor:default;pointer-events:none}
|
|
28
|
-
}`,
|
|
29
|
+
}`,
|
|
30
|
+
0,
|
|
31
|
+
);
|
|
29
32
|
} catch (e) {
|
|
30
|
-
|
|
33
|
+
addAttributeToken(
|
|
34
|
+
document.getRootNode().querySelector("html"),
|
|
35
|
+
ATTRIBUTE_ERRORMESSAGE,
|
|
36
|
+
e + "",
|
|
37
|
+
);
|
|
31
38
|
}
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
* For more information about purchasing a commercial license, please contact Volker Schukai.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
13
|
+
import {addAttributeToken} from "../../../dom/attributes.mjs";
|
|
14
|
+
import {ATTRIBUTE_ERRORMESSAGE} from "../../../dom/constants.mjs";
|
|
15
15
|
|
|
16
|
-
export {
|
|
16
|
+
export {SelectStyleSheet}
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* @private
|
|
@@ -22,17 +22,10 @@ export { SelectStyleSheet };
|
|
|
22
22
|
const SelectStyleSheet = new CSSStyleSheet();
|
|
23
23
|
|
|
24
24
|
try {
|
|
25
|
-
|
|
26
|
-
`
|
|
25
|
+
SelectStyleSheet.insertRule(`
|
|
27
26
|
@layer select {
|
|
28
|
-
.block{display:block}.inline{display:inline}.inline-block{display:inline-block}.grid{display:grid}.inline-grid{display:inline-grid}.flex{display:flex}.inline-flex{display:inline-flex}.hidden,.hide,.none{display:none}.visible{visibility:visible}.invisible{visibility:hidden}.monster-border-primary-1,.monster-border-primary-2,.monster-border-primary-3,.monster-border-primary-4{border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width)}.monster-border-0{border-radius:0;border-style:none;border-width:0}.monster-border-primary-1{border-color:var(--monster-bg-color-primary-1)}.monster-border-primary-2{border-color:var(--monster-bg-color-primary-2)}.monster-border-primary-3{border-color:var(--monster-bg-color-primary-3)}.monster-border-primary-4{border-color:var(--monster-bg-color-primary-4)}.monster-border-secondary-1,.monster-border-secondary-2,.monster-border-secondary-3,.monster-border-secondary-4{border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width)}.monster-border-secondary-1{border-color:var(--monster-bg-color-secondary-1)}.monster-border-secondary-2{border-color:var(--monster-bg-color-secondary-2)}.monster-border-secondary-3{border-color:var(--monster-bg-color-secondary-3)}.monster-border-secondary-4{border-color:var(--monster-bg-color-secondary-4)}.monster-border-tertiary-1,.monster-border-tertiary-2,.monster-border-tertiary-3,.monster-border-tertiary-4{border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width)}.monster-border-tertiary-1{border-color:var(--monster-bg-color-tertiary-1)}.monster-border-tertiary-2{border-color:var(--monster-bg-color-tertiary-2)}.monster-border-tertiary-3{border-color:var(--monster-bg-color-tertiary-3)}.monster-border-tertiary-4{border-color:var(--monster-bg-color-tertiary-4)}[data-monster-role=control]{width:100%}[data-monster-role=control].flex{align-items:center;display:flex;flex-direction:row}:host{box-sizing:border-box;display:block}.monster-badge-primary{padding:.25em .4em}.monster-badge-primary,.monster-badge-primary-pill{background-color:var(--monster-bg-color-primary-4);border-radius:.25rem;color:var(--monster-color-primary-4);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-primary-pill{border-radius:10rem;padding:.25em .6em}.monster-badge-secondary{padding:.25em .4em}.monster-badge-secondary,.monster-badge-secondary-pill{background-color:var(--monster-bg-color-secondary-3);border-radius:.25rem;color:var(--monster-color-secondary-3);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-secondary-pill{border-radius:10rem;padding:.25em .6em}.monster-badge-tertiary{padding:.25em .4em}.monster-badge-tertiary,.monster-badge-tertiary-pill{background-color:var(--monster-bg-color-tertiary-3);border-radius:.25rem;color:var(--monster-color-tertiary-3);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-tertiary-pill{border-radius:10rem;padding:.25em .6em}.monster-badge-destructive{padding:.25em .4em}.monster-badge-destructive,.monster-badge-destructive-pill{background-color:var(--monster-bg-color-destructive-1);border-radius:.25rem;color:var(--monster-color-destructive-1);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-destructive-pill{border-radius:10rem;padding:.25em .6em}.monster-badge-success{padding:.25em .4em}.monster-badge-success,.monster-badge-success-pill{background-color:var(--monster-bg-color-success-1);border-radius:.25rem;color:var(--monster-color-success-1);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-success-pill{border-radius:10rem;padding:.25em .6em}.monster-badge-warning{padding:.25em .4em}.monster-badge-warning,.monster-badge-warning-pill{background-color:var(--monster-bg-color-warning-1);border-radius:.25rem;color:var(--monster-color-warning-1);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-warning-pill{border-radius:10rem;padding:.25em .6em}.monster-badge-error{padding:.25em .4em}.monster-badge-error,.monster-badge-error-pill{background-color:var(--monster-bg-color-error-1);border-radius:.25rem;color:var(--monster-color-error-1);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-error-pill{border-radius:10rem;padding:.25em .6em}.monster-margin-0{margin:var(--monster-space-0)}.monster-margin-top-0{margin-top:var(--monster-space-0)}.monster-margin-end-0{margin-right:var(--monster-space-0)}.monster-margin-bottom-0{margin-bottom:var(--monster-space-0)}.monster-margin-start-0{margin-left:var(--monster-space-0)}.monster-padding-0{padding:var(--monster-space-0)}.monster-padding-top-0{padding-top:var(--monster-space-0)}.monster-padding-end-0{padding-right:var(--monster-space-0)}.monster-padding-bottom-0{padding-bottom:var(--monster-space-0)}.monster-padding-start-0{padding-left:var(--monster-space-0)}.monster-margin-1{margin:var(--monster-space-1)}.monster-margin-top-1{margin-top:var(--monster-space-1)}.monster-margin-end-1{margin-right:var(--monster-space-1)}.monster-margin-bottom-1{margin-bottom:var(--monster-space-1)}.monster-margin-start-1{margin-left:var(--monster-space-1)}.monster-padding-1{padding:var(--monster-space-1)}.monster-padding-top-1{padding-top:var(--monster-space-1)}.monster-padding-end-1{padding-right:var(--monster-space-1)}.monster-padding-bottom-1{padding-bottom:var(--monster-space-1)}.monster-padding-start-1{padding-left:var(--monster-space-1)}.monster-margin-2{margin:var(--monster-space-2)}.monster-margin-top-2{margin-top:var(--monster-space-2)}.monster-margin-end-2{margin-right:var(--monster-space-2)}.monster-margin-bottom-2{margin-bottom:var(--monster-space-2)}.monster-margin-start-2{margin-left:var(--monster-space-2)}.monster-padding-2{padding:var(--monster-space-2)}.monster-padding-top-2{padding-top:var(--monster-space-2)}.monster-padding-end-2{padding-right:var(--monster-space-2)}.monster-padding-bottom-2{padding-bottom:var(--monster-space-2)}.monster-padding-start-2{padding-left:var(--monster-space-2)}.monster-margin-3{margin:var(--monster-space-3)}.monster-margin-top-3{margin-top:var(--monster-space-3)}.monster-margin-end-3{margin-right:var(--monster-space-3)}.monster-margin-bottom-3{margin-bottom:var(--monster-space-3)}.monster-margin-start-3{margin-left:var(--monster-space-3)}.monster-padding-3{padding:var(--monster-space-3)}.monster-padding-top-3{padding-top:var(--monster-space-3)}.monster-padding-end-3{padding-right:var(--monster-space-3)}.monster-padding-bottom-3{padding-bottom:var(--monster-space-3)}.monster-padding-start-3{padding-left:var(--monster-space-3)}.monster-margin-4{margin:var(--monster-space-4)}.monster-margin-top-4{margin-top:var(--monster-space-4)}.monster-margin-end-4{margin-right:var(--monster-space-4)}.monster-margin-bottom-4{margin-bottom:var(--monster-space-4)}.monster-margin-start-4{margin-left:var(--monster-space-4)}.monster-padding-4{padding:var(--monster-space-4)}.monster-padding-top-4{padding-top:var(--monster-space-4)}.monster-padding-end-4{padding-right:var(--monster-space-4)}.monster-padding-bottom-4{padding-bottom:var(--monster-space-4)}.monster-padding-start-4{padding-left:var(--monster-space-4)}.monster-margin-5{margin:var(--monster-space-5)}.monster-margin-top-5{margin-top:var(--monster-space-5)}.monster-margin-end-5{margin-right:var(--monster-space-5)}.monster-margin-bottom-5{margin-bottom:var(--monster-space-5)}.monster-margin-start-5{margin-left:var(--monster-space-5)}.monster-padding-5{padding:var(--monster-space-5)}.monster-padding-top-5{padding-top:var(--monster-space-5)}.monster-padding-end-5{padding-right:var(--monster-space-5)}.monster-padding-bottom-5{padding-bottom:var(--monster-space-5)}.monster-padding-start-5{padding-left:var(--monster-space-5)}.monster-margin-6{margin:var(--monster-space-6)}.monster-margin-top-6{margin-top:var(--monster-space-6)}.monster-margin-end-6{margin-right:var(--monster-space-6)}.monster-margin-bottom-6{margin-bottom:var(--monster-space-6)}.monster-margin-start-6{margin-left:var(--monster-space-6)}.monster-padding-6{padding:var(--monster-space-6)}.monster-padding-top-6{padding-top:var(--monster-space-6)}.monster-padding-end-6{padding-right:var(--monster-space-6)}.monster-padding-bottom-6{padding-bottom:var(--monster-space-6)}.monster-padding-start-6{padding-left:var(--monster-space-6)}.monster-margin-7{margin:var(--monster-space-7)}.monster-margin-top-7{margin-top:var(--monster-space-7)}.monster-margin-end-7{margin-right:var(--monster-space-7)}.monster-margin-bottom-7{margin-bottom:var(--monster-space-7)}.monster-margin-start-7{margin-left:var(--monster-space-7)}.monster-padding-7{padding:var(--monster-space-7)}.monster-padding-top-7{padding-top:var(--monster-space-7)}.monster-padding-end-7{padding-right:var(--monster-space-7)}.monster-padding-bottom-7{padding-bottom:var(--monster-space-7)}.monster-padding-start-7{padding-left:var(--monster-space-7)}div[data-monster-role=popper]{align-content:center;background:var(--monster-bg-color-primary-1);border-color:var(--monster-bg-color-primary-4);border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width);box-shadow:var(--monster-box-shadow-1);box-sizing:border-box;color:var(--monster-color-primary-1);display:none;justify-content:space-between;left:0;max-height:var(--monster-popper-max-height,calc(100vh - 2rem));max-width:var(--monster-popper-max-width,calc(100vw - 2rem));padding:1.1em;position:absolute;top:0;width:-moz-max-content;width:max-content;z-index:var(--monster-z-index-modal)}div[data-monster-role=popper]>[part=content]{max-height:var(--monster-popper-content-max-height,calc(100vh - 4.2rem));max-width:100%;overflow:auto}div[data-monster-role=popper]>[part=content][data-monster-overflow-mode=horizontal]{clip-path:none;overflow:visible}div[data-monster-role=popper]>[part=content][data-monster-overflow-mode=visible]{clip-path:none;max-height:none;max-width:none;overflow:visible}div[data-monster-role=popper] div[data-monster-role=arrow]{background:var(--monster-bg-color-primary-1);height:calc(max(var(--monster-popper-witharrrow-distance), -1 * var(--monster-popper-witharrrow-distance))*2);pointer-events:none;position:absolute;width:calc(max(var(--monster-popper-witharrrow-distance), -1 * var(--monster-popper-witharrrow-distance))*2);z-index:-1}[data-monster-role=container]{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:4 0 90%;min-height:1.4em;overflow:auto;scrollbar-color:var(--monster-color-primary-1) var(--monster-bg-color-primary-1);scrollbar-width:thin;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;width:100%}.d-none{display:none!important}div[data-monster-role=no-options] span,div[data-monster-role=remote-info] span{text-wrap:balance}div[data-monster-role=control]{display:flex;height:100%;position:relative}[data-monster-role=container].open{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708z'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708z'/%3E%3C/svg%3E\")}[data-monster-role=container].clear,[data-monster-role=container].open{background-color:var(--monster-bg-color-primary-2);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:.8em;mask-size:.8em}[data-monster-role=container].clear{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\")}[data-monster-role=control]{accent-color:var(--monster-color-secondary-2);background-color:var(--monster-bg-color-primary-1);border-color:var(--monster-theme-control-border-color);-o-border-image:initial;border-image:initial;border-radius:var(--monster-theme-control-border-radius);border-style:var(--monster-theme-control-border-style);border-width:var(--monster-theme-control-border-width);box-sizing:border-box;color:var(--monster-color-primary-1);display:flex;font-family:inherit;font-size:100%;margin:0;outline:none;padding:.4rem .6rem;width:-webkit-fill-available;width:-moz-available;width:fill-available}@media (prefers-color-scheme:light){[data-monster-role=control]{background-color:var(--monster-bg-color-primary-1);border-color:var(--monster-bg-color-primary-3);color:var(--monster-color-primary-1)}[data-monster-role=control]:focus{outline:1px dashed var(--monster-color-selection-4);outline-offset:2px}}[data-monster-role=control]:hover{box-shadow:var(--monster-box-shadow-2);transition:background .8s,color .25s .0833333333s}:host([disabled]) [data-monster-role=control]{cursor:not-allowed}:host([disabled]) [data-monster-role=status-or-remove-badges],[data-monster-role=control][disabled] [data-monster-role=status-or-remove-badges]{display:none}div[data-monster-role=selection]{align-items:center;display:flex;flex-direction:row;flex-wrap:wrap;gap:5px;justify-content:flex-start;margin:5px}[data-monster-role=option-control]{margin-right:8px}[data-monster-role=badge]{display:inline-flex}[data-monster-role=badge-label]{align-content:center;align-items:center;display:flex;flex-direction:row;gap:7px;justify-content:space-between}[data-monster-role=filter],[data-monster-role=popper-filter]{display:flex;flex-grow:200;order:99999999;visibility:hidden}[data-monster-role=filter].active{background-color:var(--monster-bg-color-primary-2);border:0;border-color:var(--monster-bg-color-primary-3);border-bottom:1px solid var(--monster-bg-color-primary-3);color:var(--monster-color-primary-2);min-width:40%;outline:none;visibility:visible}.active[data-monster-role=filter][name=popper-filter]{height:1.5em;margin:2.5em;padding:2px;width:calc(100% - var(--monster-border-width)*2)}.option-filter-control{align-items:center;background-color:var(--monster-bg-color-primary-2);display:flex;height:2.5em;margin:-1.1em -1.1em .3em}[data-monster-role=remove-badge]{background-color:var(--monster-bg-color-primary-2);height:16px;margin-left:5px;-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");order:2}[data-monster-role=remove-badge],[data-monster-role=status-or-remove-badges]{-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:.8em;mask-size:.8em;min-height:16px;width:16px}[data-monster-role=status-or-remove-badges]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--monster-bg-color-primary-4);-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\")}.open[data-monster-role=status-or-remove-badges]{background-color:var(--monster-bg-color-primary-4);-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708z'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708z'/%3E%3C/svg%3E\")}.empty[data-monster-role=status-or-remove-badges]{background-color:var(--monster-bg-color-primary-4);-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-dash-circle' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M4 8a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7A.5.5 0 0 1 4 8'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-dash-circle' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M4 8a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7A.5.5 0 0 1 4 8'/%3E%3C/svg%3E\")}.clear[data-monster-role=status-or-remove-badges]{background-color:var(--monster-bg-color-primary-4);-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\")}.error[data-monster-role=status-or-remove-badges]{background-color:var(--monster-bg-color-error-1);-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z'/%3E%3C/svg%3E\")}@media (prefers-color-scheme:dark){.error[data-monster-role=status-or-remove-badges]{background-color:var(--monster-color-error-4);-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z'/%3E%3C/svg%3E\")}}.loading[data-monster-role=status-or-remove-badges]{animation-duration:1s;animation-iteration-count:infinite;animation-name:activity;animation-timing-function:cubic-bezier(0,0,.2,1);background-color:var(--monster-bg-color-primary-4);-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='activity' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='activity' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8'/%3E%3C/svg%3E\")}@keyframes activity{0%{transform:scale(1)}50%{transform:scale(.1)}to{transform:scale(1)}}[data-monster-role=options]{box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;scrollbar-color:var(--monster-color-primary-1) var(--monster-bg-color-primary-1);scrollbar-width:thin;transition:height .3s ease}[data-monster-role=option]{align-items:center;box-sizing:border-box;display:flex;padding:6px 5px}[data-monster-role=option] label{align-items:center;display:flex;flex-direction:row;justify-content:flex-start;width:100%}[data-monster-role=option] label>div{align-items:center;display:flex;flex-direction:row;justify-content:space-between;outline:none;width:100%}.selected{background-color:var(--monster-bg-color-primary-2);color:var(--monster-color-primary-2)}[data-monster-role=option][data-monster-filtered=true],[data-monster-role=option][data-monster-visibility=hidden]{display:none}[data-monster-role=option][data-monster-focused=true]{outline:1px dashed var(--monster-color-selection-2);outline-offset:-2px}@media (prefers-color-scheme:dark){[data-monster-role=option][data-monster-focused=true]{outline:1px dashed var(--monster-color-selection-4)}}[data-monster-role=filter]::-moz-placeholder{background-color:var(--monster-bg-color-primary-2);color:var(--monster-color-primary-2)}[data-monster-role=filter]::placeholder{background-color:var(--monster-bg-color-primary-2);color:var(--monster-color-primary-2)}[data-monster-role=option]>input:focus,[data-monster-role=option]>label:focus{outline:none}[data-monster-role=selection-messages]:empty:before,[data-monster-role=summary-messages]:empty:before{content:\"\u00A0\"}.in-button-bar{border-color:var(--monster-bg-color-primary-4)!important;border-style:var(--monster-border-style)!important;border-width:var(--monster-border-width)!important}[data-monster-role=pagination]::part(nav){justify-content:flex-start}[data-monster-role=pagination]::part(list){margin-bottom:0;margin-top:0}
|
|
29
|
-
}`,
|
|
30
|
-
0,
|
|
31
|
-
);
|
|
27
|
+
.block{display:block}.inline{display:inline}.inline-block{display:inline-block}.grid{display:grid}.inline-grid{display:inline-grid}.flex{display:flex}.inline-flex{display:inline-flex}.hidden,.hide,.none{display:none}.visible{visibility:visible}.invisible{visibility:hidden}.monster-border-primary-1,.monster-border-primary-2,.monster-border-primary-3,.monster-border-primary-4{border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width)}.monster-border-0{border-radius:0;border-style:none;border-width:0}.monster-border-primary-1{border-color:var(--monster-bg-color-primary-1)}.monster-border-primary-2{border-color:var(--monster-bg-color-primary-2)}.monster-border-primary-3{border-color:var(--monster-bg-color-primary-3)}.monster-border-primary-4{border-color:var(--monster-bg-color-primary-4)}.monster-border-secondary-1,.monster-border-secondary-2,.monster-border-secondary-3,.monster-border-secondary-4{border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width)}.monster-border-secondary-1{border-color:var(--monster-bg-color-secondary-1)}.monster-border-secondary-2{border-color:var(--monster-bg-color-secondary-2)}.monster-border-secondary-3{border-color:var(--monster-bg-color-secondary-3)}.monster-border-secondary-4{border-color:var(--monster-bg-color-secondary-4)}.monster-border-tertiary-1,.monster-border-tertiary-2,.monster-border-tertiary-3,.monster-border-tertiary-4{border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width)}.monster-border-tertiary-1{border-color:var(--monster-bg-color-tertiary-1)}.monster-border-tertiary-2{border-color:var(--monster-bg-color-tertiary-2)}.monster-border-tertiary-3{border-color:var(--monster-bg-color-tertiary-3)}.monster-border-tertiary-4{border-color:var(--monster-bg-color-tertiary-4)}[data-monster-role=control]{width:100%}[data-monster-role=control].flex{align-items:center;display:flex;flex-direction:row}:host{box-sizing:border-box;display:block}.monster-badge-primary{padding:.25em .4em}.monster-badge-primary,.monster-badge-primary-pill{background-color:var(--monster-bg-color-primary-4);border-radius:.25rem;color:var(--monster-color-primary-4);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-primary-pill{border-radius:10rem;padding:.25em .6em}.monster-badge-secondary{padding:.25em .4em}.monster-badge-secondary,.monster-badge-secondary-pill{background-color:var(--monster-bg-color-secondary-3);border-radius:.25rem;color:var(--monster-color-secondary-3);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-secondary-pill{border-radius:10rem;padding:.25em .6em}.monster-badge-tertiary{padding:.25em .4em}.monster-badge-tertiary,.monster-badge-tertiary-pill{background-color:var(--monster-bg-color-tertiary-3);border-radius:.25rem;color:var(--monster-color-tertiary-3);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-tertiary-pill{border-radius:10rem;padding:.25em .6em}.monster-badge-destructive{padding:.25em .4em}.monster-badge-destructive,.monster-badge-destructive-pill{background-color:var(--monster-bg-color-destructive-1);border-radius:.25rem;color:var(--monster-color-destructive-1);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-destructive-pill{border-radius:10rem;padding:.25em .6em}.monster-badge-success{padding:.25em .4em}.monster-badge-success,.monster-badge-success-pill{background-color:var(--monster-bg-color-success-1);border-radius:.25rem;color:var(--monster-color-success-1);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-success-pill{border-radius:10rem;padding:.25em .6em}.monster-badge-warning{padding:.25em .4em}.monster-badge-warning,.monster-badge-warning-pill{background-color:var(--monster-bg-color-warning-1);border-radius:.25rem;color:var(--monster-color-warning-1);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-warning-pill{border-radius:10rem;padding:.25em .6em}.monster-badge-error{padding:.25em .4em}.monster-badge-error,.monster-badge-error-pill{background-color:var(--monster-bg-color-error-1);border-radius:.25rem;color:var(--monster-color-error-1);display:inline-block;font-size:75%;font-weight:700;line-height:1;text-align:center;text-decoration:none;vertical-align:baseline;white-space:nowrap}.monster-badge-error-pill{border-radius:10rem;padding:.25em .6em}.monster-margin-0{margin:var(--monster-space-0)}.monster-margin-top-0{margin-top:var(--monster-space-0)}.monster-margin-end-0{margin-right:var(--monster-space-0)}.monster-margin-bottom-0{margin-bottom:var(--monster-space-0)}.monster-margin-start-0{margin-left:var(--monster-space-0)}.monster-padding-0{padding:var(--monster-space-0)}.monster-padding-top-0{padding-top:var(--monster-space-0)}.monster-padding-end-0{padding-right:var(--monster-space-0)}.monster-padding-bottom-0{padding-bottom:var(--monster-space-0)}.monster-padding-start-0{padding-left:var(--monster-space-0)}.monster-margin-1{margin:var(--monster-space-1)}.monster-margin-top-1{margin-top:var(--monster-space-1)}.monster-margin-end-1{margin-right:var(--monster-space-1)}.monster-margin-bottom-1{margin-bottom:var(--monster-space-1)}.monster-margin-start-1{margin-left:var(--monster-space-1)}.monster-padding-1{padding:var(--monster-space-1)}.monster-padding-top-1{padding-top:var(--monster-space-1)}.monster-padding-end-1{padding-right:var(--monster-space-1)}.monster-padding-bottom-1{padding-bottom:var(--monster-space-1)}.monster-padding-start-1{padding-left:var(--monster-space-1)}.monster-margin-2{margin:var(--monster-space-2)}.monster-margin-top-2{margin-top:var(--monster-space-2)}.monster-margin-end-2{margin-right:var(--monster-space-2)}.monster-margin-bottom-2{margin-bottom:var(--monster-space-2)}.monster-margin-start-2{margin-left:var(--monster-space-2)}.monster-padding-2{padding:var(--monster-space-2)}.monster-padding-top-2{padding-top:var(--monster-space-2)}.monster-padding-end-2{padding-right:var(--monster-space-2)}.monster-padding-bottom-2{padding-bottom:var(--monster-space-2)}.monster-padding-start-2{padding-left:var(--monster-space-2)}.monster-margin-3{margin:var(--monster-space-3)}.monster-margin-top-3{margin-top:var(--monster-space-3)}.monster-margin-end-3{margin-right:var(--monster-space-3)}.monster-margin-bottom-3{margin-bottom:var(--monster-space-3)}.monster-margin-start-3{margin-left:var(--monster-space-3)}.monster-padding-3{padding:var(--monster-space-3)}.monster-padding-top-3{padding-top:var(--monster-space-3)}.monster-padding-end-3{padding-right:var(--monster-space-3)}.monster-padding-bottom-3{padding-bottom:var(--monster-space-3)}.monster-padding-start-3{padding-left:var(--monster-space-3)}.monster-margin-4{margin:var(--monster-space-4)}.monster-margin-top-4{margin-top:var(--monster-space-4)}.monster-margin-end-4{margin-right:var(--monster-space-4)}.monster-margin-bottom-4{margin-bottom:var(--monster-space-4)}.monster-margin-start-4{margin-left:var(--monster-space-4)}.monster-padding-4{padding:var(--monster-space-4)}.monster-padding-top-4{padding-top:var(--monster-space-4)}.monster-padding-end-4{padding-right:var(--monster-space-4)}.monster-padding-bottom-4{padding-bottom:var(--monster-space-4)}.monster-padding-start-4{padding-left:var(--monster-space-4)}.monster-margin-5{margin:var(--monster-space-5)}.monster-margin-top-5{margin-top:var(--monster-space-5)}.monster-margin-end-5{margin-right:var(--monster-space-5)}.monster-margin-bottom-5{margin-bottom:var(--monster-space-5)}.monster-margin-start-5{margin-left:var(--monster-space-5)}.monster-padding-5{padding:var(--monster-space-5)}.monster-padding-top-5{padding-top:var(--monster-space-5)}.monster-padding-end-5{padding-right:var(--monster-space-5)}.monster-padding-bottom-5{padding-bottom:var(--monster-space-5)}.monster-padding-start-5{padding-left:var(--monster-space-5)}.monster-margin-6{margin:var(--monster-space-6)}.monster-margin-top-6{margin-top:var(--monster-space-6)}.monster-margin-end-6{margin-right:var(--monster-space-6)}.monster-margin-bottom-6{margin-bottom:var(--monster-space-6)}.monster-margin-start-6{margin-left:var(--monster-space-6)}.monster-padding-6{padding:var(--monster-space-6)}.monster-padding-top-6{padding-top:var(--monster-space-6)}.monster-padding-end-6{padding-right:var(--monster-space-6)}.monster-padding-bottom-6{padding-bottom:var(--monster-space-6)}.monster-padding-start-6{padding-left:var(--monster-space-6)}.monster-margin-7{margin:var(--monster-space-7)}.monster-margin-top-7{margin-top:var(--monster-space-7)}.monster-margin-end-7{margin-right:var(--monster-space-7)}.monster-margin-bottom-7{margin-bottom:var(--monster-space-7)}.monster-margin-start-7{margin-left:var(--monster-space-7)}.monster-padding-7{padding:var(--monster-space-7)}.monster-padding-top-7{padding-top:var(--monster-space-7)}.monster-padding-end-7{padding-right:var(--monster-space-7)}.monster-padding-bottom-7{padding-bottom:var(--monster-space-7)}.monster-padding-start-7{padding-left:var(--monster-space-7)}div[data-monster-role=popper]{align-content:center;background:var(--monster-bg-color-primary-1);border-color:var(--monster-bg-color-primary-4);border-radius:var(--monster-border-radius);border-style:var(--monster-border-style);border-width:var(--monster-border-width);box-shadow:var(--monster-box-shadow-1);box-sizing:border-box;color:var(--monster-color-primary-1);display:none;justify-content:space-between;left:0;max-height:var(--monster-popper-max-height,calc(100vh - 2rem));max-width:var(--monster-popper-max-width,calc(100vw - 2rem));padding:1.1em;position:absolute;top:0;width:-moz-max-content;width:max-content;z-index:var(--monster-z-index-modal)}div[data-monster-role=popper]>[part=content]{max-height:var(--monster-popper-content-max-height,calc(100vh - 4.2rem));max-width:100%;overflow:auto}div[data-monster-role=popper]>[part=content][data-monster-overflow-mode=horizontal]{clip-path:none;overflow:visible}div[data-monster-role=popper]>[part=content][data-monster-overflow-mode=visible]{clip-path:none;max-height:none;max-width:none;overflow:visible}div[data-monster-role=popper] div[data-monster-role=arrow]{background:var(--monster-bg-color-primary-1);height:calc(max(var(--monster-popper-witharrrow-distance), -1 * var(--monster-popper-witharrrow-distance))*2);pointer-events:none;position:absolute;width:calc(max(var(--monster-popper-witharrrow-distance), -1 * var(--monster-popper-witharrrow-distance))*2);z-index:-1}[data-monster-role=container]{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:4 0 90%;min-height:1.4em;overflow:auto;scrollbar-color:var(--monster-color-primary-1) var(--monster-bg-color-primary-1);scrollbar-width:thin;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;width:100%}.d-none{display:none!important}div[data-monster-role=no-options] span,div[data-monster-role=remote-info] span{text-wrap:balance}div[data-monster-role=control]{display:flex;height:100%;position:relative}[data-monster-role=container].open{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708z'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708z'/%3E%3C/svg%3E\")}[data-monster-role=container].clear,[data-monster-role=container].open{background-color:var(--monster-bg-color-primary-2);-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:.8em;mask-size:.8em}[data-monster-role=container].clear{-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\")}[data-monster-role=control]{accent-color:var(--monster-color-secondary-2);background-color:var(--monster-bg-color-primary-1);border-color:var(--monster-theme-control-border-color);-o-border-image:initial;border-image:initial;border-radius:var(--monster-theme-control-border-radius);border-style:var(--monster-theme-control-border-style);border-width:var(--monster-theme-control-border-width);box-sizing:border-box;color:var(--monster-color-primary-1);display:flex;font-family:inherit;font-size:100%;margin:0;outline:none;padding:.4rem .6rem;width:-webkit-fill-available;width:-moz-available;width:fill-available}@media (prefers-color-scheme:light){[data-monster-role=control]{background-color:var(--monster-bg-color-primary-1);border-color:var(--monster-bg-color-primary-3);color:var(--monster-color-primary-1)}[data-monster-role=control]:focus{outline:1px dashed var(--monster-color-selection-4);outline-offset:2px}}[data-monster-role=control]:hover{box-shadow:var(--monster-box-shadow-2);transition:background .8s,color .25s .0833333333s}:host([disabled]) [data-monster-role=control]{cursor:not-allowed}:host([disabled]) [data-monster-role=status-or-remove-badges],[data-monster-role=control][disabled] [data-monster-role=status-or-remove-badges]{display:none}div[data-monster-role=selection]{align-items:center;display:flex;flex-direction:row;flex-wrap:wrap;gap:5px;justify-content:flex-start;margin:5px}[data-monster-role=option-control]{margin-right:8px}[data-monster-role=badge]{display:inline-flex}[data-monster-role=badge-label]{align-content:center;align-items:center;display:flex;flex-direction:row;gap:7px;justify-content:space-between}[data-monster-role=filter],[data-monster-role=popper-filter]{display:flex;flex-grow:200;order:99999999;visibility:hidden}[data-monster-role=filter].active{background-color:var(--monster-bg-color-primary-2);border:0;border-color:var(--monster-bg-color-primary-3);border-bottom:1px solid var(--monster-bg-color-primary-3);color:var(--monster-color-primary-2);min-width:40%;outline:none;visibility:visible}.active[data-monster-role=filter][name=popper-filter]{height:1.5em;margin:2.5em;padding:2px;width:calc(100% - var(--monster-border-width)*2)}.option-filter-control{align-items:center;background-color:var(--monster-bg-color-primary-2);display:flex;height:2.5em;margin:-1.1em -1.1em .3em}[data-monster-role=remove-badge]{background-color:var(--monster-bg-color-primary-2);height:16px;margin-left:5px;-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");order:2}[data-monster-role=remove-badge],[data-monster-role=status-or-remove-badges]{-webkit-mask-position:center center;mask-position:center center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:.8em;mask-size:.8em;min-height:16px;width:16px}[data-monster-role=status-or-remove-badges]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--monster-bg-color-primary-4);-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\")}.open[data-monster-role=status-or-remove-badges]{background-color:var(--monster-bg-color-primary-4);-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708z'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708z'/%3E%3C/svg%3E\")}.empty[data-monster-role=status-or-remove-badges]{background-color:var(--monster-bg-color-primary-4);-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-dash-circle' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M4 8a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7A.5.5 0 0 1 4 8'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-dash-circle' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M4 8a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7A.5.5 0 0 1 4 8'/%3E%3C/svg%3E\")}.clear[data-monster-role=status-or-remove-badges]{background-color:var(--monster-bg-color-primary-4);-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708'/%3E%3C/svg%3E\")}.error[data-monster-role=status-or-remove-badges]{background-color:var(--monster-bg-color-error-1);-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z'/%3E%3C/svg%3E\")}@media (prefers-color-scheme:dark){.error[data-monster-role=status-or-remove-badges]{background-color:var(--monster-color-error-4);-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16'/%3E%3Cpath d='M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z'/%3E%3C/svg%3E\")}}.loading[data-monster-role=status-or-remove-badges]{animation-duration:1s;animation-iteration-count:infinite;animation-name:activity;animation-timing-function:cubic-bezier(0,0,.2,1);background-color:var(--monster-bg-color-primary-4);-webkit-mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='activity' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8'/%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='activity' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8'/%3E%3C/svg%3E\")}@keyframes activity{0%{transform:scale(1)}50%{transform:scale(.1)}to{transform:scale(1)}}[data-monster-role=options]{flex-direction:column;flex-grow:1;overflow-x:hidden;scrollbar-color:var(--monster-color-primary-1) var(--monster-bg-color-primary-1);scrollbar-width:thin;transition:height .3s ease}[data-monster-role=option],[data-monster-role=options]{box-sizing:border-box;display:flex;max-width:100%;min-width:0;width:100%}[data-monster-role=option]{align-items:center;padding:6px 5px}[data-monster-role=option] label{justify-content:flex-start}[data-monster-role=option] label,[data-monster-role=option] label>div{align-items:center;display:flex;flex-direction:row;max-width:100%;min-width:0;width:100%}[data-monster-role=option] label>div{justify-content:space-between;outline:none}[part=option-label]{max-width:100%;min-width:0;overflow-wrap:anywhere;word-break:break-word}.selected{background-color:var(--monster-bg-color-primary-2);color:var(--monster-color-primary-2)}[data-monster-role=option][data-monster-filtered=true],[data-monster-role=option][data-monster-visibility=hidden]{display:none}[data-monster-role=option][data-monster-focused=true]{outline:1px dashed var(--monster-color-selection-2);outline-offset:-2px}@media (prefers-color-scheme:dark){[data-monster-role=option][data-monster-focused=true]{outline:1px dashed var(--monster-color-selection-4)}}[data-monster-role=filter]::-moz-placeholder{background-color:var(--monster-bg-color-primary-2);color:var(--monster-color-primary-2)}[data-monster-role=filter]::placeholder{background-color:var(--monster-bg-color-primary-2);color:var(--monster-color-primary-2)}[data-monster-role=option]>input:focus,[data-monster-role=option]>label:focus{outline:none}[data-monster-role=selection-messages]:empty:before,[data-monster-role=summary-messages]:empty:before{content:\"\u00A0\"}.in-button-bar{border-color:var(--monster-bg-color-primary-4)!important;border-style:var(--monster-border-style)!important;border-width:var(--monster-border-width)!important}[data-monster-role=pagination]::part(nav){justify-content:flex-start}[data-monster-role=pagination]::part(list){margin-bottom:0;margin-top:0}
|
|
28
|
+
}`, 0);
|
|
32
29
|
} catch (e) {
|
|
33
|
-
|
|
34
|
-
document.getRootNode().querySelector("html"),
|
|
35
|
-
ATTRIBUTE_ERRORMESSAGE,
|
|
36
|
-
e + "",
|
|
37
|
-
);
|
|
30
|
+
addAttributeToken(document.getRootNode().querySelector('html'), ATTRIBUTE_ERRORMESSAGE, e + "");
|
|
38
31
|
}
|
|
@@ -39,6 +39,7 @@ export {
|
|
|
39
39
|
const autoUpdateCleanupMap = new WeakMap();
|
|
40
40
|
const settlingFrameMap = new WeakMap();
|
|
41
41
|
const floatingResizeObserverMap = new WeakMap();
|
|
42
|
+
const floatingSyncCycleMap = new WeakMap();
|
|
42
43
|
|
|
43
44
|
/**
|
|
44
45
|
* @private
|
|
@@ -87,7 +88,14 @@ function syncFloatingPopover(
|
|
|
87
88
|
allowSettlingPass = true,
|
|
88
89
|
) {
|
|
89
90
|
const arrowElement = popperElement.querySelector("[data-monster-role=arrow]");
|
|
90
|
-
const
|
|
91
|
+
const syncCycleId = claimFloatingSyncCycle(popperElement);
|
|
92
|
+
const floatingMiddleware = buildFloatingMiddleware(
|
|
93
|
+
config.middleware,
|
|
94
|
+
config.placement,
|
|
95
|
+
config.detectOverflowOptions,
|
|
96
|
+
popperElement,
|
|
97
|
+
syncCycleId,
|
|
98
|
+
);
|
|
91
99
|
|
|
92
100
|
resetAdaptiveFloatingElementSize(popperElement);
|
|
93
101
|
|
|
@@ -98,6 +106,16 @@ function syncFloatingPopover(
|
|
|
98
106
|
floatingMiddleware.push(arrow({ element: arrowElement }));
|
|
99
107
|
}
|
|
100
108
|
|
|
109
|
+
if (!config.middlewareTokens.includes("size")) {
|
|
110
|
+
floatingMiddleware.push(
|
|
111
|
+
createAdaptiveSizeMiddleware(
|
|
112
|
+
config.detectOverflowOptions,
|
|
113
|
+
popperElement,
|
|
114
|
+
syncCycleId,
|
|
115
|
+
),
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
|
|
101
119
|
computePosition(
|
|
102
120
|
controlElement,
|
|
103
121
|
popperElement,
|
|
@@ -105,6 +123,10 @@ function syncFloatingPopover(
|
|
|
105
123
|
middleware: floatingMiddleware,
|
|
106
124
|
}),
|
|
107
125
|
).then(({ x, y, placement, middlewareData }) => {
|
|
126
|
+
if (!isActiveFloatingSyncCycle(popperElement, syncCycleId)) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
|
|
108
130
|
Object.assign(popperElement.style, {
|
|
109
131
|
top: "0",
|
|
110
132
|
left: "0",
|
|
@@ -156,18 +178,6 @@ function normalizePopperConfig(options, controlElement, popperElement) {
|
|
|
156
178
|
);
|
|
157
179
|
config.middleware = normalizeMiddleware(config);
|
|
158
180
|
config.middlewareTokens = config.middleware.filter((line) => isString(line));
|
|
159
|
-
config.floatingMiddleware = buildFloatingMiddleware(
|
|
160
|
-
config.middleware,
|
|
161
|
-
config.placement,
|
|
162
|
-
config.detectOverflowOptions,
|
|
163
|
-
popperElement,
|
|
164
|
-
);
|
|
165
|
-
|
|
166
|
-
if (!config.middlewareTokens.includes("size")) {
|
|
167
|
-
config.floatingMiddleware.push(
|
|
168
|
-
createAdaptiveSizeMiddleware(config.detectOverflowOptions, popperElement),
|
|
169
|
-
);
|
|
170
|
-
}
|
|
171
181
|
|
|
172
182
|
return config;
|
|
173
183
|
}
|
|
@@ -190,6 +200,7 @@ function buildFloatingMiddleware(
|
|
|
190
200
|
placement,
|
|
191
201
|
detectOverflowOptions,
|
|
192
202
|
popperElement,
|
|
203
|
+
syncCycleId = null,
|
|
193
204
|
) {
|
|
194
205
|
const result = [...middleware];
|
|
195
206
|
|
|
@@ -208,13 +219,15 @@ function buildFloatingMiddleware(
|
|
|
208
219
|
const kv = line.split(":");
|
|
209
220
|
const fn = kv.shift();
|
|
210
221
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
222
|
+
switch (fn) {
|
|
223
|
+
case "flip":
|
|
224
|
+
result[key] = flip(detectOverflowOptions);
|
|
225
|
+
break;
|
|
226
|
+
case "shift":
|
|
227
|
+
result[key] = shift(
|
|
228
|
+
normalizeShiftOptions(kv, detectOverflowOptions),
|
|
229
|
+
);
|
|
230
|
+
break;
|
|
218
231
|
case "autoPlacement":
|
|
219
232
|
let defaultAllowedPlacements = ["top", "bottom", "left", "right"];
|
|
220
233
|
|
|
@@ -248,6 +261,7 @@ function buildFloatingMiddleware(
|
|
|
248
261
|
result[key] = createAdaptiveSizeMiddleware(
|
|
249
262
|
detectOverflowOptions,
|
|
250
263
|
popperElement,
|
|
264
|
+
syncCycleId,
|
|
251
265
|
);
|
|
252
266
|
break;
|
|
253
267
|
case "offset":
|
|
@@ -264,7 +278,35 @@ function buildFloatingMiddleware(
|
|
|
264
278
|
return result.filter(Boolean);
|
|
265
279
|
}
|
|
266
280
|
|
|
267
|
-
function
|
|
281
|
+
function normalizeShiftOptions(tokens, detectOverflowOptions) {
|
|
282
|
+
const options = Object.assign({}, detectOverflowOptions);
|
|
283
|
+
const normalizedTokens = tokens
|
|
284
|
+
.join(":")
|
|
285
|
+
.split(",")
|
|
286
|
+
.map((token) => token.trim())
|
|
287
|
+
.filter((token) => token.length > 0);
|
|
288
|
+
|
|
289
|
+
for (const token of normalizedTokens) {
|
|
290
|
+
switch (token) {
|
|
291
|
+
case "crossAxis":
|
|
292
|
+
options.crossAxis = true;
|
|
293
|
+
break;
|
|
294
|
+
case "mainAxis=false":
|
|
295
|
+
options.mainAxis = false;
|
|
296
|
+
break;
|
|
297
|
+
default:
|
|
298
|
+
throw new Error(`Unknown shift option: ${token}`);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
return options;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
function createAdaptiveSizeMiddleware(
|
|
306
|
+
detectOverflowOptions,
|
|
307
|
+
popperElement,
|
|
308
|
+
syncCycleId = null,
|
|
309
|
+
) {
|
|
268
310
|
return size(
|
|
269
311
|
Object.assign({}, detectOverflowOptions, {
|
|
270
312
|
apply({ availableWidth, availableHeight, elements }) {
|
|
@@ -272,6 +314,12 @@ function createAdaptiveSizeMiddleware(detectOverflowOptions, popperElement) {
|
|
|
272
314
|
if (!(floatingElement instanceof HTMLElement)) {
|
|
273
315
|
return;
|
|
274
316
|
}
|
|
317
|
+
if (
|
|
318
|
+
syncCycleId !== null &&
|
|
319
|
+
!isActiveFloatingSyncCycle(floatingElement, syncCycleId)
|
|
320
|
+
) {
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
275
323
|
|
|
276
324
|
applyAdaptiveFloatingElementSize(floatingElement, {
|
|
277
325
|
availableWidth,
|
|
@@ -484,7 +532,10 @@ function resolveNestedScrollContainerHeight(
|
|
|
484
532
|
nestedScrollableElement,
|
|
485
533
|
contentMaxHeight,
|
|
486
534
|
) {
|
|
487
|
-
const declaredHeight = readDeclaredDimension(
|
|
535
|
+
const declaredHeight = readDeclaredDimension(
|
|
536
|
+
nestedScrollableElement,
|
|
537
|
+
"height",
|
|
538
|
+
);
|
|
488
539
|
const declaredMaxHeight = readDeclaredDimension(
|
|
489
540
|
nestedScrollableElement,
|
|
490
541
|
"maxHeight",
|
|
@@ -850,6 +901,16 @@ function scheduleSettlingPass(controlElement, popperElement, config) {
|
|
|
850
901
|
settlingFrameMap.set(popperElement, frameId);
|
|
851
902
|
}
|
|
852
903
|
|
|
904
|
+
function claimFloatingSyncCycle(popperElement) {
|
|
905
|
+
const nextCycleId = (floatingSyncCycleMap.get(popperElement) || 0) + 1;
|
|
906
|
+
floatingSyncCycleMap.set(popperElement, nextCycleId);
|
|
907
|
+
return nextCycleId;
|
|
908
|
+
}
|
|
909
|
+
|
|
910
|
+
function isActiveFloatingSyncCycle(popperElement, syncCycleId) {
|
|
911
|
+
return floatingSyncCycleMap.get(popperElement) === syncCycleId;
|
|
912
|
+
}
|
|
913
|
+
|
|
853
914
|
function cancelSettlingPass(popperElement) {
|
|
854
915
|
const frameId = settlingFrameMap.get(popperElement);
|
|
855
916
|
if (typeof frameId === "number") {
|
|
@@ -33,7 +33,13 @@ let html2 = `
|
|
|
33
33
|
</div>
|
|
34
34
|
`;
|
|
35
35
|
|
|
36
|
-
let Select,
|
|
36
|
+
let Select,
|
|
37
|
+
getDefaultSelectPopperPositionProfile,
|
|
38
|
+
resolveSelectListDimension,
|
|
39
|
+
resolveSelectPopperWidthConstraints,
|
|
40
|
+
resolveSelectVisibleRect,
|
|
41
|
+
resolveSelectViewportMetrics,
|
|
42
|
+
fetchReference;
|
|
37
43
|
|
|
38
44
|
describe('Select', function () {
|
|
39
45
|
|
|
@@ -50,6 +56,11 @@ describe('Select', function () {
|
|
|
50
56
|
|
|
51
57
|
import("../../../../source/components/form/select.mjs").then((m) => {
|
|
52
58
|
Select = m['Select'];
|
|
59
|
+
getDefaultSelectPopperPositionProfile = m['getDefaultSelectPopperPositionProfile'];
|
|
60
|
+
resolveSelectListDimension = m['resolveSelectListDimension'];
|
|
61
|
+
resolveSelectPopperWidthConstraints = m['resolveSelectPopperWidthConstraints'];
|
|
62
|
+
resolveSelectVisibleRect = m['resolveSelectVisibleRect'];
|
|
63
|
+
resolveSelectViewportMetrics = m['resolveSelectViewportMetrics'];
|
|
53
64
|
done()
|
|
54
65
|
}).catch(e => done(e))
|
|
55
66
|
|
|
@@ -185,6 +196,189 @@ describe('Select', function () {
|
|
|
185
196
|
|
|
186
197
|
});
|
|
187
198
|
|
|
199
|
+
describe('Popper sizing', function () {
|
|
200
|
+
afterEach(() => {
|
|
201
|
+
let mocks = document.getElementById('mocks');
|
|
202
|
+
mocks.innerHTML = "";
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
it('should allow the popper to become wider than a narrow control', function (done) {
|
|
206
|
+
const mocks = document.getElementById('mocks');
|
|
207
|
+
const select = document.createElement('monster-select');
|
|
208
|
+
|
|
209
|
+
select.setOption('options', [
|
|
210
|
+
{label: 'Alpha', value: 'alpha'},
|
|
211
|
+
{label: 'Beta', value: 'beta'}
|
|
212
|
+
]);
|
|
213
|
+
|
|
214
|
+
mocks.appendChild(select);
|
|
215
|
+
|
|
216
|
+
const shadowRoot = select.shadowRoot;
|
|
217
|
+
const control = shadowRoot.querySelector('[data-monster-role=control]');
|
|
218
|
+
const popper = shadowRoot.querySelector('[data-monster-role=popper]');
|
|
219
|
+
|
|
220
|
+
control.getBoundingClientRect = () => ({
|
|
221
|
+
width: 120,
|
|
222
|
+
height: 36,
|
|
223
|
+
top: 100,
|
|
224
|
+
left: 40,
|
|
225
|
+
right: 160,
|
|
226
|
+
bottom: 136,
|
|
227
|
+
x: 40,
|
|
228
|
+
y: 100
|
|
229
|
+
});
|
|
230
|
+
|
|
231
|
+
setTimeout(() => {
|
|
232
|
+
try {
|
|
233
|
+
shadowRoot.querySelector('[data-monster-role=container]').click();
|
|
234
|
+
setTimeout(() => {
|
|
235
|
+
try {
|
|
236
|
+
expect(popper.style.minWidth).to.equal('');
|
|
237
|
+
expect(popper.dataset.monsterPreferredWidth).to.equal('240');
|
|
238
|
+
done();
|
|
239
|
+
} catch (e) {
|
|
240
|
+
done(e);
|
|
241
|
+
}
|
|
242
|
+
}, 80);
|
|
243
|
+
} catch (e) {
|
|
244
|
+
done(e);
|
|
245
|
+
}
|
|
246
|
+
}, 20);
|
|
247
|
+
});
|
|
248
|
+
|
|
249
|
+
it('should keep the option list height tight for short lists', function () {
|
|
250
|
+
const result = resolveSelectListDimension({
|
|
251
|
+
visibleOptionHeights: [28, 28],
|
|
252
|
+
maxVisibleOptions: 20,
|
|
253
|
+
availableHeight: 500,
|
|
254
|
+
padding: 0,
|
|
255
|
+
margin: 0
|
|
256
|
+
});
|
|
257
|
+
|
|
258
|
+
expect(result.desiredHeight).to.equal(56);
|
|
259
|
+
expect(result.maxHeight).to.equal(500);
|
|
260
|
+
expect(result.overflowY).to.equal('hidden');
|
|
261
|
+
});
|
|
262
|
+
|
|
263
|
+
it('should refresh the content max height when the available popper height grows again', function (done) {
|
|
264
|
+
const mocks = document.getElementById('mocks');
|
|
265
|
+
const select = document.createElement('monster-select');
|
|
266
|
+
|
|
267
|
+
select.setOption('options', Array.from({length: 24}, (_, index) => ({
|
|
268
|
+
label: `Option ${index + 1}`,
|
|
269
|
+
value: `${index + 1}`
|
|
270
|
+
})));
|
|
271
|
+
|
|
272
|
+
mocks.appendChild(select);
|
|
273
|
+
|
|
274
|
+
const shadowRoot = select.shadowRoot;
|
|
275
|
+
const control = shadowRoot.querySelector('[data-monster-role=control]');
|
|
276
|
+
const popper = shadowRoot.querySelector('[data-monster-role=popper]');
|
|
277
|
+
const content = shadowRoot.querySelector('[part=content]');
|
|
278
|
+
const options = shadowRoot.querySelector('[data-monster-role=options]');
|
|
279
|
+
|
|
280
|
+
control.getBoundingClientRect = () => ({
|
|
281
|
+
width: 200,
|
|
282
|
+
height: 36,
|
|
283
|
+
top: 100,
|
|
284
|
+
left: 40,
|
|
285
|
+
right: 240,
|
|
286
|
+
bottom: 136,
|
|
287
|
+
x: 40,
|
|
288
|
+
y: 100
|
|
289
|
+
});
|
|
290
|
+
|
|
291
|
+
setTimeout(() => {
|
|
292
|
+
try {
|
|
293
|
+
shadowRoot.querySelector('[data-monster-role=container]').click();
|
|
294
|
+
setTimeout(() => {
|
|
295
|
+
try {
|
|
296
|
+
content.style.maxHeight = '20px';
|
|
297
|
+
options.style.height = '20px';
|
|
298
|
+
options.style.maxHeight = '20px';
|
|
299
|
+
|
|
300
|
+
select.calcAndSetOptionsDimension();
|
|
301
|
+
|
|
302
|
+
expect(parseFloat(content.style.maxHeight)).to.be.greaterThan(20);
|
|
303
|
+
expect(content.style.maxHeight).to.equal(options.style.maxHeight);
|
|
304
|
+
expect(parseFloat(popper.style.maxHeight)).to.be.at.least(parseFloat(content.style.maxHeight));
|
|
305
|
+
done();
|
|
306
|
+
} catch (e) {
|
|
307
|
+
done(e);
|
|
308
|
+
}
|
|
309
|
+
}, 80);
|
|
310
|
+
} catch (e) {
|
|
311
|
+
done(e);
|
|
312
|
+
}
|
|
313
|
+
}, 20);
|
|
314
|
+
});
|
|
315
|
+
|
|
316
|
+
it('should clamp preferred width to the visible viewport width', function () {
|
|
317
|
+
const result = resolveSelectPopperWidthConstraints({
|
|
318
|
+
controlWidth: 120,
|
|
319
|
+
availableWidth: 176
|
|
320
|
+
});
|
|
321
|
+
|
|
322
|
+
expect(result.preferredWidth).to.equal(240);
|
|
323
|
+
expect(result.maxWidth).to.equal(176);
|
|
324
|
+
});
|
|
325
|
+
|
|
326
|
+
it('should keep start placement while enabling cross-axis shifting', function () {
|
|
327
|
+
const result = getDefaultSelectPopperPositionProfile();
|
|
328
|
+
|
|
329
|
+
expect(result.placement).to.equal('bottom-start');
|
|
330
|
+
expect(result.middleware).to.deep.equal([
|
|
331
|
+
'flip',
|
|
332
|
+
'offset:4',
|
|
333
|
+
'shift:crossAxis',
|
|
334
|
+
'size'
|
|
335
|
+
]);
|
|
336
|
+
});
|
|
337
|
+
|
|
338
|
+
it('should prefer the larger live viewport metrics after a resize', function () {
|
|
339
|
+
const result = resolveSelectViewportMetrics({
|
|
340
|
+
layoutWidth: 1400,
|
|
341
|
+
layoutHeight: 900,
|
|
342
|
+
visualWidth: 1024,
|
|
343
|
+
visualHeight: 700,
|
|
344
|
+
offsetLeft: 20,
|
|
345
|
+
offsetTop: 30,
|
|
346
|
+
padding: 12
|
|
347
|
+
});
|
|
348
|
+
|
|
349
|
+
expect(result.width).to.equal(1400);
|
|
350
|
+
expect(result.height).to.equal(900);
|
|
351
|
+
expect(result.left).to.equal(20);
|
|
352
|
+
expect(result.top).to.equal(30);
|
|
353
|
+
expect(result.padding).to.equal(12);
|
|
354
|
+
});
|
|
355
|
+
|
|
356
|
+
it('should intersect viewport and split container for the visible rect', function () {
|
|
357
|
+
const result = resolveSelectVisibleRect({
|
|
358
|
+
viewportMetrics: {
|
|
359
|
+
width: 1400,
|
|
360
|
+
height: 900,
|
|
361
|
+
left: 0,
|
|
362
|
+
top: 0,
|
|
363
|
+
padding: 12
|
|
364
|
+
},
|
|
365
|
+
boundaryRect: {
|
|
366
|
+
left: 100,
|
|
367
|
+
top: 80,
|
|
368
|
+
right: 620,
|
|
369
|
+
bottom: 700
|
|
370
|
+
}
|
|
371
|
+
});
|
|
372
|
+
|
|
373
|
+
expect(result.left).to.equal(100);
|
|
374
|
+
expect(result.top).to.equal(80);
|
|
375
|
+
expect(result.right).to.equal(620);
|
|
376
|
+
expect(result.bottom).to.equal(700);
|
|
377
|
+
expect(result.width).to.equal(520);
|
|
378
|
+
expect(result.height).to.equal(620);
|
|
379
|
+
});
|
|
380
|
+
});
|
|
381
|
+
|
|
188
382
|
describe('Remote filter pagination', function () {
|
|
189
383
|
let requestCount = 0;
|
|
190
384
|
|