@aurodesignsystem-dev/auro-formkit 0.0.0-pr624.6 → 0.0.0-pr624.61
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/components/bibtemplate/dist/auro-bibtemplate.d.ts +12 -2
- package/components/bibtemplate/dist/buttonVersion.d.ts +2 -0
- package/components/bibtemplate/dist/iconVersion.d.ts +1 -1
- package/components/bibtemplate/dist/index.js +1214 -83
- package/components/bibtemplate/dist/registered.js +1214 -83
- package/components/checkbox/README.md +1 -1
- package/components/checkbox/demo/api.html +16 -10
- package/components/checkbox/demo/api.md +47 -14
- package/components/checkbox/demo/api.min.js +65 -42
- package/components/checkbox/demo/index.html +16 -10
- package/components/checkbox/demo/index.md +2 -2
- package/components/checkbox/demo/index.min.js +65 -42
- package/components/checkbox/demo/readme.html +16 -9
- package/components/checkbox/demo/readme.md +1 -1
- package/components/checkbox/dist/auro-checkbox-group.d.ts +1 -1
- package/components/checkbox/dist/auro-checkbox.d.ts +3 -3
- package/components/checkbox/dist/index.js +65 -42
- package/components/checkbox/dist/registered.js +65 -42
- package/components/combobox/demo/api.html +16 -10
- package/components/combobox/demo/api.md +113 -8
- package/components/combobox/demo/api.min.js +3052 -926
- package/components/combobox/demo/index.html +16 -10
- package/components/combobox/demo/index.md +6 -30
- package/components/combobox/demo/index.min.js +3052 -926
- package/components/combobox/demo/readme.html +16 -9
- package/components/combobox/dist/auro-combobox.d.ts +42 -8
- package/components/combobox/dist/index.js +2773 -743
- package/components/combobox/dist/registered.js +2773 -743
- package/components/counter/demo/api.html +17 -10
- package/components/counter/demo/api.md +156 -21
- package/components/counter/demo/api.min.js +6728 -4118
- package/components/counter/demo/index.html +17 -10
- package/components/counter/demo/index.md +185 -34
- package/components/counter/demo/index.min.js +6728 -4118
- package/components/counter/demo/readme.html +16 -9
- package/components/counter/dist/auro-counter-button.d.ts +2 -0
- package/components/counter/dist/auro-counter-group.d.ts +151 -11
- package/components/counter/dist/auro-counter.d.ts +16 -0
- package/components/counter/dist/helptextVersion.d.ts +2 -0
- package/components/counter/dist/iconVersion.d.ts +1 -1
- package/components/counter/dist/index.js +6728 -4118
- package/components/counter/dist/registered.js +6728 -4118
- package/components/datepicker/demo/api.html +16 -10
- package/components/datepicker/demo/api.md +25 -16
- package/components/datepicker/demo/api.min.js +11540 -7985
- package/components/datepicker/demo/index.html +16 -10
- package/components/datepicker/demo/index.md +71 -4
- package/components/datepicker/demo/index.min.js +11540 -7985
- package/components/datepicker/demo/readme.html +16 -9
- package/components/datepicker/dist/auro-datepicker.d.ts +89 -11
- package/components/datepicker/dist/buttonVersion.d.ts +1 -1
- package/components/datepicker/dist/iconVersion.d.ts +2 -0
- package/components/datepicker/dist/index.js +11603 -8048
- package/components/datepicker/dist/popoverVersion.d.ts +1 -1
- package/components/datepicker/dist/registered.js +11603 -8048
- package/components/dropdown/demo/api.html +16 -10
- package/components/dropdown/demo/api.md +81 -274
- package/components/dropdown/demo/api.min.js +429 -195
- package/components/dropdown/demo/index.html +16 -10
- package/components/dropdown/demo/index.md +92 -362
- package/components/dropdown/demo/index.min.js +429 -195
- package/components/dropdown/demo/readme.html +16 -9
- package/components/dropdown/dist/auro-dropdown.d.ts +41 -76
- package/components/dropdown/dist/auro-dropdownBib.d.ts +14 -0
- package/components/dropdown/dist/index.js +429 -195
- package/components/dropdown/dist/registered.js +429 -195
- package/components/form/demo/api.html +16 -9
- package/components/form/demo/api.min.js +1 -1
- package/components/form/demo/autocomplete.html +19 -3
- package/components/form/demo/index.html +16 -9
- package/components/form/demo/index.min.js +1 -1
- package/components/form/demo/readme.html +16 -9
- package/components/form/demo/working.html +19 -13
- package/components/form/dist/index.js +1 -1
- package/components/form/dist/registered.js +1 -1
- package/components/helptext/dist/index.js +2 -2
- package/components/helptext/dist/registered.js +2 -2
- package/components/input/README.md +5 -2
- package/components/input/demo/api.html +16 -10
- package/components/input/demo/api.md +228 -130
- package/components/input/demo/api.min.js +853 -241
- package/components/input/demo/index.html +16 -10
- package/components/input/demo/index.md +48 -32
- package/components/input/demo/index.min.js +853 -241
- package/components/input/demo/readme.html +16 -9
- package/components/input/demo/readme.md +5 -2
- package/components/input/dist/auro-input.d.ts +3 -3
- package/components/input/dist/base-input.d.ts +38 -10
- package/components/input/dist/buttonVersion.d.ts +1 -1
- package/components/input/dist/iconVersion.d.ts +1 -1
- package/components/input/dist/index.js +853 -241
- package/components/input/dist/registered.js +853 -241
- package/components/layoutElement/dist/index.js +13 -10
- package/components/menu/demo/api.html +32 -10
- package/components/menu/demo/api.md +69 -8
- package/components/menu/demo/api.min.js +238 -47
- package/components/menu/demo/index.html +16 -10
- package/components/menu/demo/index.min.js +238 -47
- package/components/menu/demo/readme.html +16 -9
- package/components/menu/dist/auro-menu.d.ts +41 -7
- package/components/menu/dist/auro-menuoption.d.ts +15 -3
- package/components/menu/dist/iconVersion.d.ts +1 -1
- package/components/menu/dist/index.js +238 -47
- package/components/menu/dist/registered.js +238 -47
- package/components/menu/dist/styles/default/style-menuoption-css.d.ts +2 -0
- package/components/menu/dist/styles/default/tokens-css.d.ts +2 -0
- package/components/radio/demo/api.html +16 -10
- package/components/radio/demo/api.md +7 -8
- package/components/radio/demo/api.min.js +88 -90
- package/components/radio/demo/index.html +16 -10
- package/components/radio/demo/index.min.js +88 -90
- package/components/radio/demo/readme.html +16 -9
- package/components/radio/dist/auro-radio-group.d.ts +1 -1
- package/components/radio/dist/auro-radio.d.ts +9 -12
- package/components/radio/dist/index.js +88 -90
- package/components/radio/dist/registered.js +88 -90
- package/components/select/demo/api.html +16 -10
- package/components/select/demo/api.js +0 -2
- package/components/select/demo/api.md +104 -57
- package/components/select/demo/api.min.js +2123 -644
- package/components/select/demo/index.html +16 -11
- package/components/select/demo/index.md +45 -158
- package/components/select/demo/index.min.js +2123 -632
- package/components/select/demo/readme.html +16 -9
- package/components/select/dist/auro-select.d.ts +57 -16
- package/components/select/dist/index.js +2047 -652
- package/components/select/dist/registered.js +2047 -652
- package/package.json +29 -26
- /package/components/{datepicker/dist/styles/emphasized/style-css.d.ts → counter/dist/styles/shapeSize-css.d.ts} +0 -0
- /package/components/{dropdown/dist/styles/default → datepicker/dist/styles/snowflake}/color-css.d.ts +0 -0
- /package/components/{dropdown/dist/styles/default → datepicker/dist/styles/snowflake}/style-css.d.ts +0 -0
- /package/components/dropdown/dist/styles/{default → classic}/bibColors-css.d.ts +0 -0
- /package/components/dropdown/dist/styles/{default → classic}/bibStyles-css.d.ts +0 -0
- /package/components/{menu/dist/styles/color-menu-css.d.ts → dropdown/dist/styles/classic/color-css.d.ts} +0 -0
- /package/components/{menu/dist/styles/color-menuoption-css.d.ts → dropdown/dist/styles/classic/style-css.d.ts} +0 -0
- /package/components/menu/dist/styles/{style-menu-css.d.ts → default/color-menu-css.d.ts} +0 -0
- /package/components/menu/dist/styles/{style-menuoption-css.d.ts → default/color-menuoption-css.d.ts} +0 -0
- /package/components/menu/dist/styles/{tokens-css.d.ts → default/style-menu-css.d.ts} +0 -0
|
@@ -90,17 +90,6 @@ function auroMenuLoadingExample() {
|
|
|
90
90
|
});
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
function valueTextExample() {
|
|
94
|
-
const onValueTextSelectInput = (e) => {
|
|
95
|
-
const valueText = e.target.querySelector("[slot=valueText]");
|
|
96
|
-
|
|
97
|
-
valueText.textContent = e.detail.optionSelected.dataset.display;
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
const select = document.querySelector("#valueTextExample");
|
|
101
|
-
select.addEventListener('input', onValueTextSelectInput);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
93
|
/**
|
|
105
94
|
* @license
|
|
106
95
|
* Copyright 2019 Google LLC
|
|
@@ -147,7 +136,7 @@ const t={ATTRIBUTE:1},e$1=t=>(...e)=>({_$litDirective$:t,values:e});let i$1 = cl
|
|
|
147
136
|
*/
|
|
148
137
|
const a=Symbol.for(""),o$1=t=>{if(t?.r===a)return t?._$litStatic$},s=t=>({_$litStatic$:t,r:a}),i=(t,...r)=>({_$litStatic$:r.reduce(((r,e,a)=>r+(t=>{if(void 0!==t._$litStatic$)return t._$litStatic$;throw Error(`Value passed to 'literal' function must be a 'literal' result: ${t}. Use 'unsafeStatic' to pass non-literal values, but\n take care to ensure page security.`)})(e)+t[a+1]),t[0]),r:a}),l=new Map,n=t=>(r,...e)=>{const a=e.length;let s,i;const n=[],u=[];let c,$=0,f=false;for(;$<a;){for(c=r[$];$<a&&void 0!==(i=e[$],s=o$1(i));)c+=s+r[++$],f=true;$!==a&&u.push(i),n.push(c),$++;}if($===a&&n.push(r[a]),f){const t=n.join("$$lit$$");void 0===(r=l.get(t))&&(n.raw=n,l.set(t,r=n)),e=u;}return t(r,...e)},u=n(x);
|
|
149
138
|
|
|
150
|
-
let AuroElement$
|
|
139
|
+
let AuroElement$4 = class AuroElement extends i$2 {
|
|
151
140
|
static get properties() {
|
|
152
141
|
return {
|
|
153
142
|
|
|
@@ -182,18 +171,21 @@ let AuroElement$3 = class AuroElement extends i$2 {
|
|
|
182
171
|
}
|
|
183
172
|
|
|
184
173
|
resetShapeClasses() {
|
|
185
|
-
|
|
186
|
-
const wrapper = this.shadowRoot.querySelector('.wrapper');
|
|
174
|
+
const wrapper = this.shadowRoot.querySelector('.wrapper');
|
|
187
175
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
176
|
+
if (wrapper) {
|
|
177
|
+
wrapper.classList.forEach((className) => {
|
|
178
|
+
if (className.startsWith('shape-')) {
|
|
179
|
+
wrapper.classList.remove(className);
|
|
180
|
+
}
|
|
181
|
+
});
|
|
194
182
|
|
|
195
|
-
|
|
196
|
-
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
if (this.shape && this.size) {
|
|
186
|
+
wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
|
|
187
|
+
} else {
|
|
188
|
+
wrapper.classList.add('shape-none');
|
|
197
189
|
}
|
|
198
190
|
}
|
|
199
191
|
|
|
@@ -239,9 +231,9 @@ let AuroElement$3 = class AuroElement extends i$2 {
|
|
|
239
231
|
}
|
|
240
232
|
};
|
|
241
233
|
|
|
242
|
-
var shapeSizeCss$1 = i$5`.wrapper{overflow:hidden}.shape-classic-xl,.shape-classic-lg,.shape-classic-md,.shape-classic-sm,.shape-classic-xs{min-height:58px;max-height:58px;border-style:solid;border-width:1px;border-radius:var(--ds-border-radius, 0.375rem)}.shape-classic-xl.simple,.shape-classic-lg.simple,.shape-classic-md.simple,.shape-classic-sm.simple,.shape-classic-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset}.shape-classic-xl.thin,.shape-classic-lg.thin,.shape-classic-md.thin,.shape-classic-sm.thin,.shape-classic-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-classic-xl.parentBorder,.shape-classic-lg.parentBorder,.shape-classic-md.parentBorder,.shape-classic-sm.parentBorder,.shape-classic-xs.parentBorder{border:0;min-height:56px;max-height:56px}.shape-snowflake-xl,.shape-snowflake-lg,.shape-snowflake-md,.shape-snowflake-sm,.shape-snowflake-xs{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:30px}.shape-snowflake-xl.simple,.shape-snowflake-lg.simple,.shape-snowflake-md.simple,.shape-snowflake-sm.simple,.shape-snowflake-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset}.shape-snowflake-xl.thin,.shape-snowflake-lg.thin,.shape-snowflake-md.thin,.shape-snowflake-sm.thin,.shape-snowflake-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-snowflake-xl.parentBorder,.shape-snowflake-lg.parentBorder,.shape-snowflake-md.parentBorder,.shape-snowflake-sm.parentBorder,.shape-snowflake-xs.parentBorder{border:0;min-height:56px;max-height:56px}.shape-box-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent}.shape-box-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset}.shape-box-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-box-xl.parentBorder{border:0;min-height:68px;max-height:68px}.shape-rounded-lg{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:6px}.shape-rounded-lg.simple{border-width:0px;min-height:56px;max-height:56px;background-color:unset}.shape-rounded-lg.thin{border-width:1px;min-height:54px;max-height:54px;background-color:unset}.shape-rounded-lg.parentBorder{border:0;min-height:52px;max-height:52px}.shape-pill-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset}.shape-pill-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-xl.parentBorder{border:0;min-height:68px;max-height:68px}.shape-pill-left-xl{min-height:
|
|
234
|
+
var shapeSizeCss$1 = i$5`.wrapper{overflow:hidden}.shape-classic-xl,.shape-classic-lg,.shape-classic-md,.shape-classic-sm,.shape-classic-xs{min-height:58px;max-height:58px;border-style:solid;border-width:1px;border-radius:var(--ds-border-radius, 0.375rem)}.shape-classic-xl.simple,.shape-classic-lg.simple,.shape-classic-md.simple,.shape-classic-sm.simple,.shape-classic-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset;box-shadow:none}.shape-classic-xl.thin,.shape-classic-lg.thin,.shape-classic-md.thin,.shape-classic-sm.thin,.shape-classic-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-classic-xl.parentBorder,.shape-classic-lg.parentBorder,.shape-classic-md.parentBorder,.shape-classic-sm.parentBorder,.shape-classic-xs.parentBorder{border:0;box-shadow:unset;min-height:56px;max-height:56px}.shape-snowflake-xl,.shape-snowflake-lg,.shape-snowflake-md,.shape-snowflake-sm,.shape-snowflake-xs{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:30px}.shape-snowflake-xl.simple,.shape-snowflake-lg.simple,.shape-snowflake-md.simple,.shape-snowflake-sm.simple,.shape-snowflake-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset;box-shadow:none}.shape-snowflake-xl.thin,.shape-snowflake-lg.thin,.shape-snowflake-md.thin,.shape-snowflake-sm.thin,.shape-snowflake-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-snowflake-xl.parentBorder,.shape-snowflake-lg.parentBorder,.shape-snowflake-md.parentBorder,.shape-snowflake-sm.parentBorder,.shape-snowflake-xs.parentBorder{border:0;box-shadow:unset;min-height:56px;max-height:56px}.shape-box-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent}.shape-box-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-box-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-box-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-rounded-lg{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:6px}.shape-rounded-lg.simple{border-width:0px;min-height:56px;max-height:56px;background-color:unset;box-shadow:none}.shape-rounded-lg.thin{border-width:1px;min-height:54px;max-height:54px;background-color:unset}.shape-rounded-lg.parentBorder{border:0;box-shadow:unset;min-height:52px;max-height:52px}.shape-pill-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-left-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px 0 0 36px}.shape-pill-left-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-left-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-left-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-right-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:0 36px 36px 0}.shape-pill-right-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-right-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-right-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}.shape-pill-left-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px 0 0 36px}.shape-pill-left-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-left-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-left-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}.shape-pill-right-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:0 36px 36px 0}.shape-pill-right-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-right-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-right-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}`;
|
|
243
235
|
|
|
244
|
-
var tokensCss$5 = i$5`:host(:not([ondark])){--ds-auro-select-border-color: var(--ds-basic-color-border-bold, #585e67);--ds-auro-select-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-select-label-text-color: var(--ds-basic-color-texticon-muted, #676767);--ds-auro-select-placeholder-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-select-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-select-error-icon-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-select-outline-color: transparent}:host([ondark]){--ds-auro-select-border-color: var(--ds-basic-color-border-inverse, #ffffff);--ds-auro-select-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-select-label-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-select-placeholder-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-select-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-select-error-icon-color: var(--ds-
|
|
236
|
+
var tokensCss$5 = i$5`:host(:not([ondark])){--ds-auro-select-border-color: var(--ds-basic-color-border-bold, #585e67);--ds-auro-select-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-select-label-text-color: var(--ds-basic-color-texticon-muted, #676767);--ds-auro-select-placeholder-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-select-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-select-error-icon-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-select-outline-color: transparent}:host([ondark]){--ds-auro-select-border-color: var(--ds-basic-color-border-inverse, #ffffff);--ds-auro-select-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-select-label-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-select-placeholder-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-select-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-select-error-icon-color: var(--ds-basic-color-status-error-subtle, #fbc6c6);--ds-auro-select-outline-color: transparent}`;
|
|
245
237
|
|
|
246
238
|
class DateFormatter {
|
|
247
239
|
|
|
@@ -659,7 +651,7 @@ const {
|
|
|
659
651
|
|
|
660
652
|
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
661
653
|
|
|
662
|
-
let AuroLibraryRuntimeUtils$
|
|
654
|
+
let AuroLibraryRuntimeUtils$6 = class AuroLibraryRuntimeUtils {
|
|
663
655
|
|
|
664
656
|
/* eslint-disable jsdoc/require-param */
|
|
665
657
|
|
|
@@ -729,7 +721,7 @@ let AuroLibraryRuntimeUtils$4 = class AuroLibraryRuntimeUtils {
|
|
|
729
721
|
class AuroFormValidation {
|
|
730
722
|
|
|
731
723
|
constructor() {
|
|
732
|
-
this.runtimeUtils = new AuroLibraryRuntimeUtils$
|
|
724
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$6();
|
|
733
725
|
}
|
|
734
726
|
|
|
735
727
|
/**
|
|
@@ -789,19 +781,19 @@ class AuroFormValidation {
|
|
|
789
781
|
{
|
|
790
782
|
check: (e) => e.value?.length > 0 && e.value?.length < e.minLength,
|
|
791
783
|
validity: 'tooShort',
|
|
792
|
-
message: e => e.setCustomValidityTooShort || e.setCustomValidity || ''
|
|
784
|
+
message: e => e.getAttribute('setCustomValidityTooShort') || e.setCustomValidity || ''
|
|
793
785
|
},
|
|
794
786
|
{
|
|
795
787
|
check: (e) => e.value?.length > e.maxLength,
|
|
796
788
|
validity: 'tooLong',
|
|
797
|
-
message: e => e.setCustomValidityTooLong || e.setCustomValidity || ''
|
|
789
|
+
message: e => e.getAttribute('setCustomValidityTooLong') || e.setCustomValidity || ''
|
|
798
790
|
}
|
|
799
791
|
],
|
|
800
792
|
pattern: [
|
|
801
793
|
{
|
|
802
794
|
check: (e) => e.pattern && !new RegExp(`^${e.pattern}$`, 'u').test(e.value),
|
|
803
795
|
validity: 'patternMismatch',
|
|
804
|
-
message: e => e.setCustomValidityPatternMismatch || e.setCustomValidity || ''
|
|
796
|
+
message: e => e.getAttribute('setCustomValidityPatternMismatch') || e.setCustomValidity || ''
|
|
805
797
|
}
|
|
806
798
|
]
|
|
807
799
|
},
|
|
@@ -948,13 +940,24 @@ class AuroFormValidation {
|
|
|
948
940
|
this.getInputElements(elem);
|
|
949
941
|
this.getAuroInputs(elem);
|
|
950
942
|
|
|
951
|
-
//
|
|
943
|
+
// Check if validation should run
|
|
952
944
|
let validationShouldRun =
|
|
945
|
+
|
|
946
|
+
// If the validation was forced
|
|
953
947
|
force ||
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
948
|
+
|
|
949
|
+
// If the validation should run on input
|
|
950
|
+
elem.validateOnInput ||
|
|
951
|
+
|
|
952
|
+
// State-based checks
|
|
953
|
+
(
|
|
954
|
+
// Element is not currently focused
|
|
955
|
+
!elem.contains(document.activeElement) && // native input is not focused directly
|
|
956
|
+
!document.activeElement.shadowRoot?.contains(elem) && // native input is not focused in the shadow DOM of another component
|
|
957
|
+
|
|
958
|
+
// And element has been touched or is untouched but has a value
|
|
959
|
+
( elem.touched || (!elem.touched && typeof elem.value !== "undefined") )
|
|
960
|
+
);
|
|
958
961
|
|
|
959
962
|
if (elem.hasAttribute('error')) {
|
|
960
963
|
elem.validity = 'customError';
|
|
@@ -996,10 +999,10 @@ class AuroFormValidation {
|
|
|
996
999
|
if (!hasValue && elem.required && elem.touched) {
|
|
997
1000
|
elem.validity = 'valueMissing';
|
|
998
1001
|
elem.errorMessage = elem.setCustomValidityValueMissing || elem.setCustomValidity || '';
|
|
999
|
-
} else if (this.runtimeUtils.elementMatch(elem, 'auro-input')) {
|
|
1002
|
+
} else if (hasValue && this.runtimeUtils.elementMatch(elem, 'auro-input')) {
|
|
1000
1003
|
this.validateType(elem);
|
|
1001
1004
|
this.validateElementAttributes(elem);
|
|
1002
|
-
} else if (this.runtimeUtils.elementMatch(elem, 'auro-counter') || this.runtimeUtils.elementMatch(elem, 'auro-counter-group')) {
|
|
1005
|
+
} else if (hasValue && (this.runtimeUtils.elementMatch(elem, 'auro-counter') || this.runtimeUtils.elementMatch(elem, 'auro-counter-group'))) {
|
|
1003
1006
|
this.validateElementAttributes(elem);
|
|
1004
1007
|
}
|
|
1005
1008
|
}
|
|
@@ -1008,7 +1011,9 @@ class AuroFormValidation {
|
|
|
1008
1011
|
elem.validity = this.auroInputElements[0].validity;
|
|
1009
1012
|
elem.errorMessage = this.auroInputElements[0].errorMessage;
|
|
1010
1013
|
|
|
1011
|
-
|
|
1014
|
+
// combobox has 2 inputs but no need to check validity on the 2nd one which is in fullscreen bib.
|
|
1015
|
+
// combobox's 2nd input will have noValidate set true.
|
|
1016
|
+
if (elem.validity === 'valid' && this.auroInputElements.length > 1 && !this.auroInputElements[1].noValidate) {
|
|
1012
1017
|
elem.validity = this.auroInputElements[1].validity;
|
|
1013
1018
|
elem.errorMessage = this.auroInputElements[1].errorMessage;
|
|
1014
1019
|
}
|
|
@@ -2820,7 +2825,7 @@ class AuroFloatingUI {
|
|
|
2820
2825
|
*/
|
|
2821
2826
|
mirrorSize() {
|
|
2822
2827
|
// mirror the boxsize from bibSizer
|
|
2823
|
-
if (this.element.bibSizer) {
|
|
2828
|
+
if (this.element.bibSizer && this.element.matchWidth) {
|
|
2824
2829
|
const sizerStyle = window.getComputedStyle(this.element.bibSizer);
|
|
2825
2830
|
const bibContent = this.element.bib.shadowRoot.querySelector(".container");
|
|
2826
2831
|
if (sizerStyle.width !== '0px') {
|
|
@@ -3032,13 +3037,13 @@ class AuroFloatingUI {
|
|
|
3032
3037
|
if (this.element.contains(activeElement) || this.element.bib?.contains(activeElement)) {
|
|
3033
3038
|
return;
|
|
3034
3039
|
}
|
|
3035
|
-
|
|
3040
|
+
|
|
3036
3041
|
// if fullscreen bib is in fullscreen mode, do not close
|
|
3037
3042
|
if (this.element.bib.hasAttribute('isfullscreen')) {
|
|
3038
3043
|
return;
|
|
3039
3044
|
}
|
|
3040
3045
|
|
|
3041
|
-
this.hideBib();
|
|
3046
|
+
this.hideBib("keydown");
|
|
3042
3047
|
}
|
|
3043
3048
|
|
|
3044
3049
|
setupHideHandlers() {
|
|
@@ -3063,7 +3068,7 @@ class AuroFloatingUI {
|
|
|
3063
3068
|
document.expandedAuroFormkitDropdown = null;
|
|
3064
3069
|
document.expandedAuroFloater = this;
|
|
3065
3070
|
} else {
|
|
3066
|
-
this.hideBib();
|
|
3071
|
+
this.hideBib("click");
|
|
3067
3072
|
}
|
|
3068
3073
|
}
|
|
3069
3074
|
};
|
|
@@ -3076,7 +3081,7 @@ class AuroFloatingUI {
|
|
|
3076
3081
|
// if something else is open, let it handle itself
|
|
3077
3082
|
return;
|
|
3078
3083
|
}
|
|
3079
|
-
this.hideBib();
|
|
3084
|
+
this.hideBib("keydown");
|
|
3080
3085
|
}
|
|
3081
3086
|
};
|
|
3082
3087
|
|
|
@@ -3159,7 +3164,11 @@ class AuroFloatingUI {
|
|
|
3159
3164
|
}
|
|
3160
3165
|
}
|
|
3161
3166
|
|
|
3162
|
-
|
|
3167
|
+
/**
|
|
3168
|
+
* Hides the floating UI element.
|
|
3169
|
+
* @param {String} eventType - The event type that triggered the hiding action.
|
|
3170
|
+
*/
|
|
3171
|
+
hideBib(eventType = "unknown") {
|
|
3163
3172
|
if (!this.element.disabled && !this.element.noToggle) {
|
|
3164
3173
|
this.lockScroll(false);
|
|
3165
3174
|
this.element.triggerChevron?.removeAttribute('data-expanded');
|
|
@@ -3170,7 +3179,7 @@ class AuroFloatingUI {
|
|
|
3170
3179
|
if (this.showing) {
|
|
3171
3180
|
this.cleanupHideHandlers();
|
|
3172
3181
|
this.showing = false;
|
|
3173
|
-
this.dispatchEventDropdownToggle();
|
|
3182
|
+
this.dispatchEventDropdownToggle(eventType);
|
|
3174
3183
|
}
|
|
3175
3184
|
}
|
|
3176
3185
|
document.expandedAuroFloater = null;
|
|
@@ -3179,11 +3188,13 @@ class AuroFloatingUI {
|
|
|
3179
3188
|
/**
|
|
3180
3189
|
* @private
|
|
3181
3190
|
* @returns {void} Dispatches event with an object showing the state of the dropdown.
|
|
3191
|
+
* @param {String} eventType - The event type that triggered the toggle action.
|
|
3182
3192
|
*/
|
|
3183
|
-
dispatchEventDropdownToggle() {
|
|
3193
|
+
dispatchEventDropdownToggle(eventType) {
|
|
3184
3194
|
const event = new CustomEvent(this.eventPrefix ? `${this.eventPrefix}-toggled` : 'toggled', {
|
|
3185
3195
|
detail: {
|
|
3186
3196
|
expanded: this.showing,
|
|
3197
|
+
eventType: eventType || "unknown",
|
|
3187
3198
|
},
|
|
3188
3199
|
composed: true
|
|
3189
3200
|
});
|
|
@@ -3193,7 +3204,7 @@ class AuroFloatingUI {
|
|
|
3193
3204
|
|
|
3194
3205
|
handleClick() {
|
|
3195
3206
|
if (this.element.isPopoverVisible) {
|
|
3196
|
-
this.hideBib();
|
|
3207
|
+
this.hideBib("click");
|
|
3197
3208
|
} else {
|
|
3198
3209
|
this.showBib();
|
|
3199
3210
|
}
|
|
@@ -3216,8 +3227,9 @@ class AuroFloatingUI {
|
|
|
3216
3227
|
// Space is included as it's expected behavior for interactive elements
|
|
3217
3228
|
|
|
3218
3229
|
const origin = event.composedPath()[0];
|
|
3219
|
-
if (event.key === 'Enter' || (
|
|
3220
|
-
|
|
3230
|
+
if (event.key === 'Enter' || event.key === ' ' && (!origin || origin.tagName !== "INPUT")) {
|
|
3231
|
+
|
|
3232
|
+
event.preventDefault();
|
|
3221
3233
|
this.handleClick();
|
|
3222
3234
|
}
|
|
3223
3235
|
break;
|
|
@@ -3228,7 +3240,7 @@ class AuroFloatingUI {
|
|
|
3228
3240
|
break;
|
|
3229
3241
|
case 'mouseleave':
|
|
3230
3242
|
if (this.element.hoverToggle) {
|
|
3231
|
-
this.hideBib();
|
|
3243
|
+
this.hideBib("mouseleave");
|
|
3232
3244
|
}
|
|
3233
3245
|
break;
|
|
3234
3246
|
case 'focus':
|
|
@@ -3371,6 +3383,267 @@ class AuroFloatingUI {
|
|
|
3371
3383
|
}
|
|
3372
3384
|
}
|
|
3373
3385
|
|
|
3386
|
+
// Selectors for focusable elements
|
|
3387
|
+
const FOCUSABLE_SELECTORS = [
|
|
3388
|
+
'a[href]',
|
|
3389
|
+
'button:not([disabled])',
|
|
3390
|
+
'textarea:not([disabled])',
|
|
3391
|
+
'input:not([disabled])',
|
|
3392
|
+
'select:not([disabled])',
|
|
3393
|
+
'[role="tab"]:not([disabled])',
|
|
3394
|
+
'[role="link"]:not([disabled])',
|
|
3395
|
+
'[role="button"]:not([disabled])',
|
|
3396
|
+
'[tabindex]:not([tabindex="-1"])',
|
|
3397
|
+
'[contenteditable]:not([contenteditable="false"])'
|
|
3398
|
+
];
|
|
3399
|
+
|
|
3400
|
+
// List of custom components that are known to be focusable
|
|
3401
|
+
const FOCUSABLE_COMPONENTS = [
|
|
3402
|
+
'auro-checkbox',
|
|
3403
|
+
'auro-radio',
|
|
3404
|
+
'auro-dropdown',
|
|
3405
|
+
'auro-button',
|
|
3406
|
+
'auro-combobox',
|
|
3407
|
+
'auro-input',
|
|
3408
|
+
'auro-counter',
|
|
3409
|
+
'auro-menu',
|
|
3410
|
+
'auro-select',
|
|
3411
|
+
'auro-datepicker',
|
|
3412
|
+
'auro-hyperlink',
|
|
3413
|
+
'auro-accordion',
|
|
3414
|
+
];
|
|
3415
|
+
|
|
3416
|
+
/**
|
|
3417
|
+
* Determines if a given element is a custom focusable component.
|
|
3418
|
+
* Returns true if the element matches a known focusable component and is not disabled.
|
|
3419
|
+
*
|
|
3420
|
+
* @param {HTMLElement} element The element to check for focusability.
|
|
3421
|
+
* @returns {boolean} True if the element is a focusable custom component, false otherwise.
|
|
3422
|
+
*/
|
|
3423
|
+
function isFocusableComponent(element) {
|
|
3424
|
+
const componentName = element.tagName.toLowerCase();
|
|
3425
|
+
|
|
3426
|
+
// Guard Clause: Element is a focusable component
|
|
3427
|
+
if (!FOCUSABLE_COMPONENTS.some((name) => element.hasAttribute(name) || componentName === name)) return false;
|
|
3428
|
+
|
|
3429
|
+
// Guard Clause: Element is not disabled
|
|
3430
|
+
if (element.hasAttribute('disabled')) return false;
|
|
3431
|
+
|
|
3432
|
+
// Guard Clause: The element is a hyperlink and has no href attribute
|
|
3433
|
+
if (componentName.match("hyperlink") && !element.hasAttribute('href')) return false;
|
|
3434
|
+
|
|
3435
|
+
// If all guard clauses pass, the element is a focusable component
|
|
3436
|
+
return true;
|
|
3437
|
+
}
|
|
3438
|
+
|
|
3439
|
+
/**
|
|
3440
|
+
* Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
|
|
3441
|
+
* Returns a unique, ordered array of elements that can receive focus.
|
|
3442
|
+
*
|
|
3443
|
+
* @param {HTMLElement} container The container to search within
|
|
3444
|
+
* @returns {Array<HTMLElement>} An array of focusable elements within the container.
|
|
3445
|
+
*/
|
|
3446
|
+
function getFocusableElements(container) {
|
|
3447
|
+
// Get elements in DOM order by walking the tree
|
|
3448
|
+
const orderedFocusableElements = [];
|
|
3449
|
+
|
|
3450
|
+
// Define a recursive function to collect focusable elements in DOM order
|
|
3451
|
+
const collectFocusableElements = (root) => {
|
|
3452
|
+
// Check if current element is focusable
|
|
3453
|
+
if (root.nodeType === Node.ELEMENT_NODE) {
|
|
3454
|
+
// Check if this is a custom component that is focusable
|
|
3455
|
+
const isComponentFocusable = isFocusableComponent(root);
|
|
3456
|
+
|
|
3457
|
+
if (isComponentFocusable) {
|
|
3458
|
+
// Add the component itself as a focusable element and don't traverse its shadow DOM
|
|
3459
|
+
orderedFocusableElements.push(root);
|
|
3460
|
+
return; // Skip traversing inside this component
|
|
3461
|
+
}
|
|
3462
|
+
|
|
3463
|
+
// Check if the element itself matches any selector
|
|
3464
|
+
for (const selector of FOCUSABLE_SELECTORS) {
|
|
3465
|
+
if (root.matches?.(selector)) {
|
|
3466
|
+
orderedFocusableElements.push(root);
|
|
3467
|
+
break; // Once we know it's focusable, no need to check other selectors
|
|
3468
|
+
}
|
|
3469
|
+
}
|
|
3470
|
+
|
|
3471
|
+
// Process shadow DOM only for non-Auro components
|
|
3472
|
+
if (root.shadowRoot) {
|
|
3473
|
+
// Process shadow DOM children in order
|
|
3474
|
+
if (root.shadowRoot.children) {
|
|
3475
|
+
Array.from(root.shadowRoot.children).forEach(child => {
|
|
3476
|
+
collectFocusableElements(child);
|
|
3477
|
+
});
|
|
3478
|
+
}
|
|
3479
|
+
}
|
|
3480
|
+
|
|
3481
|
+
// Process slots and their assigned nodes in order
|
|
3482
|
+
if (root.tagName === 'SLOT') {
|
|
3483
|
+
const assignedNodes = root.assignedNodes({ flatten: true });
|
|
3484
|
+
for (const node of assignedNodes) {
|
|
3485
|
+
collectFocusableElements(node);
|
|
3486
|
+
}
|
|
3487
|
+
} else {
|
|
3488
|
+
// Process light DOM children in order
|
|
3489
|
+
if (root.children) {
|
|
3490
|
+
Array.from(root.children).forEach(child => {
|
|
3491
|
+
collectFocusableElements(child);
|
|
3492
|
+
});
|
|
3493
|
+
}
|
|
3494
|
+
}
|
|
3495
|
+
}
|
|
3496
|
+
};
|
|
3497
|
+
|
|
3498
|
+
// Start the traversal from the container
|
|
3499
|
+
collectFocusableElements(container);
|
|
3500
|
+
|
|
3501
|
+
// Remove duplicates that might have been collected through different paths
|
|
3502
|
+
// while preserving order
|
|
3503
|
+
const uniqueElements = [];
|
|
3504
|
+
const seen = new Set();
|
|
3505
|
+
|
|
3506
|
+
for (const element of orderedFocusableElements) {
|
|
3507
|
+
if (!seen.has(element)) {
|
|
3508
|
+
seen.add(element);
|
|
3509
|
+
uniqueElements.push(element);
|
|
3510
|
+
}
|
|
3511
|
+
}
|
|
3512
|
+
|
|
3513
|
+
return uniqueElements;
|
|
3514
|
+
}
|
|
3515
|
+
|
|
3516
|
+
/**
|
|
3517
|
+
* FocusTrap manages keyboard focus within a specified container element, ensuring that focus does not leave the container when tabbing.
|
|
3518
|
+
* It is commonly used for modal dialogs or overlays to improve accessibility by trapping focus within interactive UI components.
|
|
3519
|
+
*/
|
|
3520
|
+
class FocusTrap {
|
|
3521
|
+
/**
|
|
3522
|
+
* Creates a new FocusTrap instance for the given container element.
|
|
3523
|
+
* Initializes event listeners and prepares the container for focus management.
|
|
3524
|
+
*
|
|
3525
|
+
* @param {HTMLElement} container The DOM element to trap focus within.
|
|
3526
|
+
* @throws {Error} If the provided container is not a valid HTMLElement.
|
|
3527
|
+
*/
|
|
3528
|
+
constructor(container) {
|
|
3529
|
+
if (!container || !(container instanceof HTMLElement)) {
|
|
3530
|
+
throw new Error("FocusTrap requires a valid HTMLElement.");
|
|
3531
|
+
}
|
|
3532
|
+
|
|
3533
|
+
this.container = container;
|
|
3534
|
+
this.tabDirection = 'forward'; // or 'backward'
|
|
3535
|
+
|
|
3536
|
+
this._init();
|
|
3537
|
+
}
|
|
3538
|
+
|
|
3539
|
+
/**
|
|
3540
|
+
* Initializes the focus trap by setting up event listeners and attributes on the container.
|
|
3541
|
+
* Prepares the container for focus management, including support for shadow DOM and inert attributes.
|
|
3542
|
+
*
|
|
3543
|
+
* @private
|
|
3544
|
+
*/
|
|
3545
|
+
_init() {
|
|
3546
|
+
|
|
3547
|
+
// Add inert attribute to prevent focusing programmatically as well (if supported)
|
|
3548
|
+
if ('inert' in HTMLElement.prototype) {
|
|
3549
|
+
this.container.inert = false; // Ensure the container isn't inert
|
|
3550
|
+
this.container.setAttribute('data-focus-trap-container', true); // Mark for identification
|
|
3551
|
+
}
|
|
3552
|
+
|
|
3553
|
+
// Track tab direction
|
|
3554
|
+
this.container.addEventListener('keydown', this._onKeydown);
|
|
3555
|
+
}
|
|
3556
|
+
|
|
3557
|
+
/**
|
|
3558
|
+
* Handles keydown events to manage tab navigation within the container.
|
|
3559
|
+
* Ensures that focus wraps around when reaching the first or last focusable element.
|
|
3560
|
+
*
|
|
3561
|
+
* @param {KeyboardEvent} e The keyboard event triggered by user interaction.
|
|
3562
|
+
* @private
|
|
3563
|
+
*/
|
|
3564
|
+
_onKeydown = (e) => {
|
|
3565
|
+
|
|
3566
|
+
if (e.key === 'Tab') {
|
|
3567
|
+
|
|
3568
|
+
// Set the tab direction based on the key pressed
|
|
3569
|
+
this.tabDirection = e.shiftKey ? 'backward' : 'forward';
|
|
3570
|
+
|
|
3571
|
+
// Get the active element(s) in the document and shadow root
|
|
3572
|
+
// This will include the active element in the shadow DOM if it exists
|
|
3573
|
+
// Active element may be inside the shadow DOM depending on delegatesFocus, so we need to check both
|
|
3574
|
+
let activeElement = document.activeElement;
|
|
3575
|
+
const actives = [activeElement];
|
|
3576
|
+
while (activeElement?.shadowRoot?.activeElement) {
|
|
3577
|
+
actives.push(activeElement.shadowRoot.activeElement);
|
|
3578
|
+
activeElement = activeElement.shadowRoot.activeElement;
|
|
3579
|
+
}
|
|
3580
|
+
|
|
3581
|
+
// Update the focusable elements
|
|
3582
|
+
const focusables = this._getFocusableElements();
|
|
3583
|
+
|
|
3584
|
+
// If we're at either end of the focusable elements, wrap around to the other end
|
|
3585
|
+
const focusIndex =
|
|
3586
|
+
(actives.includes(focusables[0]) || actives.includes(this.container)) && this.tabDirection === 'backward'
|
|
3587
|
+
? focusables.length - 1
|
|
3588
|
+
: actives.includes(focusables[focusables.length - 1]) && this.tabDirection === 'forward'
|
|
3589
|
+
? 0
|
|
3590
|
+
: null;
|
|
3591
|
+
|
|
3592
|
+
if (focusIndex !== null) {
|
|
3593
|
+
focusables[focusIndex].focus();
|
|
3594
|
+
e.preventDefault(); // Prevent default tab behavior
|
|
3595
|
+
e.stopPropagation(); // Stop the event from bubbling up
|
|
3596
|
+
}
|
|
3597
|
+
}
|
|
3598
|
+
};
|
|
3599
|
+
|
|
3600
|
+
/**
|
|
3601
|
+
* Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
|
|
3602
|
+
* Returns a unique, ordered array of elements that can receive focus.
|
|
3603
|
+
*
|
|
3604
|
+
* @returns {Array<HTMLElement>} An array of focusable elements within the container.
|
|
3605
|
+
* @private
|
|
3606
|
+
*/
|
|
3607
|
+
_getFocusableElements() {
|
|
3608
|
+
// Use the imported utility function to get focusable elements
|
|
3609
|
+
const elements = getFocusableElements(this.container);
|
|
3610
|
+
|
|
3611
|
+
// Filter out any elements with the 'focus-bookend' class
|
|
3612
|
+
return elements;
|
|
3613
|
+
}
|
|
3614
|
+
|
|
3615
|
+
/**
|
|
3616
|
+
* Moves focus to the first focusable element within the container.
|
|
3617
|
+
* Useful for setting initial focus when activating the focus trap.
|
|
3618
|
+
*/
|
|
3619
|
+
focusFirstElement() {
|
|
3620
|
+
const focusables = this._getFocusableElements();
|
|
3621
|
+
if (focusables.length) focusables[0].focus();
|
|
3622
|
+
}
|
|
3623
|
+
|
|
3624
|
+
/**
|
|
3625
|
+
* Moves focus to the last focusable element within the container.
|
|
3626
|
+
* Useful for setting focus when deactivating or cycling focus in reverse.
|
|
3627
|
+
*/
|
|
3628
|
+
focusLastElement() {
|
|
3629
|
+
const focusables = this._getFocusableElements();
|
|
3630
|
+
if (focusables.length) focusables[focusables.length - 1].focus();
|
|
3631
|
+
}
|
|
3632
|
+
|
|
3633
|
+
/**
|
|
3634
|
+
* Removes event listeners and attributes added by the focus trap.
|
|
3635
|
+
* Call this method to clean up when the focus trap is no longer needed.
|
|
3636
|
+
*/
|
|
3637
|
+
disconnect() {
|
|
3638
|
+
|
|
3639
|
+
if (this.container.hasAttribute('data-focus-trap-container')) {
|
|
3640
|
+
this.container.removeAttribute('data-focus-trap-container');
|
|
3641
|
+
}
|
|
3642
|
+
|
|
3643
|
+
this.container.removeEventListener('keydown', this._onKeydown);
|
|
3644
|
+
}
|
|
3645
|
+
}
|
|
3646
|
+
|
|
3374
3647
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
3375
3648
|
// See LICENSE in the project root for license information.
|
|
3376
3649
|
|
|
@@ -3561,9 +3834,9 @@ let BaseIcon$2 = class BaseIcon extends AuroElement$1$1 {
|
|
|
3561
3834
|
}
|
|
3562
3835
|
};
|
|
3563
3836
|
|
|
3564
|
-
var tokensCss$2$
|
|
3837
|
+
var tokensCss$2$2 = i$5`:host{--ds-auro-icon-color:var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-alaska-color:#02426D;--ds-auro-icon-size:var(--ds-size-300, 1.5rem)}`;
|
|
3565
3838
|
|
|
3566
|
-
var colorCss$3$
|
|
3839
|
+
var colorCss$3$2 = i$5`:host{color:var(--ds-auro-icon-color)}:host([customColor]){color:inherit}:host(:not([onDark])[variant=accent1]){--ds-auro-icon-color:var(--ds-basic-color-texticon-accent1, #265688)}:host(:not([onDark])[variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:not([onDark])[variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-muted, #676767)}:host(:not([onDark])[variant=statusDefault]){--ds-auro-icon-color:var(--ds-basic-color-status-default, #afb9c6)}:host(:not([onDark])[variant=statusInfo]){--ds-auro-icon-color:var(--ds-basic-color-status-info, #01426a)}:host(:not([onDark])[variant=statusSuccess]){--ds-auro-icon-color:var(--ds-basic-color-status-success, #447a1f)}:host(:not([onDark])[variant=statusWarning]){--ds-auro-icon-color:var(--ds-basic-color-status-warning, #fac200)}:host(:not([onDark])[variant=statusError]){--ds-auro-icon-color:var(--ds-basic-color-status-error, #e31f26)}:host(:not([onDark])[variant=statusInfoSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-info-subtle, #ebf3f9)}:host(:not([onDark])[variant=statusSuccessSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-success-subtle, #d6eac7)}:host(:not([onDark])[variant=statusWarningSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-warning-subtle, #fff0b2)}:host(:not([onDark])[variant=statusErrorSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-error-subtle, #fbc6c6)}:host(:not([onDark])[variant=fareBasicEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-basiceconomy, #97eaf8)}:host(:not([onDark])[variant=fareBusiness]){--ds-auro-icon-color:var(--ds-basic-color-fare-business, #01426a)}:host(:not([onDark])[variant=fareEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-economy, #0074ca)}:host(:not([onDark])[variant=fareFirst]){--ds-auro-icon-color:var(--ds-basic-color-fare-first, #00274a)}:host(:not([onDark])[variant=farePremiumEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-premiumeconomy, #005154)}:host(:not([onDark])[variant=tierOneWorldEmerald]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-emerald, #139142)}:host(:not([onDark])[variant=tierOneWorldSapphire]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-sapphire, #015daa)}:host(:not([onDark])[variant=tierOneWorldRuby]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-ruby, #a41d4a)}:host([onDark]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse, #ffffff)}:host([onDark][variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}:host([onDark][variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][variant=statusError]){--ds-auro-icon-color:var(--ds-advanced-color-state-error-inverse, #f9a4a8)}`;
|
|
3567
3840
|
|
|
3568
3841
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
3569
3842
|
// See LICENSE in the project root for license information.
|
|
@@ -3721,9 +3994,9 @@ let AuroIcon$2 = class AuroIcon extends BaseIcon$2 {
|
|
|
3721
3994
|
static get styles() {
|
|
3722
3995
|
return [
|
|
3723
3996
|
super.styles,
|
|
3724
|
-
i$5`${tokensCss$2$
|
|
3997
|
+
i$5`${tokensCss$2$2}`,
|
|
3725
3998
|
i$5`${styleCss$2$2}`,
|
|
3726
|
-
i$5`${colorCss$3$
|
|
3999
|
+
i$5`${colorCss$3$2}`
|
|
3727
4000
|
];
|
|
3728
4001
|
}
|
|
3729
4002
|
|
|
@@ -3757,8 +4030,12 @@ let AuroIcon$2 = class AuroIcon extends BaseIcon$2 {
|
|
|
3757
4030
|
async firstUpdated() {
|
|
3758
4031
|
await super.firstUpdated();
|
|
3759
4032
|
|
|
3760
|
-
|
|
3761
|
-
|
|
4033
|
+
/**
|
|
4034
|
+
* icons provide a description for screen readers. Icon only instances Auro-button
|
|
4035
|
+
* depend on this description to provide context for the user using a screen reader.
|
|
4036
|
+
* Removes the SVG description for screen reader if ariaHidden is set to true.
|
|
4037
|
+
*/
|
|
4038
|
+
if (this.hasAttribute('ariaHidden') && this.svg) {
|
|
3762
4039
|
const svgDesc = this.svg.querySelector('desc');
|
|
3763
4040
|
|
|
3764
4041
|
if (svgDesc) {
|
|
@@ -3804,11 +4081,11 @@ let AuroIcon$2 = class AuroIcon extends BaseIcon$2 {
|
|
|
3804
4081
|
|
|
3805
4082
|
var iconVersion$2 = '6.1.2';
|
|
3806
4083
|
|
|
3807
|
-
var styleCss$1$2 = i$5`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}.container{
|
|
4084
|
+
var styleCss$1$2 = i$5`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host(:not([matchWidth])) .container{min-width:fit-content}:host([isfullscreen]){position:fixed;top:0;left:0}:host([isfullscreen]) .container{width:100dvw;max-width:none;height:100dvh;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset;overscroll-behavior:contain}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}:host(:not([isfullscreen])) .container.shape-box{border-radius:unset}:host(:not([isfullscreen])) .container[class*=shape-pill],:host(:not([isfullscreen])) .container[class*=shape-snowflake]{border-radius:30px}.container{display:inline-block;overflow:auto;box-sizing:border-box;border-radius:var(--ds-border-radius, 0.375rem);margin:var(--ds-size-50, 0.25rem) 0}`;
|
|
3808
4085
|
|
|
3809
|
-
var colorCss$2$
|
|
4086
|
+
var colorCss$2$2 = i$5`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
|
|
3810
4087
|
|
|
3811
|
-
var tokensCss$1$
|
|
4088
|
+
var tokensCss$1$2 = i$5`:host(:not([ondark])){--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-muted, #676767);--ds-auro-dropdown-trigger-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdown-trigger-container-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-bold, #585e67);--ds-auro-dropdown-trigger-outline-color: transparent;--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-dropdownbib-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdownbib-container-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdownbib-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]){--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db);--ds-auro-dropdown-trigger-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdown-trigger-container-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-inverse, #ffffff);--ds-auro-dropdown-trigger-outline-color: transparent;--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-dropdownbib-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdownbib-container-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdownbib-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}`;
|
|
3812
4089
|
|
|
3813
4090
|
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
3814
4091
|
// See LICENSE in the project root for license information.
|
|
@@ -3829,7 +4106,7 @@ const DESIGN_TOKEN_BREAKPOINT_OPTIONS = [
|
|
|
3829
4106
|
*/
|
|
3830
4107
|
|
|
3831
4108
|
class AuroDropdownBib extends i$2 {
|
|
3832
|
-
|
|
4109
|
+
// not extending AuroElement because Bib needs only `shape` prop
|
|
3833
4110
|
constructor() {
|
|
3834
4111
|
super();
|
|
3835
4112
|
|
|
@@ -3839,13 +4116,16 @@ class AuroDropdownBib extends i$2 {
|
|
|
3839
4116
|
this._mobileBreakpointValue = undefined;
|
|
3840
4117
|
|
|
3841
4118
|
AuroLibraryRuntimeUtils$2$1.prototype.handleComponentTagRename(this, 'auro-dropdownbib');
|
|
4119
|
+
|
|
4120
|
+
this.shape = "rounded";
|
|
4121
|
+
this.matchWidth = false;
|
|
3842
4122
|
}
|
|
3843
4123
|
|
|
3844
4124
|
static get styles() {
|
|
3845
4125
|
return [
|
|
3846
4126
|
styleCss$1$2,
|
|
3847
|
-
colorCss$2$
|
|
3848
|
-
tokensCss$1$
|
|
4127
|
+
colorCss$2$2,
|
|
4128
|
+
tokensCss$1$2
|
|
3849
4129
|
];
|
|
3850
4130
|
}
|
|
3851
4131
|
|
|
@@ -3876,6 +4156,15 @@ class AuroDropdownBib extends i$2 {
|
|
|
3876
4156
|
reflect: true
|
|
3877
4157
|
},
|
|
3878
4158
|
|
|
4159
|
+
/**
|
|
4160
|
+
* If declared, the bib width will match the trigger width.
|
|
4161
|
+
* @private
|
|
4162
|
+
*/
|
|
4163
|
+
matchWidth: {
|
|
4164
|
+
type: Boolean,
|
|
4165
|
+
reflect: true
|
|
4166
|
+
},
|
|
4167
|
+
|
|
3879
4168
|
/**
|
|
3880
4169
|
* If declared, will apply border-radius to the bib.
|
|
3881
4170
|
*/
|
|
@@ -3889,6 +4178,11 @@ class AuroDropdownBib extends i$2 {
|
|
|
3889
4178
|
*/
|
|
3890
4179
|
bibTemplate: {
|
|
3891
4180
|
type: Object
|
|
4181
|
+
},
|
|
4182
|
+
|
|
4183
|
+
shape: {
|
|
4184
|
+
type: String,
|
|
4185
|
+
reflect: true
|
|
3892
4186
|
}
|
|
3893
4187
|
};
|
|
3894
4188
|
}
|
|
@@ -3968,8 +4262,16 @@ class AuroDropdownBib extends i$2 {
|
|
|
3968
4262
|
|
|
3969
4263
|
// function that renders the HTML and CSS into the scope of the component
|
|
3970
4264
|
render() {
|
|
4265
|
+
const classes = {
|
|
4266
|
+
container: true
|
|
4267
|
+
};
|
|
4268
|
+
|
|
4269
|
+
// Since this class does not inherit from AuroElement, we apply the shape-related class within the `render` function,
|
|
4270
|
+
// mimicking the class naming convention used in AuroElement.resetShapeClasses.
|
|
4271
|
+
classes[`shape-${this.shape}`] = true;
|
|
4272
|
+
|
|
3971
4273
|
return u`
|
|
3972
|
-
<div class="
|
|
4274
|
+
<div class="${e(classes)}" part="bibContainer">
|
|
3973
4275
|
<slot></slot>
|
|
3974
4276
|
</div>
|
|
3975
4277
|
`;
|
|
@@ -3978,21 +4280,21 @@ class AuroDropdownBib extends i$2 {
|
|
|
3978
4280
|
|
|
3979
4281
|
var dropdownVersion$1 = '3.0.0';
|
|
3980
4282
|
|
|
3981
|
-
var shapeSizeCss = i$5`.wrapper{overflow:hidden}.shape-classic-xl,.shape-classic-lg,.shape-classic-md,.shape-classic-sm,.shape-classic-xs{min-height:58px;max-height:58px;border-style:solid;border-width:1px;border-radius:var(--ds-border-radius, 0.375rem)}.shape-classic-xl.simple,.shape-classic-lg.simple,.shape-classic-md.simple,.shape-classic-sm.simple,.shape-classic-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset}.shape-classic-xl.thin,.shape-classic-lg.thin,.shape-classic-md.thin,.shape-classic-sm.thin,.shape-classic-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-classic-xl.parentBorder,.shape-classic-lg.parentBorder,.shape-classic-md.parentBorder,.shape-classic-sm.parentBorder,.shape-classic-xs.parentBorder{border:0;min-height:56px;max-height:56px}.shape-snowflake-xl,.shape-snowflake-lg,.shape-snowflake-md,.shape-snowflake-sm,.shape-snowflake-xs{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:30px}.shape-snowflake-xl.simple,.shape-snowflake-lg.simple,.shape-snowflake-md.simple,.shape-snowflake-sm.simple,.shape-snowflake-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset}.shape-snowflake-xl.thin,.shape-snowflake-lg.thin,.shape-snowflake-md.thin,.shape-snowflake-sm.thin,.shape-snowflake-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-snowflake-xl.parentBorder,.shape-snowflake-lg.parentBorder,.shape-snowflake-md.parentBorder,.shape-snowflake-sm.parentBorder,.shape-snowflake-xs.parentBorder{border:0;min-height:56px;max-height:56px}.shape-box-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent}.shape-box-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset}.shape-box-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-box-xl.parentBorder{border:0;min-height:68px;max-height:68px}.shape-rounded-lg{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:6px}.shape-rounded-lg.simple{border-width:0px;min-height:56px;max-height:56px;background-color:unset}.shape-rounded-lg.thin{border-width:1px;min-height:54px;max-height:54px;background-color:unset}.shape-rounded-lg.parentBorder{border:0;min-height:52px;max-height:52px}.shape-pill-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset}.shape-pill-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-xl.parentBorder{border:0;min-height:68px;max-height:68px}.shape-pill-left-xl{min-height:
|
|
4283
|
+
var shapeSizeCss = i$5`.wrapper{overflow:hidden}.shape-classic-xl,.shape-classic-lg,.shape-classic-md,.shape-classic-sm,.shape-classic-xs{min-height:58px;max-height:58px;border-style:solid;border-width:1px;border-radius:var(--ds-border-radius, 0.375rem)}.shape-classic-xl.simple,.shape-classic-lg.simple,.shape-classic-md.simple,.shape-classic-sm.simple,.shape-classic-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset;box-shadow:none}.shape-classic-xl.thin,.shape-classic-lg.thin,.shape-classic-md.thin,.shape-classic-sm.thin,.shape-classic-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-classic-xl.parentBorder,.shape-classic-lg.parentBorder,.shape-classic-md.parentBorder,.shape-classic-sm.parentBorder,.shape-classic-xs.parentBorder{border:0;box-shadow:unset;min-height:56px;max-height:56px}.shape-snowflake-xl,.shape-snowflake-lg,.shape-snowflake-md,.shape-snowflake-sm,.shape-snowflake-xs{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:30px}.shape-snowflake-xl.simple,.shape-snowflake-lg.simple,.shape-snowflake-md.simple,.shape-snowflake-sm.simple,.shape-snowflake-xs.simple{border-width:0px;min-height:60px;max-height:60px;background-color:unset;box-shadow:none}.shape-snowflake-xl.thin,.shape-snowflake-lg.thin,.shape-snowflake-md.thin,.shape-snowflake-sm.thin,.shape-snowflake-xs.thin{border-width:1px;min-height:58px;max-height:58px;background-color:unset}.shape-snowflake-xl.parentBorder,.shape-snowflake-lg.parentBorder,.shape-snowflake-md.parentBorder,.shape-snowflake-sm.parentBorder,.shape-snowflake-xs.parentBorder{border:0;box-shadow:unset;min-height:56px;max-height:56px}.shape-box-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent}.shape-box-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-box-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-box-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-rounded-lg{min-height:56px;max-height:56px;border-style:solid;border-width:2px;border-color:transparent;border-radius:6px}.shape-rounded-lg.simple{border-width:0px;min-height:56px;max-height:56px;background-color:unset;box-shadow:none}.shape-rounded-lg.thin{border-width:1px;min-height:54px;max-height:54px;background-color:unset}.shape-rounded-lg.parentBorder{border:0;box-shadow:unset;min-height:52px;max-height:52px}.shape-pill-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-left-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px 0 0 36px}.shape-pill-left-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-left-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-left-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-right-xl{min-height:68px;max-height:68px;border-style:solid;border-width:2px;border-color:transparent;border-radius:0 36px 36px 0}.shape-pill-right-xl.simple{border-width:0px;min-height:72px;max-height:72px;background-color:unset;box-shadow:none}.shape-pill-right-xl.thin{border-width:1px;min-height:70px;max-height:70px;background-color:unset}.shape-pill-right-xl.parentBorder{border:0;box-shadow:unset;min-height:68px;max-height:68px}.shape-pill-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px}.shape-pill-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}.shape-pill-left-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:36px 0 0 36px}.shape-pill-left-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-left-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-left-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}.shape-pill-right-md{min-height:44px;max-height:44px;border-style:solid;border-width:2px;border-color:transparent;border-radius:0 36px 36px 0}.shape-pill-right-md.simple{border-width:0px;min-height:48px;max-height:48px;background-color:unset;box-shadow:none}.shape-pill-right-md.thin{border-width:1px;min-height:46px;max-height:46px;background-color:unset}.shape-pill-right-md.parentBorder{border:0;box-shadow:unset;min-height:44px;max-height:44px}`;
|
|
3982
4284
|
|
|
3983
|
-
var colorCss$1$2 = i$5`:host .wrapper{border-color:var(--ds-auro-dropdown-trigger-border-color);background-color:var(--ds-auro-dropdown-trigger-background-color);color:var(--ds-auro-dropdown-trigger-text-color)}:host(:not([ondark])) .wrapper:focus,:host(:not([ondark])) .wrapper:
|
|
4285
|
+
var colorCss$1$2 = i$5`:host(:not([layout*=classic])){--ds-auro-dropdown-trigger-border-color: transparent}:host(:not([ondark])) .wrapper{border-color:var(--ds-auro-dropdown-trigger-border-color);background-color:var(--ds-auro-dropdown-trigger-background-color);color:var(--ds-auro-dropdown-trigger-text-color)}:host(:not([ondark])) .wrapper:focus-within,:host(:not([ondark])) .wrapper:active{--ds-auro-dropdown-trigger-border-color: var(--ds-advanced-color-state-focused, #01426a);--ds-auro-dropdown-trigger-outline-color: var(--ds-advanced-color-state-focused, #01426a)}:host(:not([onDark])[disabled]){--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host(:not([ondark])[error]){--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-status-error, #e31f26)}:host([onDark]) .label{color:var(--ds-auro-dropdown-label-text-color)}:host([onDark]) .wrapper{border-color:var(--ds-auro-dropdown-trigger-border-color);background-color:var(--ds-auro-dropdown-trigger-background-color);color:var(--ds-auro-dropdown-trigger-text-color)}:host([onDark]) .wrapper:focus-within,:host([onDark]) .wrapper:active{--ds-auro-dropdown-trigger-border-color: var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-dropdown-trigger-outline-color: var(--ds-advanced-color-state-focused-inverse, #ffffff)}:host([onDark][disabled]){--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894);--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894);--ds-auro-dropdown-trigger-container-color: var(--ds-advanced-color-shared-background-inverse-disabled, rgba(255, 255, 255, 0.1))}:host([ondark][error]){--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-status-error-subtle, #fbc6c6)}`;
|
|
3984
4286
|
|
|
3985
|
-
var classicColorCss = i$5
|
|
4287
|
+
var classicColorCss = i$5``;
|
|
3986
4288
|
|
|
3987
|
-
var classicLayoutCss = i$5`:host([layout*=classic]){position:relative;max-width:100%}:host([layout*=classic]) #bibSizer{position:absolute;z-index:-1;opacity:0;pointer-events:none}:host([layout*=classic]) .label{font-size:var(--ds-text-body-size-xs, 0.75rem);line-height:var(--ds-text-body-size-default, 1rem);transition:font-size .3s cubic-bezier(0.215, 0.61, 0.355, 1);white-space:normal}:host([layout*=classic]) .label[hasTrigger=false]{font-size:var(--ds-text-body-size-default, 1rem)}:host([layout*=classic]) .
|
|
4289
|
+
var classicLayoutCss = i$5`:host([layout*=classic]){position:relative;max-width:100%}:host([layout*=classic]) #bibSizer{position:absolute;z-index:-1;opacity:0;pointer-events:none}:host([layout*=classic]) .label{font-size:var(--ds-text-body-size-xs, 0.75rem);line-height:var(--ds-text-body-size-default, 1rem);transition:font-size .3s cubic-bezier(0.215, 0.61, 0.355, 1);white-space:normal}:host([layout*=classic]) .label[hasTrigger=false]{font-size:var(--ds-text-body-size-default, 1rem)}:host([layout*=classic]) .wrapper{display:flex;flex-direction:row;box-shadow:inset 0 0 0 1px var(--ds-auro-dropdown-trigger-outline-color)}@media(hover: hover){:host([layout*=classic]) .wrapper:hover{cursor:pointer}}:host([layout*=classic]) .triggerContentWrapper{overflow:hidden;flex:1;justify-content:start;text-overflow:ellipsis;white-space:nowrap}:host([layout*=classic]) #showStateIcon{display:flex;overflow:hidden;height:100%;align-items:center;padding-right:var(--ds-size-150, 0.75rem)}:host([layout*=classic]) #showStateIcon [auro-icon]{height:var(--ds-size-300, 1.5rem);line-height:var(--ds-size-300, 1.5rem)}:host([layout*=classic]) #showStateIcon[data-expanded=true] [auro-icon]{transform:rotate(-180deg)}:host([matchwidth]) #bibSizer{width:100%}`;
|
|
3988
4290
|
|
|
3989
|
-
var styleEmphasizedCss = i$5`:host{display:block}.layout-emphasized .chevron,.layout-emphasized-left .chevron,.layout-emphasized-right .chevron{margin-right:var(--ds-size-300, 1.5rem)}.wrapper{display:flex;flex-direction:row
|
|
4291
|
+
var styleEmphasizedCss = i$5`:host{display:block}.layout-emphasized .chevron,.layout-emphasized-left .chevron,.layout-emphasized-right .chevron{margin-right:var(--ds-size-300, 1.5rem)}.wrapper{display:flex;flex:1;flex-direction:row;align-items:center;justify-content:center;outline:none}.triggerContentWrapper{display:flex;overflow:hidden;width:100%;flex:1;align-items:center;justify-content:center;text-overflow:ellipsis;white-space:nowrap}:host([layout*=emphasized][shape*=pill]:not([layout*=right])) .leftIndent{width:calc(100% - var(--ds-size-300, 1.5rem));margin-left:var(--ds-size-300, 1.5rem)}:host([layout*=emphasized][shape*=pill]:not([layout*=left])) .rightIndent{width:calc(100% - var(--ds-size-300, 1.5rem));margin-right:var(--ds-size-300, 1.5rem)}:host([layout*=emphasized][shape*=pill]:not([layout*=left]):not([layout*=right])) .rightIndent{width:calc(100% - var(--ds-size-600, 3rem));margin-right:var(--ds-size-300, 1.5rem)}`;
|
|
3990
4292
|
|
|
3991
|
-
var styleSnowflakeCss = i$5`:host{display:block}.wrapper{display:flex;flex
|
|
4293
|
+
var styleSnowflakeCss = i$5`:host{display:block}.wrapper{display:flex;flex:1;flex-direction:row;align-items:center;justify-content:center;outline:none}.triggerContentWrapper{display:flex;overflow:hidden;width:100%;flex:1;align-items:center;justify-content:center;text-overflow:ellipsis;white-space:nowrap}:host([layout*=snowflake]) .leftIndent{width:calc(100% - var(--ds-size-600, 3rem));margin-left:var(--ds-size-300, 1.5rem)}:host([layout*=snowflake]) .rightIndent{width:calc(100% - var(--ds-size-600, 3rem));margin-right:var(--ds-size-300, 1.5rem)}.layout-snowflake .chevron,.layout-snowflake-left .chevron,.layout-snowflake-right .chevron{margin-right:var(--ds-size-300, 1.5rem)}`;
|
|
3992
4294
|
|
|
3993
|
-
var colorCss$5 = i$5`:host([error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error, #e31f26)}:host([onDark]){--ds-auro-helptext-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][error]){--ds-auro-helptext-color: var(--ds-
|
|
4295
|
+
var colorCss$5 = i$5`:host([error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error, #e31f26)}:host([onDark]){--ds-auro-helptext-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error-subtle, #fbc6c6)}.helptext-wrapper{color:var(--ds-auro-helptext-color)}`;
|
|
3994
4296
|
|
|
3995
|
-
var styleCss$6 = i$5
|
|
4297
|
+
var styleCss$6 = i$5`:host{position:relative;display:block}.helptext-wrapper{display:none;font-size:12px;font-weight:450;letter-spacing:0;line-height:16px}:host([large]) .helptext-wrapper{font-size:16px;font-weight:450;letter-spacing:0;line-height:24px}.helptext-wrapper[visible]{display:block}::slotted(*:not(:empty)){margin-top:var(--ds-size-50, 0.25rem);margin-bottom:0}::slotted(p){margin-block:0}`;
|
|
3996
4298
|
|
|
3997
4299
|
var tokensCss$4 = i$5`:host{--ds-auro-helptext-color: var(--ds-basic-color-texticon-muted, #676767)}`;
|
|
3998
4300
|
|
|
@@ -4003,7 +4305,7 @@ var tokensCss$4 = i$5`:host{--ds-auro-helptext-color: var(--ds-basic-color-texti
|
|
|
4003
4305
|
|
|
4004
4306
|
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
4005
4307
|
|
|
4006
|
-
let AuroLibraryRuntimeUtils$
|
|
4308
|
+
let AuroLibraryRuntimeUtils$5 = class AuroLibraryRuntimeUtils {
|
|
4007
4309
|
|
|
4008
4310
|
/* eslint-disable jsdoc/require-param */
|
|
4009
4311
|
|
|
@@ -4084,7 +4386,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
|
|
|
4084
4386
|
this.onDark = false;
|
|
4085
4387
|
this.hasTextContent = false;
|
|
4086
4388
|
|
|
4087
|
-
AuroLibraryRuntimeUtils$
|
|
4389
|
+
AuroLibraryRuntimeUtils$5.prototype.handleComponentTagRename(this, 'auro-helptext');
|
|
4088
4390
|
}
|
|
4089
4391
|
|
|
4090
4392
|
static get styles() {
|
|
@@ -4140,7 +4442,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
|
|
|
4140
4442
|
*
|
|
4141
4443
|
*/
|
|
4142
4444
|
static register(name = "auro-helptext") {
|
|
4143
|
-
AuroLibraryRuntimeUtils$
|
|
4445
|
+
AuroLibraryRuntimeUtils$5.prototype.registerComponent(name, AuroHelpText);
|
|
4144
4446
|
}
|
|
4145
4447
|
|
|
4146
4448
|
updated() {
|
|
@@ -4198,7 +4500,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
|
|
|
4198
4500
|
|
|
4199
4501
|
var helpTextVersion$1 = '1.0.0';
|
|
4200
4502
|
|
|
4201
|
-
let AuroElement$
|
|
4503
|
+
let AuroElement$3 = class AuroElement extends i$2 {
|
|
4202
4504
|
static get properties() {
|
|
4203
4505
|
return {
|
|
4204
4506
|
|
|
@@ -4233,18 +4535,21 @@ let AuroElement$2 = class AuroElement extends i$2 {
|
|
|
4233
4535
|
}
|
|
4234
4536
|
|
|
4235
4537
|
resetShapeClasses() {
|
|
4236
|
-
|
|
4237
|
-
const wrapper = this.shadowRoot.querySelector('.wrapper');
|
|
4538
|
+
const wrapper = this.shadowRoot.querySelector('.wrapper');
|
|
4238
4539
|
|
|
4239
|
-
|
|
4240
|
-
|
|
4241
|
-
|
|
4242
|
-
|
|
4243
|
-
|
|
4244
|
-
|
|
4540
|
+
if (wrapper) {
|
|
4541
|
+
wrapper.classList.forEach((className) => {
|
|
4542
|
+
if (className.startsWith('shape-')) {
|
|
4543
|
+
wrapper.classList.remove(className);
|
|
4544
|
+
}
|
|
4545
|
+
});
|
|
4245
4546
|
|
|
4246
|
-
|
|
4247
|
-
|
|
4547
|
+
}
|
|
4548
|
+
|
|
4549
|
+
if (this.shape && this.size) {
|
|
4550
|
+
wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
|
|
4551
|
+
} else {
|
|
4552
|
+
wrapper.classList.add('shape-none');
|
|
4248
4553
|
}
|
|
4249
4554
|
}
|
|
4250
4555
|
|
|
@@ -4294,10 +4599,8 @@ let AuroElement$2 = class AuroElement extends i$2 {
|
|
|
4294
4599
|
// See LICENSE in the project root for license information.
|
|
4295
4600
|
|
|
4296
4601
|
|
|
4297
|
-
|
|
4298
|
-
* @attr { Boolean } disableEventShow - If declared, the dropdown will only show by calling the API .show() public method.
|
|
4602
|
+
/*
|
|
4299
4603
|
* @slot - Default slot for the popover content.
|
|
4300
|
-
* @slot label - Defines the content of the label.
|
|
4301
4604
|
* @slot helpText - Defines the content of the helpText.
|
|
4302
4605
|
* @slot trigger - Defines the content of the trigger.
|
|
4303
4606
|
* @csspart trigger - The trigger content container.
|
|
@@ -4307,7 +4610,7 @@ let AuroElement$2 = class AuroElement extends i$2 {
|
|
|
4307
4610
|
* @event auroDropdown-toggled - Notifies that the visibility of the dropdown bib has changed.
|
|
4308
4611
|
* @event auroDropdown-idAdded - Notifies consumers that the unique ID for the dropdown bib has been generated.
|
|
4309
4612
|
*/
|
|
4310
|
-
class AuroDropdown extends AuroElement$
|
|
4613
|
+
class AuroDropdown extends AuroElement$3 {
|
|
4311
4614
|
constructor() {
|
|
4312
4615
|
super();
|
|
4313
4616
|
|
|
@@ -4316,23 +4619,25 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4316
4619
|
this.matchWidth = false;
|
|
4317
4620
|
this.noHideOnThisFocusLoss = false;
|
|
4318
4621
|
|
|
4319
|
-
this.errorMessage =
|
|
4622
|
+
this.errorMessage = undefined; // TODO - check with Doug if there is still more to do here
|
|
4320
4623
|
|
|
4321
4624
|
// Layout Config
|
|
4322
|
-
this.layout =
|
|
4323
|
-
this.shape =
|
|
4324
|
-
this.size =
|
|
4625
|
+
this.layout = undefined;
|
|
4626
|
+
this.shape = undefined;
|
|
4627
|
+
this.size = undefined;
|
|
4628
|
+
|
|
4325
4629
|
this.parentBorder = false;
|
|
4326
4630
|
|
|
4327
|
-
|
|
4328
|
-
|
|
4631
|
+
/** @private */
|
|
4632
|
+
this.handleDropdownToggle = this.handleDropdownToggle.bind(this);
|
|
4329
4633
|
|
|
4330
|
-
|
|
4331
|
-
return {
|
|
4332
|
-
// 'withValue': this.value && this.value.length > 0
|
|
4333
|
-
};
|
|
4634
|
+
this.privateDefaults();
|
|
4334
4635
|
}
|
|
4335
4636
|
|
|
4637
|
+
/**
|
|
4638
|
+
* @private
|
|
4639
|
+
* @returns {object} Class definition for the wrapper element.
|
|
4640
|
+
*/
|
|
4336
4641
|
get commonWrapperClasses() {
|
|
4337
4642
|
return {
|
|
4338
4643
|
'trigger': true,
|
|
@@ -4350,13 +4655,10 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4350
4655
|
privateDefaults() {
|
|
4351
4656
|
this.chevron = false;
|
|
4352
4657
|
this.disabled = false;
|
|
4658
|
+
this.disableFocusTrap = false;
|
|
4353
4659
|
this.error = false;
|
|
4354
|
-
this.inset = false;
|
|
4355
|
-
this.rounded = false;
|
|
4356
4660
|
this.tabIndex = 0;
|
|
4357
4661
|
this.noToggle = false;
|
|
4358
|
-
this.a11yAutocomplete = 'none';
|
|
4359
|
-
this.labeled = true;
|
|
4360
4662
|
this.a11yRole = 'button';
|
|
4361
4663
|
this.onDark = false;
|
|
4362
4664
|
this.showTriggerBorders = true;
|
|
@@ -4452,6 +4754,18 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4452
4754
|
this.floater.showBib();
|
|
4453
4755
|
}
|
|
4454
4756
|
|
|
4757
|
+
/**
|
|
4758
|
+
* When bib is open, focus on the first element inside of bib.
|
|
4759
|
+
* If not, trigger element will get focus.
|
|
4760
|
+
*/
|
|
4761
|
+
focus() {
|
|
4762
|
+
if (this.isPopoverVisible && this.focusTrap) {
|
|
4763
|
+
this.focusTrap.focusFirstElement();
|
|
4764
|
+
} else {
|
|
4765
|
+
this.trigger.focus();
|
|
4766
|
+
}
|
|
4767
|
+
}
|
|
4768
|
+
|
|
4455
4769
|
// function to define props used within the scope of this component
|
|
4456
4770
|
static get properties() {
|
|
4457
4771
|
return {
|
|
@@ -4465,6 +4779,15 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4465
4779
|
reflect: true
|
|
4466
4780
|
},
|
|
4467
4781
|
|
|
4782
|
+
/**
|
|
4783
|
+
* If declared, the dropdown will only show by calling the API .show() public method.
|
|
4784
|
+
* @default false
|
|
4785
|
+
*/
|
|
4786
|
+
disableEventShow: {
|
|
4787
|
+
type: Boolean,
|
|
4788
|
+
reflect: true
|
|
4789
|
+
},
|
|
4790
|
+
|
|
4468
4791
|
/**
|
|
4469
4792
|
* If declared, applies a border around the trigger slot.
|
|
4470
4793
|
*/
|
|
@@ -4483,17 +4806,17 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4483
4806
|
},
|
|
4484
4807
|
|
|
4485
4808
|
/**
|
|
4486
|
-
* If declared, the dropdown
|
|
4809
|
+
* If declared, the dropdown is not interactive.
|
|
4487
4810
|
*/
|
|
4488
|
-
|
|
4811
|
+
disabled: {
|
|
4489
4812
|
type: Boolean,
|
|
4490
4813
|
reflect: true
|
|
4491
4814
|
},
|
|
4492
4815
|
|
|
4493
4816
|
/**
|
|
4494
|
-
* If declared, the
|
|
4817
|
+
* If declared, the focus trap inside of bib will be turned off.
|
|
4495
4818
|
*/
|
|
4496
|
-
|
|
4819
|
+
disableFocusTrap: {
|
|
4497
4820
|
type: Boolean,
|
|
4498
4821
|
reflect: true
|
|
4499
4822
|
},
|
|
@@ -4538,22 +4861,6 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4538
4861
|
reflect: true
|
|
4539
4862
|
},
|
|
4540
4863
|
|
|
4541
|
-
/**
|
|
4542
|
-
* Makes the trigger to be full width of its parent container.
|
|
4543
|
-
*/
|
|
4544
|
-
fluid: {
|
|
4545
|
-
type: Boolean,
|
|
4546
|
-
reflect: true
|
|
4547
|
-
},
|
|
4548
|
-
|
|
4549
|
-
/**
|
|
4550
|
-
* If declared, will apply padding around trigger slot content.
|
|
4551
|
-
*/
|
|
4552
|
-
inset: {
|
|
4553
|
-
type: Boolean,
|
|
4554
|
-
reflect: true
|
|
4555
|
-
},
|
|
4556
|
-
|
|
4557
4864
|
/**
|
|
4558
4865
|
* If true, the dropdown bib is displayed.
|
|
4559
4866
|
*/
|
|
@@ -4597,15 +4904,6 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4597
4904
|
reflect: true
|
|
4598
4905
|
},
|
|
4599
4906
|
|
|
4600
|
-
/**
|
|
4601
|
-
* Defines if there is a label preset.
|
|
4602
|
-
* @private
|
|
4603
|
-
*/
|
|
4604
|
-
labeled: {
|
|
4605
|
-
type: Boolean,
|
|
4606
|
-
reflect: true
|
|
4607
|
-
},
|
|
4608
|
-
|
|
4609
4907
|
/**
|
|
4610
4908
|
* Defines if the trigger should size based on the parent element providing the border UI.
|
|
4611
4909
|
* @private
|
|
@@ -4666,6 +4964,9 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4666
4964
|
reflect: true
|
|
4667
4965
|
},
|
|
4668
4966
|
|
|
4967
|
+
/**
|
|
4968
|
+
* If declared, and a function is set, that function will execute when the slot content is updated.
|
|
4969
|
+
*/
|
|
4669
4970
|
onSlotChange: {
|
|
4670
4971
|
type: Function,
|
|
4671
4972
|
reflect: false
|
|
@@ -4680,14 +4981,6 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4680
4981
|
reflect: true
|
|
4681
4982
|
},
|
|
4682
4983
|
|
|
4683
|
-
/**
|
|
4684
|
-
* If declared, will apply border-radius to trigger and default slots.
|
|
4685
|
-
*/
|
|
4686
|
-
rounded: {
|
|
4687
|
-
type: Boolean,
|
|
4688
|
-
reflect: true
|
|
4689
|
-
},
|
|
4690
|
-
|
|
4691
4984
|
/**
|
|
4692
4985
|
* @private
|
|
4693
4986
|
*/
|
|
@@ -4702,22 +4995,14 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4702
4995
|
type: String || undefined,
|
|
4703
4996
|
attribute: false,
|
|
4704
4997
|
reflect: false
|
|
4705
|
-
},
|
|
4706
|
-
|
|
4707
|
-
/**
|
|
4708
|
-
* The value for the aria-autocomplete attribute of the trigger element.
|
|
4709
|
-
*/
|
|
4710
|
-
a11yAutocomplete: {
|
|
4711
|
-
type: String,
|
|
4712
|
-
attribute: false,
|
|
4713
4998
|
}
|
|
4714
4999
|
};
|
|
4715
5000
|
}
|
|
4716
5001
|
|
|
4717
5002
|
static get styles() {
|
|
4718
5003
|
return [
|
|
5004
|
+
tokensCss$1$2,
|
|
4719
5005
|
colorCss$1$2,
|
|
4720
|
-
tokensCss$1$1,
|
|
4721
5006
|
|
|
4722
5007
|
// default layout
|
|
4723
5008
|
classicColorCss,
|
|
@@ -4779,13 +5064,27 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4779
5064
|
if (changedProperties.size === 0 || changedProperties.has('isPopoverVisible')) {
|
|
4780
5065
|
this.handleTriggerContentSlotChange();
|
|
4781
5066
|
}
|
|
5067
|
+
}
|
|
4782
5068
|
|
|
5069
|
+
/**
|
|
5070
|
+
* Handles the custom event `auroDropdown-toggled` to update the visibility of the dropdown bib.
|
|
5071
|
+
* @private
|
|
5072
|
+
* @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
|
|
5073
|
+
*/
|
|
5074
|
+
handleDropdownToggle(event) {
|
|
5075
|
+
this.updateFocusTrap();
|
|
5076
|
+
this.isPopoverVisible = event.detail.expanded;
|
|
5077
|
+
const eventType = event.detail.eventType || "unknown";
|
|
5078
|
+
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
5079
|
+
this.trigger.focus();
|
|
5080
|
+
}
|
|
4783
5081
|
}
|
|
4784
5082
|
|
|
4785
5083
|
firstUpdated() {
|
|
4786
5084
|
|
|
4787
5085
|
// Configure the floater to, this will generate the ID for the bib
|
|
4788
5086
|
this.floater.configure(this, 'auroDropdown');
|
|
5087
|
+
this.addEventListener('auroDropdown-toggled', this.handleDropdownToggle);
|
|
4789
5088
|
|
|
4790
5089
|
/**
|
|
4791
5090
|
* @description Let subscribers know that the dropdown ID ha been generated and added.
|
|
@@ -4845,6 +5144,27 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4845
5144
|
this.hasFocus = true;
|
|
4846
5145
|
}
|
|
4847
5146
|
|
|
5147
|
+
/**
|
|
5148
|
+
* @private
|
|
5149
|
+
*/
|
|
5150
|
+
updateFocusTrap() {
|
|
5151
|
+
// If the dropdown is open, create a focus trap and focus the first element
|
|
5152
|
+
if (this.isPopoverVisible && !this.disableFocusTrap) {
|
|
5153
|
+
this.focusTrap = new FocusTrap(this.bibContent);
|
|
5154
|
+
this.focusTrap.focusFirstElement();
|
|
5155
|
+
return;
|
|
5156
|
+
}
|
|
5157
|
+
|
|
5158
|
+
// Guard Clause: Ensure there is a focus trap currently active before continuing
|
|
5159
|
+
if (!this.focusTrap) {
|
|
5160
|
+
return;
|
|
5161
|
+
}
|
|
5162
|
+
|
|
5163
|
+
// If the dropdown is not open, disconnect the focus trap if it exists
|
|
5164
|
+
this.focusTrap.disconnect();
|
|
5165
|
+
this.focusTrap = undefined;
|
|
5166
|
+
}
|
|
5167
|
+
|
|
4848
5168
|
/**
|
|
4849
5169
|
* Function to support @focusout event.
|
|
4850
5170
|
* @private
|
|
@@ -5005,14 +5325,13 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5005
5325
|
* @returns {void}
|
|
5006
5326
|
*/
|
|
5007
5327
|
handleTriggerContentSlotChange(event) {
|
|
5008
|
-
|
|
5009
5328
|
this.floater.handleTriggerTabIndex();
|
|
5010
5329
|
|
|
5011
5330
|
// Get the trigger
|
|
5012
5331
|
const trigger = this.shadowRoot.querySelector('#trigger');
|
|
5013
5332
|
|
|
5014
5333
|
// Get the trigger slot
|
|
5015
|
-
const triggerSlot = this.shadowRoot.querySelector('.
|
|
5334
|
+
const triggerSlot = this.shadowRoot.querySelector('.triggerContentWrapper slot');
|
|
5016
5335
|
|
|
5017
5336
|
// If there's a trigger slot
|
|
5018
5337
|
if (triggerSlot) {
|
|
@@ -5075,7 +5394,6 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5075
5394
|
*
|
|
5076
5395
|
* @private
|
|
5077
5396
|
* @method handleDefaultSlot
|
|
5078
|
-
* @param {Event} event - The event object representing the slot change.
|
|
5079
5397
|
* @fires Function#onSlotChange - Optional callback invoked when the slot content changes.
|
|
5080
5398
|
*/
|
|
5081
5399
|
handleDefaultSlot() {
|
|
@@ -5086,33 +5404,10 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5086
5404
|
}
|
|
5087
5405
|
|
|
5088
5406
|
/**
|
|
5407
|
+
* Returns HTML for the common portion of the layouts.
|
|
5089
5408
|
* @private
|
|
5090
|
-
* @
|
|
5091
|
-
* @
|
|
5092
|
-
* @description Handles the slot change event for the label slot.
|
|
5093
|
-
*/
|
|
5094
|
-
handleLabelSlotChange (event) {
|
|
5095
|
-
|
|
5096
|
-
// Get the nodes from the event
|
|
5097
|
-
const nodes = event.target.assignedNodes();
|
|
5098
|
-
|
|
5099
|
-
// Guard clause for no nodes
|
|
5100
|
-
if (!nodes) {
|
|
5101
|
-
return;
|
|
5102
|
-
}
|
|
5103
|
-
|
|
5104
|
-
// Convert the nodes to a measurable array so we can get the length
|
|
5105
|
-
const nodesArr = Array.from(nodes);
|
|
5106
|
-
|
|
5107
|
-
// If the nodes array has a length, the dropdown is labeled
|
|
5108
|
-
this.labeled = nodesArr.length > 0;
|
|
5109
|
-
}
|
|
5110
|
-
|
|
5111
|
-
/**
|
|
5112
|
-
* Returns HTML for the common portion of the layouts.
|
|
5113
|
-
* @private
|
|
5114
|
-
* @param {Object} helpTextClasses - Classes to apply to the help text container.
|
|
5115
|
-
* @returns {html} - Returns HTML.
|
|
5409
|
+
* @param {Object} helpTextClasses - Classes to apply to the help text container.
|
|
5410
|
+
* @returns {html} - Returns HTML.
|
|
5116
5411
|
*/
|
|
5117
5412
|
renderBasicHtml(helpTextClasses) {
|
|
5118
5413
|
return u`
|
|
@@ -5122,22 +5417,17 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5122
5417
|
class="${e(this.commonWrapperClasses)}" part="wrapper"
|
|
5123
5418
|
tabindex="${this.tabIndex}"
|
|
5124
5419
|
role="${o(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
5125
|
-
aria-expanded="${o(this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
5126
|
-
aria-controls="${o(this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
5420
|
+
aria-expanded="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
5421
|
+
aria-controls="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
5127
5422
|
aria-labelledby="${o(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
5128
5423
|
@focusin="${this.handleFocusin}"
|
|
5129
5424
|
@blur="${this.handleFocusOut}">
|
|
5130
|
-
<div class="triggerContentWrapper">
|
|
5131
|
-
<
|
|
5132
|
-
|
|
5133
|
-
|
|
5134
|
-
<div class="triggerContent">
|
|
5135
|
-
<slot
|
|
5136
|
-
name="trigger"
|
|
5137
|
-
@slotchange="${this.handleTriggerContentSlotChange}"></slot>
|
|
5138
|
-
</div>
|
|
5425
|
+
<div class="triggerContentWrapper" id="triggerLabel">
|
|
5426
|
+
<slot
|
|
5427
|
+
name="trigger"
|
|
5428
|
+
@slotchange="${this.handleTriggerContentSlotChange}"></slot>
|
|
5139
5429
|
</div>
|
|
5140
|
-
${this.chevron
|
|
5430
|
+
${this.chevron ? u`
|
|
5141
5431
|
<div
|
|
5142
5432
|
id="showStateIcon"
|
|
5143
5433
|
class="chevron"
|
|
@@ -5158,11 +5448,9 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5158
5448
|
<div id="bibSizer" part="size"></div>
|
|
5159
5449
|
<${this.dropdownBibTag}
|
|
5160
5450
|
id="bib"
|
|
5451
|
+
shape="${this.shape}"
|
|
5161
5452
|
?data-show="${this.isPopoverVisible}"
|
|
5162
|
-
?isfullscreen="${this.isBibFullscreen}"
|
|
5163
|
-
?common="${this.common}"
|
|
5164
|
-
?rounded="${this.common || this.rounded}"
|
|
5165
|
-
?inset="${this.common || this.inset}">
|
|
5453
|
+
?isfullscreen="${this.isBibFullscreen}">
|
|
5166
5454
|
<div class="slotContent">
|
|
5167
5455
|
<slot @slotchange="${this.handleDefaultSlot}"></slot>
|
|
5168
5456
|
</div>
|
|
@@ -5177,62 +5465,13 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5177
5465
|
* @returns {html} - Returns HTML for the classic layout.
|
|
5178
5466
|
*/
|
|
5179
5467
|
renderLayoutClassic() {
|
|
5468
|
+
// TODO: check with Doug why this was never used?
|
|
5469
|
+
const helpTextClasses = {
|
|
5470
|
+
'helpText': true
|
|
5471
|
+
};
|
|
5180
5472
|
|
|
5181
5473
|
return u`
|
|
5182
|
-
|
|
5183
|
-
<div
|
|
5184
|
-
id="trigger"
|
|
5185
|
-
class="trigger"
|
|
5186
|
-
part="trigger"
|
|
5187
|
-
tabindex="${this.tabIndex}"
|
|
5188
|
-
?showBorder="${this.showTriggerBorders}"
|
|
5189
|
-
role="${o(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
5190
|
-
aria-expanded="${o(this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
5191
|
-
aria-controls="${o(this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
5192
|
-
aria-labelledby="${o(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
5193
|
-
>
|
|
5194
|
-
<div class="triggerContentWrapper">
|
|
5195
|
-
<label class="label" id="triggerLabel" hasTrigger=${this.hasTriggerContent}>
|
|
5196
|
-
<slot name="label" @slotchange="${this.handleLabelSlotChange}"></slot>
|
|
5197
|
-
</label>
|
|
5198
|
-
<div class="triggerContent">
|
|
5199
|
-
<slot
|
|
5200
|
-
name="trigger"
|
|
5201
|
-
@slotchange="${this.handleTriggerContentSlotChange}"></slot>
|
|
5202
|
-
</div>
|
|
5203
|
-
</div>
|
|
5204
|
-
${this.chevron || this.common ? u`
|
|
5205
|
-
<div
|
|
5206
|
-
id="showStateIcon"
|
|
5207
|
-
part="chevron">
|
|
5208
|
-
<${this.iconTag}
|
|
5209
|
-
category="interface"
|
|
5210
|
-
name="chevron-down"
|
|
5211
|
-
?onDark="${this.onDark}"
|
|
5212
|
-
variant="${this.disabled ? 'disabled' : 'muted'}">
|
|
5213
|
-
>
|
|
5214
|
-
</${this.iconTag}>
|
|
5215
|
-
</div>
|
|
5216
|
-
` : undefined }
|
|
5217
|
-
</div>
|
|
5218
|
-
<${this.helpTextTag} part="helpText" ?onDark=${this.onDark} ?error="${this.error}">
|
|
5219
|
-
<slot name="helpText"></slot>
|
|
5220
|
-
</${this.helpTextTag}>
|
|
5221
|
-
|
|
5222
|
-
<div id="bibSizer" part="size"></div>
|
|
5223
|
-
<${this.dropdownBibTag}
|
|
5224
|
-
id="bib"
|
|
5225
|
-
?data-show="${this.isPopoverVisible}"
|
|
5226
|
-
?isfullscreen="${this.isBibFullscreen}"
|
|
5227
|
-
?common="${this.common}"
|
|
5228
|
-
?rounded="${this.common || this.rounded}"
|
|
5229
|
-
?inset="${this.common || this.inset}"
|
|
5230
|
-
>
|
|
5231
|
-
<div class="slotContent">
|
|
5232
|
-
<slot @slotchange="${this.handleDefaultSlot}"></slot>
|
|
5233
|
-
</div>
|
|
5234
|
-
</${this.dropdownBibTag}>
|
|
5235
|
-
</div>
|
|
5474
|
+
${this.renderBasicHtml(helpTextClasses)}
|
|
5236
5475
|
`;
|
|
5237
5476
|
}
|
|
5238
5477
|
|
|
@@ -5300,9 +5539,9 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5300
5539
|
|
|
5301
5540
|
var dropdownVersion = '3.0.0';
|
|
5302
5541
|
|
|
5303
|
-
var colorCss$
|
|
5542
|
+
var colorCss$3$1 = i$5`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
|
|
5304
5543
|
|
|
5305
|
-
var styleCss$
|
|
5544
|
+
var styleCss$4$1 = i$5`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column}#header{display:flex;width:100%;min-height:var(--ds-size-1000, 5rem);box-sizing:border-box;align-items:end;padding-top:var(--ds-size-400, 2rem);padding-right:var(--ds-size-700, 3.5rem);padding-left:var(--ds-size-200, 1rem);pointer-events:none}#subheader{width:100%}#subheader ::slotted([auro-input]){box-sizing:border-box;padding:0 var(--ds-size-200, 1rem)}#closeButton{position:absolute;top:var(--ds-size-400, 2rem);right:var(--ds-size-200, 1rem);border:none;background-color:transparent;cursor:pointer}#bodyContainer{position:relative;overflow:auto;flex:1 1 100%}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{position:absolute;right:0;bottom:0;left:0;padding:var(--ds-size-200, 1rem)}`;
|
|
5306
5545
|
|
|
5307
5546
|
var tokenCss = i$5`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-footer-container-color: var(--ds-basic-color-surface-default, #ffffff)}`;
|
|
5308
5547
|
|
|
@@ -5313,109 +5552,1153 @@ var tokenCss = i$5`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-
|
|
|
5313
5552
|
|
|
5314
5553
|
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
5315
5554
|
|
|
5316
|
-
let AuroLibraryRuntimeUtils$
|
|
5555
|
+
let AuroLibraryRuntimeUtils$3 = class AuroLibraryRuntimeUtils {
|
|
5556
|
+
|
|
5557
|
+
/* eslint-disable jsdoc/require-param */
|
|
5558
|
+
|
|
5559
|
+
/**
|
|
5560
|
+
* This will register a new custom element with the browser.
|
|
5561
|
+
* @param {String} name - The name of the custom element.
|
|
5562
|
+
* @param {Object} componentClass - The class to register as a custom element.
|
|
5563
|
+
* @returns {void}
|
|
5564
|
+
*/
|
|
5565
|
+
registerComponent(name, componentClass) {
|
|
5566
|
+
if (!customElements.get(name)) {
|
|
5567
|
+
customElements.define(name, class extends componentClass {});
|
|
5568
|
+
}
|
|
5569
|
+
}
|
|
5570
|
+
|
|
5571
|
+
/**
|
|
5572
|
+
* Finds and returns the closest HTML Element based on a selector.
|
|
5573
|
+
* @returns {void}
|
|
5574
|
+
*/
|
|
5575
|
+
closestElement(
|
|
5576
|
+
selector, // selector like in .closest()
|
|
5577
|
+
base = this, // extra functionality to skip a parent
|
|
5578
|
+
__Closest = (el, found = el && el.closest(selector)) =>
|
|
5579
|
+
!el || el === document || el === window
|
|
5580
|
+
? null // standard .closest() returns null for non-found selectors also
|
|
5581
|
+
: found
|
|
5582
|
+
? found // found a selector INside this element
|
|
5583
|
+
: __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
|
|
5584
|
+
) {
|
|
5585
|
+
return __Closest(base);
|
|
5586
|
+
}
|
|
5587
|
+
/* eslint-enable jsdoc/require-param */
|
|
5588
|
+
|
|
5589
|
+
/**
|
|
5590
|
+
* If the element passed is registered with a different tag name than what is passed in, the tag name is added as an attribute to the element.
|
|
5591
|
+
* @param {Object} elem - The element to check.
|
|
5592
|
+
* @param {String} tagName - The name of the Auro component to check for or add as an attribute.
|
|
5593
|
+
* @returns {void}
|
|
5594
|
+
*/
|
|
5595
|
+
handleComponentTagRename(elem, tagName) {
|
|
5596
|
+
const tag = tagName.toLowerCase();
|
|
5597
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
5598
|
+
|
|
5599
|
+
if (elemTag !== tag) {
|
|
5600
|
+
elem.setAttribute(tag, true);
|
|
5601
|
+
}
|
|
5602
|
+
}
|
|
5603
|
+
|
|
5604
|
+
/**
|
|
5605
|
+
* Validates if an element is a specific Auro component.
|
|
5606
|
+
* @param {Object} elem - The element to validate.
|
|
5607
|
+
* @param {String} tagName - The name of the Auro component to check against.
|
|
5608
|
+
* @returns {Boolean} - Returns true if the element is the specified Auro component.
|
|
5609
|
+
*/
|
|
5610
|
+
elementMatch(elem, tagName) {
|
|
5611
|
+
const tag = tagName.toLowerCase();
|
|
5612
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
5613
|
+
|
|
5614
|
+
return elemTag === tag || elem.hasAttribute(tag);
|
|
5615
|
+
}
|
|
5616
|
+
};
|
|
5617
|
+
|
|
5618
|
+
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
5619
|
+
// See LICENSE in the project root for license information.
|
|
5620
|
+
|
|
5621
|
+
|
|
5622
|
+
class AuroDependencyVersioning {
|
|
5623
|
+
|
|
5624
|
+
/**
|
|
5625
|
+
* Generates a unique string to be used for child auro element naming.
|
|
5626
|
+
* @private
|
|
5627
|
+
* @param {string} baseName - Defines the first part of the unique element name.
|
|
5628
|
+
* @param {string} version - Version of the component that will be appended to the baseName.
|
|
5629
|
+
* @returns {string} - Unique string to be used for naming.
|
|
5630
|
+
*/
|
|
5631
|
+
generateElementName(baseName, version) {
|
|
5632
|
+
let result = baseName;
|
|
5633
|
+
|
|
5634
|
+
result += '-';
|
|
5635
|
+
result += version.replace(/[.]/g, '_');
|
|
5636
|
+
|
|
5637
|
+
return result;
|
|
5638
|
+
}
|
|
5639
|
+
|
|
5640
|
+
/**
|
|
5641
|
+
* Generates a unique string to be used for child auro element naming.
|
|
5642
|
+
* @param {string} baseName - Defines the first part of the unique element name.
|
|
5643
|
+
* @param {string} version - Version of the component that will be appended to the baseName.
|
|
5644
|
+
* @returns {string} - Unique string to be used for naming.
|
|
5645
|
+
*/
|
|
5646
|
+
generateTag(baseName, version, tagClass) {
|
|
5647
|
+
const elementName = this.generateElementName(baseName, version);
|
|
5648
|
+
const tag = i`${s(elementName)}`;
|
|
5649
|
+
|
|
5650
|
+
if (!customElements.get(elementName)) {
|
|
5651
|
+
customElements.define(elementName, class extends tagClass {});
|
|
5652
|
+
}
|
|
5653
|
+
|
|
5654
|
+
return tag;
|
|
5655
|
+
}
|
|
5656
|
+
}
|
|
5657
|
+
|
|
5658
|
+
/**
|
|
5659
|
+
* Private module-level WeakMap to hold MutationObservers for each host element.
|
|
5660
|
+
*/
|
|
5661
|
+
const _observers = new WeakMap();
|
|
5662
|
+
|
|
5663
|
+
/**
|
|
5664
|
+
* Private module-level WeakMap to hold attribute matchers and targets for each host element.
|
|
5665
|
+
* Structure: {
|
|
5666
|
+
* host: {
|
|
5667
|
+
* matchers: Set<Function>,
|
|
5668
|
+
* targets: Map<HTMLElement, Map<Function, {removeOriginal: boolean, currentAttributes: Map<string, string>}>>
|
|
5669
|
+
* }
|
|
5670
|
+
* }
|
|
5671
|
+
*/
|
|
5672
|
+
const _transportConfig = new WeakMap();
|
|
5673
|
+
|
|
5674
|
+
/**
|
|
5675
|
+
* Transfers all matching attributes from a host element to a target element and observes for future changes.
|
|
5676
|
+
*
|
|
5677
|
+
* @param {Object} params - The parameters for the function.
|
|
5678
|
+
* @param {HTMLElement} params.host - The host element from which attributes will be transported.
|
|
5679
|
+
* @param {HTMLElement} params.target - The target element to which attributes will be transported.
|
|
5680
|
+
* @param {boolean} [params.removeOriginal=true] - Whether to remove the attributes from the host element.
|
|
5681
|
+
* @param {boolean} [params.observe=true] - Whether to attach a MutationObserver to the host element.
|
|
5682
|
+
* @returns {Function} A function to detach the observer when no longer needed.
|
|
5683
|
+
* @throws {TypeError} If the host or target parameters are not instances of HTMLElement.
|
|
5684
|
+
*/
|
|
5685
|
+
const transportAttributes = ({ host, target, match, removeOriginal = true }) => {
|
|
5686
|
+
// Guard Clause: Ensure host is valid HTMLElement instance
|
|
5687
|
+
if (typeof host !== 'object' || !(host instanceof HTMLElement)) {
|
|
5688
|
+
throw new TypeError('a11yUtilities.js | transportAttributes | The "host" parameter must be an instance of HTMLElement.');
|
|
5689
|
+
}
|
|
5690
|
+
|
|
5691
|
+
// Guard Clause: Ensure target is valid HTMLElement instance
|
|
5692
|
+
if (typeof target !== 'object' || !(target instanceof HTMLElement)) {
|
|
5693
|
+
throw new TypeError('a11yUtilities.js | transportAttributes | The "target" parameter must be an instance of HTMLElement.');
|
|
5694
|
+
}
|
|
5695
|
+
|
|
5696
|
+
// Guard Clause: Ensure match is a function
|
|
5697
|
+
if (typeof match !== 'function') {
|
|
5698
|
+
throw new TypeError('a11yUtilities.js | transportAttributes | The "match" parameter must be a function.');
|
|
5699
|
+
}
|
|
5700
|
+
|
|
5701
|
+
// Guard Clause: Ensure removeOriginal is a boolean
|
|
5702
|
+
if (typeof removeOriginal !== 'boolean') {
|
|
5703
|
+
throw new TypeError('a11yUtilities.js | transportAttributes | The "removeOriginal" parameter must be a boolean.');
|
|
5704
|
+
}
|
|
5705
|
+
|
|
5706
|
+
// Register this transport and get cleanup function
|
|
5707
|
+
return _registerTransport({
|
|
5708
|
+
host,
|
|
5709
|
+
target,
|
|
5710
|
+
matcher: match,
|
|
5711
|
+
removeOriginal
|
|
5712
|
+
});
|
|
5713
|
+
};
|
|
5714
|
+
|
|
5715
|
+
/**
|
|
5716
|
+
* Registers a matcher and target for a host element and attaches an observer if needed.
|
|
5717
|
+
*
|
|
5718
|
+
* @param {Object} params - The parameters object.
|
|
5719
|
+
* @param {HTMLElement} params.host - The host element to observe.
|
|
5720
|
+
* @param {HTMLElement} params.target - The target element to receive attributes.
|
|
5721
|
+
* @param {Function} params.matcher - Function that determines which attributes to transport.
|
|
5722
|
+
* @param {boolean} [params.removeOriginal=true] - Whether to remove original attributes.
|
|
5723
|
+
* @param {boolean} [params.observe=true] - Whether to observe for attribute changes.
|
|
5724
|
+
* @returns {Function} Function to detach the specific matcher and target pairing.
|
|
5725
|
+
* @private
|
|
5726
|
+
*/
|
|
5727
|
+
const _registerTransport = ({ host, target, matcher, removeOriginal = true }) => {
|
|
5728
|
+
// Initialize config for this host if it doesn't exist
|
|
5729
|
+
if (!_transportConfig.has(host)) {
|
|
5730
|
+
_transportConfig.set(host, {
|
|
5731
|
+
matchers: new Set(),
|
|
5732
|
+
targets: new Map()
|
|
5733
|
+
});
|
|
5734
|
+
}
|
|
5735
|
+
|
|
5736
|
+
const config = _transportConfig.get(host);
|
|
5737
|
+
|
|
5738
|
+
// Add the matcher to the set of matchers for this host
|
|
5739
|
+
config.matchers.add(matcher);
|
|
5740
|
+
|
|
5741
|
+
// Initialize target entry if it doesn't exist
|
|
5742
|
+
if (!config.targets.has(target)) {
|
|
5743
|
+
config.targets.set(target, new Map());
|
|
5744
|
+
}
|
|
5745
|
+
|
|
5746
|
+
// Store the matcher with its removeOriginal setting for this target
|
|
5747
|
+
config.targets.get(target).set(matcher, {
|
|
5748
|
+
removeOriginal,
|
|
5749
|
+
currentAttributes: new Map()
|
|
5750
|
+
});
|
|
5751
|
+
|
|
5752
|
+
// Perform initial attribute transport
|
|
5753
|
+
_transportAttributes({ host, target, matcher, removeOriginal });
|
|
5754
|
+
|
|
5755
|
+
// Attach observer
|
|
5756
|
+
_attachObserver(host);
|
|
5757
|
+
|
|
5758
|
+
// Return cleanup function and utility functions
|
|
5759
|
+
return {
|
|
5760
|
+
cleanup: () => _cleanupTransport(host, target, matcher),
|
|
5761
|
+
getObservedAttributes: () => _getObservedAttributes(host, target, matcher),
|
|
5762
|
+
getObservedAttribute: (attr) => _getObservedAttribute(host, target, matcher, attr),
|
|
5763
|
+
}
|
|
5764
|
+
};
|
|
5765
|
+
|
|
5766
|
+
/**
|
|
5767
|
+
* Cleans up resources associated with a specific matcher and target for a host element.
|
|
5768
|
+
*
|
|
5769
|
+
* @param {HTMLElement} host - The host element
|
|
5770
|
+
* @param {HTMLElement} target - The target element
|
|
5771
|
+
* @param {Function} matcher - The matcher function
|
|
5772
|
+
* @private
|
|
5773
|
+
*/
|
|
5774
|
+
const _cleanupTransport = (host, target, matcher) => {
|
|
5775
|
+
const config = _transportConfig.get(host);
|
|
5776
|
+
if (!config) return;
|
|
5777
|
+
|
|
5778
|
+
// Remove this matcher from this target
|
|
5779
|
+
const targetMatchers = config.targets.get(target);
|
|
5780
|
+
if (targetMatchers) {
|
|
5781
|
+
targetMatchers.delete(matcher);
|
|
5782
|
+
|
|
5783
|
+
// If this target has no more matchers, remove it
|
|
5784
|
+
if (targetMatchers.size === 0) {
|
|
5785
|
+
config.targets.delete(target);
|
|
5786
|
+
}
|
|
5787
|
+
}
|
|
5788
|
+
|
|
5789
|
+
// Check if this matcher is still used by any target
|
|
5790
|
+
let matcherStillUsed = false;
|
|
5791
|
+
for (const matcherMap of config.targets.values()) {
|
|
5792
|
+
if (matcherMap.has(matcher)) {
|
|
5793
|
+
matcherStillUsed = true;
|
|
5794
|
+
break;
|
|
5795
|
+
}
|
|
5796
|
+
}
|
|
5797
|
+
|
|
5798
|
+
// If not used anymore, remove from matchers set
|
|
5799
|
+
if (!matcherStillUsed) {
|
|
5800
|
+
config.matchers.delete(matcher);
|
|
5801
|
+
}
|
|
5802
|
+
|
|
5803
|
+
// If no more targets or matchers, detach observer
|
|
5804
|
+
if (config.targets.size === 0 || config.matchers.size === 0) {
|
|
5805
|
+
_detachObserver(host);
|
|
5806
|
+
}
|
|
5807
|
+
};
|
|
5808
|
+
|
|
5809
|
+
/**
|
|
5810
|
+
* Generic function to transport attributes from a host element to a target element.
|
|
5811
|
+
*
|
|
5812
|
+
* @param {Object} params - The parameters object.
|
|
5813
|
+
* @param {HTMLElement} params.host - The host element from which to transport attributes.
|
|
5814
|
+
* @param {HTMLElement} params.target - The target element to which attributes will be transported.
|
|
5815
|
+
* @param {Function} params.matcher - Function that takes an attribute name and returns true if it should be transported.
|
|
5816
|
+
* @param {boolean} [params.removeOriginal=true] - Whether to remove original attributes from host.
|
|
5817
|
+
* @returns {void}
|
|
5818
|
+
* @private
|
|
5819
|
+
*/
|
|
5820
|
+
const _transportAttributes = ({ host, target, matcher, removeOriginal = true }) => {
|
|
5821
|
+
// Get a list of all matching attributes on the host element and their values
|
|
5822
|
+
const matchingAttributes = host.getAttributeNames()
|
|
5823
|
+
.filter(attr => matcher(attr))
|
|
5824
|
+
.reduce((acc, attr) => {
|
|
5825
|
+
acc[attr] = host.getAttribute(attr);
|
|
5826
|
+
return acc;
|
|
5827
|
+
}, {});
|
|
5828
|
+
|
|
5829
|
+
// Move matching attributes to the target element, removing them from the host if removeOriginal is true
|
|
5830
|
+
Object.entries(matchingAttributes).forEach(([key, value]) => {
|
|
5831
|
+
_setObservedAttribute(host, target, matcher, key, value);
|
|
5832
|
+
target.setAttribute(key, value);
|
|
5833
|
+
if (removeOriginal) {
|
|
5834
|
+
host.removeAttribute(key);
|
|
5835
|
+
}
|
|
5836
|
+
});
|
|
5837
|
+
};
|
|
5838
|
+
|
|
5839
|
+
/**
|
|
5840
|
+
* Attaches a MutationObserver to the host element to monitor attribute changes.
|
|
5841
|
+
*
|
|
5842
|
+
* @param {HTMLElement} host - The element to observe for attribute changes.
|
|
5843
|
+
* @returns {MutationObserver} The observer instance.
|
|
5844
|
+
* @private
|
|
5845
|
+
*/
|
|
5846
|
+
const _attachObserver = (host) => {
|
|
5847
|
+
// If an observer for this host already exists, return it
|
|
5848
|
+
if (_observers.has(host)) {
|
|
5849
|
+
return _observers.get(host);
|
|
5850
|
+
}
|
|
5851
|
+
|
|
5852
|
+
// Create a new MutationObserver
|
|
5853
|
+
const observer = new MutationObserver((mutations) => {
|
|
5854
|
+
const config = _transportConfig.get(host);
|
|
5855
|
+
if (!config) return;
|
|
5856
|
+
|
|
5857
|
+
// For each mutation affecting attributes
|
|
5858
|
+
mutations
|
|
5859
|
+
.filter(mutation => mutation.type === 'attributes')
|
|
5860
|
+
.forEach(mutation => {
|
|
5861
|
+
const attributeName = mutation.attributeName;
|
|
5862
|
+
|
|
5863
|
+
// Find matchers that care about this attribute
|
|
5864
|
+
for (const matcher of config.matchers) {
|
|
5865
|
+
if (matcher(attributeName)) {
|
|
5866
|
+
// For each target that uses this matcher
|
|
5867
|
+
for (const [target, matcherConfigs] of config.targets.entries()) {
|
|
5868
|
+
if (matcherConfigs.has(matcher)) {
|
|
5869
|
+
const { removeOriginal } = matcherConfigs.get(matcher);
|
|
5870
|
+
_transportAttributes({
|
|
5871
|
+
host,
|
|
5872
|
+
target,
|
|
5873
|
+
matcher,
|
|
5874
|
+
removeOriginal
|
|
5875
|
+
});
|
|
5876
|
+
}
|
|
5877
|
+
}
|
|
5878
|
+
}
|
|
5879
|
+
}
|
|
5880
|
+
});
|
|
5881
|
+
});
|
|
5882
|
+
|
|
5883
|
+
// Start observing attribute changes
|
|
5884
|
+
observer.observe(host, { attributes: true });
|
|
5885
|
+
|
|
5886
|
+
// Store the observer
|
|
5887
|
+
_observers.set(host, observer);
|
|
5888
|
+
|
|
5889
|
+
return observer;
|
|
5890
|
+
};
|
|
5891
|
+
|
|
5892
|
+
/**
|
|
5893
|
+
* Detaches and cleans up the MutationObserver for a given host element.
|
|
5894
|
+
*
|
|
5895
|
+
* @param {HTMLElement} host - The element whose observer should be detached.
|
|
5896
|
+
* @private
|
|
5897
|
+
*/
|
|
5898
|
+
const _detachObserver = (host) => {
|
|
5899
|
+
if (_observers.has(host)) {
|
|
5900
|
+
const observer = _observers.get(host);
|
|
5901
|
+
observer.disconnect();
|
|
5902
|
+
_observers.delete(host);
|
|
5903
|
+
}
|
|
5904
|
+
|
|
5905
|
+
// Clean up the transport config as well
|
|
5906
|
+
if (_transportConfig.has(host)) {
|
|
5907
|
+
_transportConfig.delete(host);
|
|
5908
|
+
}
|
|
5909
|
+
};
|
|
5910
|
+
|
|
5911
|
+
/**
|
|
5912
|
+
* Gets the matcher configuration for a specific host, target, and matcher
|
|
5913
|
+
* @param {HTMLElement} host - The host element
|
|
5914
|
+
* @param {HTMLElement} target - The target element
|
|
5915
|
+
* @param {Function} matcher - The matcher function
|
|
5916
|
+
* @returns {Object|undefined} The matcher configuration if found
|
|
5917
|
+
* @private
|
|
5918
|
+
*/
|
|
5919
|
+
const _getMatcherConfig = (host, target, matcher) => {
|
|
5920
|
+
const config = _transportConfig.get(host);
|
|
5921
|
+
if (!config) return undefined;
|
|
5922
|
+
|
|
5923
|
+
const targetMatchers = config.targets.get(target);
|
|
5924
|
+
if (!targetMatchers) return undefined;
|
|
5925
|
+
|
|
5926
|
+
return targetMatchers.get(matcher);
|
|
5927
|
+
};
|
|
5928
|
+
|
|
5929
|
+
/**
|
|
5930
|
+
* Sets an observed attribute value
|
|
5931
|
+
* @param {HTMLElement} host - The host element
|
|
5932
|
+
* @param {HTMLElement} target - The target element
|
|
5933
|
+
* @param {Function} matcher - The matcher function
|
|
5934
|
+
* @param {string} key - The attribute name
|
|
5935
|
+
* @param {string} value - The attribute value
|
|
5936
|
+
* @private
|
|
5937
|
+
*/
|
|
5938
|
+
const _setObservedAttribute = (host, target, matcher, key, value) => {
|
|
5939
|
+
const matcherConfig = _getMatcherConfig(host, target, matcher);
|
|
5940
|
+
if (matcherConfig) {
|
|
5941
|
+
matcherConfig.currentAttributes.set(key, value);
|
|
5942
|
+
}
|
|
5943
|
+
};
|
|
5944
|
+
|
|
5945
|
+
const _getObservedAttribute = (host, target, matcher, attr) => {
|
|
5946
|
+
const matcherConfig = _getMatcherConfig(host, target, matcher);
|
|
5947
|
+
if (matcherConfig) return matcherConfig.currentAttributes.get(attr);
|
|
5948
|
+
return undefined;
|
|
5949
|
+
};
|
|
5950
|
+
|
|
5951
|
+
const _getObservedAttributes = (host, target, matcher) => {
|
|
5952
|
+
const matcherConfig = _getMatcherConfig(host, target, matcher);
|
|
5953
|
+
if (matcherConfig) return Array.from(matcherConfig.currentAttributes.entries());
|
|
5954
|
+
return [];
|
|
5955
|
+
};
|
|
5956
|
+
|
|
5957
|
+
const _matchers = {
|
|
5958
|
+
'aria-': attr => attr.startsWith('aria-'),
|
|
5959
|
+
'role': attr => attr.match(/^role$/)
|
|
5960
|
+
};
|
|
5961
|
+
|
|
5962
|
+
const transportAllA11yAttributes = ({ host, target, removeOriginal = true }) => {
|
|
5963
|
+
return transportAttributes({
|
|
5964
|
+
host,
|
|
5965
|
+
target,
|
|
5966
|
+
match: attr => {
|
|
5967
|
+
for (const key in _matchers) {
|
|
5968
|
+
if (_matchers[key](attr)) return true;
|
|
5969
|
+
}
|
|
5970
|
+
return false;
|
|
5971
|
+
},
|
|
5972
|
+
removeOriginal
|
|
5973
|
+
});
|
|
5974
|
+
};
|
|
5975
|
+
|
|
5976
|
+
let AuroElement$1 = class AuroElement extends i$2 {
|
|
5977
|
+
|
|
5978
|
+
/**
|
|
5979
|
+
* @type {Object} return object from transportAttributes via a11yUtilities
|
|
5980
|
+
* @property {Function} cleanup - Function to clean up the attribute watcher.
|
|
5981
|
+
* @property {Function} getCurrentAttributes - Function to get the current attributes being watched and their values.
|
|
5982
|
+
* @property {Function} getObservedAttribute - Function to get the value of a specific observed attribute by name.
|
|
5983
|
+
* @private
|
|
5984
|
+
*/
|
|
5985
|
+
attributeWatcher;
|
|
5986
|
+
|
|
5987
|
+
static get properties() {
|
|
5988
|
+
return {
|
|
5989
|
+
|
|
5990
|
+
/**
|
|
5991
|
+
* Defines the layout of an element.
|
|
5992
|
+
* @default {'default'}
|
|
5993
|
+
*/
|
|
5994
|
+
layout: {
|
|
5995
|
+
type: String,
|
|
5996
|
+
attribute: "layout",
|
|
5997
|
+
reflect: true
|
|
5998
|
+
},
|
|
5999
|
+
|
|
6000
|
+
/**
|
|
6001
|
+
* Defines the shape of an element.
|
|
6002
|
+
* @property {'default', 'rounded', 'pill', 'circle'}
|
|
6003
|
+
* @default {'default'}
|
|
6004
|
+
*/
|
|
6005
|
+
shape: {
|
|
6006
|
+
type: String,
|
|
6007
|
+
attribute: "shape",
|
|
6008
|
+
reflect: true
|
|
6009
|
+
},
|
|
6010
|
+
|
|
6011
|
+
/**
|
|
6012
|
+
* Defines the size of an element.
|
|
6013
|
+
* @property {'xs', 'sm', 'md', 'lg', 'xl'}
|
|
6014
|
+
* @default {'md'}
|
|
6015
|
+
*/
|
|
6016
|
+
size: {
|
|
6017
|
+
type: String,
|
|
6018
|
+
attribute: "size",
|
|
6019
|
+
reflect: true
|
|
6020
|
+
},
|
|
6021
|
+
|
|
6022
|
+
/**
|
|
6023
|
+
* This Boolean attribute lets you specify that the element should be rendered in dark mode.
|
|
6024
|
+
* @default {false}
|
|
6025
|
+
*/
|
|
6026
|
+
onDark: {
|
|
6027
|
+
type: Boolean,
|
|
6028
|
+
attribute: "ondark",
|
|
6029
|
+
reflect: true
|
|
6030
|
+
},
|
|
6031
|
+
|
|
6032
|
+
/**
|
|
6033
|
+
* A reference to the wrapper element in the shadow DOM.
|
|
6034
|
+
* This is used to apply layout and shape classes dynamically.
|
|
6035
|
+
* @type {HTMLElement|null}
|
|
6036
|
+
* @default {null}
|
|
6037
|
+
* @private
|
|
6038
|
+
*/
|
|
6039
|
+
wrapper: {
|
|
6040
|
+
attribute: false,
|
|
6041
|
+
reflect: false
|
|
6042
|
+
}
|
|
6043
|
+
};
|
|
6044
|
+
}
|
|
6045
|
+
|
|
6046
|
+
|
|
6047
|
+
|
|
6048
|
+
resetShapeClasses() {
|
|
6049
|
+
if (this.shape && this.size) {
|
|
6050
|
+
|
|
6051
|
+
if (this.wrapper) {
|
|
6052
|
+
this.wrapper.classList.forEach((className) => {
|
|
6053
|
+
if (className.startsWith('shape-')) {
|
|
6054
|
+
this.wrapper.classList.remove(className);
|
|
6055
|
+
}
|
|
6056
|
+
});
|
|
6057
|
+
|
|
6058
|
+
this.wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
|
|
6059
|
+
}
|
|
6060
|
+
}
|
|
6061
|
+
}
|
|
6062
|
+
|
|
6063
|
+
resetLayoutClasses() {
|
|
6064
|
+
if (this.layout) {
|
|
6065
|
+
if (this.wrapper) {
|
|
6066
|
+
this.wrapper.classList.forEach((className) => {
|
|
6067
|
+
if (className.startsWith('layout-')) {
|
|
6068
|
+
this.wrapper.classList.remove(className);
|
|
6069
|
+
}
|
|
6070
|
+
});
|
|
6071
|
+
|
|
6072
|
+
this.wrapper.classList.add(`layout-${this.layout.toLowerCase()}`);
|
|
6073
|
+
}
|
|
6074
|
+
}
|
|
6075
|
+
}
|
|
6076
|
+
|
|
6077
|
+
updateComponentArchitecture() {
|
|
6078
|
+
this.resetLayoutClasses();
|
|
6079
|
+
this.resetShapeClasses();
|
|
6080
|
+
}
|
|
6081
|
+
|
|
6082
|
+
updated(changedProperties) {
|
|
6083
|
+
if (changedProperties.has('layout') || changedProperties.has('shape') || changedProperties.has('size')) {
|
|
6084
|
+
this.updateComponentArchitecture();
|
|
6085
|
+
}
|
|
6086
|
+
}
|
|
6087
|
+
|
|
6088
|
+
firstUpdated() {
|
|
6089
|
+
super.firstUpdated();
|
|
6090
|
+
|
|
6091
|
+
// Set a reference to the wrapper element in the shadow DOM
|
|
6092
|
+
this.wrapper = this.shadowRoot.querySelector('.wrapper');
|
|
6093
|
+
|
|
6094
|
+
// Initialize the transportation of ARIA attributes to the target element and get the disconnect function for cleanup
|
|
6095
|
+
this.attributeWatcher = transportAllA11yAttributes({ host: this, target: this.shadowRoot.querySelector('.wrapper') });
|
|
6096
|
+
}
|
|
6097
|
+
|
|
6098
|
+
disconnectedCallback() {
|
|
6099
|
+
super.disconnectedCallback();
|
|
6100
|
+
|
|
6101
|
+
// Cleanup the ARIA observer if it exists
|
|
6102
|
+
if (this.attributeWatcher) {
|
|
6103
|
+
this.attributeWatcher.cleanup();
|
|
6104
|
+
this.attributeWatcher = null;
|
|
6105
|
+
}
|
|
6106
|
+
}
|
|
6107
|
+
|
|
6108
|
+
// Try to render the defined `this.layout` layout. If that fails, fall back to the default layout.
|
|
6109
|
+
// This will catch if an invalid layout value is passed in and render the default layout if so.
|
|
6110
|
+
render() {
|
|
6111
|
+
try {
|
|
6112
|
+
return this.renderLayout();
|
|
6113
|
+
} catch (error) {
|
|
6114
|
+
// failed to get the defined layout
|
|
6115
|
+
console.error('Failed to get the defined layout - using the default layout', error); // eslint-disable-line no-console
|
|
6116
|
+
|
|
6117
|
+
// fallback to the default layout
|
|
6118
|
+
return this.getLayout('default');
|
|
6119
|
+
}
|
|
6120
|
+
}
|
|
6121
|
+
};
|
|
6122
|
+
|
|
6123
|
+
var styleCss$3$1 = i$5`:focus:not(:focus-visible){outline:3px solid transparent}.util_insetNone{padding:0}.util_insetXxxs{padding:.125rem}.util_insetXxxs--stretch{padding:.25rem .125rem}.util_insetXxxs--squish{padding:0 .125rem}.util_insetXxs{padding:.25rem}.util_insetXxs--stretch{padding:.375rem .25rem}.util_insetXxs--squish{padding:.125rem .25rem}.util_insetXs{padding:.5rem}.util_insetXs--stretch{padding:.75rem .5rem}.util_insetXs--squish{padding:.25rem .5rem}.util_insetSm{padding:.75rem}.util_insetSm--stretch{padding:1.125rem .75rem}.util_insetSm--squish{padding:.375rem .75rem}.util_insetMd{padding:1rem}.util_insetMd--stretch{padding:1.5rem 1rem}.util_insetMd--squish{padding:.5rem 1rem}.util_insetLg{padding:1.5rem}.util_insetLg--stretch{padding:2.25rem 1.5rem}.util_insetLg--squish{padding:.75rem 1.5rem}.util_insetXl{padding:2rem}.util_insetXl--stretch{padding:3rem 2rem}.util_insetXl--squish{padding:1rem 2rem}.util_insetXxl{padding:3rem}.util_insetXxl--stretch{padding:4.5rem 3rem}.util_insetXxl--squish{padding:1.5rem 3rem}.util_insetXxxl{padding:4rem}.util_insetXxxl--stretch{padding:6rem 4rem}.util_insetXxxl--squish{padding:2rem 4rem}:host([fluid]) .auro-button,:host([fluid=true]) .auro-button{min-width:auto;width:100%}:host([variant=flat]){display:inline-block}::slotted(svg){vertical-align:middle}slot{pointer-events:none}.auro-button{position:relative;padding:0 var(--ds-size-300, 1.5rem);cursor:pointer;border-width:1px;border-style:solid;border-radius:var(--ds-border-radius, 0.375rem);overflow:hidden;text-overflow:ellipsis;user-select:none;white-space:nowrap;min-height:var(--ds-size-600, 3rem);max-height:var(--ds-size-600, 3rem);display:inline-flex;flex-direction:row;align-items:center;justify-content:center;gap:var(--ds-size-100, 0.5rem);margin:0;-webkit-touch-callout:none;-webkit-user-select:none;transition:padding 300ms ease-out}.auro-button:active{transform:scale(0.95)}.auro-button:focus-visible,.auro-button:focus{outline:none;outline-style:solid;outline-width:var(--ds-size-50, 0.25rem);outline-offset:calc(var(--ds-size-50, 0.25rem)*-1)}.auro-button:focus-visible:not([variant=secondary]):not([variant=tertiary]),.auro-button:focus:not([variant=secondary]):not([variant=tertiary]){outline-width:calc(var(--ds-size-50, 0.25rem) - 1px)}.auro-button.loading{cursor:not-allowed}.auro-button.loading *:not([auro-loader]){visibility:hidden}@media screen and (min-width: 576px){.auro-button{min-width:8.75rem;width:auto}}.auro-button:disabled{cursor:not-allowed;transform:unset}.auro-button[variant=secondary]:disabled{cursor:not-allowed;transform:unset}.auro-button[variant=tertiary]:disabled{cursor:not-allowed;transform:unset}.auro-button[variant=ghost]:disabled{cursor:not-allowed;transform:unset}.auro-button[onDark]:disabled{cursor:not-allowed;transform:unset}.auro-button[onDark][variant=secondary]:disabled{cursor:not-allowed;transform:unset}@media(hover: hover){.auro-button[onDark][variant=tertiary]:active,.auro-button[onDark][variant=tertiary]:hover{box-shadow:none}}.auro-button[onDark][variant=tertiary]:active{box-shadow:none}.auro-button[onDark][variant=tertiary]:disabled{cursor:not-allowed;transform:unset}.auro-button.icon-only ::slotted(:not(auro-icon):not([auro-icon])){display:none}.auro-button--slim{min-width:unset;min-height:calc(var(--ds-size-500, 2.5rem) - var(--ds-size-50, 0.25rem));max-height:calc(var(--ds-size-500, 2.5rem) - var(--ds-size-50, 0.25rem))}.auro-button--iconOnly{padding:0 var(--ds-size-100, 0.5rem);border-radius:100px;min-width:unset;height:var(--ds-size-600, 3rem);width:var(--ds-size-500, 2.5rem)}.auro-button--iconOnly ::slotted(auro-icon),.auro-button--iconOnly ::slotted([auro-icon]){--ds-auro-icon-size:var(--ds-size-300, 1.5rem)}.auro-button--iconOnly:not(.auro-button--rounded):focus-visible:not([variant=secondary]):not([variant=tertiary]):not([variant=flat]),.auro-button--iconOnly:not(.auro-button--rounded):focus:not([variant=secondary]):not([variant=tertiary]):not([variant=flat]){outline-width:1px;outline-offset:-2px}.auro-button--iconOnlySlim{padding:0 var(--ds-size-50, 0.25rem);height:calc(var(--ds-size-400, 2rem) + var(--ds-size-50, 0.25rem));width:calc(var(--ds-size-300, 1.5rem) + var(--ds-size-50, 0.25rem))}.auro-button--iconOnlySlim ::slotted(auro-icon),.auro-button--iconOnlySlim ::slotted([auro-icon]){--ds-auro-icon-size:calc(var(--ds-size-200, 1rem) + var(--ds-size-50, 0.25rem))}.auro-button--rounded{border-radius:100px;box-shadow:var(--ds-elevation-300, 0px 0px 15px rgba(0, 0, 0, 0.2));height:var(--ds-size-500, 2.5rem);min-width:unset;transition:padding 300ms ease-out,outline 0ms,outline-offset 0ms}.auro-button--rounded ::slotted(auro-icon),.auro-button--rounded ::slotted([auro-icon]){--ds-auro-icon-size:var(--ds-size-300, 1.5rem)}.auro-button--rounded:focus-visible:not([variant=flat]):after,.auro-button--rounded:focus:not([variant=flat]):after{border-radius:100px}:host([size=xs]) .wrapper:focus-visible,:host([size=xs]) .wrapper:focus{outline-width:1px;outline-offset:-2px}:host([rounded]) .textSlot{transition:opacity 300ms ease-in;opacity:1}:host([rounded][iconOnly]) .textSlot{opacity:0}:host([rounded][iconOnly]) .textWrapper{display:none}:host([rounded][iconOnly]) .auro-button{min-width:unset;padding:unset;width:var(--ds-size-600, 3rem)}[auro-loader]{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);pointer-events:none}`;
|
|
6124
|
+
|
|
6125
|
+
var colorCss$2$1 = i$5`[auro-loader]{color:var(--ds-auro-button-loader-color)}.auro-button{-webkit-tap-highlight-color:var(--ds-auro-button-tap-color);color:var(--ds-auro-button-text-color);background-color:var(--ds-auro-button-container-color);background-image:linear-gradient(var(--ds-auro-button-container-image), var(--ds-auro-button-container-image));border-color:var(--ds-auro-button-border-color)}.auro-button:not([variant=secondary]):not([variant=tertiary]):focus-visible{outline-color:var(--ds-auro-button-border-inset-color)}.auro-button:not([ondark]):active:not(:disabled),.auro-button:not([ondark]):hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-hover, #00274a);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-hover, #00274a);--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-hover, #00274a)}.auro-button:not([ondark]):disabled{--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-disabled, #acc9e2);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-disabled, #acc9e2);--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-disabled, #acc9e2)}.auro-button:not([ondark])[variant=secondary]{--ds-auro-button-container-color:var(--ds-advanced-color-button-secondary-background, #ffffff);--ds-auro-button-container-image:var(--ds-advanced-color-button-secondary-background, #ffffff);--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border, #01426a);--ds-auro-button-text-color:var(--ds-advanced-color-button-secondary-text, #01426a);--ds-auro-button-loader-color:var(--ds-advanced-color-button-secondary-text, #01426a)}.auro-button:not([ondark])[variant=secondary]:active:not(:disabled),.auro-button:not([ondark])[variant=secondary]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-secondary-background-hover, #f2f2f2);--ds-auro-button-container-image:var(--ds-advanced-color-button-secondary-background-hover, #f2f2f2);--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border-hover, #00274a);--ds-auro-button-text-color:var(--ds-advanced-color-button-secondary-text-hover, #00274a)}.auro-button:not([ondark])[variant=secondary]:focus-visible{--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button:not([ondark])[variant=secondary]:disabled{--ds-auro-button-container-color:var(--ds-advanced-color-button-secondary-background-disabled, #f7f7f7);--ds-auro-button-container-image:var(--ds-advanced-color-button-secondary-background-disabled, #f7f7f7);--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border-disabled, #cfe0ef);--ds-auro-button-text-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}.auro-button:not([ondark])[variant=tertiary]{--ds-auro-button-container-color:var(--ds-advanced-color-button-tertiary-background, rgba(0, 0, 0, 0.05));--ds-auro-button-container-image:var(--ds-advanced-color-button-tertiary-background, rgba(0, 0, 0, 0.05));--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-advanced-color-button-tertiary-text, #01426a);--ds-auro-button-loader-color:var(--ds-advanced-color-button-tertiary-text, #01426a)}.auro-button:not([ondark])[variant=tertiary]:active:not(:disabled),.auro-button:not([ondark])[variant=tertiary]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-tertiary-background-hover, rgba(0, 0, 0, 0.1));--ds-auro-button-container-image:var(--ds-advanced-color-button-tertiary-background-hover, rgba(0, 0, 0, 0.1));--ds-auro-button-border-color:transparent}.auro-button:not([ondark])[variant=tertiary]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused, #01426a);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button:not([ondark])[variant=tertiary]:disabled{--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}.auro-button:not([ondark])[variant=ghost]{--ds-auro-button-container-color:transparent;--ds-auro-button-container-image:transparent;--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-advanced-color-button-ghost-text, #01426a);--ds-auro-button-loader-color:var(--ds-advanced-color-button-ghost-text, #01426a)}.auro-button:not([ondark])[variant=ghost]:active:not(:disabled),.auro-button:not([ondark])[variant=ghost]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-ghost-background-hover, rgba(0, 0, 0, 0.05));--ds-auro-button-container-image:var(--ds-advanced-color-button-ghost-background-hover, rgba(0, 0, 0, 0.05));--ds-auro-button-border-color:transparent}.auro-button:not([ondark])[variant=ghost]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused, #01426a);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button:not([ondark])[variant=ghost]:disabled{--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}.auro-button:not([ondark])[variant=flat]{color:var(--ds-advanced-color-button-flat-text, #676767);background-color:transparent;background-image:none;border-color:transparent}.auro-button:not([ondark])[variant=flat]:active:not(:disabled),.auro-button:not([ondark])[variant=flat]:hover:not(:disabled){color:var(--ds-advanced-color-button-flat-text-hover, #525252);background-color:transparent;background-image:none;border-color:transparent}.auro-button:not([ondark])[variant=flat]:disabled{color:var(--ds-advanced-color-button-flat-text-disabled, #d0d0d0);background-color:transparent;background-image:none;border-color:transparent}.auro-button:not([ondark])[variant=flat]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused, #01426a);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button[ondark]{--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-inverse, #ffffff);--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-inverse, #ffffff);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-inverse, #ffffff);--ds-auro-button-text-color:var(--ds-advanced-color-button-primary-text-inverse, #01426a);--ds-auro-button-loader-color:var(--ds-advanced-color-button-primary-text-inverse, #01426a)}.auro-button[ondark]:active:not(:disabled),.auro-button[ondark]:hover:not(:disabled){--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-inverse-hover, #ebf3f9);--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-inverse-hover, #ebf3f9);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-inverse-hover, #ebf3f9)}.auro-button[ondark]:focus-visible{--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused, #01426a)}.auro-button[ondark]:disabled{--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-inverse-disabled, rgba(255, 255, 255, 0.75));--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-inverse-disabled, rgba(255, 255, 255, 0.75));--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-inverse-disabled, rgba(255, 255, 255, 0.75));--ds-auro-button-text-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}.auro-button[ondark][variant=secondary]{--ds-auro-button-container-color:transparent;--ds-auro-button-container-image:transparent;--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border-inverse, #ffffff);--ds-auro-button-text-color:var(--ds-advanced-color-button-secondary-text-inverse, #ffffff);--ds-auro-button-loader-color:var(--ds-advanced-color-button-secondary-text-inverse, #ffffff)}.auro-button[ondark][variant=secondary]:active:not(:disabled),.auro-button[ondark][variant=secondary]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-secondary-background-inverse-hover, rgba(255, 255, 255, 0.1));--ds-auro-button-container-image:var(--ds-advanced-color-button-secondary-background-inverse-hover, rgba(255, 255, 255, 0.1))}.auro-button[ondark][variant=secondary]:focus-visible{--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff)}.auro-button[ondark][variant=secondary]:disabled{--ds-auro-button-text-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894);--ds-auro-button-border-color:var(--ds-advanced-color-button-secondary-border-inverse-disabled, #dddddd)}.auro-button[ondark][variant=tertiary]{--ds-auro-button-container-color:var(--ds-advanced-color-button-tertiary-background-inverse, rgba(255, 255, 255, 0.05));--ds-auro-button-container-image:var(--ds-advanced-color-button-tertiary-background-inverse, rgba(255, 255, 255, 0.05));--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-advanced-color-button-tertiary-text-inverse, #ffffff);--ds-auro-button-loader-color:var(--ds-advanced-color-button-tertiary-text-inverse, #ffffff)}.auro-button[ondark][variant=tertiary]:active:not(:disabled),.auro-button[ondark][variant=tertiary]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-tertiary-background-inverse-hover, rgba(255, 255, 255, 0.1));--ds-auro-button-container-image:var(--ds-advanced-color-button-tertiary-background-inverse-hover, rgba(255, 255, 255, 0.1))}.auro-button[ondark][variant=tertiary]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff)}.auro-button[ondark][variant=tertiary]:disabled{--ds-auro-button-text-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}.auro-button[ondark][variant=ghost]{--ds-auro-button-container-color:transparent;--ds-auro-button-container-image:transparent;--ds-auro-button-border-color:transparent;--ds-auro-button-text-color:var(--ds-advanced-color-button-ghost-text-inverse, #ffffff);--ds-auro-button-loader-color:var(--ds-advanced-color-button-ghost-text-inverse, #ffffff)}.auro-button[ondark][variant=ghost]:active:not(:disabled),.auro-button[ondark][variant=ghost]:hover:not(:disabled){--ds-auro-button-container-color:var(--ds-advanced-color-button-ghost-background-inverse-hover, rgba(255, 255, 255, 0.05));--ds-auro-button-container-image:var(--ds-advanced-color-button-ghost-background-inverse-hover, rgba(255, 255, 255, 0.05))}.auro-button[ondark][variant=ghost]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff)}.auro-button[ondark][variant=ghost]:disabled{--ds-auro-button-text-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}.auro-button[ondark][variant=flat]{color:var(--ds-advanced-color-button-flat-text-inverse, #ffffff);background-color:transparent;background-image:none;border-color:transparent}.auro-button[ondark][variant=flat]:active:not(:disabled),.auro-button[ondark][variant=flat]:hover:not(:disabled){color:var(--ds-advanced-color-button-flat-text-inverse-hover, #adadad);background-color:transparent;background-image:none;border-color:transparent}.auro-button[ondark][variant=flat]:disabled{color:var(--ds-advanced-color-button-flat-text-inverse-disabled, #7e8894);background-color:transparent;background-image:none;border-color:transparent}.auro-button[ondark][variant=flat]:focus-visible{--ds-auro-button-border-color:var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff)}`;
|
|
6126
|
+
|
|
6127
|
+
var tokensCss$2$1 = i$5`:host(:not([onDark])){--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border, #01426a);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background, #01426a);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background, #01426a);--ds-auro-button-loader-color:var(--ds-advanced-color-button-primary-text, #ffffff);--ds-auro-button-text-color:var(--ds-advanced-color-button-primary-text, #ffffff);--ds-auro-button-tap-color:transparent}:host([onDark]){--ds-auro-button-border-color:var(--ds-advanced-color-button-primary-border-inverse, #ffffff);--ds-auro-button-border-inset-color:var(--ds-advanced-color-state-focused-inverse, #ffffff);--ds-auro-button-container-color:var(--ds-advanced-color-button-primary-background-inverse, #ffffff);--ds-auro-button-container-image:var(--ds-advanced-color-button-primary-background-inverse, #ffffff);--ds-auro-button-loader-color:var(--ds-advanced-color-button-primary-text-inverse, #01426a);--ds-auro-button-text-color:var(--ds-advanced-color-button-primary-text-inverse, #01426a);--ds-auro-button-tap-color:transparent}`;
|
|
6128
|
+
|
|
6129
|
+
var shapeSize = i$5`.shape-rounded-xl{min-height:68px;max-height:68px;border-style:solid;border-radius:6px;overflow:hidden;font-size:18px}.shape-rounded-lg{min-height:52px;max-height:52px;border-style:solid;border-radius:6px;overflow:hidden;font-size:18px}.shape-rounded-md{min-height:44px;max-height:44px;border-style:solid;border-radius:6px;overflow:hidden;font-size:16px}.shape-rounded-sm{min-height:32px;max-height:32px;border-style:solid;border-radius:6px;overflow:hidden;font-size:14px}.shape-rounded-xs{min-height:20px;max-height:20px;border-style:solid;border-radius:4px;overflow:hidden;font-size:12px;outline-offset:-2px;outline-width:1px}.shape-pill-xl{min-height:68px;max-height:68px;border-style:solid;border-radius:34px;overflow:hidden;font-size:18px}.shape-pill-left-xl{min-height:68px;max-height:68px;border-style:solid;border-radius:34px 0 0 34px;overflow:hidden}.shape-pill-right-xl{min-height:68px;max-height:68px;border-style:solid;border-radius:0 34px 34px 0;overflow:hidden}.shape-pill-lg{min-height:52px;max-height:52px;border-style:solid;border-radius:26px;overflow:hidden;font-size:18px}.shape-pill-left-lg{min-height:52px;max-height:52px;border-style:solid;border-radius:26px 0 0 26px;overflow:hidden}.shape-pill-right-lg{min-height:52px;max-height:52px;border-style:solid;border-radius:0 26px 26px 0;overflow:hidden}.shape-pill-md{min-height:44px;max-height:44px;border-style:solid;border-radius:22px;overflow:hidden}.shape-pill-left-md{min-height:44px;max-height:44px;border-style:solid;border-radius:22px 0 0 22px;overflow:hidden}.shape-pill-right-md{min-height:44px;max-height:44px;border-style:solid;border-radius:0 22px 22px 0;overflow:hidden;font-size:16px}.shape-pill-sm{min-height:32px;max-height:32px;border-style:solid;border-radius:16px;overflow:hidden;font-size:14px}.shape-pill-left-sm{min-height:32px;max-height:32px;border-style:solid;border-radius:16px 0 0 16px;overflow:hidden}.shape-pill-right-sm{min-height:32px;max-height:32px;border-style:solid;border-radius:0 16px 16px 0;overflow:hidden}.shape-pill-xs{min-height:20px;max-height:20px;border-style:solid;border-radius:10px;overflow:hidden;font-size:12px;outline-offset:-2px;outline-width:1px}.shape-pill-left-xs{min-height:20px;max-height:20px;border-style:solid;border-radius:10px 0 0 10px;overflow:hidden;outline-offset:-2px;outline-width:1px}.shape-pill-right-xs{min-height:20px;max-height:20px;border-style:solid;border-radius:0 10px 10px 0;overflow:hidden;outline-offset:-2px;outline-width:1px}.shape-circle-xl{min-height:68px;max-height:68px;min-width:68px;max-width:68px;border-style:solid;border-radius:34px;overflow:hidden;padding:0}.shape-circle-lg{min-height:52px;max-height:52px;min-width:52px;max-width:52px;border-style:solid;border-radius:26px;overflow:hidden;padding:0}.shape-circle-md{min-height:44px;max-height:44px;min-width:44px;max-width:44px;border-style:solid;border-radius:22px;overflow:hidden;padding:0}.shape-circle-sm{min-height:32px;max-height:32px;min-width:32px;max-width:32px;border-style:solid;border-radius:16px;overflow:hidden;padding:0}.shape-circle-xs{min-height:20px;max-height:20px;min-width:20px;max-width:20px;border-style:solid;border-radius:10px;overflow:hidden;padding:0;outline-offset:-2px;outline-width:1px}`;
|
|
6130
|
+
|
|
6131
|
+
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
6132
|
+
// See LICENSE in the project root for license information.
|
|
6133
|
+
|
|
6134
|
+
// ---------------------------------------------------------------------
|
|
6135
|
+
|
|
6136
|
+
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
6137
|
+
|
|
6138
|
+
let AuroLibraryRuntimeUtils$2 = class AuroLibraryRuntimeUtils {
|
|
6139
|
+
|
|
6140
|
+
/* eslint-disable jsdoc/require-param */
|
|
6141
|
+
|
|
6142
|
+
/**
|
|
6143
|
+
* This will register a new custom element with the browser.
|
|
6144
|
+
* @param {String} name - The name of the custom element.
|
|
6145
|
+
* @param {Object} componentClass - The class to register as a custom element.
|
|
6146
|
+
* @returns {void}
|
|
6147
|
+
*/
|
|
6148
|
+
registerComponent(name, componentClass) {
|
|
6149
|
+
if (!customElements.get(name)) {
|
|
6150
|
+
customElements.define(name, class extends componentClass {});
|
|
6151
|
+
}
|
|
6152
|
+
}
|
|
6153
|
+
|
|
6154
|
+
/**
|
|
6155
|
+
* Finds and returns the closest HTML Element based on a selector.
|
|
6156
|
+
* @returns {void}
|
|
6157
|
+
*/
|
|
6158
|
+
closestElement(
|
|
6159
|
+
selector, // selector like in .closest()
|
|
6160
|
+
base = this, // extra functionality to skip a parent
|
|
6161
|
+
__Closest = (el, found = el && el.closest(selector)) =>
|
|
6162
|
+
!el || el === document || el === window
|
|
6163
|
+
? null // standard .closest() returns null for non-found selectors also
|
|
6164
|
+
: found
|
|
6165
|
+
? found // found a selector INside this element
|
|
6166
|
+
: __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
|
|
6167
|
+
) {
|
|
6168
|
+
return __Closest(base);
|
|
6169
|
+
}
|
|
6170
|
+
/* eslint-enable jsdoc/require-param */
|
|
6171
|
+
|
|
6172
|
+
/**
|
|
6173
|
+
* If the element passed is registered with a different tag name than what is passed in, the tag name is added as an attribute to the element.
|
|
6174
|
+
* @param {Object} elem - The element to check.
|
|
6175
|
+
* @param {String} tagName - The name of the Auro component to check for or add as an attribute.
|
|
6176
|
+
* @returns {void}
|
|
6177
|
+
*/
|
|
6178
|
+
handleComponentTagRename(elem, tagName) {
|
|
6179
|
+
const tag = tagName.toLowerCase();
|
|
6180
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
6181
|
+
|
|
6182
|
+
if (elemTag !== tag) {
|
|
6183
|
+
elem.setAttribute(tag, true);
|
|
6184
|
+
}
|
|
6185
|
+
}
|
|
6186
|
+
|
|
6187
|
+
/**
|
|
6188
|
+
* Validates if an element is a specific Auro component.
|
|
6189
|
+
* @param {Object} elem - The element to validate.
|
|
6190
|
+
* @param {String} tagName - The name of the Auro component to check against.
|
|
6191
|
+
* @returns {Boolean} - Returns true if the element is the specified Auro component.
|
|
6192
|
+
*/
|
|
6193
|
+
elementMatch(elem, tagName) {
|
|
6194
|
+
const tag = tagName.toLowerCase();
|
|
6195
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
6196
|
+
|
|
6197
|
+
return elemTag === tag || elem.hasAttribute(tag);
|
|
6198
|
+
}
|
|
6199
|
+
};
|
|
6200
|
+
|
|
6201
|
+
var styleCss$2$1 = i$5`:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin:0.375rem;--margin-xs:0.2rem;--margin-sm:0.5rem;--margin-md:0.75rem;--margin-lg:1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin)*6);height:1.5rem}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(2.55rem + var(--margin-xs)*6);height:1.55rem}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm)*6);height:2.5rem}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md)*6);height:3.5rem}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg)*6);height:5.5rem}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-400ms}:host([pulse])>span:nth-child(2){animation-delay:-200ms}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,100%{opacity:.1;transform:scale(0.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{100%{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}100%{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}100%{left:110%}}:host>.no-animation{display:none}@media(prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center;font-size:1rem}:host>span{opacity:1}:host>.loader{display:none}:host>.no-animation{display:block}}`;
|
|
6202
|
+
|
|
6203
|
+
var colorCss$1$1 = i$5`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]){--ds-auro-loader-color:var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]){--ds-auro-loader-color:var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color:transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color:currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color:currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}`;
|
|
6204
|
+
|
|
6205
|
+
var tokensCss$1$1 = i$5`:host{--ds-auro-loader-background-color:currentcolor;--ds-auro-loader-border-color:currentcolor;--ds-auro-loader-color:currentcolor}`;
|
|
6206
|
+
|
|
6207
|
+
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
6208
|
+
// See LICENSE in the project root for license information.
|
|
6209
|
+
|
|
6210
|
+
|
|
6211
|
+
class AuroLoader extends i$2 {
|
|
6212
|
+
constructor() {
|
|
6213
|
+
super();
|
|
6214
|
+
|
|
6215
|
+
/**
|
|
6216
|
+
* @private
|
|
6217
|
+
*/
|
|
6218
|
+
this.keys = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
|
6219
|
+
|
|
6220
|
+
/**
|
|
6221
|
+
* @private
|
|
6222
|
+
*/
|
|
6223
|
+
this.mdCount = 3;
|
|
6224
|
+
|
|
6225
|
+
/**
|
|
6226
|
+
* @private
|
|
6227
|
+
*/
|
|
6228
|
+
this.smCount = 2;
|
|
6229
|
+
|
|
6230
|
+
/**
|
|
6231
|
+
* @private
|
|
6232
|
+
*/
|
|
6233
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$2();
|
|
6234
|
+
|
|
6235
|
+
this.orbit = false;
|
|
6236
|
+
this.ringworm = false;
|
|
6237
|
+
this.laser = false;
|
|
6238
|
+
this.pulse = false;
|
|
6239
|
+
}
|
|
6240
|
+
|
|
6241
|
+
// function to define props used within the scope of this component
|
|
6242
|
+
static get properties() {
|
|
6243
|
+
return {
|
|
6244
|
+
|
|
6245
|
+
/**
|
|
6246
|
+
* Sets loader to laser type.
|
|
6247
|
+
*/
|
|
6248
|
+
laser: {
|
|
6249
|
+
type: Boolean,
|
|
6250
|
+
reflect: true
|
|
6251
|
+
},
|
|
6252
|
+
|
|
6253
|
+
/**
|
|
6254
|
+
* Sets loader to orbit type.
|
|
6255
|
+
*/
|
|
6256
|
+
orbit: {
|
|
6257
|
+
type: Boolean,
|
|
6258
|
+
reflect: true
|
|
6259
|
+
},
|
|
6260
|
+
|
|
6261
|
+
/**
|
|
6262
|
+
* Sets loader to pulse type.
|
|
6263
|
+
*/
|
|
6264
|
+
pulse: {
|
|
6265
|
+
type: Boolean,
|
|
6266
|
+
reflect: true
|
|
6267
|
+
},
|
|
6268
|
+
|
|
6269
|
+
/**
|
|
6270
|
+
* Sets loader to ringworm type.
|
|
6271
|
+
*/
|
|
6272
|
+
ringworm: {
|
|
6273
|
+
type: Boolean,
|
|
6274
|
+
reflect: true
|
|
6275
|
+
}
|
|
6276
|
+
};
|
|
6277
|
+
}
|
|
6278
|
+
|
|
6279
|
+
static get styles() {
|
|
6280
|
+
return [
|
|
6281
|
+
i$5`${styleCss$2$1}`,
|
|
6282
|
+
i$5`${colorCss$1$1}`,
|
|
6283
|
+
i$5`${tokensCss$1$1}`
|
|
6284
|
+
];
|
|
6285
|
+
}
|
|
6286
|
+
|
|
6287
|
+
/**
|
|
6288
|
+
* This will register this element with the browser.
|
|
6289
|
+
* @param {string} [name="auro-loader"] - The name of element that you want to register to.
|
|
6290
|
+
*
|
|
6291
|
+
* @example
|
|
6292
|
+
* AuroLoader.register("custom-loader") // this will register this element to <custom-loader/>
|
|
6293
|
+
*
|
|
6294
|
+
*/
|
|
6295
|
+
static register(name = "auro-loader") {
|
|
6296
|
+
AuroLibraryRuntimeUtils$2.prototype.registerComponent(name, AuroLoader);
|
|
6297
|
+
}
|
|
6298
|
+
|
|
6299
|
+
firstUpdated() {
|
|
6300
|
+
// Add the tag name as an attribute if it is different than the component name
|
|
6301
|
+
this.runtimeUtils.handleComponentTagRename(this, 'auro-loader');
|
|
6302
|
+
}
|
|
6303
|
+
|
|
6304
|
+
connectedCallback() {
|
|
6305
|
+
super.connectedCallback();
|
|
6306
|
+
}
|
|
6307
|
+
|
|
6308
|
+
/**
|
|
6309
|
+
* @private
|
|
6310
|
+
* @returns {Array} Numbered array for template map.
|
|
6311
|
+
*/
|
|
6312
|
+
defineTemplate() {
|
|
6313
|
+
let nodes = Array.from(Array(this.mdCount).keys());
|
|
6314
|
+
|
|
6315
|
+
if (this.orbit || this.laser) {
|
|
6316
|
+
nodes = Array.from(Array(this.smCount).keys());
|
|
6317
|
+
} else if (this.ringworm) {
|
|
6318
|
+
nodes = Array.from(Array(0).keys());
|
|
6319
|
+
}
|
|
6320
|
+
|
|
6321
|
+
return nodes;
|
|
6322
|
+
}
|
|
6323
|
+
|
|
6324
|
+
// When using auroElement, use the following attribute and function when hiding content from screen readers.
|
|
6325
|
+
// aria-hidden="${this.hideAudible(this.hiddenAudible)}"
|
|
6326
|
+
|
|
6327
|
+
// function that renders the HTML and CSS into the scope of the component
|
|
6328
|
+
render() {
|
|
6329
|
+
return x`
|
|
6330
|
+
${this.defineTemplate().map((idx) => x`
|
|
6331
|
+
<span part="element" class="loader node-${idx}"></span>
|
|
6332
|
+
`)}
|
|
6333
|
+
|
|
6334
|
+
<div class="no-animation">Loading...</div>
|
|
6335
|
+
|
|
6336
|
+
${this.ringworm ? x`
|
|
6337
|
+
<svg part="element" class="circular" viewBox="25 25 50 50">
|
|
6338
|
+
<circle class="path" cx="50" cy="50" r="20" fill="none"/>
|
|
6339
|
+
</svg>`
|
|
6340
|
+
: ``
|
|
6341
|
+
}
|
|
6342
|
+
`;
|
|
6343
|
+
}
|
|
6344
|
+
}
|
|
6345
|
+
|
|
6346
|
+
var loaderVersion = '5.0.0';
|
|
6347
|
+
|
|
6348
|
+
/* eslint-disable max-lines, curly, jsdoc/no-undefined-types */
|
|
6349
|
+
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
6350
|
+
// See LICENSE in the project root for license information.
|
|
6351
|
+
|
|
6352
|
+
|
|
6353
|
+
/**
|
|
6354
|
+
* @slot - Default slot for the text of the button.
|
|
6355
|
+
* @csspart button - Apply CSS to HTML5 button.
|
|
6356
|
+
* @csspart loader - Apply CSS to auro-loader.
|
|
6357
|
+
* @csspart text - Apply CSS to text slot.
|
|
6358
|
+
* @csspart icon - Apply CSS to icon slot.
|
|
6359
|
+
*/
|
|
6360
|
+
|
|
6361
|
+
/* eslint-disable lit/no-invalid-html, lit/binding-positions */
|
|
6362
|
+
|
|
6363
|
+
const ICON_ONLY_SHAPES = ['circle'];
|
|
6364
|
+
|
|
6365
|
+
/**
|
|
6366
|
+
* AuroButton is a custom element that provides a styled, accessible button with support for various states and form association.
|
|
6367
|
+
* It is designed to be flexible, supporting loading states, icon slots, and integration with HTML5 forms.
|
|
6368
|
+
* @property {'default', 'rounded', 'pill', 'circle'} shape - Defines the shape of the button.
|
|
6369
|
+
* @property {'xs', 'sm', 'md', 'lg', 'xl'} size - Defines the size of the button.
|
|
6370
|
+
* @property {'primary', 'secondary', 'tertiary', 'ghost', 'flat'} variant - Sets the button variant.
|
|
6371
|
+
* @property {'submit', 'reset', 'button'} type - The type of button. Matches HTML5 Button Spec.
|
|
6372
|
+
* @property {boolean} onDark - Indicates if the button is rendered in dark mode.
|
|
6373
|
+
*/
|
|
6374
|
+
class AuroButton extends AuroElement$1 {
|
|
6375
|
+
|
|
6376
|
+
/**
|
|
6377
|
+
* Enables form association for this element.
|
|
6378
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/attachInternals
|
|
6379
|
+
* @returns {boolean} - Returns true to enable form association.
|
|
6380
|
+
*/
|
|
6381
|
+
static get formAssociated() {
|
|
6382
|
+
return true;
|
|
6383
|
+
}
|
|
6384
|
+
|
|
6385
|
+
constructor() {
|
|
6386
|
+
super();
|
|
6387
|
+
this.autofocus = false;
|
|
6388
|
+
this.disabled = false;
|
|
6389
|
+
this.loading = false;
|
|
6390
|
+
this.size = "md";
|
|
6391
|
+
this.shape = "rounded";
|
|
6392
|
+
this.onDark = false;
|
|
6393
|
+
this.fluid = false;
|
|
6394
|
+
this.loadingText = this.loadingText || 'Loading...';
|
|
6395
|
+
|
|
6396
|
+
// Support for HTML5 forms
|
|
6397
|
+
if (typeof this.attachInternals === 'function') {
|
|
6398
|
+
this.internals = this.attachInternals();
|
|
6399
|
+
} else {
|
|
6400
|
+
this.internals = null;
|
|
6401
|
+
|
|
6402
|
+
// eslint-disable-next-line no-console
|
|
6403
|
+
console.warn('This browser does not support form association features. Some form-related functionality may not work as expected. Consider using a polyfill or handling click events manually.');
|
|
6404
|
+
}
|
|
6405
|
+
|
|
6406
|
+
/**
|
|
6407
|
+
* Generate unique names for dependency components.
|
|
6408
|
+
*/
|
|
6409
|
+
const versioning = new AuroDependencyVersioning();
|
|
6410
|
+
|
|
6411
|
+
/**
|
|
6412
|
+
* @private
|
|
6413
|
+
*/
|
|
6414
|
+
this.loaderTag = versioning.generateTag('auro-loader', loaderVersion, AuroLoader);
|
|
6415
|
+
|
|
6416
|
+
/**
|
|
6417
|
+
* @private
|
|
6418
|
+
*/
|
|
6419
|
+
this.buttonHref = undefined;
|
|
6420
|
+
|
|
6421
|
+
/**
|
|
6422
|
+
* @private
|
|
6423
|
+
*/
|
|
6424
|
+
this.buttonTarget = undefined;
|
|
6425
|
+
|
|
6426
|
+
/**
|
|
6427
|
+
* @private
|
|
6428
|
+
*/
|
|
6429
|
+
this.buttonRel = undefined;
|
|
6430
|
+
}
|
|
6431
|
+
|
|
6432
|
+
static get styles() {
|
|
6433
|
+
return [
|
|
6434
|
+
tokensCss$2$1,
|
|
6435
|
+
styleCss$3$1,
|
|
6436
|
+
colorCss$2$1,
|
|
6437
|
+
shapeSize
|
|
6438
|
+
];
|
|
6439
|
+
}
|
|
6440
|
+
|
|
6441
|
+
static get properties() {
|
|
6442
|
+
return {
|
|
6443
|
+
|
|
6444
|
+
...super.properties,
|
|
6445
|
+
|
|
6446
|
+
/**
|
|
6447
|
+
* Override layout since it isn't used in this component.
|
|
6448
|
+
* @private
|
|
6449
|
+
*/
|
|
6450
|
+
layout: {
|
|
6451
|
+
type: Boolean,
|
|
6452
|
+
attribute: false,
|
|
6453
|
+
reflect: false
|
|
6454
|
+
},
|
|
6455
|
+
|
|
6456
|
+
/**
|
|
6457
|
+
* This Boolean attribute lets you specify that the button should have input focus when the page loads, unless overridden by the user.
|
|
6458
|
+
*/
|
|
6459
|
+
autofocus: {
|
|
6460
|
+
type: Boolean,
|
|
6461
|
+
reflect: true
|
|
6462
|
+
},
|
|
6463
|
+
|
|
6464
|
+
/**
|
|
6465
|
+
* If set to true, button will become disabled and not allow for interactions.
|
|
6466
|
+
*/
|
|
6467
|
+
disabled: {
|
|
6468
|
+
type: Boolean,
|
|
6469
|
+
reflect: true
|
|
6470
|
+
},
|
|
6471
|
+
|
|
6472
|
+
/**
|
|
6473
|
+
* Alters the shape of the button to be full width of its parent container.
|
|
6474
|
+
*/
|
|
6475
|
+
fluid: {
|
|
6476
|
+
type: Boolean,
|
|
6477
|
+
reflect: true
|
|
6478
|
+
},
|
|
6479
|
+
|
|
6480
|
+
/**
|
|
6481
|
+
* If set to true button text will be replaced with `auro-loader` and become disabled.
|
|
6482
|
+
*/
|
|
6483
|
+
loading: {
|
|
6484
|
+
type: Boolean,
|
|
6485
|
+
reflect: true
|
|
6486
|
+
},
|
|
6487
|
+
|
|
6488
|
+
/**
|
|
6489
|
+
* Sets custom loading text for the `aria-label` on a button in loading state. If not set, the default value of "Loading..." will be used.
|
|
6490
|
+
*/
|
|
6491
|
+
loadingText: {
|
|
6492
|
+
type: String
|
|
6493
|
+
},
|
|
6494
|
+
|
|
6495
|
+
/**
|
|
6496
|
+
* Populates `tabindex` to define the focusable sequence in keyboard navigation.
|
|
6497
|
+
*/
|
|
6498
|
+
tIndex: {
|
|
6499
|
+
type: String,
|
|
6500
|
+
reflect: true
|
|
6501
|
+
},
|
|
6502
|
+
|
|
6503
|
+
/**
|
|
6504
|
+
* Populates `tabindex` to define the focusable sequence in keyboard navigation.
|
|
6505
|
+
* Must be used with "." to ensure the host element does not retain a reference to the `tabindex` attribute.
|
|
6506
|
+
* Example: `<auro-button .tabindex="${this.disabled ? '-1' : '0'}"></auro-button>`
|
|
6507
|
+
*/
|
|
6508
|
+
tabindex: {
|
|
6509
|
+
type: String,
|
|
6510
|
+
reflect: false
|
|
6511
|
+
},
|
|
6512
|
+
|
|
6513
|
+
/**
|
|
6514
|
+
* Sets title attribute. The information is most often shown as a tooltip text when the mouse moves over the element.
|
|
6515
|
+
*/
|
|
6516
|
+
title: {
|
|
6517
|
+
type: String,
|
|
6518
|
+
reflect: true
|
|
6519
|
+
},
|
|
6520
|
+
|
|
6521
|
+
/**
|
|
6522
|
+
* The type of the button. Possible values are: `submit`, `reset`, `button`.
|
|
6523
|
+
*/
|
|
6524
|
+
type: {
|
|
6525
|
+
type: String,
|
|
6526
|
+
reflect: true
|
|
6527
|
+
},
|
|
6528
|
+
|
|
6529
|
+
/**
|
|
6530
|
+
* Defines the value associated with the button which is submitted with the form data.
|
|
6531
|
+
*/
|
|
6532
|
+
value: {
|
|
6533
|
+
type: String,
|
|
6534
|
+
reflect: true
|
|
6535
|
+
},
|
|
6536
|
+
|
|
6537
|
+
/**
|
|
6538
|
+
* Sets button variant option.
|
|
6539
|
+
* @default primary
|
|
6540
|
+
*/
|
|
6541
|
+
variant: {
|
|
6542
|
+
type: String,
|
|
6543
|
+
reflect: true
|
|
6544
|
+
},
|
|
6545
|
+
|
|
6546
|
+
/**
|
|
6547
|
+
* @private
|
|
6548
|
+
*/
|
|
6549
|
+
buttonHref: {
|
|
6550
|
+
type: String,
|
|
6551
|
+
},
|
|
6552
|
+
|
|
6553
|
+
/**
|
|
6554
|
+
* @private
|
|
6555
|
+
*/
|
|
6556
|
+
buttonTarget: {
|
|
6557
|
+
type: String,
|
|
6558
|
+
},
|
|
5317
6559
|
|
|
5318
|
-
|
|
6560
|
+
/**
|
|
6561
|
+
* @private
|
|
6562
|
+
*/
|
|
6563
|
+
buttonRel: {
|
|
6564
|
+
type: String,
|
|
6565
|
+
},
|
|
6566
|
+
};
|
|
6567
|
+
}
|
|
5319
6568
|
|
|
5320
6569
|
/**
|
|
5321
|
-
* This will register
|
|
5322
|
-
* @param {
|
|
5323
|
-
*
|
|
5324
|
-
* @
|
|
6570
|
+
* This will register this element with the browser.
|
|
6571
|
+
* @param {string} [name="auro-button"] - The name of element that you want to register to.
|
|
6572
|
+
*
|
|
6573
|
+
* @example
|
|
6574
|
+
* AuroButton.register("custom-button") // this will register this element to <custom-button/>
|
|
6575
|
+
*
|
|
5325
6576
|
*/
|
|
5326
|
-
|
|
5327
|
-
|
|
5328
|
-
customElements.define(name, class extends componentClass {});
|
|
5329
|
-
}
|
|
6577
|
+
static register(name = "auro-button") {
|
|
6578
|
+
AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroButton);
|
|
5330
6579
|
}
|
|
5331
6580
|
|
|
5332
6581
|
/**
|
|
5333
|
-
*
|
|
6582
|
+
* Internal method to apply focus to the HTML5 button.
|
|
6583
|
+
* @private
|
|
5334
6584
|
* @returns {void}
|
|
5335
6585
|
*/
|
|
5336
|
-
|
|
5337
|
-
|
|
5338
|
-
base = this, // extra functionality to skip a parent
|
|
5339
|
-
__Closest = (el, found = el && el.closest(selector)) =>
|
|
5340
|
-
!el || el === document || el === window
|
|
5341
|
-
? null // standard .closest() returns null for non-found selectors also
|
|
5342
|
-
: found
|
|
5343
|
-
? found // found a selector INside this element
|
|
5344
|
-
: __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
|
|
5345
|
-
) {
|
|
5346
|
-
return __Closest(base);
|
|
6586
|
+
focus() {
|
|
6587
|
+
this.renderRoot.querySelector('button').focus();
|
|
5347
6588
|
}
|
|
5348
|
-
/* eslint-enable jsdoc/require-param */
|
|
5349
6589
|
|
|
5350
6590
|
/**
|
|
5351
|
-
*
|
|
5352
|
-
* @
|
|
5353
|
-
* @param {String} tagName - The name of the Auro component to check for or add as an attribute.
|
|
6591
|
+
* Submits the form that this button is associated with.
|
|
6592
|
+
* @private
|
|
5354
6593
|
* @returns {void}
|
|
5355
6594
|
*/
|
|
5356
|
-
|
|
5357
|
-
|
|
5358
|
-
|
|
5359
|
-
|
|
5360
|
-
if (elemTag !== tag) {
|
|
5361
|
-
elem.setAttribute(tag, true);
|
|
6595
|
+
surfaceSubmitEvent() {
|
|
6596
|
+
if (this.form) {
|
|
6597
|
+
this.form.requestSubmit();
|
|
5362
6598
|
}
|
|
5363
6599
|
}
|
|
5364
6600
|
|
|
5365
6601
|
/**
|
|
5366
|
-
*
|
|
5367
|
-
* @
|
|
5368
|
-
* @
|
|
5369
|
-
* @returns {Boolean} - Returns true if the element is the specified Auro component.
|
|
6602
|
+
* Returns the form element that this button is associated with.
|
|
6603
|
+
* @private
|
|
6604
|
+
* @returns {HTMLFormElement | null}
|
|
5370
6605
|
*/
|
|
5371
|
-
|
|
5372
|
-
|
|
5373
|
-
const elemTag = elem.tagName.toLowerCase();
|
|
5374
|
-
|
|
5375
|
-
return elemTag === tag || elem.hasAttribute(tag);
|
|
6606
|
+
get form() {
|
|
6607
|
+
return this.internals ? this.internals.form : null;
|
|
5376
6608
|
}
|
|
5377
|
-
};
|
|
5378
6609
|
|
|
5379
|
-
|
|
5380
|
-
|
|
6610
|
+
/**
|
|
6611
|
+
* @private
|
|
6612
|
+
* @returns {Boolean}
|
|
6613
|
+
*/
|
|
6614
|
+
get hideText() {
|
|
6615
|
+
return ICON_ONLY_SHAPES.includes(this.shape);
|
|
6616
|
+
}
|
|
5381
6617
|
|
|
6618
|
+
/**
|
|
6619
|
+
* Returns the current value of the projected `aria-label` attribute or undefined if not set.
|
|
6620
|
+
* @returns {string | undefined}
|
|
6621
|
+
* @private
|
|
6622
|
+
*/
|
|
6623
|
+
get currentAriaLabel() {
|
|
6624
|
+
if (!this.attributeWatcher) return undefined;
|
|
5382
6625
|
|
|
5383
|
-
|
|
6626
|
+
const ariaLabel = this.attributeWatcher.getObservedAttribute("aria-label");
|
|
6627
|
+
return ariaLabel || undefined;
|
|
6628
|
+
}
|
|
5384
6629
|
|
|
5385
6630
|
/**
|
|
5386
|
-
*
|
|
6631
|
+
* Returns the current value of the projected `aria-labelledby` attribute or undefined if not set.
|
|
6632
|
+
* @returns {string | undefined}
|
|
5387
6633
|
* @private
|
|
5388
|
-
* @param {string} baseName - Defines the first part of the unique element name.
|
|
5389
|
-
* @param {string} version - Version of the component that will be appended to the baseName.
|
|
5390
|
-
* @returns {string} - Unique string to be used for naming.
|
|
5391
6634
|
*/
|
|
5392
|
-
|
|
5393
|
-
|
|
5394
|
-
|
|
5395
|
-
result += '-';
|
|
5396
|
-
result += version.replace(/[.]/g, '_');
|
|
6635
|
+
get currentAriaLabelledBy() {
|
|
6636
|
+
if (!this.attributeWatcher) return undefined;
|
|
5397
6637
|
|
|
5398
|
-
|
|
6638
|
+
const ariaLabelledBy = this.attributeWatcher.getObservedAttribute("aria-labelledby");
|
|
6639
|
+
return ariaLabelledBy || undefined;
|
|
5399
6640
|
}
|
|
5400
6641
|
|
|
5401
6642
|
/**
|
|
5402
|
-
*
|
|
5403
|
-
* @
|
|
5404
|
-
* @
|
|
5405
|
-
* @returns {string} - Unique string to be used for naming.
|
|
6643
|
+
* Renders the default layout for the button.
|
|
6644
|
+
* @returns {TemplateResult}
|
|
6645
|
+
* @private
|
|
5406
6646
|
*/
|
|
5407
|
-
|
|
5408
|
-
const
|
|
5409
|
-
|
|
6647
|
+
renderLayoutDefault() {
|
|
6648
|
+
const classes = {
|
|
6649
|
+
"util_insetLg--squish": true,
|
|
6650
|
+
"auro-button": true,
|
|
6651
|
+
"icon-only": this.hideText,
|
|
6652
|
+
wrapper: true,
|
|
6653
|
+
loading: this.loading,
|
|
6654
|
+
};
|
|
5410
6655
|
|
|
5411
|
-
|
|
5412
|
-
|
|
5413
|
-
}
|
|
6656
|
+
const tag = this.buttonHref ? i`a` : i`button`;
|
|
6657
|
+
const part = this.buttonHref ? 'link' : 'button';
|
|
5414
6658
|
|
|
5415
|
-
return
|
|
6659
|
+
return u`
|
|
6660
|
+
<${tag}
|
|
6661
|
+
part="${part}"
|
|
6662
|
+
aria-label="${o(this.loading ? this.loadingText : this.currentAriaLabel || undefined)}"
|
|
6663
|
+
aria-labelledby="${o(this.loading ? undefined : this.currentAriaLabelledBy || undefined)}"
|
|
6664
|
+
tabindex="${o(this.tIndex || this.tabindex)}"
|
|
6665
|
+
?autofocus="${this.autofocus}"
|
|
6666
|
+
class=${e(classes)}
|
|
6667
|
+
?disabled="${this.disabled || this.loading}"
|
|
6668
|
+
?onDark="${this.onDark}"
|
|
6669
|
+
title="${o(this.title ? this.title : undefined)}"
|
|
6670
|
+
name="${o(this.name ? this.name : undefined)}"
|
|
6671
|
+
type="${o(this.type ? this.type : undefined)}"
|
|
6672
|
+
variant="${o(this.variant ? this.variant : undefined)}"
|
|
6673
|
+
.value="${o(this.value ? this.value : undefined)}"
|
|
6674
|
+
@click="${this.type === 'submit' ? this.surfaceSubmitEvent : undefined}"
|
|
6675
|
+
href="${o(this.buttonHref || undefined)}"
|
|
6676
|
+
target="${o(this.buttonTarget || undefined)}"
|
|
6677
|
+
rel="${o(this.buttonRel || undefined)}"
|
|
6678
|
+
>
|
|
6679
|
+
${o(this.loading ? u`<${this.loaderTag} pulse part="loader"></${this.loaderTag}>` : undefined)}
|
|
6680
|
+
|
|
6681
|
+
<span class="contentWrapper">
|
|
6682
|
+
<span class="textSlot" part="text">
|
|
6683
|
+
<slot></slot>
|
|
6684
|
+
</span>
|
|
6685
|
+
</span>
|
|
6686
|
+
</${tag}>
|
|
6687
|
+
`;
|
|
6688
|
+
}
|
|
6689
|
+
|
|
6690
|
+
/**
|
|
6691
|
+
* Renders the layout of the button.
|
|
6692
|
+
* @returns {TemplateResult}
|
|
6693
|
+
* @private
|
|
6694
|
+
*/
|
|
6695
|
+
renderLayout() {
|
|
6696
|
+
return this.renderLayoutDefault();
|
|
5416
6697
|
}
|
|
5417
6698
|
}
|
|
5418
6699
|
|
|
6700
|
+
var buttonVersion = '11.2.1';
|
|
6701
|
+
|
|
5419
6702
|
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
5420
6703
|
// See LICENSE in the project root for license information.
|
|
5421
6704
|
|
|
@@ -5426,7 +6709,7 @@ class AuroDependencyVersioning {
|
|
|
5426
6709
|
* @attr {Boolean} hiddenAudible - If present, the component will be hidden from screen readers, but seen visually
|
|
5427
6710
|
*/
|
|
5428
6711
|
|
|
5429
|
-
let AuroElement$
|
|
6712
|
+
let AuroElement$2 = class AuroElement extends i$2 {
|
|
5430
6713
|
|
|
5431
6714
|
// function to define props used within the scope of this component
|
|
5432
6715
|
static get properties() {
|
|
@@ -5494,7 +6777,7 @@ var styleCss$1$1 = i$5`:focus:not(:focus-visible){outline:3px solid transparent}
|
|
|
5494
6777
|
*/
|
|
5495
6778
|
|
|
5496
6779
|
// build the component class
|
|
5497
|
-
let BaseIcon$1 = class BaseIcon extends AuroElement$
|
|
6780
|
+
let BaseIcon$1 = class BaseIcon extends AuroElement$2 {
|
|
5498
6781
|
constructor() {
|
|
5499
6782
|
super();
|
|
5500
6783
|
this.onDark = false;
|
|
@@ -5577,7 +6860,7 @@ var colorCss$4 = i$5`:host{color:var(--ds-auro-icon-color)}:host([customColor]){
|
|
|
5577
6860
|
|
|
5578
6861
|
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
5579
6862
|
|
|
5580
|
-
let AuroLibraryRuntimeUtils$
|
|
6863
|
+
let AuroLibraryRuntimeUtils$1$1 = class AuroLibraryRuntimeUtils {
|
|
5581
6864
|
|
|
5582
6865
|
/* eslint-disable jsdoc/require-param */
|
|
5583
6866
|
|
|
@@ -5659,7 +6942,7 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
|
|
|
5659
6942
|
*/
|
|
5660
6943
|
privateDefaults() {
|
|
5661
6944
|
this.uri = 'https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist';
|
|
5662
|
-
this.runtimeUtils = new AuroLibraryRuntimeUtils$
|
|
6945
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$1$1();
|
|
5663
6946
|
}
|
|
5664
6947
|
|
|
5665
6948
|
// function to define props used within the scope of this component
|
|
@@ -5741,7 +7024,7 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
|
|
|
5741
7024
|
*
|
|
5742
7025
|
*/
|
|
5743
7026
|
static register(name = "auro-icon") {
|
|
5744
|
-
AuroLibraryRuntimeUtils$
|
|
7027
|
+
AuroLibraryRuntimeUtils$1$1.prototype.registerComponent(name, AuroIcon);
|
|
5745
7028
|
}
|
|
5746
7029
|
|
|
5747
7030
|
connectedCallback() {
|
|
@@ -5762,8 +7045,12 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
|
|
|
5762
7045
|
async firstUpdated() {
|
|
5763
7046
|
await super.firstUpdated();
|
|
5764
7047
|
|
|
5765
|
-
|
|
5766
|
-
|
|
7048
|
+
/**
|
|
7049
|
+
* icons provide a description for screen readers. Icon only instances Auro-button
|
|
7050
|
+
* depend on this description to provide context for the user using a screen reader.
|
|
7051
|
+
* Removes the SVG description for screen reader if ariaHidden is set to true.
|
|
7052
|
+
*/
|
|
7053
|
+
if (this.hasAttribute('ariaHidden') && this.svg) {
|
|
5767
7054
|
const svgDesc = this.svg.querySelector('desc');
|
|
5768
7055
|
|
|
5769
7056
|
if (svgDesc) {
|
|
@@ -5807,7 +7094,77 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
|
|
|
5807
7094
|
}
|
|
5808
7095
|
};
|
|
5809
7096
|
|
|
5810
|
-
var iconVersion$1 = '8.0.
|
|
7097
|
+
var iconVersion$1 = '8.0.4';
|
|
7098
|
+
|
|
7099
|
+
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
7100
|
+
// See LICENSE in the project root for license information.
|
|
7101
|
+
|
|
7102
|
+
// ---------------------------------------------------------------------
|
|
7103
|
+
|
|
7104
|
+
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
7105
|
+
|
|
7106
|
+
let AuroLibraryRuntimeUtils$4 = class AuroLibraryRuntimeUtils {
|
|
7107
|
+
|
|
7108
|
+
/* eslint-disable jsdoc/require-param */
|
|
7109
|
+
|
|
7110
|
+
/**
|
|
7111
|
+
* This will register a new custom element with the browser.
|
|
7112
|
+
* @param {String} name - The name of the custom element.
|
|
7113
|
+
* @param {Object} componentClass - The class to register as a custom element.
|
|
7114
|
+
* @returns {void}
|
|
7115
|
+
*/
|
|
7116
|
+
registerComponent(name, componentClass) {
|
|
7117
|
+
if (!customElements.get(name)) {
|
|
7118
|
+
customElements.define(name, class extends componentClass {});
|
|
7119
|
+
}
|
|
7120
|
+
}
|
|
7121
|
+
|
|
7122
|
+
/**
|
|
7123
|
+
* Finds and returns the closest HTML Element based on a selector.
|
|
7124
|
+
* @returns {void}
|
|
7125
|
+
*/
|
|
7126
|
+
closestElement(
|
|
7127
|
+
selector, // selector like in .closest()
|
|
7128
|
+
base = this, // extra functionality to skip a parent
|
|
7129
|
+
__Closest = (el, found = el && el.closest(selector)) =>
|
|
7130
|
+
!el || el === document || el === window
|
|
7131
|
+
? null // standard .closest() returns null for non-found selectors also
|
|
7132
|
+
: found
|
|
7133
|
+
? found // found a selector INside this element
|
|
7134
|
+
: __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
|
|
7135
|
+
) {
|
|
7136
|
+
return __Closest(base);
|
|
7137
|
+
}
|
|
7138
|
+
/* eslint-enable jsdoc/require-param */
|
|
7139
|
+
|
|
7140
|
+
/**
|
|
7141
|
+
* If the element passed is registered with a different tag name than what is passed in, the tag name is added as an attribute to the element.
|
|
7142
|
+
* @param {Object} elem - The element to check.
|
|
7143
|
+
* @param {String} tagName - The name of the Auro component to check for or add as an attribute.
|
|
7144
|
+
* @returns {void}
|
|
7145
|
+
*/
|
|
7146
|
+
handleComponentTagRename(elem, tagName) {
|
|
7147
|
+
const tag = tagName.toLowerCase();
|
|
7148
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
7149
|
+
|
|
7150
|
+
if (elemTag !== tag) {
|
|
7151
|
+
elem.setAttribute(tag, true);
|
|
7152
|
+
}
|
|
7153
|
+
}
|
|
7154
|
+
|
|
7155
|
+
/**
|
|
7156
|
+
* Validates if an element is a specific Auro component.
|
|
7157
|
+
* @param {Object} elem - The element to validate.
|
|
7158
|
+
* @param {String} tagName - The name of the Auro component to check against.
|
|
7159
|
+
* @returns {Boolean} - Returns true if the element is the specified Auro component.
|
|
7160
|
+
*/
|
|
7161
|
+
elementMatch(elem, tagName) {
|
|
7162
|
+
const tag = tagName.toLowerCase();
|
|
7163
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
7164
|
+
|
|
7165
|
+
return elemTag === tag || elem.hasAttribute(tag);
|
|
7166
|
+
}
|
|
7167
|
+
};
|
|
5811
7168
|
|
|
5812
7169
|
var styleCss$5 = i$5`.heading{margin:1.75rem 0;letter-spacing:var(--ds-text-heading-default-spacing, -0.2px);font-weight:var(--ds-text-heading-default-weight, 500)}.heading--display{margin-top:0;font-size:var(--ds-text-heading-display-size-breakpoint-sm, 2.75rem);font-weight:var(--ds-text-heading-display-weight, 100);line-height:var(--ds-text-heading-display-height-breakpoint-sm, 3.375rem)}@media screen and (min-width: 768px){.heading--display{font-size:var(--ds-text-heading-display-size-breakpoint-md, 3rem);line-height:var(--ds-text-heading-display-height-breakpoint-md, 3.75rem)}}@media screen and (min-width: 1024px){.heading--display{font-size:var(--ds-text-heading-display-size-breakpoint-lg, 3.5rem);line-height:var(--ds-text-heading-display-height-breakpoint-lg, 4.25rem)}}.heading--800{font-size:var(--ds-text-heading-800-size-breakpoint-sm, 2rem);font-weight:var(--ds-text-heading-800-weight, 500);line-height:var(--ds-text-heading-800-height-breakpoint-sm, 2.375rem)}@media screen and (min-width: 768px){.heading--800{font-size:var(--ds-text-heading-800-size-breakpoint-md, 2.25rem);line-height:var(--ds-text-heading-800-height-breakpoint-md, 2.625rem)}}@media screen and (min-width: 1024px){.heading--800{font-size:var(--ds-text-heading-800-size-breakpoint-lg, 2.5rem);line-height:var(--ds-text-heading-800-height-breakpoint-lg, 3rem)}}.heading--700{font-size:var(--ds-text-heading-700-size-breakpoint-sm, 1.75rem);font-weight:var(--ds-text-heading-700-weight, 500);line-height:var(--ds-text-heading-700-height-breakpoint-sm, 2.125rem)}@media screen and (min-width: 768px){.heading--700{font-size:var(--ds-text-heading-700-size-breakpoint-md, 2rem);line-height:var(--ds-text-heading-700-height-breakpoint-md, 2.375rem)}}@media screen and (min-width: 1024px){.heading--700{font-size:var(--ds-text-heading-700-size-breakpoint-lg, 2.25rem);line-height:var(--ds-text-heading-700-height-breakpoint-lg, 2.75rem)}}.heading--600{margin:1rem 0;font-size:var(--ds-text-heading-600-size-breakpoint-sm, 1.625rem);font-weight:var(--ds-text-heading-600-weight, 300);line-height:var(--ds-text-heading-600-height-breakpoint-sm, 1.875rem)}@media screen and (min-width: 768px){.heading--600{font-size:var(--ds-text-heading-600-size-breakpoint-md, 1.75rem);line-height:var(--ds-text-heading-600-height-breakpoint-md, 2.125rem)}}@media screen and (min-width: 1024px){.heading--600{font-size:var(--ds-text-heading-600-size-breakpoint-lg, 1.75rem);line-height:var(--ds-text-heading-600-height-breakpoint-lg, 2.25rem)}}.heading--500{margin:1rem 0;font-size:var(--ds-text-heading-500-size-breakpoint-sm, 1.375rem);font-weight:var(--ds-text-heading-500-weight, 300);line-height:var(--ds-text-heading-500-height-breakpoint-sm, 1.625rem)}@media screen and (min-width: 768px){.heading--500{font-size:var(--ds-text-heading-500-size-breakpoint-md, 1.5rem);line-height:var(--ds-text-heading-500-height-breakpoint-md, 1.875rem)}}@media screen and (min-width: 1024px){.heading--500{font-size:var(--ds-text-heading-500-size-breakpoint-lg, 1.5rem);line-height:var(--ds-text-heading-500-height-breakpoint-lg, 2rem)}}.heading--400{margin:.75rem 0;font-size:var(--ds-text-heading-400-size, 1.25rem);font-weight:var(--ds-text-heading-400-weight, 300);line-height:var(--ds-text-heading-400-height, 1.625rem)}.heading--300{margin:.75rem 0;font-size:var(--ds-text-heading-300-size, 1.125rem);font-weight:var(--ds-text-heading-300-weight, 300);line-height:var(--ds-text-heading-300-height, 1.625rem)}:host([no-margin-block]) .heading{margin-block:0}.util_stackMarginnone--bottom{margin-bottom:0}.util_stackMargin25--bottom{margin-bottom:var(--ds-size-25, 0.125rem)}.util_stackMargin50--bottom{margin-bottom:var(--ds-size-50, 0.25rem)}.util_stackMargin100--bottom{margin-bottom:var(--ds-size-100, 0.5rem)}.util_stackMargin150--bottom{margin-bottom:var(--ds-size-150, 0.75rem)}.util_stackMargin200--bottom{margin-bottom:var(--ds-size-200, 1rem)}.util_stackMargin300--bottom{margin-bottom:var(--ds-size-300, 1.5rem)}.util_stackMargin400--bottom{margin-bottom:var(--ds-size-400, 2rem)}.util_stackMargin600--bottom{margin-bottom:var(--ds-size-600, 3rem)}.util_stackMargin800--bottom{margin-bottom:var(--ds-size-800, 4rem)}.util_stackMarginnone--top{margin-top:0}.util_stackMargin25--top{margin-top:var(--ds-size-25, 0.125rem)}.util_stackMargin50--top{margin-top:var(--ds-size-50, 0.25rem)}.util_stackMargin100--top{margin-top:var(--ds-size-100, 0.5rem)}.util_stackMargin150--top{margin-top:var(--ds-size-150, 0.75rem)}.util_stackMargin200--top{margin-top:var(--ds-size-200, 1rem)}.util_stackMargin300--top{margin-top:var(--ds-size-300, 1.5rem)}.util_stackMargin400--top{margin-top:var(--ds-size-400, 2rem)}.util_stackMargin600--top{margin-top:var(--ds-size-600, 3rem)}.util_stackMargin800--top{margin-top:var(--ds-size-800, 4rem)}`;
|
|
5813
7170
|
|
|
@@ -5838,7 +7195,7 @@ class AuroHeader extends i$2 {
|
|
|
5838
7195
|
/**
|
|
5839
7196
|
* @private
|
|
5840
7197
|
*/
|
|
5841
|
-
this.runtimeUtils = new AuroLibraryRuntimeUtils$
|
|
7198
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$4();
|
|
5842
7199
|
}
|
|
5843
7200
|
|
|
5844
7201
|
// function to define props used within the scope of this component
|
|
@@ -5868,7 +7225,7 @@ class AuroHeader extends i$2 {
|
|
|
5868
7225
|
*
|
|
5869
7226
|
*/
|
|
5870
7227
|
static register(name = "auro-header") {
|
|
5871
|
-
AuroLibraryRuntimeUtils$
|
|
7228
|
+
AuroLibraryRuntimeUtils$4.prototype.registerComponent(name, AuroHeader);
|
|
5872
7229
|
}
|
|
5873
7230
|
|
|
5874
7231
|
firstUpdated() {
|
|
@@ -5964,17 +7321,30 @@ class AuroBibtemplate extends i$2 {
|
|
|
5964
7321
|
|
|
5965
7322
|
this.large = false;
|
|
5966
7323
|
|
|
5967
|
-
AuroLibraryRuntimeUtils$
|
|
7324
|
+
AuroLibraryRuntimeUtils$3.prototype.handleComponentTagRename(this, 'auro-bibtemplate');
|
|
5968
7325
|
|
|
5969
7326
|
const versioning = new AuroDependencyVersioning();
|
|
7327
|
+
|
|
7328
|
+
/**
|
|
7329
|
+
* @private
|
|
7330
|
+
*/
|
|
5970
7331
|
this.iconTag = versioning.generateTag('auro-formkit-bibtemplate-icon', iconVersion$1, AuroIcon$1);
|
|
7332
|
+
|
|
7333
|
+
/**
|
|
7334
|
+
* @private
|
|
7335
|
+
*/
|
|
5971
7336
|
this.headerTag = versioning.generateTag('auro-formkit-bibtemplate-header', headerVersion, AuroHeader);
|
|
7337
|
+
|
|
7338
|
+
/**
|
|
7339
|
+
* @private
|
|
7340
|
+
*/
|
|
7341
|
+
this.buttonTag = versioning.generateTag('auro-formkit-input-button', buttonVersion, AuroButton);
|
|
5972
7342
|
}
|
|
5973
7343
|
|
|
5974
7344
|
static get styles() {
|
|
5975
7345
|
return [
|
|
5976
|
-
colorCss$
|
|
5977
|
-
styleCss$
|
|
7346
|
+
colorCss$3$1,
|
|
7347
|
+
styleCss$4$1,
|
|
5978
7348
|
tokenCss
|
|
5979
7349
|
];
|
|
5980
7350
|
}
|
|
@@ -6003,7 +7373,7 @@ class AuroBibtemplate extends i$2 {
|
|
|
6003
7373
|
*
|
|
6004
7374
|
*/
|
|
6005
7375
|
static register(name = "auro-bibtemplate") {
|
|
6006
|
-
AuroLibraryRuntimeUtils$
|
|
7376
|
+
AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroBibtemplate);
|
|
6007
7377
|
}
|
|
6008
7378
|
|
|
6009
7379
|
/**
|
|
@@ -6061,9 +7431,9 @@ class AuroBibtemplate extends i$2 {
|
|
|
6061
7431
|
<div id="bibTemplate" part="bibtemplate">
|
|
6062
7432
|
${this.isFullscreen ? u`
|
|
6063
7433
|
<div id="headerContainer">
|
|
6064
|
-
|
|
7434
|
+
<${this.buttonTag} id="closeButton" aria-label="Close" variant="ghost" shape="circle" size="sm" @click="${this.onCloseButtonClick}">
|
|
6065
7435
|
<${this.iconTag} category="interface" name="x-lg"></${this.iconTag}>
|
|
6066
|
-
|
|
7436
|
+
</${this.buttonTag}>
|
|
6067
7437
|
<${this.headerTag} display="${this.large ? 'display' : '600'}" level="3" size="none" id="header" no-margin-block>
|
|
6068
7438
|
<slot name="header"></slot>
|
|
6069
7439
|
</${this.headerTag}>
|
|
@@ -6087,9 +7457,9 @@ class AuroBibtemplate extends i$2 {
|
|
|
6087
7457
|
|
|
6088
7458
|
var bibTemplateVersion = '1.0.0';
|
|
6089
7459
|
|
|
6090
|
-
var colorCss$3 = i$5`:host([error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error, #e31f26)}:host([onDark]){--ds-auro-helptext-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][error]){--ds-auro-helptext-color: var(--ds-
|
|
7460
|
+
var colorCss$3 = i$5`:host([error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error, #e31f26)}:host([onDark]){--ds-auro-helptext-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error-subtle, #fbc6c6)}.helptext-wrapper{color:var(--ds-auro-helptext-color)}`;
|
|
6091
7461
|
|
|
6092
|
-
var styleCss$4 = i$5
|
|
7462
|
+
var styleCss$4 = i$5`:host{position:relative;display:block}.helptext-wrapper{display:none;font-size:12px;font-weight:450;letter-spacing:0;line-height:16px}:host([large]) .helptext-wrapper{font-size:16px;font-weight:450;letter-spacing:0;line-height:24px}.helptext-wrapper[visible]{display:block}::slotted(*:not(:empty)){margin-top:var(--ds-size-50, 0.25rem);margin-bottom:0}::slotted(p){margin-block:0}`;
|
|
6093
7463
|
|
|
6094
7464
|
var tokensCss$2 = i$5`:host{--ds-auro-helptext-color: var(--ds-basic-color-texticon-muted, #676767)}`;
|
|
6095
7465
|
|
|
@@ -6295,68 +7665,7 @@ class AuroHelpText extends i$2 {
|
|
|
6295
7665
|
|
|
6296
7666
|
var helpTextVersion = '1.0.0';
|
|
6297
7667
|
|
|
6298
|
-
i$5
|
|
6299
|
-
|
|
6300
|
-
i$5`:host ::slotted(hr){border-top-color:var(--ds-auro-menu-divider-color)}[loadingplaceholder] slot[name=loadingIcon]{color:var(--ds-auro-menu-loader-color)}[loadingplaceholder] slot[name=loadingText]{color:var(--ds-auro-menu-loader-text-color)}`;
|
|
6301
|
-
|
|
6302
|
-
i$5`:host{--ds-auro-menu-divider-color: var(--ds-basic-color-border-divider, rgba(0, 0, 0, 0.15));--ds-auro-menu-loader-color: var(--ds-basic-color-brand-primary, #01426a);--ds-auro-menu-loader-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-menuoption-container-color: transparent;--ds-auro-menuoption-icon-color: transparent;--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}`;
|
|
6303
|
-
|
|
6304
|
-
// Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
6305
|
-
// See LICENSE in the project root for license information.
|
|
6306
|
-
|
|
6307
|
-
// ---------------------------------------------------------------------
|
|
6308
|
-
|
|
6309
|
-
/**
|
|
6310
|
-
* Converts value to an array.
|
|
6311
|
-
* If the value is a JSON string representing an array, it will be parsed.
|
|
6312
|
-
* If the value is already an array, it is returned.
|
|
6313
|
-
* If the value is undefined, it returns undefined.
|
|
6314
|
-
* @private
|
|
6315
|
-
* @param {any} value - The value to be converted. Can be a string, array, or undefined.
|
|
6316
|
-
* @returns {Array|undefined} - The converted array or undefined.
|
|
6317
|
-
* @throws {Error} - Throws an error if the value is not an array, undefined,
|
|
6318
|
-
* or if the value cannot be parsed into an array from a JSON string.
|
|
6319
|
-
*/
|
|
6320
|
-
function arrayConverter(value) {
|
|
6321
|
-
// Allow undefined
|
|
6322
|
-
if (value === undefined) {
|
|
6323
|
-
return undefined;
|
|
6324
|
-
}
|
|
6325
|
-
|
|
6326
|
-
// Return the value if it is already an array
|
|
6327
|
-
if (Array.isArray(value)) {
|
|
6328
|
-
return value;
|
|
6329
|
-
}
|
|
6330
|
-
|
|
6331
|
-
try {
|
|
6332
|
-
// If value is a JSON string, parse it
|
|
6333
|
-
const parsed = typeof value === 'string' ? JSON.parse(value) : value;
|
|
6334
|
-
|
|
6335
|
-
// Check if the parsed value is an array
|
|
6336
|
-
if (Array.isArray(parsed)) {
|
|
6337
|
-
return parsed;
|
|
6338
|
-
}
|
|
6339
|
-
} catch (error) {
|
|
6340
|
-
// If JSON parsing fails, continue to throw an error below
|
|
6341
|
-
/* eslint-disable no-console */
|
|
6342
|
-
console.error('JSON parsing failed:', error);
|
|
6343
|
-
}
|
|
6344
|
-
|
|
6345
|
-
// Throw error if the input is not an array or undefined
|
|
6346
|
-
throw new Error('Invalid value: Input must be an array or undefined');
|
|
6347
|
-
}
|
|
6348
|
-
|
|
6349
|
-
i$5`:host{display:flex;align-items:center;padding:var(--ds-size-50, 0.25rem) var(--ds-size-200, 1rem) var(--ds-size-50, 0.25rem) 0;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}:host slot{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host [auro-icon]{--ds-auro-icon-size: var(--ds-size-300, 1.5rem);margin-right:var(--ds-size-150, 0.75rem);margin-left:var(--ds-size-100, 0.5rem)}:host ::slotted(.nestingSpacer){display:inline-block;width:var(--ds-size-300, 1.5rem)}:host ::slotted(strong){font-weight:700}:host([hidden]){display:none}:host([static]){pointer-events:none}:host([disabled]:hover){cursor:auto}:host([disabled]){user-select:none;pointer-events:none}`;
|
|
6350
|
-
|
|
6351
|
-
i$5`:host{background-color:var(--ds-auro-menuoption-container-color);color:var(--ds-auro-menuoption-text-color)}:host svg{fill:var(--ds-auro-menuoption-icon-color)}:host([disabled]){--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:hover),:host(.active){--ds-auro-menuoption-container-color: var(--ds-basic-color-surface-neutral-subtle, #f7f7f7)}:host([selected]){--ds-auro-menuoption-container-color: var(--ds-advanced-color-state-selected, #01426a);--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-menuoption-icon-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([selected]):host(:hover),:host([selected]):host(.active){--ds-auro-menuoption-container-color: var(--ds-advanced-color-state-selected-hover, #00274a)}`;
|
|
6352
|
-
|
|
6353
|
-
i$5`:focus:not(:focus-visible){outline:3px solid transparent}.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock,:host{display:block}.util_displayFlex{display:flex}.util_displayHidden,:host([hidden]:not(:focus):not(:active)){display:none}.util_displayHiddenVisually,:host([hiddenVisually]:not(:focus):not(:active)){position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}.ico_squareLarge{fill:currentColor;height:var(--auro-size-lg, var(--ds-size-300, 1.5rem))}.ico_squareSmall{fill:currentColor;height:.6rem}.ico_squareMed{fill:currentColor;height:var(--auro-size-md, var(--ds-size-200, 1rem))}.ico_squareSml{fill:currentColor;height:var(--auro-size-sm, var(--ds-size-150, 0.75rem))}:host{color:currentColor;vertical-align:middle;line-height:1;display:inline-block}svg{min-width:var(--ds-auro-icon-size, 1.5rem) !important;width:var(--ds-auro-icon-size, 1.5rem) !important;height:var(--ds-auro-icon-size, 1.5rem) !important}.componentWrapper{display:flex}.svgWrapper{height:var(--ds-auro-icon-size);width:var(--ds-auro-icon-size)}.labelWrapper{margin-left:var(--ds-size-50, 0.25rem);line-height:1.8}`;
|
|
6354
|
-
|
|
6355
|
-
i$5`:host{--ds-auro-icon-color:var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-alaska-color:#02426D;--ds-auro-icon-size:var(--ds-size-300, 1.5rem)}`;
|
|
6356
|
-
|
|
6357
|
-
i$5`:host{color:var(--ds-auro-icon-color)}:host([customColor]){color:inherit}:host(:not([onDark])[variant=accent1]){--ds-auro-icon-color:var(--ds-basic-color-texticon-accent1, #265688)}:host(:not([onDark])[variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:not([onDark])[variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-muted, #676767)}:host(:not([onDark])[variant=statusDefault]){--ds-auro-icon-color:var(--ds-basic-color-status-default, #afb9c6)}:host(:not([onDark])[variant=statusInfo]){--ds-auro-icon-color:var(--ds-basic-color-status-info, #01426a)}:host(:not([onDark])[variant=statusSuccess]){--ds-auro-icon-color:var(--ds-basic-color-status-success, #447a1f)}:host(:not([onDark])[variant=statusWarning]){--ds-auro-icon-color:var(--ds-basic-color-status-warning, #fac200)}:host(:not([onDark])[variant=statusError]){--ds-auro-icon-color:var(--ds-basic-color-status-error, #e31f26)}:host(:not([onDark])[variant=statusInfoSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-info-subtle, #ebf3f9)}:host(:not([onDark])[variant=statusSuccessSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-success-subtle, #d6eac7)}:host(:not([onDark])[variant=statusWarningSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-warning-subtle, #fff0b2)}:host(:not([onDark])[variant=statusErrorSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-error-subtle, #fbc6c6)}:host(:not([onDark])[variant=fareBasicEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-basiceconomy, #97eaf8)}:host(:not([onDark])[variant=fareBusiness]){--ds-auro-icon-color:var(--ds-basic-color-fare-business, #01426a)}:host(:not([onDark])[variant=fareEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-economy, #0074ca)}:host(:not([onDark])[variant=fareFirst]){--ds-auro-icon-color:var(--ds-basic-color-fare-first, #00274a)}:host(:not([onDark])[variant=farePremiumEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-premiumeconomy, #005154)}:host(:not([onDark])[variant=tierOneWorldEmerald]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-emerald, #139142)}:host(:not([onDark])[variant=tierOneWorldSapphire]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-sapphire, #015daa)}:host(:not([onDark])[variant=tierOneWorldRuby]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-ruby, #a41d4a)}:host([onDark]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse, #ffffff)}:host([onDark][variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}:host([onDark][variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][variant=statusError]){--ds-auro-icon-color:var(--ds-advanced-color-state-error-inverse, #f9a4a8)}`;
|
|
6358
|
-
|
|
6359
|
-
var styleCss$3 = i$5`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color)}.mainContent{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;flex:1}.valueContainer [slot=displayValue]{display:none}.accents{display:flex;flex-direction:row;justify-content:center;align-items:center}::slotted([slot=typeIcon]){margin-right:8px}.displayValue{display:block}.displayValue:not(.force){display:none}.displayValue:not(.force).hasContent:is(.withValue):not(.hasFocus){display:block}.triggerContent{display:flex;align-items:center;justify-content:center;width:100%;padding:0 8px 0 24px}:host(:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}#slotHolder{display:none}:host([disabled]) *{user-select:none}`;
|
|
7668
|
+
var styleCss$3 = i$5`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color)}:host([layout*=emphasized]) [auro-dropdown],:host([layout*=snowflake]) [auro-dropdown]{--ds-auro-select-border-color: transparent}.mainContent{position:relative;display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center}.valueContainer [slot=displayValue]{display:none}.accents{display:flex;flex-direction:row;align-items:center;justify-content:center}::slotted([slot=typeIcon]){margin-right:var(--ds-size-100, 0.5rem)}.displayValue{display:block}.displayValue:not(.force){display:none}.displayValue:not(.force).hasContent:is(.withValue):not(.hasFocus){display:block}.triggerContent{display:flex;width:100%;align-items:center;justify-content:center}:host([layout*=emphasized]) .triggerContent,:host([layout*=snowflake]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-300, 1.5rem)}:host([layout*=snowflake]) [auro-dropdown] label.withValue{font-size:var(--ds-text-body-size-xs);line-height:20px}:host([layout*=emphasized]) [auro-dropdown] label.withValue{font-size:var(--ds-text-body-size-xs);line-height:20px}:host([layout*=classic]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem)}:host([layout*=classic]) .mainContent{align-items:start}:host([layout*=classic]) label{cursor:text;font-size:16px;font-weight:450;letter-spacing:0;line-height:24px}:host([layout*=classic]) label.withValue{font-size:12px;font-weight:450;letter-spacing:0;line-height:16px}:host([layout*=classic]) .value{height:auto;font-size:16px;font-weight:450;letter-spacing:0;line-height:24px}:host(:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error-subtle, #fbc6c6);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}#slotHolder{display:none}:host([disabled]){pointer-events:none;user-select:none}:host([disabled]:not([ondark])) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host(:not([layout*=classic])[disabled][ondark]) [auro-dropdown]{--ds-auro-select-border-color: transparent}`;
|
|
6360
7669
|
|
|
6361
7670
|
// Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
6362
7671
|
// See LICENSE in the project root for license information.
|
|
@@ -6369,9 +7678,10 @@ var styleCss$3 = i$5`.util_displayInline{display:inline}.util_displayInlineBlock
|
|
|
6369
7678
|
* @slot - Default slot for the menu content.
|
|
6370
7679
|
* @slot bib.fullscreen.headline - Defines the headline to display above menu-options
|
|
6371
7680
|
* @slot label - Defines the content of the label.
|
|
7681
|
+
* @slot {HTMLSlotElement} optionalLabel - Allows overriding the optional display text "(optional)", which appears next to the label.
|
|
6372
7682
|
* @slot helpText - Defines the content of the helpText.
|
|
6373
|
-
* @slot placeholder - Defines the content of the placeholder to be shown when there is no value
|
|
6374
7683
|
* @slot valueText - Dropdown value text display.
|
|
7684
|
+
* @slot displayValue - Allows custom HTML content to display the selected value when select is not focused.
|
|
6375
7685
|
* @event auroSelect-valueSet - Notifies that the component has a new value set.
|
|
6376
7686
|
* @event input - Notifies every time the value prop of the element is changed. The updated `value` and `optionSelected` will be delivered in `detail` object.
|
|
6377
7687
|
* @event auroFormElement-validated - Notifies that the `validity` and `errorMessage` values have changed.
|
|
@@ -6379,7 +7689,7 @@ var styleCss$3 = i$5`.util_displayInline{display:inline}.util_displayInlineBlock
|
|
|
6379
7689
|
*/
|
|
6380
7690
|
|
|
6381
7691
|
// build the component class
|
|
6382
|
-
class AuroSelect extends AuroElement$
|
|
7692
|
+
class AuroSelect extends AuroElement$4 {
|
|
6383
7693
|
constructor() {
|
|
6384
7694
|
super();
|
|
6385
7695
|
|
|
@@ -6389,11 +7699,11 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6389
7699
|
const idSubstrEnd = 8;
|
|
6390
7700
|
const idSubstrStart = 2;
|
|
6391
7701
|
|
|
6392
|
-
this.matchWidth =
|
|
7702
|
+
this.matchWidth = false;
|
|
6393
7703
|
|
|
6394
7704
|
// Layout Config
|
|
6395
|
-
this.layout = '
|
|
6396
|
-
this.shape = '
|
|
7705
|
+
this.layout = 'snowflake';
|
|
7706
|
+
this.shape = 'snowflake';
|
|
6397
7707
|
this.size = 'xl';
|
|
6398
7708
|
|
|
6399
7709
|
// floaterConfig
|
|
@@ -6404,6 +7714,10 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6404
7714
|
|
|
6405
7715
|
this.forceDisplayValue = false;
|
|
6406
7716
|
|
|
7717
|
+
this.layout = 'classic';
|
|
7718
|
+
this.shape = 'classic';
|
|
7719
|
+
this.size = 'xl';
|
|
7720
|
+
|
|
6407
7721
|
/**
|
|
6408
7722
|
* @private
|
|
6409
7723
|
*/
|
|
@@ -6419,7 +7733,7 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6419
7733
|
/**
|
|
6420
7734
|
* @private
|
|
6421
7735
|
*/
|
|
6422
|
-
this.runtimeUtils = new AuroLibraryRuntimeUtils$
|
|
7736
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$6();
|
|
6423
7737
|
|
|
6424
7738
|
/**
|
|
6425
7739
|
* Generate unique names for dependency components.
|
|
@@ -6468,6 +7782,7 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6468
7782
|
this.value = undefined;
|
|
6469
7783
|
this.fullscreenBreakpoint = 'sm';
|
|
6470
7784
|
this.onDark = false;
|
|
7785
|
+
this.isPopoverVisible = false;
|
|
6471
7786
|
}
|
|
6472
7787
|
|
|
6473
7788
|
// This function is to define props used within the scope of this component
|
|
@@ -6509,6 +7824,14 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6509
7824
|
reflect: true
|
|
6510
7825
|
},
|
|
6511
7826
|
|
|
7827
|
+
/**
|
|
7828
|
+
* @private
|
|
7829
|
+
*/
|
|
7830
|
+
isPopoverVisible: {
|
|
7831
|
+
type: Boolean,
|
|
7832
|
+
reflect: false
|
|
7833
|
+
},
|
|
7834
|
+
|
|
6512
7835
|
/**
|
|
6513
7836
|
* If declared, the popover and trigger will be set to the same width.
|
|
6514
7837
|
*/
|
|
@@ -6525,14 +7848,6 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6525
7848
|
reflect: true
|
|
6526
7849
|
},
|
|
6527
7850
|
|
|
6528
|
-
/**
|
|
6529
|
-
* If set, makes dropdown width match the size of the content, rather than the width of the trigger.
|
|
6530
|
-
*/
|
|
6531
|
-
flexMenuWidth: {
|
|
6532
|
-
type: Boolean,
|
|
6533
|
-
reflect: true
|
|
6534
|
-
},
|
|
6535
|
-
|
|
6536
7851
|
/**
|
|
6537
7852
|
* Defines the screen size breakpoint (`xs`, `sm`, `md`, `lg`, `xl`, `disabled`)
|
|
6538
7853
|
* at which the dropdown switches to fullscreen mode on mobile. `disabled` indicates a dropdown should _never_ enter fullscreen.
|
|
@@ -6626,7 +7941,7 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6626
7941
|
* "top" | "right" | "bottom" | "left" |
|
|
6627
7942
|
* "bottom-start" | "top-start" | "top-end" |
|
|
6628
7943
|
* "right-start" | "right-end" | "bottom-end" |
|
|
6629
|
-
* "left-start" | "left-end"
|
|
7944
|
+
* "left-start" | "left-end".
|
|
6630
7945
|
* @default bottom-start
|
|
6631
7946
|
*/
|
|
6632
7947
|
placement: {
|
|
@@ -6634,6 +7949,14 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6634
7949
|
reflect: true
|
|
6635
7950
|
},
|
|
6636
7951
|
|
|
7952
|
+
/**
|
|
7953
|
+
* Define custom placeholder text.
|
|
7954
|
+
*/
|
|
7955
|
+
placeholder: {
|
|
7956
|
+
type: String,
|
|
7957
|
+
reflect: true
|
|
7958
|
+
},
|
|
7959
|
+
|
|
6637
7960
|
/**
|
|
6638
7961
|
* Populates the `required` attribute on the element. Used for client-side validation.
|
|
6639
7962
|
*/
|
|
@@ -6680,11 +8003,12 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6680
8003
|
},
|
|
6681
8004
|
|
|
6682
8005
|
/**
|
|
6683
|
-
* Value selected for the component.
|
|
6684
|
-
* @type {String|Array<String>}
|
|
8006
|
+
* Value selected for the component.
|
|
6685
8007
|
*/
|
|
6686
8008
|
value: {
|
|
6687
|
-
type:
|
|
8009
|
+
type: String,
|
|
8010
|
+
reflect: true,
|
|
8011
|
+
attribute: 'value'
|
|
6688
8012
|
},
|
|
6689
8013
|
|
|
6690
8014
|
/**
|
|
@@ -6736,10 +8060,42 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6736
8060
|
];
|
|
6737
8061
|
}
|
|
6738
8062
|
|
|
8063
|
+
/**
|
|
8064
|
+
* Formatted value based on `multiSelect` state.
|
|
8065
|
+
* Default type is `String`, changing to `Array<String>` when `multiSelect` is true.
|
|
8066
|
+
* @private
|
|
8067
|
+
* @returns {String|Array<String>}
|
|
8068
|
+
*/
|
|
8069
|
+
get formattedValue() {
|
|
8070
|
+
if (this.multiSelect) {
|
|
8071
|
+
if (!this.value) {
|
|
8072
|
+
return undefined;
|
|
8073
|
+
}
|
|
8074
|
+
if (this.value.startsWith("[")) {
|
|
8075
|
+
return JSON.parse(this.value);
|
|
8076
|
+
}
|
|
8077
|
+
return [this.value];
|
|
8078
|
+
}
|
|
8079
|
+
return this.value;
|
|
8080
|
+
}
|
|
8081
|
+
|
|
8082
|
+
/**
|
|
8083
|
+
* Returns classmap configuration for html5 input labels in all layouts.
|
|
8084
|
+
* @private
|
|
8085
|
+
* @returns {void}
|
|
8086
|
+
*/
|
|
8087
|
+
get commonLabelClasses() {
|
|
8088
|
+
return {
|
|
8089
|
+
'is-disabled': this.disabled,
|
|
8090
|
+
'withValue': this.placeholder || (this.value && this.value.length > 0), // eslint-disable-line no-extra-parens
|
|
8091
|
+
'util_displayHiddenVisually': this.hasDisplayValueContent && !this.hasFocus && this.value && this.value.length > 0
|
|
8092
|
+
};
|
|
8093
|
+
}
|
|
8094
|
+
|
|
6739
8095
|
/**
|
|
6740
8096
|
* Returns classmap configuration for wrapper elements in each layout.
|
|
6741
8097
|
* @private
|
|
6742
|
-
* @
|
|
8098
|
+
* @returns {object} - Returns classmap.
|
|
6743
8099
|
*/
|
|
6744
8100
|
get commonWrapperClasses() {
|
|
6745
8101
|
return {
|
|
@@ -6755,8 +8111,27 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6755
8111
|
configureDropdown() {
|
|
6756
8112
|
this.dropdown = this.shadowRoot.querySelector(this.dropdownTag._$litStatic$);
|
|
6757
8113
|
|
|
8114
|
+
this.dropdown.addEventListener('auroDropdown-toggled', () => {
|
|
8115
|
+
this.isPopoverVisible = this.dropdown.isPopoverVisible;
|
|
8116
|
+
|
|
8117
|
+
if (this.dropdown.isPopoverVisible) {
|
|
8118
|
+
// wait til the bib gets fully rendered
|
|
8119
|
+
setTimeout(() => {
|
|
8120
|
+
if (this.dropdown.isBibFullscreen) {
|
|
8121
|
+
// trigger holds the focus since menu is not a focusable element.
|
|
8122
|
+
this.dropdown.trigger.focus();
|
|
8123
|
+
|
|
8124
|
+
// default focus indicator on the first menu option
|
|
8125
|
+
if (this.menu.index < 0) {
|
|
8126
|
+
this.menu.navigateOptions('down');
|
|
8127
|
+
}
|
|
8128
|
+
}
|
|
8129
|
+
});
|
|
8130
|
+
}
|
|
8131
|
+
});
|
|
8132
|
+
|
|
6758
8133
|
// setting up bibtemplate
|
|
6759
|
-
this.bibtemplate = this.dropdown.querySelector(this.bibtemplateTag._$litStatic$);
|
|
8134
|
+
this.bibtemplate = this.dropdown.querySelector(this.bibtemplateTag._$litStatic$);
|
|
6760
8135
|
|
|
6761
8136
|
if (this.customBibWidth) {
|
|
6762
8137
|
this.dropdown.dropdownWidth = this.customBibWidth;
|
|
@@ -6775,7 +8150,7 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6775
8150
|
*
|
|
6776
8151
|
*/
|
|
6777
8152
|
static register(name = "auro-select") {
|
|
6778
|
-
AuroLibraryRuntimeUtils$
|
|
8153
|
+
AuroLibraryRuntimeUtils$6.prototype.registerComponent(name, AuroSelect);
|
|
6779
8154
|
}
|
|
6780
8155
|
|
|
6781
8156
|
/**
|
|
@@ -6787,13 +8162,18 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6787
8162
|
const triggerContentEl = this.dropdown.querySelector('#triggerFocus');
|
|
6788
8163
|
|
|
6789
8164
|
// Clear out old value
|
|
6790
|
-
// const placeholder = triggerContentEl.querySelector('#placeholder');
|
|
6791
8165
|
const valueElem = triggerContentEl.querySelector('#value');
|
|
6792
8166
|
if (valueElem) {
|
|
6793
8167
|
valueElem.innerHTML = '';
|
|
6794
|
-
// valueElem.innerHTML = ''.appendChild(value);
|
|
6795
8168
|
}
|
|
6796
8169
|
|
|
8170
|
+
const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
|
|
8171
|
+
const slottedElements = slot.assignedElements();
|
|
8172
|
+
|
|
8173
|
+
slottedElements.forEach((element) => {
|
|
8174
|
+
element.remove();
|
|
8175
|
+
});
|
|
8176
|
+
|
|
6797
8177
|
// Handle selected options
|
|
6798
8178
|
if (this.optionSelected) {
|
|
6799
8179
|
if (this.multiSelect && this.optionSelected.length > 0) {
|
|
@@ -6803,10 +8183,8 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6803
8183
|
} else {
|
|
6804
8184
|
valueElem.innerHTML = this.optionSelected.innerHTML;
|
|
6805
8185
|
const displayValueEl = this.optionSelected.querySelector("[slot='displayValue']");
|
|
6806
|
-
if (displayValueEl) {
|
|
6807
|
-
const oldDisplayValueEl = this.querySelectorAll("[slot='displayValue']");
|
|
6808
|
-
oldDisplayValueEl.forEach((el) => el.remove());
|
|
6809
8186
|
|
|
8187
|
+
if (displayValueEl) {
|
|
6810
8188
|
this.appendChild(displayValueEl.cloneNode(true));
|
|
6811
8189
|
}
|
|
6812
8190
|
this.hasDisplayValueContent = displayValueEl !== null;
|
|
@@ -6832,6 +8210,15 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6832
8210
|
return;
|
|
6833
8211
|
}
|
|
6834
8212
|
|
|
8213
|
+
// set menu's default size if there it's not specified.
|
|
8214
|
+
if (!this.menu.getAttribute('size')) {
|
|
8215
|
+
this.menu.setAttribute('size', this.layout !== 'emphasized' ? 'md' : this.size);
|
|
8216
|
+
}
|
|
8217
|
+
|
|
8218
|
+
if (!this.getAttribute('shape')) {
|
|
8219
|
+
this.menu.setAttribute('shape', this.layout === 'classic' ? 'box' : this.shape);
|
|
8220
|
+
}
|
|
8221
|
+
|
|
6835
8222
|
if (this.multiSelect) {
|
|
6836
8223
|
this.menu.multiSelect = this.multiSelect;
|
|
6837
8224
|
}
|
|
@@ -6891,46 +8278,58 @@ class AuroSelect extends AuroElement$3 {
|
|
|
6891
8278
|
configureSelect() {
|
|
6892
8279
|
|
|
6893
8280
|
this.addEventListener('keydown', (evt) => {
|
|
6894
|
-
|
|
6895
|
-
|
|
8281
|
+
// when the focus is on trigger not on close button
|
|
8282
|
+
if (this.dropdown.shadowRoot.activeElement === this.dropdown.trigger) {
|
|
8283
|
+
if (evt.key === 'ArrowUp') {
|
|
8284
|
+
evt.preventDefault();
|
|
6896
8285
|
|
|
6897
|
-
|
|
8286
|
+
this.dropdown.show();
|
|
8287
|
+
|
|
8288
|
+
if (this.dropdown.isPopoverVisible) {
|
|
8289
|
+
this.menu.navigateOptions('up');
|
|
8290
|
+
}
|
|
6898
8291
|
|
|
6899
|
-
|
|
6900
|
-
this.menu.navigateOptions('up');
|
|
8292
|
+
return;
|
|
6901
8293
|
}
|
|
6902
8294
|
|
|
6903
|
-
|
|
6904
|
-
|
|
8295
|
+
if (evt.key === 'ArrowDown') {
|
|
8296
|
+
evt.preventDefault();
|
|
6905
8297
|
|
|
6906
|
-
|
|
6907
|
-
evt.preventDefault();
|
|
8298
|
+
this.dropdown.show();
|
|
6908
8299
|
|
|
6909
|
-
|
|
8300
|
+
if (this.dropdown.isPopoverVisible) {
|
|
8301
|
+
this.menu.navigateOptions('down');
|
|
8302
|
+
}
|
|
6910
8303
|
|
|
6911
|
-
|
|
6912
|
-
this.menu.navigateOptions('down');
|
|
8304
|
+
return;
|
|
6913
8305
|
}
|
|
6914
8306
|
|
|
6915
|
-
|
|
6916
|
-
|
|
8307
|
+
if (evt.key === 'Enter') {
|
|
8308
|
+
if (!this.dropdown.isPopoverVisible) {
|
|
8309
|
+
evt.preventDefault();
|
|
8310
|
+
this.menu.makeSelection();
|
|
8311
|
+
}
|
|
6917
8312
|
|
|
6918
|
-
|
|
6919
|
-
if (!this.dropdown.isPopoverVisible) {
|
|
6920
|
-
evt.preventDefault();
|
|
6921
|
-
this.menu.makeSelection();
|
|
8313
|
+
return;
|
|
6922
8314
|
}
|
|
6923
|
-
|
|
6924
|
-
return;
|
|
6925
8315
|
}
|
|
6926
8316
|
|
|
6927
|
-
if (evt.key === 'Tab') {
|
|
8317
|
+
if (evt.key === 'Tab' && this.dropdown.isPopoverVisible) {
|
|
6928
8318
|
if (this.dropdown.isBibFullscreen) {
|
|
6929
8319
|
evt.preventDefault();
|
|
8320
|
+
|
|
8321
|
+
// when the focus is on trigger not on close button
|
|
8322
|
+
if (this.dropdown.shadowRoot.activeElement === this.dropdown.trigger) {
|
|
8323
|
+
// `dropdown.focus` will move focus to the first focusable element in bib when it's open,
|
|
8324
|
+
// when bib it not open, it will focus onto trigger.
|
|
8325
|
+
this.dropdown.focus();
|
|
8326
|
+
} else {
|
|
8327
|
+
// when close button has the focus, move focus back to the trigger
|
|
8328
|
+
this.dropdown.trigger.focus();
|
|
8329
|
+
}
|
|
6930
8330
|
} else {
|
|
6931
8331
|
this.dropdown.hide();
|
|
6932
8332
|
}
|
|
6933
|
-
|
|
6934
8333
|
return;
|
|
6935
8334
|
}
|
|
6936
8335
|
|
|
@@ -7095,34 +8494,39 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7095
8494
|
// Add the tag name as an attribute if it is different than the component name
|
|
7096
8495
|
this.runtimeUtils.handleComponentTagRename(this, 'auro-select');
|
|
7097
8496
|
|
|
7098
|
-
this.configureMenu();
|
|
7099
8497
|
this.configureDropdown();
|
|
8498
|
+
this.configureMenu();
|
|
7100
8499
|
this.configureSelect();
|
|
8500
|
+
}
|
|
7101
8501
|
|
|
7102
|
-
|
|
7103
|
-
|
|
7104
|
-
|
|
7105
|
-
|
|
7106
|
-
|
|
8502
|
+
/**
|
|
8503
|
+
* Update the menu value. With checks for menu existence. Awaits value update.
|
|
8504
|
+
* @param {string} value - The value to set in the menu.
|
|
8505
|
+
* @returns {void}
|
|
8506
|
+
* @private
|
|
8507
|
+
*/
|
|
8508
|
+
async updateMenuValue(value) {
|
|
8509
|
+
if (!this.menu) return;
|
|
8510
|
+
|
|
8511
|
+
this.menu.setAttribute('value', value);
|
|
8512
|
+
this.menu.value = value;
|
|
8513
|
+
await this.menu.updateComplete;
|
|
7107
8514
|
}
|
|
7108
8515
|
|
|
7109
8516
|
async updated(changedProperties) {
|
|
7110
|
-
if (changedProperties.has('multiSelect')) {
|
|
8517
|
+
if (changedProperties.has('multiSelect') && !changedProperties.has('value')) {
|
|
7111
8518
|
this.clearSelection();
|
|
7112
8519
|
}
|
|
7113
8520
|
|
|
7114
8521
|
if (changedProperties.has('value')) {
|
|
7115
8522
|
if (this.value) {
|
|
7116
|
-
|
|
8523
|
+
await this.updateMenuValue(this.value);
|
|
7117
8524
|
|
|
7118
|
-
this.menu
|
|
7119
|
-
|
|
7120
|
-
|
|
7121
|
-
await this.menu.updateComplete;
|
|
7122
|
-
|
|
7123
|
-
this.optionSelected = this.menu.optionSelected;
|
|
8525
|
+
if (this.menu) {
|
|
8526
|
+
this.optionSelected = this.menu.optionSelected;
|
|
8527
|
+
}
|
|
7124
8528
|
} else {
|
|
7125
|
-
this.
|
|
8529
|
+
await this.updateMenuValue(undefined);
|
|
7126
8530
|
}
|
|
7127
8531
|
|
|
7128
8532
|
this._updateNativeSelect();
|
|
@@ -7141,7 +8545,7 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7141
8545
|
composed: true,
|
|
7142
8546
|
detail: {
|
|
7143
8547
|
optionSelected: this.optionSelected,
|
|
7144
|
-
value: this.
|
|
8548
|
+
value: this.formattedValue
|
|
7145
8549
|
}
|
|
7146
8550
|
}));
|
|
7147
8551
|
}
|
|
@@ -7153,6 +8557,14 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7153
8557
|
if (changedProperties.has('error')) {
|
|
7154
8558
|
this.validate(true);
|
|
7155
8559
|
}
|
|
8560
|
+
|
|
8561
|
+
if (changedProperties.has('shape') && this.menu) {
|
|
8562
|
+
this.menu.setAttribute('shape', this.layout === 'classic' ? 'box' : this.shape);
|
|
8563
|
+
}
|
|
8564
|
+
|
|
8565
|
+
if (changedProperties.has('size') && this.menu) {
|
|
8566
|
+
this.menu.setAttribute('size', this.layout !== 'emphasized' ? 'md' : this.size);
|
|
8567
|
+
}
|
|
7156
8568
|
}
|
|
7157
8569
|
|
|
7158
8570
|
/**
|
|
@@ -7192,13 +8604,13 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7192
8604
|
const selectedValue = selectedOption.value;
|
|
7193
8605
|
|
|
7194
8606
|
if (this.multiSelect) {
|
|
7195
|
-
const currentArray =
|
|
8607
|
+
const currentArray = this.formattedValue;
|
|
7196
8608
|
|
|
7197
8609
|
if (!currentArray.includes(selectedValue)) {
|
|
7198
|
-
this.value = [
|
|
8610
|
+
this.value = JSON.stringify([
|
|
7199
8611
|
...currentArray,
|
|
7200
8612
|
selectedValue
|
|
7201
|
-
];
|
|
8613
|
+
]);
|
|
7202
8614
|
}
|
|
7203
8615
|
} else {
|
|
7204
8616
|
const currentValue = this.value;
|
|
@@ -7221,12 +8633,17 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7221
8633
|
}
|
|
7222
8634
|
|
|
7223
8635
|
if (this.multiSelect) {
|
|
7224
|
-
nativeSelect.value = this.
|
|
8636
|
+
nativeSelect.value = this.multiSelect ? this.multiSelect[0] : '';
|
|
7225
8637
|
} else {
|
|
7226
8638
|
nativeSelect.value = this.value || '';
|
|
7227
8639
|
}
|
|
7228
8640
|
}
|
|
7229
8641
|
|
|
8642
|
+
/**
|
|
8643
|
+
* Returns HTML for the hidden a11y screen reader content.
|
|
8644
|
+
* @private
|
|
8645
|
+
* @returns {html} - Returns HTML for the hidden a11y screen reader content.
|
|
8646
|
+
*/
|
|
7230
8647
|
renderAriaHtml() {
|
|
7231
8648
|
return u`
|
|
7232
8649
|
<div aria-live="polite" class="util_displayHiddenVisually">
|
|
@@ -7247,9 +8664,14 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7247
8664
|
`;
|
|
7248
8665
|
}
|
|
7249
8666
|
|
|
8667
|
+
/**
|
|
8668
|
+
* Returns HTML for the hidden HTML5 select.
|
|
8669
|
+
* @private
|
|
8670
|
+
* @returns {html} - Returns HTML for the hidden HTML5 select.
|
|
8671
|
+
*/
|
|
7250
8672
|
renderNativeSelect() {
|
|
7251
8673
|
return u`
|
|
7252
|
-
<div class="nativeSelectWrapper">
|
|
8674
|
+
<div class="nativeSelectWrapper util_displayHidden">
|
|
7253
8675
|
<select
|
|
7254
8676
|
tabindex="-1"
|
|
7255
8677
|
id="${`native-select-${this.id || this.uniqueId}`}"
|
|
@@ -7286,14 +8708,14 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7286
8708
|
? u`
|
|
7287
8709
|
<${this.helpTextTag} ?onDark="${this.onDark}">
|
|
7288
8710
|
<p id="${this.uniqueId}" part="helpText">
|
|
7289
|
-
<slot name="
|
|
8711
|
+
<slot name="helpText"></slot>
|
|
7290
8712
|
</p>
|
|
7291
8713
|
</${this.helpTextTag}>
|
|
7292
8714
|
`
|
|
7293
8715
|
: u`
|
|
7294
8716
|
<${this.helpTextTag} error ?onDark="${this.onDark}">
|
|
7295
8717
|
<p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
|
|
7296
|
-
|
|
8718
|
+
${this.errorMessage}
|
|
7297
8719
|
</p>
|
|
7298
8720
|
</${this.helpTextTag}>
|
|
7299
8721
|
`
|
|
@@ -7306,23 +8728,22 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7306
8728
|
* @private
|
|
7307
8729
|
* @returns {import("lit").TemplateResult} - Returns HTML for the emphasized layout.
|
|
7308
8730
|
*/
|
|
7309
|
-
// TODO update to use util class
|
|
7310
8731
|
renderLayoutEmphasized() {
|
|
7311
8732
|
const placeholderClass = {
|
|
7312
|
-
|
|
8733
|
+
'util_displayHidden': this.value
|
|
7313
8734
|
};
|
|
7314
8735
|
|
|
7315
8736
|
const displayValueClasses = {
|
|
7316
8737
|
'displayValue': true,
|
|
7317
8738
|
'hasContent': this.hasDisplayValueContent,
|
|
7318
|
-
'hasFocus': this.
|
|
7319
|
-
'withValue': this.value && this.value.length > 0,
|
|
8739
|
+
'hasFocus': this.isPopoverVisible,
|
|
8740
|
+
'withValue': this.placeholder || (this.value && this.value.length > 0), // eslint-disable-line no-extra-parens
|
|
7320
8741
|
'force': this.forceDisplayValue,
|
|
7321
8742
|
};
|
|
7322
8743
|
|
|
7323
8744
|
const valueContainerClasses = {
|
|
7324
8745
|
'valueContainer': true,
|
|
7325
|
-
'util_displayHiddenVisually':
|
|
8746
|
+
'util_displayHiddenVisually': (this.forceDisplayValue || !(this.dropdown && this.dropdown.isPopoverVisible)) && this.hasDisplayValueContent
|
|
7326
8747
|
};
|
|
7327
8748
|
|
|
7328
8749
|
return u`
|
|
@@ -7333,16 +8754,16 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7333
8754
|
<slot name="bib.fullscreen.headline" @slotchange="${this.handleSlotChange}"></slot>
|
|
7334
8755
|
</div>
|
|
7335
8756
|
<${this.dropdownTag}
|
|
8757
|
+
a11yRole="select"
|
|
7336
8758
|
?autoPlacement="${this.autoPlacement}"
|
|
7337
8759
|
?error="${this.validity !== undefined && this.validity !== 'valid'}"
|
|
7338
|
-
?matchWidth="${
|
|
8760
|
+
?matchWidth="${this.matchWidth}"
|
|
7339
8761
|
?noFlip="${this.noFlip}"
|
|
7340
8762
|
?onDark="${this.onDark}"
|
|
7341
8763
|
.fullscreenBreakpoint="${this.fullscreenBreakpoint}"
|
|
7342
8764
|
.offset="${this.offset}"
|
|
7343
8765
|
.placement="${this.placement}"
|
|
7344
8766
|
chevron
|
|
7345
|
-
fluid
|
|
7346
8767
|
for="selectMenu"
|
|
7347
8768
|
layout="${this.layout}"
|
|
7348
8769
|
part="dropdown"
|
|
@@ -7354,15 +8775,14 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7354
8775
|
</div>
|
|
7355
8776
|
<div class="mainContent">
|
|
7356
8777
|
<div class="${e(valueContainerClasses)}">
|
|
7357
|
-
<label>
|
|
8778
|
+
<label class="${e(this.commonLabelClasses)}">
|
|
7358
8779
|
<slot name="label"></slot>
|
|
8780
|
+
${this.required ? undefined : u`<slot name="optionalLabel"> (optional)</slot>`}
|
|
7359
8781
|
</label>
|
|
7360
8782
|
<div class="value" id="value"></div>
|
|
7361
|
-
${
|
|
7362
|
-
|
|
7363
|
-
|
|
7364
|
-
</div>
|
|
7365
|
-
`}
|
|
8783
|
+
<div id="placeholder" class="${e(placeholderClass)}">
|
|
8784
|
+
${this.placeholder}
|
|
8785
|
+
</div>
|
|
7366
8786
|
</div>
|
|
7367
8787
|
<div class="${e(displayValueClasses)}" aria-hidden="true" part="displayValue">
|
|
7368
8788
|
<slot name="displayValue"></slot>
|
|
@@ -7389,20 +8809,20 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7389
8809
|
*/
|
|
7390
8810
|
renderLayoutSnowflake() {
|
|
7391
8811
|
const placeholderClass = {
|
|
7392
|
-
|
|
8812
|
+
'util_displayHidden': this.value
|
|
7393
8813
|
};
|
|
7394
8814
|
|
|
7395
8815
|
const displayValueClasses = {
|
|
7396
8816
|
'displayValue': true,
|
|
7397
8817
|
'hasContent': this.hasDisplayValueContent,
|
|
7398
|
-
'hasFocus': this.
|
|
7399
|
-
'withValue': this.value && this.value.length > 0,
|
|
8818
|
+
'hasFocus': this.isPopoverVisible,
|
|
8819
|
+
'withValue': this.placeholder || (this.value && this.value.length > 0), // eslint-disable-line no-extra-parens
|
|
7400
8820
|
'force': this.forceDisplayValue,
|
|
7401
8821
|
};
|
|
7402
8822
|
|
|
7403
8823
|
const valueContainerClasses = {
|
|
7404
8824
|
'valueContainer': true,
|
|
7405
|
-
'util_displayHiddenVisually': (this.forceDisplayValue || !this.
|
|
8825
|
+
'util_displayHiddenVisually': (this.forceDisplayValue || !(this.dropdown && this.dropdown.isPopoverVisible)) && this.hasDisplayValueContent
|
|
7406
8826
|
};
|
|
7407
8827
|
|
|
7408
8828
|
return u`
|
|
@@ -7415,14 +8835,13 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7415
8835
|
<${this.dropdownTag}
|
|
7416
8836
|
?autoPlacement="${this.autoPlacement}"
|
|
7417
8837
|
?error="${this.validity !== undefined && this.validity !== 'valid'}"
|
|
7418
|
-
?matchWidth="${
|
|
8838
|
+
?matchWidth="${this.matchWidth}"
|
|
7419
8839
|
?noFlip="${this.noFlip}"
|
|
7420
8840
|
?onDark="${this.onDark}"
|
|
7421
8841
|
.fullscreenBreakpoint="${this.fullscreenBreakpoint}"
|
|
7422
8842
|
.offset="${this.offset}"
|
|
7423
8843
|
.placement="${this.placement}"
|
|
7424
8844
|
chevron
|
|
7425
|
-
fluid
|
|
7426
8845
|
for="selectMenu"
|
|
7427
8846
|
layout="${this.layout}"
|
|
7428
8847
|
part="dropdown"
|
|
@@ -7434,15 +8853,14 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7434
8853
|
</div>
|
|
7435
8854
|
<div class="mainContent">
|
|
7436
8855
|
<div class="${e(valueContainerClasses)}">
|
|
7437
|
-
<label>
|
|
8856
|
+
<label class="${e(this.commonLabelClasses)}">
|
|
7438
8857
|
<slot name="label"></slot>
|
|
8858
|
+
${this.required ? undefined : u`<slot name="optionalLabel"> (optional)</slot>`}
|
|
7439
8859
|
</label>
|
|
7440
8860
|
<div class="value" id="value"></div>
|
|
7441
|
-
${
|
|
7442
|
-
|
|
7443
|
-
|
|
7444
|
-
</div>
|
|
7445
|
-
`}
|
|
8861
|
+
<div id="placeholder" class="${e(placeholderClass)}">
|
|
8862
|
+
${this.placeholder}
|
|
8863
|
+
</div>
|
|
7446
8864
|
</div>
|
|
7447
8865
|
<div class="${e(displayValueClasses)}" aria-hidden="true" part="displayValue">
|
|
7448
8866
|
<slot name="displayValue"></slot>
|
|
@@ -7458,6 +8876,7 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7458
8876
|
${this.renderHtmlHelpText()}
|
|
7459
8877
|
</div>
|
|
7460
8878
|
</${this.dropdownTag}>
|
|
8879
|
+
${this.renderNativeSelect()}
|
|
7461
8880
|
</div>
|
|
7462
8881
|
`;
|
|
7463
8882
|
}
|
|
@@ -7468,11 +8887,75 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7468
8887
|
* @returns {import("lit").TemplateResult} - Returns HTML for the classic layout.
|
|
7469
8888
|
*/
|
|
7470
8889
|
renderLayoutClassic() {
|
|
8890
|
+
const placeholderClass = {
|
|
8891
|
+
'util_displayHidden': this.value
|
|
8892
|
+
};
|
|
8893
|
+
|
|
8894
|
+
const displayValueClasses = {
|
|
8895
|
+
'displayValue': true,
|
|
8896
|
+
'hasContent': this.hasDisplayValueContent,
|
|
8897
|
+
'hasFocus': this.isPopoverVisible,
|
|
8898
|
+
'withValue': this.placeholder || (this.value && this.value.length > 0), // eslint-disable-line no-extra-parens
|
|
8899
|
+
'force': this.forceDisplayValue,
|
|
8900
|
+
};
|
|
8901
|
+
|
|
8902
|
+
const valueContainerClasses = {
|
|
8903
|
+
'valueContainer': true,
|
|
8904
|
+
'util_displayHiddenVisually': (this.forceDisplayValue || !(this.dropdown && this.dropdown.isPopoverVisible)) && this.hasDisplayValueContent
|
|
8905
|
+
};
|
|
8906
|
+
|
|
7471
8907
|
return u`
|
|
7472
8908
|
<div
|
|
7473
|
-
class="${e(this.commonWrapperClasses)}
|
|
8909
|
+
class="${e(this.commonWrapperClasses)}"
|
|
7474
8910
|
part="wrapper">
|
|
7475
|
-
|
|
8911
|
+
<div id="slotHolder" aria-hidden="true">
|
|
8912
|
+
<slot name="bib.fullscreen.headline" @slotchange="${this.handleSlotChange}"></slot>
|
|
8913
|
+
</div>
|
|
8914
|
+
<${this.dropdownTag}
|
|
8915
|
+
?autoPlacement="${this.autoPlacement}"
|
|
8916
|
+
?error="${this.validity !== undefined && this.validity !== 'valid'}"
|
|
8917
|
+
?matchWidth="${!this.flexMenuWidth}"
|
|
8918
|
+
?noFlip="${this.noFlip}"
|
|
8919
|
+
?onDark="${this.onDark}"
|
|
8920
|
+
.fullscreenBreakpoint="${this.fullscreenBreakpoint}"
|
|
8921
|
+
.offset="${this.offset}"
|
|
8922
|
+
.placement="${this.placement}"
|
|
8923
|
+
chevron
|
|
8924
|
+
for="selectMenu"
|
|
8925
|
+
layout="${this.layout}"
|
|
8926
|
+
part="dropdown"
|
|
8927
|
+
shape="${this.shape}"
|
|
8928
|
+
size="${this.size}">
|
|
8929
|
+
<div slot="trigger" aria-haspopup="true" id="triggerFocus" class="triggerContent">
|
|
8930
|
+
<div class="accents left">
|
|
8931
|
+
<slot name="typeIcon"></slot>
|
|
8932
|
+
</div>
|
|
8933
|
+
<div class="mainContent">
|
|
8934
|
+
<div class="${e(valueContainerClasses)}">
|
|
8935
|
+
<label class="${e(this.commonLabelClasses)}">
|
|
8936
|
+
<slot name="label"></slot>
|
|
8937
|
+
${this.required ? undefined : u`<slot name="optionalLabel"> (optional)</slot>`}
|
|
8938
|
+
</label>
|
|
8939
|
+
<div class="value" id="value"></div>
|
|
8940
|
+
<div id="placeholder" class="${e(placeholderClass)}">
|
|
8941
|
+
${this.placeholder}
|
|
8942
|
+
</div>
|
|
8943
|
+
</div>
|
|
8944
|
+
<div class="${e(displayValueClasses)}" aria-hidden="true" part="displayValue">
|
|
8945
|
+
<slot name="displayValue"></slot>
|
|
8946
|
+
</div>
|
|
8947
|
+
</div>
|
|
8948
|
+
<div class="accents right"></div>
|
|
8949
|
+
</div>
|
|
8950
|
+
<div class="menuWrapper"></div>
|
|
8951
|
+
<${this.bibtemplateTag} ?large="${this.largeFullscreenHeadline}" @close-click="${this.hideBib}">
|
|
8952
|
+
<slot></slot>
|
|
8953
|
+
</${this.bibtemplateTag}>
|
|
8954
|
+
<div slot="helpText">
|
|
8955
|
+
${this.renderHtmlHelpText()}
|
|
8956
|
+
</div>
|
|
8957
|
+
</${this.dropdownTag}>
|
|
8958
|
+
${this.renderNativeSelect()}
|
|
7476
8959
|
</div>
|
|
7477
8960
|
`;
|
|
7478
8961
|
}
|
|
@@ -7506,112 +8989,13 @@ class AuroSelect extends AuroElement$3 {
|
|
|
7506
8989
|
|
|
7507
8990
|
// When using auroElement, use the following attribute and function when hiding content from screen readers.
|
|
7508
8991
|
// aria-hidden="${this.hideAudible(this.hiddenAudible)}"
|
|
7509
|
-
|
|
7510
|
-
// function that renders the HTML and CSS into the scope of the component
|
|
7511
|
-
renderBACKUP() {
|
|
7512
|
-
const placeholderClass = {
|
|
7513
|
-
hidden: this.value,
|
|
7514
|
-
};
|
|
7515
|
-
|
|
7516
|
-
return u`
|
|
7517
|
-
<div class="outerWrapper">
|
|
7518
|
-
<div aria-live="polite" class="util_displayHiddenVisually">
|
|
7519
|
-
${this.optionActive && this.options.length > 0
|
|
7520
|
-
? u`
|
|
7521
|
-
${`${this.optionActive.innerText}, option ${this.options.indexOf(this.optionActive) + 1} of ${this.options.length}`}
|
|
7522
|
-
`
|
|
7523
|
-
: undefined
|
|
7524
|
-
};
|
|
7525
|
-
|
|
7526
|
-
${this.optionSelected && this.options.length > 0
|
|
7527
|
-
? u`
|
|
7528
|
-
${`${this.optionSelected.innerText} selected`}
|
|
7529
|
-
`
|
|
7530
|
-
: undefined
|
|
7531
|
-
};
|
|
7532
|
-
</div>
|
|
7533
|
-
<div id="slotHolder" aria-hidden="true">
|
|
7534
|
-
<slot name="bib.fullscreen.headline" @slotchange="${this.handleSlotChange}"></slot>
|
|
7535
|
-
</div>
|
|
7536
|
-
<${this.dropdownTag}
|
|
7537
|
-
?autoPlacement="${this.autoPlacement}"
|
|
7538
|
-
?disabled="${this.disabled}"
|
|
7539
|
-
?error="${this.validity !== undefined && this.validity !== 'valid'}"
|
|
7540
|
-
?matchWidth="${!this.flexMenuWidth}"
|
|
7541
|
-
?noFlip="${this.noFlip}"
|
|
7542
|
-
?onDark="${this.onDark}"
|
|
7543
|
-
.fullscreenBreakpoint="${this.fullscreenBreakpoint}"
|
|
7544
|
-
.offset="${this.offset}"
|
|
7545
|
-
.placement="${this.placement}"
|
|
7546
|
-
chevron
|
|
7547
|
-
fluid
|
|
7548
|
-
for="selectMenu"
|
|
7549
|
-
layout="${this.layout}"
|
|
7550
|
-
part="dropdown"
|
|
7551
|
-
shape="${this.shape}"
|
|
7552
|
-
size="${this.size}">
|
|
7553
|
-
<span slot="trigger" aria-haspopup="true" id="triggerFocus">
|
|
7554
|
-
<span id="placeholder"
|
|
7555
|
-
class="${e(placeholderClass)}"
|
|
7556
|
-
?aria-hidden="${this.optionSelected && this.optionSelected.length ? 'true' : false}"
|
|
7557
|
-
>
|
|
7558
|
-
<slot name="placeholder"></slot>
|
|
7559
|
-
</span>
|
|
7560
|
-
<slot name="valueText" id="valueText"></slot>
|
|
7561
|
-
</span>
|
|
7562
|
-
|
|
7563
|
-
<${this.bibtemplateTag} ?large="${this.largeFullscreenHeadline}" @close-click="${this.hideBib}">
|
|
7564
|
-
<slot></slot>
|
|
7565
|
-
</${this.bibtemplateTag}>
|
|
7566
|
-
<slot name="label" slot="label"></slot>
|
|
7567
|
-
<p slot="helpText">
|
|
7568
|
-
${!this.validity || this.validity === undefined || this.validity === 'valid'
|
|
7569
|
-
? u`
|
|
7570
|
-
<span id="${this.uniqueId}" part="helpText">
|
|
7571
|
-
<slot name="helpText"></slot>
|
|
7572
|
-
</span>`
|
|
7573
|
-
: u`
|
|
7574
|
-
<span id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
|
|
7575
|
-
${this.errorMessage}
|
|
7576
|
-
</span>`
|
|
7577
|
-
}
|
|
7578
|
-
</p>
|
|
7579
|
-
</${this.dropdownTag}>
|
|
7580
|
-
<div class="nativeSelectWrapper">
|
|
7581
|
-
<select
|
|
7582
|
-
tabindex="-1"
|
|
7583
|
-
id="${`native-select-${this.id || this.uniqueId}`}"
|
|
7584
|
-
name="${this.name || ''}"
|
|
7585
|
-
?disabled="${this.disabled}"
|
|
7586
|
-
?required="${this.required}"
|
|
7587
|
-
aria-hidden="true"
|
|
7588
|
-
autocomplete="${o(this.autocomplete)}"
|
|
7589
|
-
@change="${this._handleNativeSelectChange}">
|
|
7590
|
-
<option value="" ?selected="${!this.value}"></option>
|
|
7591
|
-
${this.options.map((option) => {
|
|
7592
|
-
const optionValue = option.value || option.textContent;
|
|
7593
|
-
return u`
|
|
7594
|
-
<option
|
|
7595
|
-
value="${optionValue}"
|
|
7596
|
-
?selected="${this.value === optionValue}">
|
|
7597
|
-
${option.textContent}
|
|
7598
|
-
</option>
|
|
7599
|
-
`;
|
|
7600
|
-
})}
|
|
7601
|
-
</select>
|
|
7602
|
-
</div>
|
|
7603
|
-
<!-- Help text and error message template -->
|
|
7604
|
-
${this.renderHtmlHelpText()}
|
|
7605
|
-
</div>
|
|
7606
|
-
`;
|
|
7607
|
-
}
|
|
7608
8992
|
}
|
|
7609
8993
|
|
|
7610
|
-
var styleCss$2 = i$5`:focus:not(:focus-visible){outline:3px solid transparent}:host{display:
|
|
8994
|
+
var styleCss$2 = i$5`:focus:not(:focus-visible){outline:3px solid transparent}:host{display:block;vertical-align:middle}:host .wrapper{box-sizing:border-box;display:inline-block;width:100%;margin:0;padding:0}:host ::slotted(hr){box-sizing:content-box !important;height:0 !important;overflow:visible !important;margin:var(--ds-size-100, 0.5rem) 0 !important;border-width:0 !important;border-top-width:1px !important;border-top-style:solid !important}:host [loadingplaceholder].empty{opacity:0;position:absolute}:host [loadingplaceholder] slot[name=loadingIcon]{vertical-align:middle;line-height:1;display:inline-block}:host [loadingplaceholder] slot[name=loadingIcon]::slotted(*){margin-right:var(--ds-size-150, 0.75rem)}:host([root]){overflow-y:auto}:host([root]) .wrapper[class*=-lg]{padding:var(--ds-size-150, 0.75rem)}:host([root]) .wrapper[class*=-xl]{padding:var(--ds-size-200, 1rem)}`;
|
|
7611
8995
|
|
|
7612
8996
|
var colorCss$2 = i$5`:host ::slotted(hr){border-top-color:var(--ds-auro-menu-divider-color)}[loadingplaceholder] slot[name=loadingIcon]{color:var(--ds-auro-menu-loader-color)}[loadingplaceholder] slot[name=loadingText]{color:var(--ds-auro-menu-loader-text-color)}`;
|
|
7613
8997
|
|
|
7614
|
-
var tokensCss$1 = i$5`:host{--ds-auro-menu-divider-color: var(--ds-basic-color-border-divider, rgba(0, 0, 0, 0.15));--ds-auro-menu-loader-color: var(--ds-basic-color-brand-primary, #01426a);--ds-auro-menu-loader-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-menuoption-container-color: transparent;--ds-auro-menuoption-icon-color: transparent;--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}`;
|
|
8998
|
+
var tokensCss$1 = i$5`:host{--ds-auro-menu-divider-color: var(--ds-basic-color-border-divider, rgba(0, 0, 0, 0.15));--ds-auro-menu-loader-color: var(--ds-basic-color-brand-primary, #01426a);--ds-auro-menu-loader-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-menuoption-container-color: transparent;--ds-auro-menuoption-container-border-color: var(--ds-auro-menuoption-container-color);--ds-auro-menuoption-icon-color: transparent;--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}`;
|
|
7615
8999
|
|
|
7616
9000
|
// Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
7617
9001
|
// See LICENSE in the project root for license information.
|
|
@@ -7664,7 +9048,6 @@ function dispatchMenuEvent(element, eventName, detail = null) {
|
|
|
7664
9048
|
* @attr {boolean} nocheckmark - When true, selected option will not show the checkmark.
|
|
7665
9049
|
* @attr {boolean} loading - When true, displays a loading state using the loadingIcon and loadingText slots if provided.
|
|
7666
9050
|
* @attr {boolean} multiselect - When true, the selected option can be multiple options.
|
|
7667
|
-
* @attr {String|Array<string>} value - Value selected for the menu, type `string` by default. In multi-select mode, `value` is an array of strings.
|
|
7668
9051
|
* @prop {boolean} hasLoadingPlaceholder - Indicates whether the menu has a loadingIcon or loadingText to render when in a loading state.
|
|
7669
9052
|
* @event {CustomEvent<Element>} auroMenu-activatedOption - Notifies that a menuoption has been made `active`.
|
|
7670
9053
|
* @event {CustomEvent<any>} auroMenu-customEventFired - Notifies that a custom event has been fired.
|
|
@@ -7677,14 +9060,17 @@ function dispatchMenuEvent(element, eventName, detail = null) {
|
|
|
7677
9060
|
* @slot - Slot for insertion of menu options.
|
|
7678
9061
|
*/
|
|
7679
9062
|
|
|
7680
|
-
/* eslint-disable no-magic-numbers, max-lines, no-extra-parens */
|
|
9063
|
+
/* eslint-disable no-magic-numbers, max-lines, no-extra-parens, no-inline-comments, line-comment-position */
|
|
7681
9064
|
|
|
7682
|
-
class AuroMenu extends
|
|
9065
|
+
class AuroMenu extends AuroElement$4 {
|
|
7683
9066
|
constructor() {
|
|
7684
9067
|
super();
|
|
7685
9068
|
|
|
7686
9069
|
// State properties (reactive)
|
|
7687
9070
|
|
|
9071
|
+
this.shape = ""; // box, rounded, pill
|
|
9072
|
+
this.size = ""; // md, lg, xl
|
|
9073
|
+
|
|
7688
9074
|
// Value of the selected options
|
|
7689
9075
|
this.value = undefined;
|
|
7690
9076
|
// Currently selected option
|
|
@@ -7743,6 +9129,7 @@ class AuroMenu extends i$2 {
|
|
|
7743
9129
|
|
|
7744
9130
|
static get properties() {
|
|
7745
9131
|
return {
|
|
9132
|
+
...super.properties,
|
|
7746
9133
|
noCheckmark: {
|
|
7747
9134
|
type: Boolean,
|
|
7748
9135
|
reflect: true,
|
|
@@ -7773,9 +9160,24 @@ class AuroMenu extends i$2 {
|
|
|
7773
9160
|
reflect: true,
|
|
7774
9161
|
attribute: 'multiselect'
|
|
7775
9162
|
},
|
|
9163
|
+
|
|
9164
|
+
/**
|
|
9165
|
+
* Value selected for the component.
|
|
9166
|
+
*/
|
|
7776
9167
|
value: {
|
|
7777
|
-
|
|
7778
|
-
|
|
9168
|
+
type: String,
|
|
9169
|
+
reflect: true,
|
|
9170
|
+
attribute: 'value'
|
|
9171
|
+
},
|
|
9172
|
+
|
|
9173
|
+
/**
|
|
9174
|
+
* Indent level for submenus.
|
|
9175
|
+
* @private
|
|
9176
|
+
*/
|
|
9177
|
+
level: {
|
|
9178
|
+
type: Number,
|
|
9179
|
+
reflect: false,
|
|
9180
|
+
attribute: false
|
|
7779
9181
|
}
|
|
7780
9182
|
};
|
|
7781
9183
|
}
|
|
@@ -7797,7 +9199,26 @@ class AuroMenu extends i$2 {
|
|
|
7797
9199
|
*
|
|
7798
9200
|
*/
|
|
7799
9201
|
static register(name = "auro-menu") {
|
|
7800
|
-
AuroLibraryRuntimeUtils$
|
|
9202
|
+
AuroLibraryRuntimeUtils$6.prototype.registerComponent(name, AuroMenu);
|
|
9203
|
+
}
|
|
9204
|
+
|
|
9205
|
+
/**
|
|
9206
|
+
* Formatted value based on `multiSelect` state.
|
|
9207
|
+
* Default type is `String`, changing to `Array<String>` when `multiSelect` is true.
|
|
9208
|
+
* @private
|
|
9209
|
+
* @returns {String|Array<String>}
|
|
9210
|
+
*/
|
|
9211
|
+
get formattedValue() {
|
|
9212
|
+
if (this.multiSelect) {
|
|
9213
|
+
if (!this.value) {
|
|
9214
|
+
return undefined;
|
|
9215
|
+
}
|
|
9216
|
+
if (this.value.startsWith("[")) {
|
|
9217
|
+
return JSON.parse(this.value);
|
|
9218
|
+
}
|
|
9219
|
+
return [this.value];
|
|
9220
|
+
}
|
|
9221
|
+
return this.value;
|
|
7801
9222
|
}
|
|
7802
9223
|
|
|
7803
9224
|
// Lifecycle Methods
|
|
@@ -7809,6 +9230,7 @@ class AuroMenu extends i$2 {
|
|
|
7809
9230
|
this.addEventListener('mousedown', this.handleMouseSelect);
|
|
7810
9231
|
this.addEventListener('auroMenuOption-mouseover', this.handleOptionHover);
|
|
7811
9232
|
this.addEventListener('slotchange', this.handleSlotChange);
|
|
9233
|
+
this.setTagAttribute("auro-menu");
|
|
7812
9234
|
}
|
|
7813
9235
|
|
|
7814
9236
|
disconnectedCallback() {
|
|
@@ -7821,19 +9243,33 @@ class AuroMenu extends i$2 {
|
|
|
7821
9243
|
}
|
|
7822
9244
|
|
|
7823
9245
|
firstUpdated() {
|
|
7824
|
-
AuroLibraryRuntimeUtils$
|
|
9246
|
+
AuroLibraryRuntimeUtils$6.prototype.handleComponentTagRename(this, 'auro-menu');
|
|
7825
9247
|
|
|
7826
9248
|
this.loadingSlots = this.querySelectorAll("[slot='loadingText'], [slot='loadingIcon']");
|
|
7827
9249
|
this.initializeMenu();
|
|
7828
9250
|
}
|
|
7829
9251
|
|
|
9252
|
+
/**
|
|
9253
|
+
* Sets an attribute that matches the default tag name if the tag name is not the default.
|
|
9254
|
+
* @param {string} tagName - The tag name to set as an attribute.
|
|
9255
|
+
* @private
|
|
9256
|
+
*/
|
|
9257
|
+
setTagAttribute(tagName) {
|
|
9258
|
+
if (this.tagName.toLowerCase() !== tagName) {
|
|
9259
|
+
this.setAttribute(tagName, true);
|
|
9260
|
+
}
|
|
9261
|
+
}
|
|
9262
|
+
|
|
7830
9263
|
updated(changedProperties) {
|
|
7831
|
-
|
|
9264
|
+
super.updated(changedProperties);
|
|
9265
|
+
|
|
9266
|
+
if (changedProperties.has('multiSelect') && !changedProperties.has("value")) {
|
|
7832
9267
|
// Reset selection if multiSelect mode changes
|
|
7833
9268
|
this.clearSelection();
|
|
7834
9269
|
}
|
|
7835
9270
|
|
|
7836
|
-
|
|
9271
|
+
|
|
9272
|
+
if (changedProperties.has("value")) {
|
|
7837
9273
|
// Handle null/undefined case
|
|
7838
9274
|
if (this.value === undefined || this.value === null) {
|
|
7839
9275
|
this.optionSelected = undefined;
|
|
@@ -7841,7 +9277,7 @@ class AuroMenu extends i$2 {
|
|
|
7841
9277
|
} else {
|
|
7842
9278
|
if (this.multiSelect) {
|
|
7843
9279
|
// In multiselect mode, this.value should be an array of strings
|
|
7844
|
-
const valueArray =
|
|
9280
|
+
const valueArray = this.formattedValue;
|
|
7845
9281
|
const matchingOptions = this.items.filter((item) => valueArray.includes(item.value));
|
|
7846
9282
|
|
|
7847
9283
|
this.optionSelected = matchingOptions.length > 0 ? matchingOptions : undefined;
|
|
@@ -7901,6 +9337,19 @@ class AuroMenu extends i$2 {
|
|
|
7901
9337
|
this.querySelectorAll('auro-menu, [auro-menu], auro-menuoption, [auro-menuoption]').forEach((element) => element.setAttribute('noCheckmark', ''));
|
|
7902
9338
|
}
|
|
7903
9339
|
|
|
9340
|
+
// Handle layout propagation to all menus and options
|
|
9341
|
+
const propagationTargets = this.querySelectorAll('auro-menu, [auro-menu], auro-menuoption, [auro-menuoption]');
|
|
9342
|
+
[
|
|
9343
|
+
'size',
|
|
9344
|
+
'shape'
|
|
9345
|
+
].forEach((prop) => {
|
|
9346
|
+
if (changedProperties.has(prop)) {
|
|
9347
|
+
propagationTargets.forEach((el) => {
|
|
9348
|
+
el.setAttribute(prop, this[prop]);
|
|
9349
|
+
});
|
|
9350
|
+
}
|
|
9351
|
+
});
|
|
9352
|
+
|
|
7904
9353
|
// Regex for matchWord if needed
|
|
7905
9354
|
let regexWord = null;
|
|
7906
9355
|
|
|
@@ -7995,14 +9444,14 @@ class AuroMenu extends i$2 {
|
|
|
7995
9444
|
*/
|
|
7996
9445
|
handleSelectState(option) {
|
|
7997
9446
|
if (this.multiSelect) {
|
|
7998
|
-
const currentValue = this.
|
|
9447
|
+
const currentValue = this.formattedValue || [];
|
|
7999
9448
|
const currentSelected = this.optionSelected || [];
|
|
8000
9449
|
|
|
8001
9450
|
if (!currentValue.includes(option.value)) {
|
|
8002
|
-
this.value = [
|
|
9451
|
+
this.value = JSON.stringify([
|
|
8003
9452
|
...currentValue,
|
|
8004
9453
|
option.value
|
|
8005
|
-
];
|
|
9454
|
+
]);
|
|
8006
9455
|
}
|
|
8007
9456
|
if (!currentSelected.includes(option)) {
|
|
8008
9457
|
this.optionSelected = [
|
|
@@ -8025,13 +9474,15 @@ class AuroMenu extends i$2 {
|
|
|
8025
9474
|
* @param {HTMLElement} option - The menuoption to be deselected.
|
|
8026
9475
|
*/
|
|
8027
9476
|
handleDeselectState(option) {
|
|
8028
|
-
if (this.multiSelect
|
|
9477
|
+
if (this.multiSelect) {
|
|
8029
9478
|
// Remove this option from array
|
|
8030
|
-
|
|
9479
|
+
const newFormattedValue = (this.formattedValue || []).filter((val) => val !== option.value);
|
|
8031
9480
|
|
|
8032
9481
|
// If array is empty after removal, set back to undefined
|
|
8033
|
-
if (
|
|
9482
|
+
if (newFormattedValue && newFormattedValue.length === 0) {
|
|
8034
9483
|
this.value = undefined;
|
|
9484
|
+
} else {
|
|
9485
|
+
this.value = JSON.stringify(newFormattedValue);
|
|
8035
9486
|
}
|
|
8036
9487
|
|
|
8037
9488
|
this.optionSelected = this.optionSelected.filter((val) => val !== option);
|
|
@@ -8097,21 +9548,20 @@ class AuroMenu extends i$2 {
|
|
|
8097
9548
|
* @param {HTMLElement} menu - Root menu element.
|
|
8098
9549
|
*/
|
|
8099
9550
|
handleNestedMenus(menu) {
|
|
8100
|
-
|
|
9551
|
+
menu.level = menu.parentElement.level >= 0 ? menu.parentElement.level + 1 : 0;
|
|
8101
9552
|
|
|
8102
|
-
|
|
8103
|
-
|
|
8104
|
-
|
|
8105
|
-
if (!
|
|
8106
|
-
|
|
9553
|
+
if (menu.level > 0) {
|
|
9554
|
+
menu.setAttribute('role', 'group');
|
|
9555
|
+
menu.removeAttribute("root");
|
|
9556
|
+
if (!menu.hasAttribute('aria-label')) {
|
|
9557
|
+
menu.setAttribute('aria-label', 'submenu');
|
|
8107
9558
|
}
|
|
9559
|
+
}
|
|
8108
9560
|
|
|
8109
|
-
|
|
8110
|
-
|
|
8111
|
-
|
|
8112
|
-
|
|
8113
|
-
|
|
8114
|
-
this.handleNestedMenus(nestedMenu);
|
|
9561
|
+
const options = menu.querySelectorAll(':scope > auro-menuoption, :scope > [auro-menuoption]');
|
|
9562
|
+
options.forEach((option) => {
|
|
9563
|
+
const regex = new RegExp(this.nestingSpacer, "gu");
|
|
9564
|
+
option.innerHTML = this.nestingSpacer.repeat(menu.level) + option.innerHTML.replace(regex, '');
|
|
8115
9565
|
});
|
|
8116
9566
|
}
|
|
8117
9567
|
|
|
@@ -8353,28 +9803,39 @@ class AuroMenu extends i$2 {
|
|
|
8353
9803
|
}
|
|
8354
9804
|
|
|
8355
9805
|
/**
|
|
8356
|
-
*
|
|
8357
|
-
* @
|
|
9806
|
+
* Logic to determine the layout of the component.
|
|
9807
|
+
* @protected
|
|
9808
|
+
* @returns {void}
|
|
8358
9809
|
*/
|
|
8359
|
-
|
|
9810
|
+
renderLayout() {
|
|
8360
9811
|
if (this.loading) {
|
|
8361
9812
|
return x`
|
|
8362
|
-
<
|
|
8363
|
-
<
|
|
8364
|
-
|
|
8365
|
-
|
|
8366
|
-
|
|
8367
|
-
|
|
9813
|
+
<div class="wrapper">
|
|
9814
|
+
<auro-menuoption
|
|
9815
|
+
disabled
|
|
9816
|
+
loadingplaceholder
|
|
9817
|
+
class="${this.hasLoadingPlaceholder ? "" : "empty"}"
|
|
9818
|
+
>
|
|
9819
|
+
<div>
|
|
9820
|
+
<slot name="loadingIcon"></slot>
|
|
9821
|
+
<slot name="loadingText"></slot>
|
|
9822
|
+
</div>
|
|
9823
|
+
</auro-menuoption>
|
|
9824
|
+
</div>
|
|
8368
9825
|
`;
|
|
8369
9826
|
}
|
|
8370
9827
|
|
|
8371
|
-
return x
|
|
9828
|
+
return x`
|
|
9829
|
+
<div class="wrapper">
|
|
9830
|
+
<slot @slotchange=${this.handleSlotChange}></slot>
|
|
9831
|
+
</div>
|
|
9832
|
+
`;
|
|
8372
9833
|
}
|
|
8373
9834
|
}
|
|
8374
9835
|
|
|
8375
|
-
var styleCss$1 = i$5`:host{display:flex;align-items:center;padding:var(--ds-size-
|
|
9836
|
+
var styleCss$1 = i$5`:host{cursor:pointer;user-select:none}:host .wrapper{display:flex;align-items:center;padding-right:var(--ds-size-200, 1rem);padding-left:calc(var(--ds-size-150, 0.75rem) + var(--ds-size-300, 1.5rem) + var(--ds-size-100, 0.5rem));padding-top:var(--ds-size-50, 0.25rem);padding-bottom:var(--ds-size-50, 0.25rem);-webkit-tap-highlight-color:transparent}:host .wrapper[class*=shape-box],:host .wrapper[class*=shape-snowflake]{border-radius:unset}:host .wrapper[class*=shape-pill]{border-radius:30px}:host .wrapper[class*=-lg]{font-size:var(--ds-text-body-size-lg, 1.125rem);line-height:var(--ds-text-body-height-lg, 1.625rem);padding-top:var(--ds-size-75, 0.375rem);padding-bottom:var(--ds-size-75, 0.375rem);padding-right:var(--ds-size-150, 0.75rem)}:host .wrapper[class*=-lg]:not(:last-child){margin-bottom:var(--ds-size-50, 0.25rem)}:host .wrapper[class*=-xl]{font-size:var(--ds-text-body-size-lg, 1.125rem);line-height:var(--ds-text-body-height-lg, 1.625rem);padding-top:var(--ds-size-100, 0.5rem);padding-bottom:var(--ds-size-100, 0.5rem);padding-right:var(--ds-size-200, 1rem)}:host .wrapper[class*=-xl]:not(:last-child){margin-bottom:var(--ds-size-100, 0.5rem)}:host slot{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host [auro-icon]{--ds-auro-icon-size: var(--ds-size-300, 1.5rem);margin-right:var(--ds-size-150, 0.75rem);margin-left:var(--ds-size-100, 0.5rem)}:host ::slotted(.nestingSpacer){display:inline-block;width:var(--ds-size-300, 1.5rem)}:host ::slotted(strong){font-weight:700}:host([loadingplaceholder]) .wrapper{padding-left:calc(var(--ds-size-150, 0.75rem) + var(--ds-size-300, 1.5rem) + var(--ds-size-100, 0.5rem))}:host([selected]) .wrapper{padding-left:0}:host([nocheckmark]) .wrapper{padding-left:var(--ds-size-150, 0.75rem)}:host([nocheckmark]) .wrapper[class*=-lg]{padding-left:var(--ds-size-150, 0.75rem)}:host([nocheckmark]) .wrapper[class*=-xl]{padding-left:var(--ds-size-200, 1rem)}:host([hidden]){display:none}:host([static]){pointer-events:none}:host([disabled]:hover){cursor:auto}:host([disabled]){user-select:none;pointer-events:none}`;
|
|
8376
9837
|
|
|
8377
|
-
var colorCss$1 = i$5`:host{background-color:var(--ds-auro-menuoption-container-color);color:var(--ds-auro-menuoption-text-color)}:host svg{fill:var(--ds-auro-menuoption-icon-color)}:host([disabled]){--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:hover),:host(.active){--ds-auro-menuoption-container-color: var(--ds-basic-color-surface-neutral-subtle, #f7f7f7)}:host([selected]){--ds-auro-menuoption-container-color: var(--ds-advanced-color-state-selected, #01426a);--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-menuoption-icon-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([selected]):host(:hover),:host([selected]):host(.active){--ds-auro-menuoption-container-color: var(--ds-advanced-color-state-selected-hover, #00274a)}`;
|
|
9838
|
+
var colorCss$1 = i$5`:host .wrapper{border:1px solid var(--ds-auro-menuoption-container-border-color);background-color:var(--ds-auro-menuoption-container-color);color:var(--ds-auro-menuoption-text-color)}:host svg{fill:var(--ds-auro-menuoption-icon-color)}:host([disabled]){--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:hover),:host(.active){--ds-auro-menuoption-container-color: var(--ds-basic-color-surface-neutral-subtle, #f7f7f7)}:host([selected]){--ds-auro-menuoption-container-color: var(--ds-advanced-color-state-selected, #01426a);--ds-auro-menuoption-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-menuoption-icon-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([selected]):host(:hover),:host([selected]):host(.active){--ds-auro-menuoption-container-color: var(--ds-advanced-color-state-selected-hover, #00274a)}`;
|
|
8378
9839
|
|
|
8379
9840
|
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
8380
9841
|
// See LICENSE in the project root for license information.
|
|
@@ -8722,8 +10183,12 @@ class AuroIcon extends BaseIcon {
|
|
|
8722
10183
|
async firstUpdated() {
|
|
8723
10184
|
await super.firstUpdated();
|
|
8724
10185
|
|
|
8725
|
-
|
|
8726
|
-
|
|
10186
|
+
/**
|
|
10187
|
+
* icons provide a description for screen readers. Icon only instances Auro-button
|
|
10188
|
+
* depend on this description to provide context for the user using a screen reader.
|
|
10189
|
+
* Removes the SVG description for screen reader if ariaHidden is set to true.
|
|
10190
|
+
*/
|
|
10191
|
+
if (this.hasAttribute('ariaHidden') && this.svg) {
|
|
8727
10192
|
const svgDesc = this.svg.querySelector('desc');
|
|
8728
10193
|
|
|
8729
10194
|
if (svgDesc) {
|
|
@@ -8767,7 +10232,7 @@ class AuroIcon extends BaseIcon {
|
|
|
8767
10232
|
}
|
|
8768
10233
|
}
|
|
8769
10234
|
|
|
8770
|
-
var iconVersion = '8.0.
|
|
10235
|
+
var iconVersion = '8.0.4';
|
|
8771
10236
|
|
|
8772
10237
|
var checkmarkIcon = {"svg":"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-labelledby=\"checkmark-sm__desc\" class=\"ico_squareLarge\" role=\"img\" style=\"min-width:var(--auro-size-lg, var(--ds-size-300, 1.5rem));height:var(--auro-size-lg, var(--ds-size-300, 1.5rem));fill:currentColor\" viewBox=\"0 0 24 24\" part=\"svg\"><title/><desc id=\"checkmark-sm__desc\">a small check mark.</desc><path d=\"M8.461 11.84a.625.625 0 1 0-.922.844l2.504 2.738c.247.27.674.27.922 0l5.496-6a.625.625 0 1 0-.922-.844l-5.035 5.496z\"/></svg>"};
|
|
8773
10238
|
|
|
@@ -8785,10 +10250,13 @@ var checkmarkIcon = {"svg":"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlin
|
|
|
8785
10250
|
* @event auroMenuOption-mouseover - Notifies that this option has been hovered over.
|
|
8786
10251
|
* @slot - Specifies text for an option, but is not the value.
|
|
8787
10252
|
*/
|
|
8788
|
-
class AuroMenuOption extends
|
|
10253
|
+
class AuroMenuOption extends AuroElement$4 {
|
|
8789
10254
|
constructor() {
|
|
8790
10255
|
super();
|
|
8791
10256
|
|
|
10257
|
+
this.size = ""; // md, lg, xl
|
|
10258
|
+
this.shape = ""; // box, rounded, pill
|
|
10259
|
+
|
|
8792
10260
|
/**
|
|
8793
10261
|
* Generate unique names for dependency components.
|
|
8794
10262
|
*/
|
|
@@ -8807,11 +10275,12 @@ class AuroMenuOption extends i$2 {
|
|
|
8807
10275
|
/**
|
|
8808
10276
|
* @private
|
|
8809
10277
|
*/
|
|
8810
|
-
this.runtimeUtils = new AuroLibraryRuntimeUtils$
|
|
10278
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$6();
|
|
8811
10279
|
}
|
|
8812
10280
|
|
|
8813
10281
|
static get properties() {
|
|
8814
10282
|
return {
|
|
10283
|
+
...super.properties,
|
|
8815
10284
|
nocheckmark: {
|
|
8816
10285
|
type: Boolean,
|
|
8817
10286
|
reflect: true
|
|
@@ -8851,7 +10320,7 @@ class AuroMenuOption extends i$2 {
|
|
|
8851
10320
|
*
|
|
8852
10321
|
*/
|
|
8853
10322
|
static register(name = "auro-menuoption") {
|
|
8854
|
-
AuroLibraryRuntimeUtils$
|
|
10323
|
+
AuroLibraryRuntimeUtils$6.prototype.registerComponent(name, AuroMenuOption);
|
|
8855
10324
|
}
|
|
8856
10325
|
|
|
8857
10326
|
firstUpdated() {
|
|
@@ -8873,6 +10342,8 @@ class AuroMenuOption extends i$2 {
|
|
|
8873
10342
|
|
|
8874
10343
|
// observer for selected property changes
|
|
8875
10344
|
updated(changedProperties) {
|
|
10345
|
+
super.updated(changedProperties);
|
|
10346
|
+
|
|
8876
10347
|
if (changedProperties.has('selected')) {
|
|
8877
10348
|
this.setAttribute('aria-selected', this.selected.toString());
|
|
8878
10349
|
}
|
|
@@ -8894,10 +10365,19 @@ class AuroMenuOption extends i$2 {
|
|
|
8894
10365
|
return u`<${this.iconTag} customColor customSvg slot="icon">${svg}</${this.iconTag}>`;
|
|
8895
10366
|
}
|
|
8896
10367
|
|
|
8897
|
-
|
|
10368
|
+
/**
|
|
10369
|
+
* Logic to determine the layout of the component.
|
|
10370
|
+
* @protected
|
|
10371
|
+
* @returns {void}
|
|
10372
|
+
*/
|
|
10373
|
+
renderLayout() {
|
|
8898
10374
|
return u`
|
|
8899
|
-
|
|
8900
|
-
|
|
10375
|
+
<div class="wrapper">
|
|
10376
|
+
${this.selected && !this.nocheckmark
|
|
10377
|
+
? this.generateIconHtml(checkmarkIcon.svg)
|
|
10378
|
+
: undefined}
|
|
10379
|
+
<slot></slot>
|
|
10380
|
+
</div>
|
|
8901
10381
|
`;
|
|
8902
10382
|
}
|
|
8903
10383
|
}
|
|
@@ -8919,7 +10399,6 @@ function initExamples(initCount) {
|
|
|
8919
10399
|
inDialogExample();
|
|
8920
10400
|
resetStateExample();
|
|
8921
10401
|
auroMenuLoadingExample();
|
|
8922
|
-
valueTextExample();
|
|
8923
10402
|
} catch (err) {
|
|
8924
10403
|
if (initCount <= 20) {
|
|
8925
10404
|
// setTimeout handles issue where content is sometimes loaded after the functions get called
|