@watermarkinsights/ripple 5.6.0-8 → 5.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{chartFunctions-995023b1.js → chartFunctions-6fd43417.js} +1 -1
- package/dist/cjs/{functions-e24249e6.js → functions-04149f6d.js} +0 -6
- package/dist/cjs/{global-9662b435.js → global-4a315ae6.js} +1 -1
- package/dist/cjs/index-e86c28b6.js +0 -12
- package/dist/cjs/{intl-5aeba788.js → intl-b1e99809.js} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/priv-calendar.cjs.entry.js +1 -1
- package/dist/cjs/priv-chart-popover.cjs.entry.js +1 -1
- package/dist/cjs/ripple.cjs.js +2 -2
- package/dist/cjs/wm-action-menu_2.cjs.entry.js +1 -1
- package/dist/cjs/wm-button.cjs.entry.js +1 -1
- package/dist/cjs/wm-chart.cjs.entry.js +3 -3
- package/dist/cjs/wm-date-range.cjs.entry.js +1 -1
- package/dist/cjs/wm-datepicker.cjs.entry.js +1 -1
- package/dist/cjs/wm-file.cjs.entry.js +1 -1
- package/dist/cjs/wm-input.cjs.entry.js +2 -2
- package/dist/cjs/wm-line-chart.cjs.entry.js +10 -25
- package/dist/cjs/wm-modal-header.cjs.entry.js +2 -2
- package/dist/cjs/wm-modal.cjs.entry.js +1 -1
- package/dist/cjs/wm-navigation_3.cjs.entry.js +2 -2
- package/dist/cjs/wm-navigator.cjs.entry.js +1 -1
- package/dist/cjs/wm-option_2.cjs.entry.js +338 -33
- package/dist/cjs/wm-pagination.cjs.entry.js +1 -1
- package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +2 -2
- package/dist/cjs/wm-search.cjs.entry.js +2 -2
- package/dist/cjs/wm-snackbar.cjs.entry.js +2 -2
- package/dist/cjs/wm-tab-item_3.cjs.entry.js +1 -1
- package/dist/cjs/wm-tag-input.cjs.entry.js +2 -2
- package/dist/cjs/wm-tag-option.cjs.entry.js +1 -1
- package/dist/cjs/wm-textarea.cjs.entry.js +2 -2
- package/dist/cjs/wm-timepicker.cjs.entry.js +1 -1
- package/dist/cjs/wm-toggletip.cjs.entry.js +1 -1
- package/dist/cjs/wm-uploader.cjs.entry.js +2 -2
- package/dist/collection/collection-manifest.json +2 -5
- package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +7 -22
- package/dist/collection/components/wm-option/wm-option.js +9 -35
- package/dist/collection/components/wm-option/wm-option.spec.js +1 -1
- package/dist/collection/components/{selects/wm-select → wm-select}/wm-select.css +74 -0
- package/dist/collection/components/{selects/wm-select → wm-select}/wm-select.js +383 -16
- package/dist/collection/components/{selects/wm-select → wm-select}/wm-select.spec.js +62 -62
- package/dist/collection/global/functions.js +0 -5
- package/dist/esm/{chartFunctions-dfcb1edf.js → chartFunctions-f5eb7f59.js} +1 -1
- package/dist/esm/{functions-b791a892.js → functions-cf37f81f.js} +1 -6
- package/dist/esm/{global-f1582c2f.js → global-016b76a8.js} +1 -1
- package/dist/esm/index-558b5a82.js +0 -12
- package/dist/esm/{intl-f2f7ce8b.js → intl-c72b75dc.js} +1 -1
- package/dist/esm/loader.js +2 -2
- package/dist/esm/priv-calendar.entry.js +1 -1
- package/dist/esm/priv-chart-popover.entry.js +1 -1
- package/dist/esm/ripple.js +2 -2
- package/dist/esm/wm-action-menu_2.entry.js +1 -1
- package/dist/esm/wm-button.entry.js +1 -1
- package/dist/esm/wm-chart.entry.js +3 -3
- package/dist/esm/wm-date-range.entry.js +1 -1
- package/dist/esm/wm-datepicker.entry.js +1 -1
- package/dist/esm/wm-file.entry.js +1 -1
- package/dist/esm/wm-input.entry.js +2 -2
- package/dist/esm/wm-line-chart.entry.js +10 -25
- package/dist/esm/wm-modal-header.entry.js +2 -2
- package/dist/esm/wm-modal.entry.js +1 -1
- package/dist/esm/wm-navigation_3.entry.js +2 -2
- package/dist/esm/wm-navigator.entry.js +1 -1
- package/dist/esm/wm-option_2.entry.js +338 -33
- package/dist/esm/wm-pagination.entry.js +1 -1
- package/dist/esm/wm-progress-indicator_3.entry.js +2 -2
- package/dist/esm/wm-search.entry.js +2 -2
- package/dist/esm/wm-snackbar.entry.js +2 -2
- package/dist/esm/wm-tab-item_3.entry.js +1 -1
- package/dist/esm/wm-tag-input.entry.js +2 -2
- package/dist/esm/wm-tag-option.entry.js +1 -1
- package/dist/esm/wm-textarea.entry.js +2 -2
- package/dist/esm/wm-timepicker.entry.js +1 -1
- package/dist/esm/wm-toggletip.entry.js +1 -1
- package/dist/esm/wm-uploader.entry.js +2 -2
- package/dist/esm-es5/{chartFunctions-dfcb1edf.js → chartFunctions-f5eb7f59.js} +1 -1
- package/dist/esm-es5/{functions-b791a892.js → functions-cf37f81f.js} +1 -1
- package/dist/esm-es5/global-016b76a8.js +1 -0
- package/dist/esm-es5/index-558b5a82.js +1 -1
- package/dist/esm-es5/{intl-f2f7ce8b.js → intl-c72b75dc.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/priv-calendar.entry.js +1 -1
- package/dist/esm-es5/priv-chart-popover.entry.js +1 -1
- package/dist/esm-es5/ripple.js +1 -1
- package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
- package/dist/esm-es5/wm-button.entry.js +1 -1
- package/dist/esm-es5/wm-chart.entry.js +1 -1
- package/dist/esm-es5/wm-date-range.entry.js +1 -1
- package/dist/esm-es5/wm-datepicker.entry.js +1 -1
- package/dist/esm-es5/wm-file.entry.js +1 -1
- package/dist/esm-es5/wm-input.entry.js +1 -1
- package/dist/esm-es5/wm-line-chart.entry.js +1 -1
- package/dist/esm-es5/wm-modal-header.entry.js +1 -1
- package/dist/esm-es5/wm-modal.entry.js +1 -1
- package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
- package/dist/esm-es5/wm-navigator.entry.js +1 -1
- package/dist/esm-es5/wm-option_2.entry.js +1 -1
- package/dist/esm-es5/wm-pagination.entry.js +1 -1
- package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
- package/dist/esm-es5/wm-search.entry.js +1 -1
- package/dist/esm-es5/wm-snackbar.entry.js +1 -1
- package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
- package/dist/esm-es5/wm-tag-input.entry.js +1 -1
- package/dist/esm-es5/wm-tag-option.entry.js +1 -1
- package/dist/esm-es5/wm-textarea.entry.js +1 -1
- package/dist/esm-es5/wm-timepicker.entry.js +1 -1
- package/dist/esm-es5/wm-toggletip.entry.js +1 -1
- package/dist/esm-es5/wm-uploader.entry.js +1 -1
- package/dist/ripple/{p-c1e3c2fb.entry.js → p-04f9a60a.entry.js} +1 -1
- package/dist/ripple/{p-41550baa.entry.js → p-0b570b66.entry.js} +1 -1
- package/dist/ripple/{p-5300b15d.entry.js → p-0d05b4a9.entry.js} +1 -1
- package/dist/ripple/p-11aaef56.system.entry.js +1 -0
- package/dist/ripple/{p-b01f9998.system.entry.js → p-120dbdc8.system.entry.js} +1 -1
- package/dist/ripple/{p-f24572f5.entry.js → p-1aef4b40.entry.js} +1 -1
- package/dist/ripple/{p-13f51c06.entry.js → p-20a800a7.entry.js} +1 -1
- package/dist/ripple/{p-236af552.entry.js → p-24103be5.entry.js} +1 -1
- package/dist/ripple/{p-1389302e.system.entry.js → p-2ccf8450.system.entry.js} +1 -1
- package/dist/ripple/{p-6cc07645.system.entry.js → p-2d0bcc88.system.entry.js} +1 -1
- package/dist/ripple/{p-0b1c6965.system.entry.js → p-2d0e4020.system.entry.js} +1 -1
- package/dist/ripple/{p-215793a4.entry.js → p-31094930.entry.js} +1 -1
- package/dist/ripple/{p-1e625a5e.entry.js → p-3ea0e27c.entry.js} +1 -1
- package/dist/ripple/{p-db9657eb.system.entry.js → p-446e0b2c.system.entry.js} +1 -1
- package/dist/ripple/{p-72165bd2.entry.js → p-451433a6.entry.js} +1 -1
- package/dist/ripple/p-481a9e2f.system.js +1 -0
- package/dist/ripple/{p-45f9ad09.entry.js → p-508362c5.entry.js} +1 -1
- package/dist/ripple/{p-3deaf4d9.system.entry.js → p-53519eed.system.entry.js} +1 -1
- package/dist/ripple/p-55668879.system.js +1 -0
- package/dist/ripple/p-5967bd2a.system.entry.js +1 -0
- package/dist/ripple/{p-5a9e3108.system.entry.js → p-5db92638.system.entry.js} +1 -1
- package/dist/ripple/{p-3e415c49.system.entry.js → p-5f793375.system.entry.js} +1 -1
- package/dist/ripple/p-6636a40b.system.entry.js +1 -0
- package/dist/ripple/{p-f90e4094.entry.js → p-6f4c4231.entry.js} +1 -1
- package/dist/ripple/{p-828adbf1.system.js → p-74032162.system.js} +1 -1
- package/dist/ripple/{p-5284791c.entry.js → p-762429a8.entry.js} +1 -1
- package/dist/ripple/{p-16f65bf4.js → p-76825602.js} +1 -1
- package/dist/ripple/{p-c47fab48.entry.js → p-76d53189.entry.js} +1 -1
- package/dist/ripple/{p-fa4f1030.system.entry.js → p-7f483c55.system.entry.js} +1 -1
- package/dist/ripple/{p-a3c01e10.system.entry.js → p-7fdcce90.system.entry.js} +1 -1
- package/dist/ripple/{p-cad0c5f9.system.entry.js → p-8008f0f2.system.entry.js} +1 -1
- package/dist/ripple/{p-3d50db36.entry.js → p-86d81e42.entry.js} +1 -1
- package/dist/ripple/{p-f2101a0d.entry.js → p-8a11ee6f.entry.js} +1 -1
- package/dist/ripple/{p-c2e00d4a.system.entry.js → p-8b272d80.system.entry.js} +1 -1
- package/dist/ripple/{p-885c3527.entry.js → p-9603168d.entry.js} +1 -1
- package/dist/ripple/{p-f40e1468.system.entry.js → p-97f276aa.system.entry.js} +1 -1
- package/dist/ripple/{p-749597da.system.entry.js → p-984287f7.system.entry.js} +1 -1
- package/dist/ripple/{p-ff1ed90f.entry.js → p-9b75d56c.entry.js} +1 -1
- package/dist/ripple/{p-a0ecb6d7.system.entry.js → p-9df3574d.system.entry.js} +1 -1
- package/dist/ripple/p-a40b0af9.system.js +1 -0
- package/dist/ripple/p-a895f1ef.entry.js +1 -0
- package/dist/ripple/{p-e081fdc2.system.entry.js → p-ae4460f2.system.entry.js} +1 -1
- package/dist/ripple/{p-b9dbf1f4.entry.js → p-bd142645.entry.js} +1 -1
- package/dist/ripple/{p-aea13873.entry.js → p-c61366fd.entry.js} +1 -1
- package/dist/ripple/{p-ca971eac.system.entry.js → p-c9200deb.system.entry.js} +1 -1
- package/dist/ripple/{p-6d129ef8.system.entry.js → p-cd51ee87.system.entry.js} +1 -1
- package/dist/ripple/{p-465d44f0.system.entry.js → p-ce8c6180.system.entry.js} +1 -1
- package/dist/ripple/{p-84ba5b74.entry.js → p-d0387d35.entry.js} +1 -1
- package/dist/ripple/{p-ed1f6b8d.system.entry.js → p-d8994408.system.entry.js} +1 -1
- package/dist/ripple/{p-eddbcb21.js → p-db190563.js} +1 -1
- package/dist/ripple/{p-83be63f6.entry.js → p-db8917e4.entry.js} +1 -1
- package/dist/ripple/{p-505eca1c.system.entry.js → p-dc7a6037.system.entry.js} +1 -1
- package/dist/ripple/p-dfd1b720.entry.js +1 -0
- package/dist/ripple/{p-df157138.entry.js → p-e3899e1f.entry.js} +1 -1
- package/dist/ripple/{p-30b905eb.system.entry.js → p-ed1971ff.system.entry.js} +1 -1
- package/dist/ripple/{p-2e79fa49.entry.js → p-f177d841.entry.js} +1 -1
- package/dist/ripple/{p-149a22bf.entry.js → p-f4b64ded.entry.js} +1 -1
- package/dist/ripple/p-f9494a9d.js +1 -0
- package/dist/ripple/{p-21d372ed.js → p-fb229776.js} +1 -1
- package/dist/ripple/{p-81c2df85.system.js → p-fb751343.system.js} +1 -1
- package/dist/ripple/{p-c853e185.system.entry.js → p-ffa15c47.system.entry.js} +1 -1
- package/dist/ripple/ripple.esm.js +1 -1
- package/dist/ripple/ripple.js +1 -1
- package/dist/types/components/charts/wm-line-chart/wm-line-chart.d.ts +1 -1
- package/dist/types/components/wm-option/wm-option.d.ts +39 -0
- package/dist/types/components/wm-select/wm-select.d.ts +96 -0
- package/dist/types/components.d.ts +2 -148
- package/dist/types/global/functions.d.ts +0 -1
- package/package.json +2 -2
- package/dist/cjs/priv-option-list.cjs.entry.js +0 -384
- package/dist/cjs/wm-nested-select.cjs.entry.js +0 -295
- package/dist/cjs/wm-optgroup.cjs.entry.js +0 -56
- package/dist/collection/components/selects/priv-option-list/priv-option-list.css +0 -104
- package/dist/collection/components/selects/priv-option-list/priv-option-list.js +0 -714
- package/dist/collection/components/selects/wm-nested-select/wm-nested-select.css +0 -378
- package/dist/collection/components/selects/wm-nested-select/wm-nested-select.js +0 -581
- package/dist/collection/components/selects/wm-optgroup/wm-optgroup.css +0 -77
- package/dist/collection/components/selects/wm-optgroup/wm-optgroup.js +0 -197
- package/dist/collection/dev/nested-select.js +0 -62
- package/dist/esm/priv-option-list.entry.js +0 -380
- package/dist/esm/wm-nested-select.entry.js +0 -291
- package/dist/esm/wm-optgroup.entry.js +0 -52
- package/dist/esm-es5/global-f1582c2f.js +0 -1
- package/dist/esm-es5/priv-option-list.entry.js +0 -1
- package/dist/esm-es5/wm-nested-select.entry.js +0 -1
- package/dist/esm-es5/wm-optgroup.entry.js +0 -1
- package/dist/ripple/p-104c0e9b.system.entry.js +0 -1
- package/dist/ripple/p-17c8aac1.system.entry.js +0 -1
- package/dist/ripple/p-24ba754f.entry.js +0 -1
- package/dist/ripple/p-2fb58947.entry.js +0 -1
- package/dist/ripple/p-4564a101.system.entry.js +0 -1
- package/dist/ripple/p-4ca5ed96.entry.js +0 -1
- package/dist/ripple/p-50388b6f.system.entry.js +0 -1
- package/dist/ripple/p-5b9babd9.system.entry.js +0 -1
- package/dist/ripple/p-8835adfb.entry.js +0 -1
- package/dist/ripple/p-ae82b3d2.system.js +0 -1
- package/dist/ripple/p-ba422994.entry.js +0 -1
- package/dist/ripple/p-bfeb6ef8.system.js +0 -1
- package/dist/ripple/p-cf2121f3.system.entry.js +0 -1
- package/dist/ripple/p-cf55659f.js +0 -1
- package/dist/ripple/p-f6fd623f.system.js +0 -1
- package/dist/types/components/selects/wm-select/wm-select.d.ts +0 -53
- /package/dist/collection/components/{selects/wm-select → wm-select}/wm-select.e2e.js +0 -0
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-e86c28b6.js');
|
|
6
|
-
const functions = require('./functions-
|
|
7
|
-
const intl = require('./intl-
|
|
6
|
+
const functions = require('./functions-04149f6d.js');
|
|
7
|
+
const intl = require('./intl-b1e99809.js');
|
|
8
8
|
|
|
9
9
|
const wmOptionCss = ":host(:not(:last-child)){border-bottom:2px solid;border-color:var(--wmcolor-select-option-border)}:host{display:block;cursor:pointer;position:relative;padding:1.25rem;background:var(--wmcolor-select-option-background);font-family:inherit;list-style:none;color:var(--wmcolor-select-option-text);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host:focus,:host.focus{outline:none;background:var(--wmcolor-select-option-background-focus)}:host.icon{color:var(--wmcolor-interactive)}:host .sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;border:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;white-space:nowrap !important;margin:-1px !important}.checkbox:before{display:inline-block;font:normal normal normal 24px/1 \"Material Design Icons\";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\\f131\";display:inline-block;margin-right:0.25rem;color:var(--wmcolor-interactive)}:host([aria-selected=true]){background:var(--wmcolor-select-option-background-selected);font-weight:500}:host([aria-selected=true]) .checkbox:before{content:\"\\f132\"}:host([aria-disabled=true]){color:var(--wmcolor-select-option-text-disabled);background:var(--wmcolor-select-option-background-disabled);cursor:default}:host([aria-disabled=true]) .checkbox:before{color:var(--wmcolor-select-option-text-disabled)}:host([aria-disabled=true]) .subinfo{color:var(--wmcolor-select-option-text-disabled)}:host(.multi-option){background:unset}:host(.clone.last){border-bottom:12px solid;border-color:var(--wmcolor-select-option-border)}:host(.hassubinfo){display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;gap:16px}:host(.hidden),:host(.filtered-out){display:none}.subinfo{font-style:italic}.option-wrapper{display:-ms-flexbox;display:flex}.option-text{display:inline-block}::slotted{font-family:inherit}::slotted(i){font-size:0.875rem}::slotted(i):before{display:inline-block;font:normal normal normal 24px/1 \"Material Design Icons\";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;margin-right:0.625rem;pointer-events:none}:host(:focus){outline:none;background:var(--wmcolor-select-option-background-hover)}:host(:hover){background:var(--wmcolor-select-option-background-hover);outline:none}";
|
|
10
10
|
|
|
@@ -16,7 +16,6 @@ const Option = class {
|
|
|
16
16
|
this.intCloneClicked = index.createEvent(this, "intCloneClicked", 7);
|
|
17
17
|
this.wmKeyUpPressed = index.createEvent(this, "wmKeyUpPressed", 7);
|
|
18
18
|
this.wmKeyDownPressed = index.createEvent(this, "wmKeyDownPressed", 7);
|
|
19
|
-
this.wmKeyLeftPressed = index.createEvent(this, "wmKeyLeftPressed", 7);
|
|
20
19
|
this.wmEscKeyPressed = index.createEvent(this, "wmEscKeyPressed", 7);
|
|
21
20
|
this.wmHomeKeyPressed = index.createEvent(this, "wmHomeKeyPressed", 7);
|
|
22
21
|
this.wmEndKeyPressed = index.createEvent(this, "wmEndKeyPressed", 7);
|
|
@@ -35,7 +34,7 @@ const Option = class {
|
|
|
35
34
|
if (this.subinfo) {
|
|
36
35
|
classes.push("hassubinfo");
|
|
37
36
|
}
|
|
38
|
-
if (this.
|
|
37
|
+
if (this.parentSelectEl.multiple) {
|
|
39
38
|
classes.push("multi-option");
|
|
40
39
|
}
|
|
41
40
|
if (!this.el.textContent.toLowerCase().includes(this.searchTerm)) {
|
|
@@ -43,13 +42,11 @@ const Option = class {
|
|
|
43
42
|
}
|
|
44
43
|
return classes.join(" ");
|
|
45
44
|
}
|
|
46
|
-
get
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
return this.el.assignedSlot.closest("priv-option-list");
|
|
52
|
-
}
|
|
45
|
+
get parentSelectEl() {
|
|
46
|
+
var _a;
|
|
47
|
+
return ((_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.nodeName) !== "WM-SELECT"
|
|
48
|
+
? this.el.getRootNode().host
|
|
49
|
+
: this.el.parentElement;
|
|
53
50
|
}
|
|
54
51
|
handleKeydown(ev) {
|
|
55
52
|
switch (ev.key) {
|
|
@@ -81,10 +78,6 @@ const Option = class {
|
|
|
81
78
|
ev.preventDefault();
|
|
82
79
|
this.wmEndKeyPressed.emit();
|
|
83
80
|
break;
|
|
84
|
-
case "ArrowLeft":
|
|
85
|
-
ev.preventDefault();
|
|
86
|
-
this.wmKeyLeftPressed.emit(this.el);
|
|
87
|
-
break;
|
|
88
81
|
default:
|
|
89
82
|
if (ev.key.length === 1) {
|
|
90
83
|
ev.preventDefault();
|
|
@@ -100,7 +93,7 @@ const Option = class {
|
|
|
100
93
|
this.intCloneClicked.emit(this.el); // used to then emit wmOptionSelected from the "real" wm-option
|
|
101
94
|
}
|
|
102
95
|
else {
|
|
103
|
-
if (this.
|
|
96
|
+
if (this.parentSelectEl.multiple) {
|
|
104
97
|
this.selected
|
|
105
98
|
? this.wmOptionDeselected.emit(this.el)
|
|
106
99
|
: this.wmOptionSelected.emit(this.el);
|
|
@@ -162,10 +155,10 @@ const Option = class {
|
|
|
162
155
|
this.syncAriaSelected();
|
|
163
156
|
this.syncAriaDisabled();
|
|
164
157
|
this.updateDisabledOnClick();
|
|
165
|
-
this.
|
|
158
|
+
this.parentSelectEl.addEventListener("wmSelectSearchChanged", (ev) => this.handleSearch(ev));
|
|
166
159
|
}
|
|
167
160
|
render() {
|
|
168
|
-
return (index.h(index.Host, { role: "option", tabindex: this.focused ? 0 : -1, class: this.hostClasses }, index.h("div", { class: `option-wrapper ${this.
|
|
161
|
+
return (index.h(index.Host, { role: "option", tabindex: this.focused ? 0 : -1, class: this.hostClasses }, index.h("div", { class: `option-wrapper ${this.parentSelectEl.multiple ? "checkbox" : ""}` }, index.h("span", { class: "option-text", "aria-hidden": "true", ref: (el) => (this.textEl = el) }, this.el.textContent), index.h("span", { class: "sr-only" }, this.el.textContent)), index.h("div", { class: "subinfo" }, this.subinfo)));
|
|
169
162
|
}
|
|
170
163
|
get el() { return index.getElement(this); }
|
|
171
164
|
static get watchers() { return {
|
|
@@ -175,20 +168,52 @@ const Option = class {
|
|
|
175
168
|
};
|
|
176
169
|
Option.style = wmOptionCss;
|
|
177
170
|
|
|
178
|
-
const wmSelectCss = ":host{--wmcolor-select-background:var(--wmcolor-background);--wmcolor-select-border:var(--wmcolor-input-border);--wmcolor-select-option-background-disabled:var(--wmcolor-option-background-disabled);--wmcolor-select-option-background-focus:var(--wmcolor-option-background-focus);--wmcolor-select-option-background-hover:var(--wmcolor-option-background-hover);--wmcolor-select-option-background-selected:var(--wmcolor-option-background-selected);--wmcolor-select-option-background:var(--wmcolor-option-background);--wmcolor-select-option-border:var(--wmcolor-option-border);--wmcolor-select-option-text-disabled:var(--wmcolor-option-text-disabled);--wmcolor-select-option-text:var(--wmcolor-option-text);--wmcolor-select-search-border:var(--wmcolor-input-border);--wmcolor-select-search-icon:var(--wmcolor-icon-accent);--wmcolor-select-searchresults-text:var(--wmcolor-text);--wmcolor-select-selectall-background:var(--wmcolor-select-option-background);--wmcolor-select-selectall-border:var(--wmcolor-select-option-border);--wmcolor-select-selectall-text:var(--wmcolor-interactive);--wmcolor-select-text:var(--wmcolor-interactive);position:relative;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:inherit}:host .sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;border:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;white-space:nowrap !important;margin:-1px !important}.wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;font-size:0.875rem}.wrapper .label{display:block;line-height:normal;font-weight:600;white-space:nowrap;margin-bottom:0.25rem}.wrapper .label .required{color:var(--wmcolor-text-required)}.wrapper.label-left{-ms-flex-direction:row;flex-direction:row}.wrapper.label-left .label-wrapper{line-height:2.5rem}.wrapper.label-left .label-wrapper .label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:2.5rem;white-space:normal;margin-bottom:0;margin-right:0.75rem}.wrapper.label-none label{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;border:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;white-space:nowrap !important;margin:-1px !important}.wrapper.invalid .label{color:var(--wmcolor-text-error)}.wrapper.invalid .label:after{display:inline-block;font:normal normal normal 24px/1 \"Material Design Icons\";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\\f026\";margin-left:0.3125rem}[dir=RTL] .wrapper.invalid .label:after{margin-left:0;margin-right:0.3125rem}.wrapper.rtl.label-left .label{margin-right:0;margin-left:0.75rem}.wrapper .button-wrapper{position:relative;-ms-flex:1;flex:1;font-size:1.125rem;color:var(--wmcolor-select-text);min-width:8.75rem}.wrapper .button-wrapper .displayedoption{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-wrap:nowrap;flex-wrap:nowrap;background:var(--wmcolor-select-background);width:100%;border:solid 1px;border-color:var(--wmcolor-select-border);padding:0 1.875rem 0 0.9375rem;cursor:pointer;height:2.5rem;line-height:normal;font-family:inherit;color:var(--wmcolor-select-text);font-weight:400;font-size:0.875rem;text-transform:none;text-align:left}@media only screen and (max-width: 768px){.wrapper .button-wrapper .displayedoption{height:2.75rem}}.wrapper .button-wrapper .displayedoption:before{display:inline-block;font:normal normal normal 24px/1 \"Material Design Icons\";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\\f140\";position:absolute;right:0.5625rem;pointer-events:none;font-size:1.12rem}.wrapper .button-wrapper .displayedoption:hover:not(:disabled):not(.-disabled):not(.-raised){background:var(--wmcolor-select-background);text-decoration:none}.wrapper .button-wrapper .displayedoption:active{-ms-transform:scale(1, 1) !important;-webkit-transform:scale(1, 1) !important;transform:scale(1, 1) !important}.wrapper .button-wrapper .displayedoption:focus{outline:none}.wrapper .button-wrapper .displayedoption::-moz-focus-inner{border:0}.wrapper .button-wrapper .displayedoption:focus-visible{outline:3px solid var(--wmcolor-interactive-focus);outline-offset:2px}.wrapper .button-wrapper .displayedoption .overflowcontrol{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;-ms-flex:1;flex:1}.wrapper .button-wrapper .displayedoption .overflowcontrol.hassubinfo{display:-ms-flexbox;display:flex}.wrapper .button-wrapper .displayedoption .overflowcontrol.hassubinfo .button-text{-ms-flex:1;flex:1;text-overflow:ellipsis;overflow:hidden;min-width:0}.wrapper .button-wrapper .displayedoption .overflowcontrol.hassubinfo .subinfo{-ms-flex:none;flex:none;font-style:italic}.wrapper .button-wrapper .displayedoption .overflow-counter{font-weight:bold;margin-left:0.5rem}.wrapper .button-wrapper>.displayedoption[disabled]{color:#6b6b6b;border-color:#8a8a8a;background:#f0f0f0;cursor:default}.wrapper .button-wrapper>.dropdown{-webkit-overflow-scrolling:touch;-webkit-box-shadow:0 4px 15px 0 rgba(0, 0, 0, 0.2);-moz-box-shadow:0 4px 15px 0 rgba(0, 0, 0, 0.2);box-shadow:0 4px 15px 0 rgba(0, 0, 0, 0.2);-ms-transition:transform 0.25s ease;-webkit-transition:transform 0.25s ease;-moz-transition:transform 0.25s ease;-webkit-transition:-webkit-transform 0.25s ease;transition:-webkit-transform 0.25s ease;transition:transform 0.25s ease;transition:transform 0.25s ease, -webkit-transform 0.25s ease;-ms-transform:scale(1, 0);-webkit-transform:scale(1, 0);-moz-transform:scale(1, 0);transform:scale(1, 0);-ms-transform-origin:center top;-webkit-transform-origin:center top;-moz-transform-origin:center top;transform-origin:center top;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;position:absolute;top:0;right:0;background:var(--wmcolor-select-option-background);z-index:100;width:100%;font-size:0.875rem}.wrapper .button-wrapper>.dropdown.upwards{top:unset;bottom:calc(100% - 2.5rem);-ms-transform-origin:center bottom;-webkit-transform-origin:center bottom;-moz-transform-origin:center bottom;transform-origin:center bottom}.wrapper .button-wrapper>.dropdown.hidden{visibility:hidden}.wrapper .button-wrapper>.dropdown.open{-ms-transform:scale(1, 1);-webkit-transform:scale(1, 1);-moz-transform:scale(1, 1);transform:scale(1, 1)}.wrapper.invalid .button-wrapper .displayedoption{-webkit-box-shadow:0 0 0 1px var(--wmcolor-input-border-error);-moz-box-shadow:0 0 0 1px var(--wmcolor-input-border-error);box-shadow:0 0 0 1px var(--wmcolor-input-border-error);border-color:var(--wmcolor-input-border-error)}.wrapper .error-message{display:block;font-style:italic;color:var(--wmcolor-text-error);font-size:0.875rem;margin-bottom:0.25rem;top:100%;left:0}.wrapper .error-message:not(:empty){margin-top:0.25rem}.options-wrapper{max-height:12.5rem;overflow:auto}.rtl>.dropdown{-ms-transform-origin:left top;-webkit-transform-origin:left top;-moz-transform-origin:left top;transform-origin:left top;left:0;right:auto}.rtl>.dropdown .option{padding-left:3rem;padding-right:1.25rem}.rtl>.displayedoption{padding:0 0.9375rem 0 1.875rem;text-align:right}.rtl>.displayedoption:before{right:auto;left:0.5625rem}";
|
|
171
|
+
const wmSelectCss = ":host{--wmcolor-select-background:var(--wmcolor-background);--wmcolor-select-border:var(--wmcolor-input-border);--wmcolor-select-option-background-disabled:var(--wmcolor-option-background-disabled);--wmcolor-select-option-background-focus:var(--wmcolor-option-background-focus);--wmcolor-select-option-background-hover:var(--wmcolor-option-background-hover);--wmcolor-select-option-background-selected:var(--wmcolor-option-background-selected);--wmcolor-select-option-background:var(--wmcolor-option-background);--wmcolor-select-option-border:var(--wmcolor-option-border);--wmcolor-select-option-text-disabled:var(--wmcolor-option-text-disabled);--wmcolor-select-option-text:var(--wmcolor-option-text);--wmcolor-select-search-border:var(--wmcolor-input-border);--wmcolor-select-search-icon:var(--wmcolor-icon-accent);--wmcolor-select-searchresults-text:var(--wmcolor-text);--wmcolor-select-selectall-background:var(--wmcolor-select-option-background);--wmcolor-select-selectall-border:var(--wmcolor-select-option-border);--wmcolor-select-selectall-text:var(--wmcolor-interactive);--wmcolor-select-text:var(--wmcolor-interactive);position:relative;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:inherit}:host .sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;border:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;white-space:nowrap !important;margin:-1px !important}.wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;font-size:0.875rem}.wrapper .label{display:block;line-height:normal;font-weight:600;white-space:nowrap;margin-bottom:0.25rem}.wrapper .label .required{color:var(--wmcolor-text-required)}.wrapper.label-left{-ms-flex-direction:row;flex-direction:row}.wrapper.label-left .label-wrapper{line-height:2.5rem}.wrapper.label-left .label-wrapper .label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:2.5rem;white-space:normal;margin-bottom:0;margin-right:0.75rem}.wrapper.label-none label{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;border:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;white-space:nowrap !important;margin:-1px !important}.wrapper.invalid .label{color:var(--wmcolor-text-error)}.wrapper.invalid .label:after{display:inline-block;font:normal normal normal 24px/1 \"Material Design Icons\";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\\f026\";margin-left:0.3125rem}[dir=RTL] .wrapper.invalid .label:after{margin-left:0;margin-right:0.3125rem}.wrapper.rtl.label-left .label{margin-right:0;margin-left:0.75rem}.wrapper .button-wrapper{position:relative;-ms-flex:1;flex:1;font-size:1.125rem;color:var(--wmcolor-select-text);min-width:8.75rem}.wrapper .button-wrapper .displayedoption{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-wrap:nowrap;flex-wrap:nowrap;background:var(--wmcolor-select-background);width:100%;border:solid 1px;border-color:var(--wmcolor-select-border);padding:0 1.875rem 0 0.9375rem;cursor:pointer;height:2.5rem;line-height:normal;font-family:inherit;color:var(--wmcolor-select-text);font-weight:400;font-size:0.875rem;text-transform:none;text-align:left}@media only screen and (max-width: 768px){.wrapper .button-wrapper .displayedoption{height:2.75rem}}.wrapper .button-wrapper .displayedoption:before{display:inline-block;font:normal normal normal 24px/1 \"Material Design Icons\";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\\f140\";position:absolute;right:0.5625rem;pointer-events:none;font-size:1.12rem}.wrapper .button-wrapper .displayedoption:hover:not(:disabled):not(.-disabled):not(.-raised){background:var(--wmcolor-select-background);text-decoration:none}.wrapper .button-wrapper .displayedoption:active{-ms-transform:scale(1, 1) !important;-webkit-transform:scale(1, 1) !important;transform:scale(1, 1) !important}.wrapper .button-wrapper .displayedoption:focus{outline:none}.wrapper .button-wrapper .displayedoption::-moz-focus-inner{border:0}.wrapper .button-wrapper .displayedoption:focus-visible{outline:3px solid var(--wmcolor-interactive-focus);outline-offset:2px}.wrapper .button-wrapper .displayedoption .overflowcontrol{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;-ms-flex:1;flex:1}.wrapper .button-wrapper .displayedoption .overflowcontrol.hassubinfo{display:-ms-flexbox;display:flex}.wrapper .button-wrapper .displayedoption .overflowcontrol.hassubinfo .button-text{-ms-flex:1;flex:1;text-overflow:ellipsis;overflow:hidden;min-width:0}.wrapper .button-wrapper .displayedoption .overflowcontrol.hassubinfo .subinfo{-ms-flex:none;flex:none;font-style:italic}.wrapper .button-wrapper .displayedoption .overflow-counter{font-weight:bold;margin-left:0.5rem}.wrapper .button-wrapper>.displayedoption[disabled]{color:#6b6b6b;border-color:#8a8a8a;background:#f0f0f0;cursor:default}.wrapper .button-wrapper>.dropdown{-webkit-overflow-scrolling:touch;-webkit-box-shadow:0 4px 15px 0 rgba(0, 0, 0, 0.2);-moz-box-shadow:0 4px 15px 0 rgba(0, 0, 0, 0.2);box-shadow:0 4px 15px 0 rgba(0, 0, 0, 0.2);-ms-transition:transform 0.25s ease;-webkit-transition:transform 0.25s ease;-moz-transition:transform 0.25s ease;-webkit-transition:-webkit-transform 0.25s ease;transition:-webkit-transform 0.25s ease;transition:transform 0.25s ease;transition:transform 0.25s ease, -webkit-transform 0.25s ease;-ms-transform:scale(1, 0);-webkit-transform:scale(1, 0);-moz-transform:scale(1, 0);transform:scale(1, 0);-ms-transform-origin:center top;-webkit-transform-origin:center top;-moz-transform-origin:center top;transform-origin:center top;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;position:absolute;top:0;right:0;background:var(--wmcolor-select-option-background);z-index:100;width:100%;font-size:0.875rem}.wrapper .button-wrapper>.dropdown.upwards{top:unset;bottom:calc(100% - 2.5rem);-ms-transform-origin:center bottom;-webkit-transform-origin:center bottom;-moz-transform-origin:center bottom;transform-origin:center bottom}.wrapper .button-wrapper>.dropdown.hidden{visibility:hidden}.wrapper .button-wrapper>.dropdown.open{-ms-transform:scale(1, 1);-webkit-transform:scale(1, 1);-moz-transform:scale(1, 1);transform:scale(1, 1)}.wrapper.invalid .button-wrapper .displayedoption{-webkit-box-shadow:0 0 0 1px var(--wmcolor-input-border-error);-moz-box-shadow:0 0 0 1px var(--wmcolor-input-border-error);box-shadow:0 0 0 1px var(--wmcolor-input-border-error);border-color:var(--wmcolor-input-border-error)}.wrapper .error-message{display:block;font-style:italic;color:var(--wmcolor-text-error);font-size:0.875rem;margin-bottom:0.25rem;top:100%;left:0}.wrapper .error-message:not(:empty){margin-top:0.25rem}.options-wrapper{max-height:12.5rem;overflow:auto}.select-all{width:100%;cursor:pointer;padding:1.25rem;border:none;margin:0;border-bottom:2px solid;border-color:var(--wmcolor-select-selectall-border);background:var(--wmcolor-select-selectall-background);font-family:inherit;font-size:inherit;text-align:left;text-align:start;font-weight:500;color:var(--wmcolor-select-selectall-text);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.select-all:hover,.select-all:focus{outline:none;background:#f4f4f4}.search{-webkit-box-sizing:border-box;box-sizing:border-box;border-bottom:2px solid;border-color:var(--wmcolor-select-option-border);padding:1.25rem}.search .searchfield-wrapper{-webkit-box-sizing:border-box;box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:2.75rem;width:100%;padding:0 0.75rem;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;border:1px solid;border-color:var(--wmcolor-select-search-border)}.search .searchfield-wrapper:focus,.search .searchfield-wrapper.focus{outline:2px solid var(--wmcolor-input-border-focus);border-color:var(--wmcolor-input-border-focus)}.search .searchfield{width:100%;border:none;outline:none;font-family:inherit;font-size:0.875rem;margin-left:0.25rem}.search .icon:before{display:inline-block;font:normal normal normal 24px/1 \"Material Design Icons\";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\\f349\";color:var(--wmcolor-select-search-icon);font-size:1.12rem}.search-results-message{padding:1.25rem;color:var(--wmcolor-select-searchresults-text);font-size:0.875rem;font-style:italic}.rtl>.dropdown{-ms-transform-origin:left top;-webkit-transform-origin:left top;-moz-transform-origin:left top;transform-origin:left top;left:0;right:auto}.rtl>.dropdown .option{padding-left:3rem;padding-right:1.25rem}.rtl>.displayedoption{padding:0 0.9375rem 0 1.875rem;text-align:right}.rtl>.displayedoption:before{right:auto;left:0.5625rem}";
|
|
179
172
|
|
|
180
173
|
const Select = class {
|
|
181
174
|
constructor(hostRef) {
|
|
182
175
|
index.registerInstance(this, hostRef);
|
|
183
176
|
this.wmSelectDidLoad = index.createEvent(this, "wmSelectDidLoad", 7);
|
|
184
177
|
this.wmSelectBlurred = index.createEvent(this, "wmSelectBlurred", 7);
|
|
178
|
+
this.wmSelectSearchChanged = index.createEvent(this, "wmSelectSearchChanged", 7);
|
|
185
179
|
this.wmSelectAllSelected = index.createEvent(this, "wmSelectAllSelected", 7);
|
|
186
180
|
this.wmSelectAllDeselected = index.createEvent(this, "wmSelectAllDeselected", 7);
|
|
181
|
+
this.selectAllMessage = functions.intl.formatMessage({
|
|
182
|
+
id: "select.selectAll",
|
|
183
|
+
defaultMessage: "Select All",
|
|
184
|
+
});
|
|
185
|
+
this.deselectAllMessage = functions.intl.formatMessage({
|
|
186
|
+
id: "select.deselectAll",
|
|
187
|
+
defaultMessage: "Deselect All",
|
|
188
|
+
});
|
|
189
|
+
this.allOptionsSelectedMessage = functions.intl.formatMessage({
|
|
190
|
+
id: "select.allOptionsSelected",
|
|
191
|
+
defaultMessage: "All options selected",
|
|
192
|
+
});
|
|
193
|
+
this.allOptionsDeselectedMessage = functions.intl.formatMessage({
|
|
194
|
+
id: "select.allOptionsDeselected",
|
|
195
|
+
defaultMessage: "All options deselected",
|
|
196
|
+
});
|
|
197
|
+
this.keysSoFar = "";
|
|
198
|
+
this.searchIndex = 0;
|
|
187
199
|
this.openUp = false;
|
|
188
200
|
//////////////////////////////////////
|
|
201
|
+
//////////////////////////////////////
|
|
189
202
|
// for multiselect button text
|
|
190
203
|
this.overflowCount = 0;
|
|
191
204
|
this.displayedOptions = [];
|
|
205
|
+
this.debouncedClearKeysSoFar = functions.debounce(() => {
|
|
206
|
+
this.keysSoFar = "";
|
|
207
|
+
}, 500);
|
|
208
|
+
this.debouncedSearch = functions.debounce(() => {
|
|
209
|
+
this.wmSelectSearchChanged.emit({ searchTerm: this.searchTerm });
|
|
210
|
+
if (this.filteredOptions.length) {
|
|
211
|
+
this.announce(this.resultsFoundMessage);
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
this.announce(this.noResultsFoundMessage);
|
|
215
|
+
}
|
|
216
|
+
}, 150);
|
|
192
217
|
this.disabled = false;
|
|
193
218
|
this.maxHeight = undefined;
|
|
194
219
|
this.label = undefined;
|
|
@@ -219,33 +244,85 @@ const Select = class {
|
|
|
219
244
|
get childOptions() {
|
|
220
245
|
return Array.from(this.el.querySelectorAll("wm-option"));
|
|
221
246
|
}
|
|
247
|
+
get cloneOptions() {
|
|
248
|
+
return Array.from(this.el.shadowRoot.querySelectorAll("wm-option"));
|
|
249
|
+
}
|
|
250
|
+
get allOptionEls() {
|
|
251
|
+
// this includes both slotted wm-options and internally created wm-options
|
|
252
|
+
return this.cloneOptions.concat(this.childOptions);
|
|
253
|
+
}
|
|
254
|
+
get visibleOptionEls() {
|
|
255
|
+
return this.allOptionEls.filter((option) => !option.classList.contains("hidden") && !option.classList.contains("filtered-out"));
|
|
256
|
+
}
|
|
222
257
|
get isDisabled() {
|
|
223
258
|
// string "false" needs to be treated as bool False because react wrappers convert bool to string.
|
|
224
259
|
return functions.toBool(this.disabled);
|
|
225
260
|
}
|
|
261
|
+
//////////////////////////////////////
|
|
262
|
+
// for search variants
|
|
263
|
+
get searchTerm() {
|
|
264
|
+
return this.searchFieldEl ? this.searchFieldEl.value : "";
|
|
265
|
+
}
|
|
266
|
+
get filteredOptions() {
|
|
267
|
+
return this.childOptions.filter((option) => { var _a; return (_a = option.textContent) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(this.searchTerm.toLowerCase()); });
|
|
268
|
+
}
|
|
226
269
|
get selectedOptions() {
|
|
227
270
|
return Array.from(this.el.querySelectorAll("wm-option")).filter((x) => x.selected);
|
|
228
271
|
}
|
|
229
272
|
get allSelected() {
|
|
230
273
|
return this.childOptions.every((option) => option.selected);
|
|
231
274
|
}
|
|
275
|
+
get visibleSelectAllButton() {
|
|
276
|
+
return this.selectAll && this.multiple && this.searchTerm === "";
|
|
277
|
+
}
|
|
232
278
|
//////////////////////////////////////
|
|
233
|
-
|
|
279
|
+
get resultsFoundMessage() {
|
|
280
|
+
return functions.intl.formatMessage({
|
|
281
|
+
id: "select.searchResultsFound",
|
|
282
|
+
defaultMessage: "{numResults, plural, one {1 option found} other {# options found}}",
|
|
283
|
+
description: "The message read by the screen reader, indicating how many results a search returned",
|
|
284
|
+
}, { numResults: this.filteredOptions.length });
|
|
285
|
+
}
|
|
286
|
+
get noResultsFoundMessage() {
|
|
287
|
+
return functions.intl.formatMessage({
|
|
288
|
+
id: "select.noSearchResults",
|
|
289
|
+
defaultMessage: "No results found. Please try your search again.",
|
|
290
|
+
description: "The message displayed when no options pass the search filter",
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
handleOptionSelection(ev) {
|
|
294
|
+
this.focusOption(ev.detail);
|
|
234
295
|
if (!this.multiple) {
|
|
235
296
|
this.close();
|
|
236
297
|
}
|
|
237
298
|
}
|
|
299
|
+
handleOptionCloneSelection(ev) {
|
|
300
|
+
const correspondingOption = this.findCorrespondingOption(ev.detail);
|
|
301
|
+
correspondingOption.click();
|
|
302
|
+
}
|
|
238
303
|
handleChildEnter() {
|
|
239
304
|
// only occurs for multiselects. handle the click, then close
|
|
240
305
|
this.close();
|
|
241
306
|
}
|
|
307
|
+
handleChildUp(ev) {
|
|
308
|
+
this.moveUp(ev.detail);
|
|
309
|
+
}
|
|
310
|
+
handleChildDown(ev) {
|
|
311
|
+
this.moveDown(ev.detail);
|
|
312
|
+
}
|
|
313
|
+
moveToFirstOption() {
|
|
314
|
+
this.focusOption(this.visibleOptionEls[0]);
|
|
315
|
+
}
|
|
316
|
+
moveToLastOption() {
|
|
317
|
+
this.focusOption(this.visibleOptionEls[this.visibleOptionEls.length - 1]);
|
|
318
|
+
}
|
|
242
319
|
closePopupOnEscape() {
|
|
243
320
|
this.close();
|
|
244
321
|
}
|
|
245
322
|
handleOptionBlur(ev) {
|
|
246
323
|
// if the Option is blurred to something other than the component emit a blur event with the appropriate relatedTarget
|
|
247
324
|
// keeps our component's blur events accurate, and closes when focusing browser address bar
|
|
248
|
-
if (!
|
|
325
|
+
if (!this.isElOrChild(ev.detail.relatedTarget)) {
|
|
249
326
|
const event = new CustomEvent("blur");
|
|
250
327
|
// @ts-ignore
|
|
251
328
|
event.relatedTarget = ev.detail.relatedTarget;
|
|
@@ -253,16 +330,34 @@ const Select = class {
|
|
|
253
330
|
}
|
|
254
331
|
}
|
|
255
332
|
handleClick(ev) {
|
|
256
|
-
if (!
|
|
333
|
+
if (!this.isElOrChild(ev.target)) {
|
|
257
334
|
this.close();
|
|
258
335
|
}
|
|
259
336
|
}
|
|
337
|
+
handleSelectAllClick() {
|
|
338
|
+
this.allSelected ? this.deselectAllOptions() : this.selectAllOptions();
|
|
339
|
+
}
|
|
340
|
+
selectAllOptions() {
|
|
341
|
+
this.announce(this.allOptionsSelectedMessage);
|
|
342
|
+
this.wmSelectAllSelected.emit();
|
|
343
|
+
}
|
|
344
|
+
deselectAllOptions() {
|
|
345
|
+
this.announce(this.allOptionsDeselectedMessage);
|
|
346
|
+
this.wmSelectAllDeselected.emit();
|
|
347
|
+
}
|
|
260
348
|
handleButtonBlur(ev) {
|
|
261
|
-
if (
|
|
349
|
+
if (this.isElOrChild(ev.relatedTarget)) {
|
|
262
350
|
// do not emit a blur event when opening the dropdown and focusing the Options
|
|
263
351
|
ev.stopPropagation();
|
|
264
352
|
}
|
|
265
353
|
}
|
|
354
|
+
handleSearchFieldBlur(ev) {
|
|
355
|
+
this.searchFieldWrapperEl.classList.remove("focus");
|
|
356
|
+
if (this.isElOrChild(ev.relatedTarget)) {
|
|
357
|
+
// do not emit a blur event when moving from searchfield to options
|
|
358
|
+
ev.stopPropagation();
|
|
359
|
+
}
|
|
360
|
+
}
|
|
266
361
|
handleKey(ev) {
|
|
267
362
|
switch (ev.key) {
|
|
268
363
|
case "ArrowDown":
|
|
@@ -299,7 +394,6 @@ const Select = class {
|
|
|
299
394
|
// on update of children or children selected state, reset button text and rerender
|
|
300
395
|
this.setButtonText();
|
|
301
396
|
index.forceUpdate(this.el);
|
|
302
|
-
this.optionListEl.handleChildChange(_);
|
|
303
397
|
}
|
|
304
398
|
componentDidLoad() {
|
|
305
399
|
this.wmSelectDidLoad.emit();
|
|
@@ -307,11 +401,55 @@ const Select = class {
|
|
|
307
401
|
index.forceUpdate(this.el);
|
|
308
402
|
// Dev can overwrite the max-height rule set in the Sass file
|
|
309
403
|
if (this.maxHeight) {
|
|
310
|
-
|
|
311
|
-
|
|
404
|
+
this.listboxEl.style.maxHeight = this.maxHeight;
|
|
405
|
+
}
|
|
406
|
+
if (this.multiple) {
|
|
407
|
+
this.updateOptionVisibility();
|
|
312
408
|
}
|
|
313
409
|
this.setButtonText();
|
|
314
410
|
}
|
|
411
|
+
componentWillUpdate() {
|
|
412
|
+
if (this.multiple) {
|
|
413
|
+
// find last visible clone option and apply .last class
|
|
414
|
+
const visibleCloneOptions = this.visibleOptionEls.filter((option) => option.classList.contains("clone"));
|
|
415
|
+
// if all options are clones, nothing to separate from
|
|
416
|
+
const allClones = visibleCloneOptions.length === this.visibleOptionEls.length;
|
|
417
|
+
visibleCloneOptions.forEach((option, idx) => {
|
|
418
|
+
if (!allClones && idx === visibleCloneOptions.length - 1) {
|
|
419
|
+
option.classList.add("last");
|
|
420
|
+
}
|
|
421
|
+
else {
|
|
422
|
+
option.classList.remove("last");
|
|
423
|
+
}
|
|
424
|
+
});
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
moveUp(el) {
|
|
428
|
+
const focusableEls = this.visibleOptionEls;
|
|
429
|
+
if (this.selectAllEl) {
|
|
430
|
+
focusableEls.unshift(this.selectAllEl);
|
|
431
|
+
}
|
|
432
|
+
if (this.searchFieldEl) {
|
|
433
|
+
focusableEls.unshift(this.searchFieldEl);
|
|
434
|
+
}
|
|
435
|
+
const prevEl = focusableEls[focusableEls.indexOf(el) - 1] || focusableEls[focusableEls.length - 1];
|
|
436
|
+
if (prevEl) {
|
|
437
|
+
this.focusOption(prevEl);
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
moveDown(el) {
|
|
441
|
+
const focusableEls = this.visibleOptionEls;
|
|
442
|
+
if (this.selectAllEl) {
|
|
443
|
+
focusableEls.unshift(this.selectAllEl);
|
|
444
|
+
}
|
|
445
|
+
if (this.searchFieldEl) {
|
|
446
|
+
focusableEls.unshift(this.searchFieldEl);
|
|
447
|
+
}
|
|
448
|
+
const nextEl = focusableEls[focusableEls.indexOf(el) + 1] || focusableEls[0];
|
|
449
|
+
if (nextEl) {
|
|
450
|
+
this.focusOption(nextEl);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
315
453
|
open(optionToSelect) {
|
|
316
454
|
if (!this.isDisabled) {
|
|
317
455
|
const elHeight = this.el.clientHeight;
|
|
@@ -324,22 +462,60 @@ const Select = class {
|
|
|
324
462
|
this.isExpanded = true;
|
|
325
463
|
this.dropdownEl.classList.remove("hidden");
|
|
326
464
|
window.requestAnimationFrame(() => {
|
|
327
|
-
|
|
465
|
+
switch (optionToSelect) {
|
|
466
|
+
case "next":
|
|
467
|
+
// search variant focuses search field
|
|
468
|
+
// all others focus option "after" last selected option (this can be the first option)
|
|
469
|
+
if (this.search) {
|
|
470
|
+
this.searchFieldEl.focus();
|
|
471
|
+
this.listboxEl.scrollTop = 0;
|
|
472
|
+
}
|
|
473
|
+
else {
|
|
474
|
+
this.moveDown(this.visibleOptionEls.filter((x) => x.selected).slice(-1)[0]);
|
|
475
|
+
}
|
|
476
|
+
break;
|
|
477
|
+
case "previous":
|
|
478
|
+
// search variant focuses last option
|
|
479
|
+
// all others focus option "above" first selected option (this can be the last option)
|
|
480
|
+
if (this.search) {
|
|
481
|
+
this.focusOption(this.visibleOptionEls[this.visibleOptionEls.length - 1]);
|
|
482
|
+
}
|
|
483
|
+
else {
|
|
484
|
+
this.moveUp(this.visibleOptionEls.filter((x) => x.selected)[0]);
|
|
485
|
+
}
|
|
486
|
+
break;
|
|
487
|
+
default:
|
|
488
|
+
// search variant focuses search field
|
|
489
|
+
// all others focus the selected option
|
|
490
|
+
// if no option is selected (empty multiselect), focuses first option
|
|
491
|
+
if (this.search) {
|
|
492
|
+
this.searchFieldEl.focus();
|
|
493
|
+
this.listboxEl.scrollTop = 0;
|
|
494
|
+
}
|
|
495
|
+
else if (this.selectedOptions.length > 0) {
|
|
496
|
+
this.focusOption(this.visibleOptionEls.filter((x) => x.selected)[0]);
|
|
497
|
+
}
|
|
498
|
+
else {
|
|
499
|
+
this.focusOption(this.visibleOptionEls[0]);
|
|
500
|
+
}
|
|
501
|
+
break;
|
|
502
|
+
}
|
|
328
503
|
});
|
|
329
504
|
}
|
|
330
505
|
}
|
|
331
506
|
close(returnFocus = true) {
|
|
332
507
|
if (this.isExpanded) {
|
|
333
508
|
this.isExpanded = false;
|
|
334
|
-
this.
|
|
509
|
+
this.allOptionEls.map((i) => (i.focused = false));
|
|
335
510
|
window.setTimeout(() => {
|
|
336
511
|
this.dropdownEl.classList.add("hidden");
|
|
337
|
-
if (this.
|
|
338
|
-
this.
|
|
512
|
+
if (this.multiple) {
|
|
513
|
+
this.updateOptionVisibility();
|
|
339
514
|
}
|
|
340
515
|
// clear search field, reset filtered / bolded state of wm-options
|
|
341
516
|
if (this.search) {
|
|
342
|
-
this.
|
|
517
|
+
this.searchFieldEl.value = "";
|
|
518
|
+
this.wmSelectSearchChanged.emit({ searchTerm: this.searchTerm });
|
|
343
519
|
}
|
|
344
520
|
// Returns focus to button after popup closes (no need if user is tabbing)
|
|
345
521
|
// Delay is necessary for screenreader to get new expanded state before focus
|
|
@@ -351,6 +527,87 @@ const Select = class {
|
|
|
351
527
|
}, 150);
|
|
352
528
|
}
|
|
353
529
|
}
|
|
530
|
+
updateOptionVisibility() {
|
|
531
|
+
// this runs for search multiselects, where selected options are rendered at the top of the dropdown list
|
|
532
|
+
// slotted wm-options are hidden if selected, and clone wm-options are made visible if selected
|
|
533
|
+
this.childOptions.forEach((option, idx) => {
|
|
534
|
+
const cloneOption = this.cloneOptions[idx];
|
|
535
|
+
if (option.selected) {
|
|
536
|
+
option.classList.add("hidden");
|
|
537
|
+
cloneOption.classList.remove("hidden");
|
|
538
|
+
}
|
|
539
|
+
else {
|
|
540
|
+
option.classList.remove("hidden");
|
|
541
|
+
cloneOption.classList.add("hidden");
|
|
542
|
+
}
|
|
543
|
+
});
|
|
544
|
+
}
|
|
545
|
+
focusOption(option) {
|
|
546
|
+
this.allOptionEls.forEach((i) => (i.focused = i === option));
|
|
547
|
+
// option must be scrolledIntoView before focused
|
|
548
|
+
// if focus is called first the option might be positioned incorrectly (in the center of the dropdown) and scrollIntoView will do nothing as the option will already be in view
|
|
549
|
+
option.scrollIntoView({ block: "nearest" });
|
|
550
|
+
// scrollIntoView does not work when the container of the element it's called on is not rendered to the page (in our case the dropdown is still closed and has transform: scaleY(0))
|
|
551
|
+
// when opening the dropdown, scrollIntoView must be delayed to a point where the browser recognizes content within it as able to be scrolled to
|
|
552
|
+
// in Safari in particular, the soonest this seems to happen is 20ms. The longest we can wait before any jumping in the open dropdown is noticeable is 60ms
|
|
553
|
+
window.setTimeout(() => option.scrollIntoView({ block: "nearest" }), 60);
|
|
554
|
+
option.focus();
|
|
555
|
+
}
|
|
556
|
+
findAndFocusOption(ev) {
|
|
557
|
+
const letterPressed = ev.detail.letter.toLowerCase();
|
|
558
|
+
const optionPressed = ev.detail.optionEl;
|
|
559
|
+
if (!this.keysSoFar && letterPressed == " ") {
|
|
560
|
+
// if the first key entered is space, treat as a click. Otherwise include in
|
|
561
|
+
optionPressed.click();
|
|
562
|
+
}
|
|
563
|
+
else {
|
|
564
|
+
if (!this.keysSoFar) {
|
|
565
|
+
// if first character entered, set currently focused option as the starting index for the search
|
|
566
|
+
this.visibleOptionEls.forEach((option, idx) => {
|
|
567
|
+
if (option.focused) {
|
|
568
|
+
this.searchIndex = idx;
|
|
569
|
+
}
|
|
570
|
+
});
|
|
571
|
+
}
|
|
572
|
+
this.keysSoFar += letterPressed;
|
|
573
|
+
let nextMatch = this.findMatchInRange(this.visibleOptionEls, this.searchIndex + 1, this.visibleOptionEls.length);
|
|
574
|
+
if (!nextMatch) {
|
|
575
|
+
// if match can't be found from starting option downwards, search from top
|
|
576
|
+
nextMatch = this.findMatchInRange(this.visibleOptionEls, 0, this.searchIndex);
|
|
577
|
+
}
|
|
578
|
+
if (nextMatch) {
|
|
579
|
+
// findMatchInRange still might have returned null, only focus if match found
|
|
580
|
+
this.focusOption(nextMatch);
|
|
581
|
+
}
|
|
582
|
+
this.debouncedClearKeysSoFar();
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
findMatchInRange(list, startIndex, endIndex) {
|
|
586
|
+
let match = null;
|
|
587
|
+
let optionsInRange = list.slice(startIndex, endIndex);
|
|
588
|
+
// Find the first option starting with the keysSoFar substring, searching in
|
|
589
|
+
// the specified range of options
|
|
590
|
+
optionsInRange.forEach((option) => {
|
|
591
|
+
const label = option.textContent;
|
|
592
|
+
if (!match && label && label.toLowerCase().startsWith(this.keysSoFar)) {
|
|
593
|
+
match = option;
|
|
594
|
+
}
|
|
595
|
+
});
|
|
596
|
+
return match;
|
|
597
|
+
}
|
|
598
|
+
findCorrespondingOption(el) {
|
|
599
|
+
// if clone, returns the child wm-option
|
|
600
|
+
// if child wm-option, returns clone
|
|
601
|
+
const isClone = el.classList.contains("clone");
|
|
602
|
+
return isClone
|
|
603
|
+
? this.childOptions[this.cloneOptions.indexOf(el)]
|
|
604
|
+
: this.cloneOptions[this.childOptions.indexOf(el)];
|
|
605
|
+
}
|
|
606
|
+
isElOrChild(el) {
|
|
607
|
+
var _a;
|
|
608
|
+
// determines whether or not the element is the component, a child of the component, or exists within the component's shadowroot
|
|
609
|
+
return el === this.el || this.el.contains(el) || ((_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.contains(el));
|
|
610
|
+
}
|
|
354
611
|
announceError() {
|
|
355
612
|
if (this.errorMessage) {
|
|
356
613
|
setTimeout(() => this.announce(this.errorMessage), 100);
|
|
@@ -366,8 +623,41 @@ const Select = class {
|
|
|
366
623
|
this.wmSelectBlurred.emit();
|
|
367
624
|
}
|
|
368
625
|
}
|
|
626
|
+
// on search field or select all. keydown on options is handled via events.
|
|
627
|
+
handleKeyDown(ev) {
|
|
628
|
+
const el = ev.target;
|
|
629
|
+
switch (ev.key) {
|
|
630
|
+
case "ArrowDown":
|
|
631
|
+
ev.preventDefault();
|
|
632
|
+
this.moveDown(ev.target);
|
|
633
|
+
break;
|
|
634
|
+
case "ArrowUp":
|
|
635
|
+
ev.preventDefault();
|
|
636
|
+
this.moveUp(ev.target);
|
|
637
|
+
break;
|
|
638
|
+
case "Escape":
|
|
639
|
+
ev.preventDefault();
|
|
640
|
+
this.close();
|
|
641
|
+
break;
|
|
642
|
+
case "Enter":
|
|
643
|
+
if (el === this.selectAllEl) {
|
|
644
|
+
ev.preventDefault();
|
|
645
|
+
this.handleSelectAllClick();
|
|
646
|
+
this.close();
|
|
647
|
+
}
|
|
648
|
+
break;
|
|
649
|
+
case " ":
|
|
650
|
+
if (el === this.selectAllEl) {
|
|
651
|
+
ev.preventDefault();
|
|
652
|
+
this.handleSelectAllClick();
|
|
653
|
+
}
|
|
654
|
+
break;
|
|
655
|
+
}
|
|
656
|
+
}
|
|
369
657
|
setButtonText() {
|
|
370
|
-
this.displayedOptions = this.childOptions
|
|
658
|
+
this.displayedOptions = this.childOptions
|
|
659
|
+
.filter((x) => x.selected)
|
|
660
|
+
.map((y) => (!y.classList.contains("hidden") ? y : this.findCorrespondingOption(y)));
|
|
371
661
|
// handle overflow + counter for multiselect
|
|
372
662
|
if (this.multiple) {
|
|
373
663
|
// this is a fixed measurement accounting for the max width of a 3 character overflow counter
|
|
@@ -411,6 +701,21 @@ const Select = class {
|
|
|
411
701
|
return (index.h("span", null, index.h("span", { class: "overflow-counter" }, "+", this.overflowCount)));
|
|
412
702
|
}
|
|
413
703
|
}
|
|
704
|
+
renderSearchField() {
|
|
705
|
+
return (index.h("div", { class: "search" }, index.h("div", { class: "searchfield-wrapper", ref: (el) => (this.searchFieldWrapperEl = el) }, index.h("div", { class: "icon" }), index.h("input", { ref: (el) => (this.searchFieldEl = el), class: "searchfield", role: "combobox", "aria-controls": "list", "aria-expanded": this.isExpanded ? "true" : "false", onKeyDown: (ev) => this.handleKeyDown(ev), onFocus: () => this.searchFieldWrapperEl.classList.add("focus"), onBlur: (ev) => this.handleSearchFieldBlur(ev), onInput: () => this.debouncedSearch(), placeholder: this.searchPlaceholder }))));
|
|
706
|
+
}
|
|
707
|
+
renderSearchFailedMessage() {
|
|
708
|
+
return index.h("div", { class: "search-results-message" }, this.noResultsFoundMessage);
|
|
709
|
+
}
|
|
710
|
+
renderSelectAllButton() {
|
|
711
|
+
return (index.h("button", { ref: (el) => (this.selectAllEl = el), class: "select-all", onClick: () => this.handleSelectAllClick(), onKeyDown: (ev) => this.handleKeyDown(ev), tabindex: "-1" }, this.allSelected ? this.deselectAllMessage : this.selectAllMessage));
|
|
712
|
+
}
|
|
713
|
+
renderCloneOptions() {
|
|
714
|
+
return Array.from(this.el.children).map((o) => {
|
|
715
|
+
const option = o;
|
|
716
|
+
return (index.h("wm-option", { class: "clone", subinfo: option.subinfo, selected: option.selected }, option.textContent));
|
|
717
|
+
});
|
|
718
|
+
}
|
|
414
719
|
render() {
|
|
415
720
|
const showSubinfo = !this.multiple && this.selectedOptions.length > 0 && this.selectedOptions[0].subinfo;
|
|
416
721
|
const buttonProps = {
|
|
@@ -424,7 +729,7 @@ const Select = class {
|
|
|
424
729
|
};
|
|
425
730
|
return (index.h(index.Host, { onBlur: (ev) => this.handleComponentBlur(ev) }, index.h("div", { class: `wrapper ${functions.getTextDir()} label-${this.labelPosition} ${this.errorMessage ? "invalid" : ""}` }, index.h("div", { class: "label-wrapper" }, index.h("label", { class: "label", id: "label", htmlFor: "selectbtn" }, this.label,
|
|
426
731
|
// we can't use aria-required or required attributes because it's invalid on the elements we're using (button controlling a listbox)
|
|
427
|
-
this.requiredField ? (index.h("span", { class: "required" }, index.h("span", { class: "sr-only" }, intl.globalMessages.requiredField), index.h("span", { "aria-hidden": "true" }, "*"))) : (""))), index.h("div", { class: "button-wrapper" }, index.h("button", Object.assign({}, buttonProps, { class: "displayedoption", ref: (el) => (this.buttonEl = el), onBlur: (ev) => this.handleButtonBlur(ev), onFocus: () => this.close() }), index.h("span", { class: `overflowcontrol ${showSubinfo ? "hassubinfo" : ""}` }, index.h("span", { class: "button-text" }, this.renderButtonText()), showSubinfo && index.h("span", { class: "subinfo" }, this.selectedOptions[0].subinfo)), this.renderOverflowCount()), index.h("div", { class: `dropdown ${this.isExpanded ? "open" : ""} ${this.openUp ? "upwards" : ""}`, ref: (el) => (this.dropdownEl = el) }, index.h("
|
|
732
|
+
this.requiredField ? (index.h("span", { class: "required" }, index.h("span", { class: "sr-only" }, intl.globalMessages.requiredField), index.h("span", { "aria-hidden": "true" }, "*"))) : (""))), index.h("div", { class: "button-wrapper" }, index.h("button", Object.assign({}, buttonProps, { class: "displayedoption", ref: (el) => (this.buttonEl = el), onBlur: (ev) => this.handleButtonBlur(ev), onFocus: () => this.close() }), index.h("span", { class: `overflowcontrol ${showSubinfo ? "hassubinfo" : ""}` }, index.h("span", { class: "button-text" }, this.renderButtonText()), showSubinfo && index.h("span", { class: "subinfo" }, this.selectedOptions[0].subinfo)), this.renderOverflowCount()), index.h("div", { class: `dropdown ${this.isExpanded ? "open" : ""} ${this.openUp ? "upwards" : ""}`, ref: (el) => (this.dropdownEl = el) }, this.search && this.renderSearchField(), this.visibleSelectAllButton && this.renderSelectAllButton(), index.h("div", { id: "list", class: "options-wrapper", tabindex: -1, role: "listbox", "aria-multiselectable": this.multiple ? "true" : null, "aria-labelledby": "label", ref: (el) => (this.listboxEl = el) }, this.search && this.filteredOptions.length === 0 && this.renderSearchFailedMessage(), this.multiple && this.renderCloneOptions(), index.h("slot", null))), index.h("div", { id: "error", class: this.errorMessage ? "error-message" : "" }, this.errorMessage), index.h("div", { id: "announcement", "aria-live": "polite", "aria-atomic": "true", class: "sr-only", ref: (el) => (this.liveRegionEl = el) }, this.announcement)))));
|
|
428
733
|
}
|
|
429
734
|
static get delegatesFocus() { return true; }
|
|
430
735
|
get el() { return index.getElement(this); }
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-e86c28b6.js');
|
|
6
|
-
const functions = require('./functions-
|
|
6
|
+
const functions = require('./functions-04149f6d.js');
|
|
7
7
|
|
|
8
8
|
const wmPaginationCss = ":host,wm-pagination{--wmcolor-pagination-arrow-disabled:var(--wmcolor-interactive-disabled);--wmcolor-pagination-arrow:var(--wmcolor-interactive);--wmcolor-pagination-arrow:var(--wmcolor-interactive);--wmcolor-pagination-button-text-disabled:var(--wmcolor-interactive-disabled);--wmcolor-pagination-button-text:var(--wmcolor-interactive);--wmcolor-pagination-current-background-hover:var(--wmcolor-interactive-hover);--wmcolor-pagination-current-background:var(--wmcolor-interactive);--wmcolor-pagination-current-text:var(--wmcolor-interactive-text);--wmcolor-pagination-focus:var(--wmcolor-interactive-focus);display:block}nav .largescreen,nav .smallscreen{margin-bottom:0.625rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:flex-end;-ms-flex-pack:flex-end;-webkit-justify-content:flex-end;justify-content:flex-end;font-size:0.875rem}nav .largescreen .pageview,nav .smallscreen .pageview{font-size:0.875rem;margin:0 0.625rem}nav .largescreen .paginationbtn,nav .smallscreen .paginationbtn{position:relative;-ms-transition:none;-webkit-transition:none;-moz-transition:none;transition:none;border:none;color:var(--wmcolor-pagination-button-text);background-color:transparent;margin:0;padding:0;height:2.5rem;width:2.5rem;font-family:inherit;letter-spacing:0.3px;font-size:0.875rem;font-weight:500;cursor:pointer;text-transform:none;border-radius:50%}nav .largescreen .paginationbtn svg *,nav .smallscreen .paginationbtn svg *{fill:var(--wmcolor-pagination-arrow)}nav .largescreen .paginationbtn:hover:not([aria-current=page]):not([disabled]),nav .smallscreen .paginationbtn:hover:not([aria-current=page]):not([disabled]){text-decoration:underline}nav .largescreen .paginationbtn:focus,nav .smallscreen .paginationbtn:focus{outline:none}nav .largescreen .paginationbtn::-moz-focus-inner,nav .smallscreen .paginationbtn::-moz-focus-inner{border:0;outline:none}nav .largescreen .paginationbtn[disabled],nav .smallscreen .paginationbtn[disabled]{color:var(--wmcolor-pagination-button-text-disabled);pointer-events:none}nav .largescreen .paginationbtn[disabled] svg *,nav .smallscreen .paginationbtn[disabled] svg *{fill:var(--wmcolor-pagination-arrow-disabled)}nav .largescreen .previousbtn,nav .smallscreen .previousbtn{margin-right:0.625rem}nav .largescreen .nextbtn,nav .smallscreen .nextbtn{margin-left:0.625rem;margin-right:0}nav .largescreen .previousbtn,nav .largescreen .nextbtn,nav .smallscreen .previousbtn,nav .smallscreen .nextbtn{width:auto !important;border-radius:unset;-ms-transition:none;-webkit-transition:none;-moz-transition:none;transition:none}nav .largescreen .ellipsis,nav .smallscreen .ellipsis{display:inline-block;width:2.5rem;text-align:center}nav .largescreen .paginationbtn:focus-visible,nav .smallscreen .paginationbtn:focus-visible{outline:3px solid var(--wmcolor-interactive-focus);outline-offset:-2px}nav .largescreen .paginationbtn:focus-visible.previousbtn:before,nav .smallscreen .paginationbtn:focus-visible.previousbtn:before{left:0 !important}nav .largescreen .paginationbtn:focus-visible.nextbtn:before,nav .smallscreen .paginationbtn:focus-visible.nextbtn:before{left:0 !important}nav .largescreen .paginationbtn:focus-visible[aria-current=page],nav .largescreen .paginationbtn:focus-visible.previousbtn,nav .largescreen .paginationbtn:focus-visible.nextbtn,nav .smallscreen .paginationbtn:focus-visible[aria-current=page],nav .smallscreen .paginationbtn:focus-visible.previousbtn,nav .smallscreen .paginationbtn:focus-visible.nextbtn{outline-offset:2px}nav .largescreen :focus-visible:not([aria-current=page]).previousbtn:focus:before{width:56px !important}nav .largescreen :focus-visible:not([aria-current=page]).nextbtn:focus:before{width:32px !important}nav .largescreen .paginationbtn[aria-current=page]{-webkit-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;border-radius:50%;-webkit-box-shadow:0 0 4px 0 rgba(0, 0, 0, 0.14), 0 3px 4px 0 rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);box-shadow:0 0 4px 0 rgba(0, 0, 0, 0.14), 0 3px 4px 0 rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);background:var(--wmcolor-pagination-current-background);color:var(--wmcolor-pagination-current-text)}nav .largescreen .paginationbtn[aria-current=page]:hover{background:var(--wmcolor-pagination-current-background-hover)}.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;border:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;white-space:nowrap !important;margin:-1px !important}";
|
|
9
9
|
|