@aurodesignsystem-dev/auro-formkit 0.0.0-pr624.4 → 0.0.0-pr624.40
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 +13 -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 +1292 -79
- package/components/bibtemplate/dist/registered.js +1292 -79
- package/components/checkbox/README.md +1 -1
- package/components/checkbox/demo/api.md +47 -14
- package/components/checkbox/demo/api.min.js +44 -31
- package/components/checkbox/demo/index.md +2 -2
- package/components/checkbox/demo/index.min.js +44 -31
- 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 +44 -31
- package/components/checkbox/dist/registered.js +44 -31
- package/components/combobox/demo/api.md +100 -2
- package/components/combobox/demo/api.min.js +3202 -759
- package/components/combobox/demo/index.md +6 -30
- package/components/combobox/demo/index.min.js +3202 -759
- package/components/combobox/dist/auro-combobox.d.ts +37 -16
- package/components/combobox/dist/index.js +3091 -789
- package/components/combobox/dist/registered.js +3091 -789
- package/components/counter/demo/api.html +1 -0
- package/components/counter/demo/api.md +21 -19
- package/components/counter/demo/api.min.js +3324 -614
- package/components/counter/demo/index.html +1 -0
- package/components/counter/demo/index.md +103 -34
- package/components/counter/demo/index.min.js +3324 -614
- package/components/counter/dist/auro-counter-button.d.ts +2 -0
- package/components/counter/dist/auro-counter-group.d.ts +89 -6
- package/components/counter/dist/auro-counter.d.ts +6 -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 +3324 -614
- package/components/counter/dist/registered.js +3324 -614
- package/components/datepicker/demo/api.md +36 -19
- package/components/datepicker/demo/api.min.js +11976 -8000
- package/components/datepicker/demo/index.md +80 -0
- package/components/datepicker/demo/index.min.js +11976 -8000
- package/components/datepicker/dist/auro-datepicker.d.ts +71 -3
- package/components/datepicker/dist/buttonVersion.d.ts +1 -1
- package/components/datepicker/dist/iconVersion.d.ts +2 -0
- package/components/datepicker/dist/index.js +12238 -8262
- package/components/datepicker/dist/popoverVersion.d.ts +1 -1
- package/components/datepicker/dist/registered.js +12238 -8262
- package/components/dropdown/demo/api.md +8 -9
- package/components/dropdown/demo/api.min.js +551 -147
- package/components/dropdown/demo/index.md +57 -9
- package/components/dropdown/demo/index.min.js +551 -147
- package/components/dropdown/dist/auro-dropdown.d.ts +28 -9
- package/components/dropdown/dist/auro-dropdownBib.d.ts +22 -0
- package/components/dropdown/dist/index.js +551 -147
- package/components/dropdown/dist/registered.js +551 -147
- package/components/form/demo/api.min.js +1 -1
- package/components/form/demo/index.min.js +1 -1
- 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.md +271 -176
- package/components/input/demo/api.min.js +956 -270
- package/components/input/demo/index.md +48 -32
- package/components/input/demo/index.min.js +955 -269
- package/components/input/demo/readme.md +5 -2
- package/components/input/dist/auro-input.d.ts +23 -15
- package/components/input/dist/base-input.d.ts +32 -8
- package/components/input/dist/buttonVersion.d.ts +1 -1
- package/components/input/dist/iconVersion.d.ts +1 -1
- package/components/input/dist/index.js +955 -269
- package/components/input/dist/registered.js +955 -269
- package/components/layoutElement/dist/index.js +13 -10
- package/components/menu/demo/api.html +38 -0
- package/components/menu/demo/api.md +68 -7
- package/components/menu/demo/api.min.js +278 -42
- package/components/menu/demo/index.min.js +278 -42
- package/components/menu/dist/auro-menu.d.ts +28 -5
- 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 +278 -42
- package/components/menu/dist/registered.js +278 -42
- package/components/menu/dist/styles/default/color-menuoption-css.d.ts +2 -0
- package/components/menu/dist/styles/default/style-menu-css.d.ts +2 -0
- 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.md +7 -8
- package/components/radio/demo/api.min.js +68 -80
- package/components/radio/demo/index.min.js +68 -80
- 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 +68 -80
- package/components/radio/dist/registered.js +68 -80
- package/components/select/demo/api.md +123 -13
- package/components/select/demo/api.min.js +3045 -456
- package/components/select/demo/index.html +1 -0
- package/components/select/demo/index.md +323 -763
- package/components/select/demo/index.min.js +3045 -456
- package/components/select/dist/auro-select.d.ts +112 -11
- package/components/select/dist/helptextVersion.d.ts +2 -0
- package/components/select/dist/index.js +2925 -477
- package/components/select/dist/registered.js +2925 -477
- package/components/select/dist/styles/shapeSize-css.d.ts +2 -0
- package/components/select/dist/styles/tokens-css.d.ts +2 -0
- package/package.json +6 -4
- /package/components/{dropdown/dist/styles/default/bibColors-css.d.ts → counter/dist/styles/shapeSize-css.d.ts} +0 -0
- /package/components/{dropdown → datepicker}/dist/styles/default/color-css.d.ts +0 -0
- /package/components/{dropdown/dist/styles/default/bibStyles-css.d.ts → datepicker/dist/styles/shapeSize-css.d.ts} +0 -0
- /package/components/{dropdown/dist/styles/default/style-css.d.ts → datepicker/dist/styles/snowflake/color-css.d.ts} +0 -0
- /package/components/{dropdown/dist/styles → datepicker/dist/styles/snowflake}/style-css.d.ts +0 -0
- /package/components/{menu/dist/styles/color-menu-css.d.ts → dropdown/dist/styles/classic/bibColors-css.d.ts} +0 -0
- /package/components/{menu/dist/styles/color-menuoption-css.d.ts → dropdown/dist/styles/classic/bibStyles-css.d.ts} +0 -0
- /package/components/{menu/dist/styles/style-menu-css.d.ts → dropdown/dist/styles/classic/color-css.d.ts} +0 -0
- /package/components/{menu/dist/styles/style-menuoption-css.d.ts → dropdown/dist/styles/classic/style-css.d.ts} +0 -0
- /package/components/menu/dist/styles/{tokens-css.d.ts → default/color-menu-css.d.ts} +0 -0
|
@@ -136,6 +136,105 @@ const t={ATTRIBUTE:1},e$1=t=>(...e)=>({_$litDirective$:t,values:e});let i$1 = cl
|
|
|
136
136
|
*/
|
|
137
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);
|
|
138
138
|
|
|
139
|
+
let AuroElement$4 = class AuroElement extends i$2 {
|
|
140
|
+
static get properties() {
|
|
141
|
+
return {
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Defines the language of an element.
|
|
145
|
+
* @default {'default'}
|
|
146
|
+
*/
|
|
147
|
+
layout: {
|
|
148
|
+
type: String,
|
|
149
|
+
attribute: "layout",
|
|
150
|
+
reflect: true
|
|
151
|
+
},
|
|
152
|
+
|
|
153
|
+
shape: {
|
|
154
|
+
type: String,
|
|
155
|
+
attribute: "shape",
|
|
156
|
+
reflect: true
|
|
157
|
+
},
|
|
158
|
+
|
|
159
|
+
size: {
|
|
160
|
+
type: String,
|
|
161
|
+
attribute: "size",
|
|
162
|
+
reflect: true
|
|
163
|
+
},
|
|
164
|
+
|
|
165
|
+
onDark: {
|
|
166
|
+
type: Boolean,
|
|
167
|
+
attribute: "ondark",
|
|
168
|
+
reflect: true
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
resetShapeClasses() {
|
|
174
|
+
const wrapper = this.shadowRoot.querySelector('.wrapper');
|
|
175
|
+
|
|
176
|
+
if (wrapper) {
|
|
177
|
+
wrapper.classList.forEach((className) => {
|
|
178
|
+
if (className.startsWith('shape-')) {
|
|
179
|
+
wrapper.classList.remove(className);
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
|
|
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');
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
resetLayoutClasses() {
|
|
193
|
+
if (this.layout) {
|
|
194
|
+
const wrapper = this.shadowRoot.querySelector('.wrapper');
|
|
195
|
+
|
|
196
|
+
if (wrapper) {
|
|
197
|
+
wrapper.classList.forEach((className) => {
|
|
198
|
+
if (className.startsWith('layout-')) {
|
|
199
|
+
wrapper.classList.remove(className);
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
wrapper.classList.add(`layout-${this.layout.toLowerCase()}`);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
updateComponentArchitecture() {
|
|
209
|
+
this.resetLayoutClasses();
|
|
210
|
+
this.resetShapeClasses();
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
updated(changedProperties) {
|
|
214
|
+
if (changedProperties.has('layout') || changedProperties.has('shape') || changedProperties.has('size')) {
|
|
215
|
+
this.updateComponentArchitecture();
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// Try to render the defined `this.layout` layout. If that fails, fall back to the default layout.
|
|
220
|
+
// This will catch if an invalid layout value is passed in and render the default layout if so.
|
|
221
|
+
render() {
|
|
222
|
+
try {
|
|
223
|
+
return this.renderLayout();
|
|
224
|
+
} catch (error) {
|
|
225
|
+
// failed to get the defined layout
|
|
226
|
+
console.error('Failed to get the defined layout - using the default layout', error); // eslint-disable-line no-console
|
|
227
|
+
|
|
228
|
+
// fallback to the default layout
|
|
229
|
+
return this.getLayout('default');
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
};
|
|
233
|
+
|
|
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}`;
|
|
235
|
+
|
|
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}`;
|
|
237
|
+
|
|
139
238
|
class DateFormatter {
|
|
140
239
|
|
|
141
240
|
constructor() {
|
|
@@ -192,9 +291,10 @@ class DateFormatter {
|
|
|
192
291
|
/**
|
|
193
292
|
* Convert a date object to string format.
|
|
194
293
|
* @param {Object} date - Date to convert to string.
|
|
195
|
-
* @
|
|
294
|
+
* @param {String} locale - Optional locale to use for the date string. Defaults to user's locale.
|
|
295
|
+
* @returns {String} Returns the date as a string.
|
|
196
296
|
*/
|
|
197
|
-
this.getDateAsString = (date) => date.toLocaleDateString(
|
|
297
|
+
this.getDateAsString = (date, locale = undefined) => date.toLocaleDateString(locale, {
|
|
198
298
|
year: "numeric",
|
|
199
299
|
month: "2-digit",
|
|
200
300
|
day: "2-digit",
|
|
@@ -386,7 +486,7 @@ class AuroDateUtilities extends AuroDateUtilitiesBase {
|
|
|
386
486
|
const dateObj = new Date(this.getFourDigitYear(dateParts.year), dateParts.month - 1, dateParts.day || 1);
|
|
387
487
|
|
|
388
488
|
// Get the date string of the date object we created from the string date
|
|
389
|
-
const actualDateStr = dateFormatter.getDateAsString(dateObj);
|
|
489
|
+
const actualDateStr = dateFormatter.getDateAsString(dateObj, "en-US");
|
|
390
490
|
|
|
391
491
|
// Guard Clause: Generated date matches date string input
|
|
392
492
|
if (expectedDateStr !== actualDateStr) {
|
|
@@ -551,7 +651,7 @@ const {
|
|
|
551
651
|
|
|
552
652
|
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
553
653
|
|
|
554
|
-
let AuroLibraryRuntimeUtils$
|
|
654
|
+
let AuroLibraryRuntimeUtils$6 = class AuroLibraryRuntimeUtils {
|
|
555
655
|
|
|
556
656
|
/* eslint-disable jsdoc/require-param */
|
|
557
657
|
|
|
@@ -621,7 +721,7 @@ let AuroLibraryRuntimeUtils$3 = class AuroLibraryRuntimeUtils {
|
|
|
621
721
|
class AuroFormValidation {
|
|
622
722
|
|
|
623
723
|
constructor() {
|
|
624
|
-
this.runtimeUtils = new AuroLibraryRuntimeUtils$
|
|
724
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$6();
|
|
625
725
|
}
|
|
626
726
|
|
|
627
727
|
/**
|
|
@@ -900,7 +1000,9 @@ class AuroFormValidation {
|
|
|
900
1000
|
elem.validity = this.auroInputElements[0].validity;
|
|
901
1001
|
elem.errorMessage = this.auroInputElements[0].errorMessage;
|
|
902
1002
|
|
|
903
|
-
|
|
1003
|
+
// combobox has 2 inputs but no need to check validity on the 2nd one which is in fullscreen bib.
|
|
1004
|
+
// combobox's 2nd input will have noValidate set true.
|
|
1005
|
+
if (elem.validity === 'valid' && this.auroInputElements.length > 1 && !this.auroInputElements[1].noValidate) {
|
|
904
1006
|
elem.validity = this.auroInputElements[1].validity;
|
|
905
1007
|
elem.errorMessage = this.auroInputElements[1].errorMessage;
|
|
906
1008
|
}
|
|
@@ -1033,7 +1135,7 @@ let AuroDependencyVersioning$2 = class AuroDependencyVersioning {
|
|
|
1033
1135
|
|
|
1034
1136
|
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
1035
1137
|
|
|
1036
|
-
let AuroLibraryRuntimeUtils$1 = class AuroLibraryRuntimeUtils {
|
|
1138
|
+
let AuroLibraryRuntimeUtils$2$1 = class AuroLibraryRuntimeUtils {
|
|
1037
1139
|
|
|
1038
1140
|
/* eslint-disable jsdoc/require-param */
|
|
1039
1141
|
|
|
@@ -1616,10 +1718,11 @@ const flip$1 = function (options) {
|
|
|
1616
1718
|
const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
|
|
1617
1719
|
const nextPlacement = placements[nextIndex];
|
|
1618
1720
|
if (nextPlacement) {
|
|
1619
|
-
var _overflowsData$;
|
|
1620
1721
|
const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;
|
|
1621
|
-
|
|
1622
|
-
if
|
|
1722
|
+
if (!ignoreCrossAxisOverflow ||
|
|
1723
|
+
// We leave the current main axis only if every placement on that axis
|
|
1724
|
+
// overflows the main axis.
|
|
1725
|
+
overflowsData.every(d => d.overflows[0] > 0 && getSideAxis(d.placement) === initialSideAxis)) {
|
|
1623
1726
|
// Try next placement and re-run the lifecycle.
|
|
1624
1727
|
return {
|
|
1625
1728
|
data: {
|
|
@@ -2640,8 +2743,28 @@ class AuroFloatingUI {
|
|
|
2640
2743
|
if (!AuroFloatingUI.isMousePressHandlerInitialized && window && window.addEventListener) {
|
|
2641
2744
|
AuroFloatingUI.isMousePressHandlerInitialized = true;
|
|
2642
2745
|
|
|
2746
|
+
// Track timeout for isMousePressed reset to avoid race conditions
|
|
2747
|
+
if (!AuroFloatingUI._mousePressedTimeout) {
|
|
2748
|
+
AuroFloatingUI._mousePressedTimeout = null;
|
|
2749
|
+
}
|
|
2643
2750
|
const mouseEventGlobalHandler = (event) => {
|
|
2644
|
-
|
|
2751
|
+
const isPressed = event.type === 'mousedown';
|
|
2752
|
+
if (isPressed) {
|
|
2753
|
+
// Clear any pending timeout to prevent race condition
|
|
2754
|
+
if (AuroFloatingUI._mousePressedTimeout !== null) {
|
|
2755
|
+
clearTimeout(AuroFloatingUI._mousePressedTimeout);
|
|
2756
|
+
AuroFloatingUI._mousePressedTimeout = null;
|
|
2757
|
+
}
|
|
2758
|
+
if (!AuroFloatingUI.isMousePressed) {
|
|
2759
|
+
AuroFloatingUI.isMousePressed = true;
|
|
2760
|
+
}
|
|
2761
|
+
} else if (AuroFloatingUI.isMousePressed && !isPressed) {
|
|
2762
|
+
// Schedule reset and track timeout ID
|
|
2763
|
+
AuroFloatingUI._mousePressedTimeout = setTimeout(() => {
|
|
2764
|
+
AuroFloatingUI.isMousePressed = false;
|
|
2765
|
+
AuroFloatingUI._mousePressedTimeout = null;
|
|
2766
|
+
}, 0);
|
|
2767
|
+
}
|
|
2645
2768
|
};
|
|
2646
2769
|
|
|
2647
2770
|
window.addEventListener('mousedown', mouseEventGlobalHandler);
|
|
@@ -2768,6 +2891,7 @@ class AuroFloatingUI {
|
|
|
2768
2891
|
|
|
2769
2892
|
// Compute the position of the bib
|
|
2770
2893
|
computePosition(this.element.trigger, this.element.bib, {
|
|
2894
|
+
strategy: this.element.floaterConfig?.strategy || 'fixed',
|
|
2771
2895
|
placement: this.element.floaterConfig?.placement,
|
|
2772
2896
|
middleware: middleware || []
|
|
2773
2897
|
}).then(({ x, y }) => { // eslint-disable-line id-length
|
|
@@ -2902,8 +3026,9 @@ class AuroFloatingUI {
|
|
|
2902
3026
|
if (this.element.contains(activeElement) || this.element.bib?.contains(activeElement)) {
|
|
2903
3027
|
return;
|
|
2904
3028
|
}
|
|
2905
|
-
|
|
2906
|
-
if
|
|
3029
|
+
|
|
3030
|
+
// if fullscreen bib is in fullscreen mode, do not close
|
|
3031
|
+
if (this.element.bib.hasAttribute('isfullscreen')) {
|
|
2907
3032
|
return;
|
|
2908
3033
|
}
|
|
2909
3034
|
|
|
@@ -3085,10 +3210,11 @@ class AuroFloatingUI {
|
|
|
3085
3210
|
// Space is included as it's expected behavior for interactive elements
|
|
3086
3211
|
|
|
3087
3212
|
const origin = event.composedPath()[0];
|
|
3088
|
-
if (event.key === 'Enter' || (
|
|
3089
|
-
|
|
3213
|
+
if (event.key === 'Enter' || event.key === ' ' && (!origin || origin.tagName !== "INPUT")) {
|
|
3214
|
+
|
|
3215
|
+
event.preventDefault();
|
|
3090
3216
|
this.handleClick();
|
|
3091
|
-
}
|
|
3217
|
+
}
|
|
3092
3218
|
break;
|
|
3093
3219
|
case 'mouseenter':
|
|
3094
3220
|
if (this.element.hoverToggle) {
|
|
@@ -3204,8 +3330,6 @@ class AuroFloatingUI {
|
|
|
3204
3330
|
this.element.hoverToggle = this.element.floaterConfig.hoverToggle;
|
|
3205
3331
|
}
|
|
3206
3332
|
|
|
3207
|
-
document.body.append(this.element.bib);
|
|
3208
|
-
|
|
3209
3333
|
this.regenerateBibId();
|
|
3210
3334
|
this.handleTriggerTabIndex();
|
|
3211
3335
|
|
|
@@ -3242,6 +3366,267 @@ class AuroFloatingUI {
|
|
|
3242
3366
|
}
|
|
3243
3367
|
}
|
|
3244
3368
|
|
|
3369
|
+
// Selectors for focusable elements
|
|
3370
|
+
const FOCUSABLE_SELECTORS = [
|
|
3371
|
+
'a[href]',
|
|
3372
|
+
'button:not([disabled])',
|
|
3373
|
+
'textarea:not([disabled])',
|
|
3374
|
+
'input:not([disabled])',
|
|
3375
|
+
'select:not([disabled])',
|
|
3376
|
+
'[role="tab"]:not([disabled])',
|
|
3377
|
+
'[role="link"]:not([disabled])',
|
|
3378
|
+
'[role="button"]:not([disabled])',
|
|
3379
|
+
'[tabindex]:not([tabindex="-1"])',
|
|
3380
|
+
'[contenteditable]:not([contenteditable="false"])'
|
|
3381
|
+
];
|
|
3382
|
+
|
|
3383
|
+
// List of custom components that are known to be focusable
|
|
3384
|
+
const FOCUSABLE_COMPONENTS = [
|
|
3385
|
+
'auro-checkbox',
|
|
3386
|
+
'auro-radio',
|
|
3387
|
+
'auro-dropdown',
|
|
3388
|
+
'auro-button',
|
|
3389
|
+
'auro-combobox',
|
|
3390
|
+
'auro-input',
|
|
3391
|
+
'auro-counter',
|
|
3392
|
+
'auro-menu',
|
|
3393
|
+
'auro-select',
|
|
3394
|
+
'auro-datepicker',
|
|
3395
|
+
'auro-hyperlink',
|
|
3396
|
+
'auro-accordion',
|
|
3397
|
+
];
|
|
3398
|
+
|
|
3399
|
+
/**
|
|
3400
|
+
* Determines if a given element is a custom focusable component.
|
|
3401
|
+
* Returns true if the element matches a known focusable component and is not disabled.
|
|
3402
|
+
*
|
|
3403
|
+
* @param {HTMLElement} element The element to check for focusability.
|
|
3404
|
+
* @returns {boolean} True if the element is a focusable custom component, false otherwise.
|
|
3405
|
+
*/
|
|
3406
|
+
function isFocusableComponent(element) {
|
|
3407
|
+
const componentName = element.tagName.toLowerCase();
|
|
3408
|
+
|
|
3409
|
+
// Guard Clause: Element is a focusable component
|
|
3410
|
+
if (!FOCUSABLE_COMPONENTS.some((name) => element.hasAttribute(name) || componentName === name)) return false;
|
|
3411
|
+
|
|
3412
|
+
// Guard Clause: Element is not disabled
|
|
3413
|
+
if (element.hasAttribute('disabled')) return false;
|
|
3414
|
+
|
|
3415
|
+
// Guard Clause: The element is a hyperlink and has no href attribute
|
|
3416
|
+
if (componentName.match("hyperlink") && !element.hasAttribute('href')) return false;
|
|
3417
|
+
|
|
3418
|
+
// If all guard clauses pass, the element is a focusable component
|
|
3419
|
+
return true;
|
|
3420
|
+
}
|
|
3421
|
+
|
|
3422
|
+
/**
|
|
3423
|
+
* Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
|
|
3424
|
+
* Returns a unique, ordered array of elements that can receive focus.
|
|
3425
|
+
*
|
|
3426
|
+
* @param {HTMLElement} container The container to search within
|
|
3427
|
+
* @returns {Array<HTMLElement>} An array of focusable elements within the container.
|
|
3428
|
+
*/
|
|
3429
|
+
function getFocusableElements(container) {
|
|
3430
|
+
// Get elements in DOM order by walking the tree
|
|
3431
|
+
const orderedFocusableElements = [];
|
|
3432
|
+
|
|
3433
|
+
// Define a recursive function to collect focusable elements in DOM order
|
|
3434
|
+
const collectFocusableElements = (root) => {
|
|
3435
|
+
// Check if current element is focusable
|
|
3436
|
+
if (root.nodeType === Node.ELEMENT_NODE) {
|
|
3437
|
+
// Check if this is a custom component that is focusable
|
|
3438
|
+
const isComponentFocusable = isFocusableComponent(root);
|
|
3439
|
+
|
|
3440
|
+
if (isComponentFocusable) {
|
|
3441
|
+
// Add the component itself as a focusable element and don't traverse its shadow DOM
|
|
3442
|
+
orderedFocusableElements.push(root);
|
|
3443
|
+
return; // Skip traversing inside this component
|
|
3444
|
+
}
|
|
3445
|
+
|
|
3446
|
+
// Check if the element itself matches any selector
|
|
3447
|
+
for (const selector of FOCUSABLE_SELECTORS) {
|
|
3448
|
+
if (root.matches?.(selector)) {
|
|
3449
|
+
orderedFocusableElements.push(root);
|
|
3450
|
+
break; // Once we know it's focusable, no need to check other selectors
|
|
3451
|
+
}
|
|
3452
|
+
}
|
|
3453
|
+
|
|
3454
|
+
// Process shadow DOM only for non-Auro components
|
|
3455
|
+
if (root.shadowRoot) {
|
|
3456
|
+
// Process shadow DOM children in order
|
|
3457
|
+
if (root.shadowRoot.children) {
|
|
3458
|
+
Array.from(root.shadowRoot.children).forEach(child => {
|
|
3459
|
+
collectFocusableElements(child);
|
|
3460
|
+
});
|
|
3461
|
+
}
|
|
3462
|
+
}
|
|
3463
|
+
|
|
3464
|
+
// Process slots and their assigned nodes in order
|
|
3465
|
+
if (root.tagName === 'SLOT') {
|
|
3466
|
+
const assignedNodes = root.assignedNodes({ flatten: true });
|
|
3467
|
+
for (const node of assignedNodes) {
|
|
3468
|
+
collectFocusableElements(node);
|
|
3469
|
+
}
|
|
3470
|
+
} else {
|
|
3471
|
+
// Process light DOM children in order
|
|
3472
|
+
if (root.children) {
|
|
3473
|
+
Array.from(root.children).forEach(child => {
|
|
3474
|
+
collectFocusableElements(child);
|
|
3475
|
+
});
|
|
3476
|
+
}
|
|
3477
|
+
}
|
|
3478
|
+
}
|
|
3479
|
+
};
|
|
3480
|
+
|
|
3481
|
+
// Start the traversal from the container
|
|
3482
|
+
collectFocusableElements(container);
|
|
3483
|
+
|
|
3484
|
+
// Remove duplicates that might have been collected through different paths
|
|
3485
|
+
// while preserving order
|
|
3486
|
+
const uniqueElements = [];
|
|
3487
|
+
const seen = new Set();
|
|
3488
|
+
|
|
3489
|
+
for (const element of orderedFocusableElements) {
|
|
3490
|
+
if (!seen.has(element)) {
|
|
3491
|
+
seen.add(element);
|
|
3492
|
+
uniqueElements.push(element);
|
|
3493
|
+
}
|
|
3494
|
+
}
|
|
3495
|
+
|
|
3496
|
+
return uniqueElements;
|
|
3497
|
+
}
|
|
3498
|
+
|
|
3499
|
+
/**
|
|
3500
|
+
* FocusTrap manages keyboard focus within a specified container element, ensuring that focus does not leave the container when tabbing.
|
|
3501
|
+
* It is commonly used for modal dialogs or overlays to improve accessibility by trapping focus within interactive UI components.
|
|
3502
|
+
*/
|
|
3503
|
+
class FocusTrap {
|
|
3504
|
+
/**
|
|
3505
|
+
* Creates a new FocusTrap instance for the given container element.
|
|
3506
|
+
* Initializes event listeners and prepares the container for focus management.
|
|
3507
|
+
*
|
|
3508
|
+
* @param {HTMLElement} container The DOM element to trap focus within.
|
|
3509
|
+
* @throws {Error} If the provided container is not a valid HTMLElement.
|
|
3510
|
+
*/
|
|
3511
|
+
constructor(container) {
|
|
3512
|
+
if (!container || !(container instanceof HTMLElement)) {
|
|
3513
|
+
throw new Error("FocusTrap requires a valid HTMLElement.");
|
|
3514
|
+
}
|
|
3515
|
+
|
|
3516
|
+
this.container = container;
|
|
3517
|
+
this.tabDirection = 'forward'; // or 'backward'
|
|
3518
|
+
|
|
3519
|
+
this._init();
|
|
3520
|
+
}
|
|
3521
|
+
|
|
3522
|
+
/**
|
|
3523
|
+
* Initializes the focus trap by setting up event listeners and attributes on the container.
|
|
3524
|
+
* Prepares the container for focus management, including support for shadow DOM and inert attributes.
|
|
3525
|
+
*
|
|
3526
|
+
* @private
|
|
3527
|
+
*/
|
|
3528
|
+
_init() {
|
|
3529
|
+
|
|
3530
|
+
// Add inert attribute to prevent focusing programmatically as well (if supported)
|
|
3531
|
+
if ('inert' in HTMLElement.prototype) {
|
|
3532
|
+
this.container.inert = false; // Ensure the container isn't inert
|
|
3533
|
+
this.container.setAttribute('data-focus-trap-container', true); // Mark for identification
|
|
3534
|
+
}
|
|
3535
|
+
|
|
3536
|
+
// Track tab direction
|
|
3537
|
+
this.container.addEventListener('keydown', this._onKeydown);
|
|
3538
|
+
}
|
|
3539
|
+
|
|
3540
|
+
/**
|
|
3541
|
+
* Handles keydown events to manage tab navigation within the container.
|
|
3542
|
+
* Ensures that focus wraps around when reaching the first or last focusable element.
|
|
3543
|
+
*
|
|
3544
|
+
* @param {KeyboardEvent} e The keyboard event triggered by user interaction.
|
|
3545
|
+
* @private
|
|
3546
|
+
*/
|
|
3547
|
+
_onKeydown = (e) => {
|
|
3548
|
+
|
|
3549
|
+
if (e.key === 'Tab') {
|
|
3550
|
+
|
|
3551
|
+
// Set the tab direction based on the key pressed
|
|
3552
|
+
this.tabDirection = e.shiftKey ? 'backward' : 'forward';
|
|
3553
|
+
|
|
3554
|
+
// Get the active element(s) in the document and shadow root
|
|
3555
|
+
// This will include the active element in the shadow DOM if it exists
|
|
3556
|
+
// Active element may be inside the shadow DOM depending on delegatesFocus, so we need to check both
|
|
3557
|
+
let activeElement = document.activeElement;
|
|
3558
|
+
const actives = [activeElement];
|
|
3559
|
+
while (activeElement?.shadowRoot?.activeElement) {
|
|
3560
|
+
actives.push(activeElement.shadowRoot.activeElement);
|
|
3561
|
+
activeElement = activeElement.shadowRoot.activeElement;
|
|
3562
|
+
}
|
|
3563
|
+
|
|
3564
|
+
// Update the focusable elements
|
|
3565
|
+
const focusables = this._getFocusableElements();
|
|
3566
|
+
|
|
3567
|
+
// If we're at either end of the focusable elements, wrap around to the other end
|
|
3568
|
+
const focusIndex =
|
|
3569
|
+
(actives.includes(focusables[0]) || actives.includes(this.container)) && this.tabDirection === 'backward'
|
|
3570
|
+
? focusables.length - 1
|
|
3571
|
+
: actives.includes(focusables[focusables.length - 1]) && this.tabDirection === 'forward'
|
|
3572
|
+
? 0
|
|
3573
|
+
: null;
|
|
3574
|
+
|
|
3575
|
+
if (focusIndex !== null) {
|
|
3576
|
+
focusables[focusIndex].focus();
|
|
3577
|
+
e.preventDefault(); // Prevent default tab behavior
|
|
3578
|
+
e.stopPropagation(); // Stop the event from bubbling up
|
|
3579
|
+
}
|
|
3580
|
+
}
|
|
3581
|
+
};
|
|
3582
|
+
|
|
3583
|
+
/**
|
|
3584
|
+
* Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
|
|
3585
|
+
* Returns a unique, ordered array of elements that can receive focus.
|
|
3586
|
+
*
|
|
3587
|
+
* @returns {Array<HTMLElement>} An array of focusable elements within the container.
|
|
3588
|
+
* @private
|
|
3589
|
+
*/
|
|
3590
|
+
_getFocusableElements() {
|
|
3591
|
+
// Use the imported utility function to get focusable elements
|
|
3592
|
+
const elements = getFocusableElements(this.container);
|
|
3593
|
+
|
|
3594
|
+
// Filter out any elements with the 'focus-bookend' class
|
|
3595
|
+
return elements;
|
|
3596
|
+
}
|
|
3597
|
+
|
|
3598
|
+
/**
|
|
3599
|
+
* Moves focus to the first focusable element within the container.
|
|
3600
|
+
* Useful for setting initial focus when activating the focus trap.
|
|
3601
|
+
*/
|
|
3602
|
+
focusFirstElement() {
|
|
3603
|
+
const focusables = this._getFocusableElements();
|
|
3604
|
+
if (focusables.length) focusables[0].focus();
|
|
3605
|
+
}
|
|
3606
|
+
|
|
3607
|
+
/**
|
|
3608
|
+
* Moves focus to the last focusable element within the container.
|
|
3609
|
+
* Useful for setting focus when deactivating or cycling focus in reverse.
|
|
3610
|
+
*/
|
|
3611
|
+
focusLastElement() {
|
|
3612
|
+
const focusables = this._getFocusableElements();
|
|
3613
|
+
if (focusables.length) focusables[focusables.length - 1].focus();
|
|
3614
|
+
}
|
|
3615
|
+
|
|
3616
|
+
/**
|
|
3617
|
+
* Removes event listeners and attributes added by the focus trap.
|
|
3618
|
+
* Call this method to clean up when the focus trap is no longer needed.
|
|
3619
|
+
*/
|
|
3620
|
+
disconnect() {
|
|
3621
|
+
|
|
3622
|
+
if (this.container.hasAttribute('data-focus-trap-container')) {
|
|
3623
|
+
this.container.removeAttribute('data-focus-trap-container');
|
|
3624
|
+
}
|
|
3625
|
+
|
|
3626
|
+
this.container.removeEventListener('keydown', this._onKeydown);
|
|
3627
|
+
}
|
|
3628
|
+
}
|
|
3629
|
+
|
|
3245
3630
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
3246
3631
|
// See LICENSE in the project root for license information.
|
|
3247
3632
|
|
|
@@ -3432,50 +3817,120 @@ let BaseIcon$2 = class BaseIcon extends AuroElement$1$1 {
|
|
|
3432
3817
|
}
|
|
3433
3818
|
};
|
|
3434
3819
|
|
|
3435
|
-
var tokensCss$2$
|
|
3820
|
+
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)}`;
|
|
3436
3821
|
|
|
3437
|
-
var colorCss$3$
|
|
3822
|
+
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)}`;
|
|
3438
3823
|
|
|
3439
|
-
// Copyright (c)
|
|
3824
|
+
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
3440
3825
|
// See LICENSE in the project root for license information.
|
|
3441
3826
|
|
|
3827
|
+
// ---------------------------------------------------------------------
|
|
3442
3828
|
|
|
3443
|
-
|
|
3444
|
-
constructor() {
|
|
3445
|
-
super();
|
|
3829
|
+
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
3446
3830
|
|
|
3447
|
-
|
|
3448
|
-
|
|
3831
|
+
let AuroLibraryRuntimeUtils$1$2 = class AuroLibraryRuntimeUtils {
|
|
3832
|
+
|
|
3833
|
+
/* eslint-disable jsdoc/require-param */
|
|
3834
|
+
|
|
3835
|
+
/**
|
|
3836
|
+
* This will register a new custom element with the browser.
|
|
3837
|
+
* @param {String} name - The name of the custom element.
|
|
3838
|
+
* @param {Object} componentClass - The class to register as a custom element.
|
|
3839
|
+
* @returns {void}
|
|
3840
|
+
*/
|
|
3841
|
+
registerComponent(name, componentClass) {
|
|
3842
|
+
if (!customElements.get(name)) {
|
|
3843
|
+
customElements.define(name, class extends componentClass {});
|
|
3844
|
+
}
|
|
3449
3845
|
}
|
|
3450
3846
|
|
|
3451
3847
|
/**
|
|
3452
|
-
*
|
|
3453
|
-
* @private
|
|
3848
|
+
* Finds and returns the closest HTML Element based on a selector.
|
|
3454
3849
|
* @returns {void}
|
|
3455
3850
|
*/
|
|
3456
|
-
|
|
3457
|
-
|
|
3458
|
-
|
|
3851
|
+
closestElement(
|
|
3852
|
+
selector, // selector like in .closest()
|
|
3853
|
+
base = this, // extra functionality to skip a parent
|
|
3854
|
+
__Closest = (el, found = el && el.closest(selector)) =>
|
|
3855
|
+
!el || el === document || el === window
|
|
3856
|
+
? null // standard .closest() returns null for non-found selectors also
|
|
3857
|
+
: found
|
|
3858
|
+
? found // found a selector INside this element
|
|
3859
|
+
: __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
|
|
3860
|
+
) {
|
|
3861
|
+
return __Closest(base);
|
|
3459
3862
|
}
|
|
3863
|
+
/* eslint-enable jsdoc/require-param */
|
|
3460
3864
|
|
|
3461
|
-
|
|
3462
|
-
|
|
3463
|
-
|
|
3464
|
-
|
|
3865
|
+
/**
|
|
3866
|
+
* 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.
|
|
3867
|
+
* @param {Object} elem - The element to check.
|
|
3868
|
+
* @param {String} tagName - The name of the Auro component to check for or add as an attribute.
|
|
3869
|
+
* @returns {void}
|
|
3870
|
+
*/
|
|
3871
|
+
handleComponentTagRename(elem, tagName) {
|
|
3872
|
+
const tag = tagName.toLowerCase();
|
|
3873
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
3465
3874
|
|
|
3466
|
-
|
|
3467
|
-
|
|
3468
|
-
|
|
3469
|
-
|
|
3470
|
-
type: String,
|
|
3471
|
-
reflect: true
|
|
3472
|
-
},
|
|
3875
|
+
if (elemTag !== tag) {
|
|
3876
|
+
elem.setAttribute(tag, true);
|
|
3877
|
+
}
|
|
3878
|
+
}
|
|
3473
3879
|
|
|
3474
|
-
|
|
3475
|
-
|
|
3476
|
-
|
|
3477
|
-
|
|
3478
|
-
|
|
3880
|
+
/**
|
|
3881
|
+
* Validates if an element is a specific Auro component.
|
|
3882
|
+
* @param {Object} elem - The element to validate.
|
|
3883
|
+
* @param {String} tagName - The name of the Auro component to check against.
|
|
3884
|
+
* @returns {Boolean} - Returns true if the element is the specified Auro component.
|
|
3885
|
+
*/
|
|
3886
|
+
elementMatch(elem, tagName) {
|
|
3887
|
+
const tag = tagName.toLowerCase();
|
|
3888
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
3889
|
+
|
|
3890
|
+
return elemTag === tag || elem.hasAttribute(tag);
|
|
3891
|
+
}
|
|
3892
|
+
};
|
|
3893
|
+
|
|
3894
|
+
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
3895
|
+
// See LICENSE in the project root for license information.
|
|
3896
|
+
|
|
3897
|
+
|
|
3898
|
+
let AuroIcon$2 = class AuroIcon extends BaseIcon$2 {
|
|
3899
|
+
constructor() {
|
|
3900
|
+
super();
|
|
3901
|
+
|
|
3902
|
+
this.variant = undefined;
|
|
3903
|
+
this.privateDefaults();
|
|
3904
|
+
}
|
|
3905
|
+
|
|
3906
|
+
/**
|
|
3907
|
+
* Internal Defaults.
|
|
3908
|
+
* @private
|
|
3909
|
+
* @returns {void}
|
|
3910
|
+
*/
|
|
3911
|
+
privateDefaults() {
|
|
3912
|
+
this.uri = 'https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist';
|
|
3913
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$1$2();
|
|
3914
|
+
}
|
|
3915
|
+
|
|
3916
|
+
// function to define props used within the scope of this component
|
|
3917
|
+
static get properties() {
|
|
3918
|
+
return {
|
|
3919
|
+
...super.properties,
|
|
3920
|
+
|
|
3921
|
+
/**
|
|
3922
|
+
* Set aria-hidden value. Default is `true`. Option is `false`.
|
|
3923
|
+
*/
|
|
3924
|
+
ariaHidden: {
|
|
3925
|
+
type: String,
|
|
3926
|
+
reflect: true
|
|
3927
|
+
},
|
|
3928
|
+
|
|
3929
|
+
/**
|
|
3930
|
+
* The category of the icon you are looking for. See https://auro.alaskaair.com/icons/usage.
|
|
3931
|
+
*/
|
|
3932
|
+
category: {
|
|
3933
|
+
type: String,
|
|
3479
3934
|
reflect: true
|
|
3480
3935
|
},
|
|
3481
3936
|
|
|
@@ -3522,9 +3977,9 @@ let AuroIcon$2 = class AuroIcon extends BaseIcon$2 {
|
|
|
3522
3977
|
static get styles() {
|
|
3523
3978
|
return [
|
|
3524
3979
|
super.styles,
|
|
3525
|
-
i$5`${tokensCss$2$
|
|
3980
|
+
i$5`${tokensCss$2$2}`,
|
|
3526
3981
|
i$5`${styleCss$2$2}`,
|
|
3527
|
-
i$5`${colorCss$3$
|
|
3982
|
+
i$5`${colorCss$3$2}`
|
|
3528
3983
|
];
|
|
3529
3984
|
}
|
|
3530
3985
|
|
|
@@ -3537,7 +3992,7 @@ let AuroIcon$2 = class AuroIcon extends BaseIcon$2 {
|
|
|
3537
3992
|
*
|
|
3538
3993
|
*/
|
|
3539
3994
|
static register(name = "auro-icon") {
|
|
3540
|
-
AuroLibraryRuntimeUtils$1.prototype.registerComponent(name, AuroIcon);
|
|
3995
|
+
AuroLibraryRuntimeUtils$1$2.prototype.registerComponent(name, AuroIcon);
|
|
3541
3996
|
}
|
|
3542
3997
|
|
|
3543
3998
|
connectedCallback() {
|
|
@@ -3558,8 +4013,12 @@ let AuroIcon$2 = class AuroIcon extends BaseIcon$2 {
|
|
|
3558
4013
|
async firstUpdated() {
|
|
3559
4014
|
await super.firstUpdated();
|
|
3560
4015
|
|
|
3561
|
-
|
|
3562
|
-
|
|
4016
|
+
/**
|
|
4017
|
+
* icons provide a description for screen readers. Icon only instances Auro-button
|
|
4018
|
+
* depend on this description to provide context for the user using a screen reader.
|
|
4019
|
+
* Removes the SVG description for screen reader if ariaHidden is set to true.
|
|
4020
|
+
*/
|
|
4021
|
+
if (this.hasAttribute('ariaHidden') && this.svg) {
|
|
3563
4022
|
const svgDesc = this.svg.querySelector('desc');
|
|
3564
4023
|
|
|
3565
4024
|
if (svgDesc) {
|
|
@@ -3605,17 +4064,16 @@ let AuroIcon$2 = class AuroIcon extends BaseIcon$2 {
|
|
|
3605
4064
|
|
|
3606
4065
|
var iconVersion$2 = '6.1.2';
|
|
3607
4066
|
|
|
3608
|
-
var styleCss$1$2 = i$5`:host{position:
|
|
4067
|
+
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}`;
|
|
3609
4068
|
|
|
3610
|
-
var colorCss$2$
|
|
4069
|
+
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)}`;
|
|
3611
4070
|
|
|
3612
|
-
var tokensCss$1$
|
|
4071
|
+
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)}`;
|
|
3613
4072
|
|
|
3614
4073
|
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
3615
4074
|
// See LICENSE in the project root for license information.
|
|
3616
4075
|
|
|
3617
4076
|
|
|
3618
|
-
|
|
3619
4077
|
const DESIGN_TOKEN_BREAKPOINT_PREFIX = '--ds-grid-breakpoint-';
|
|
3620
4078
|
const DESIGN_TOKEN_BREAKPOINT_OPTIONS = [
|
|
3621
4079
|
'xl',
|
|
@@ -3631,7 +4089,7 @@ const DESIGN_TOKEN_BREAKPOINT_OPTIONS = [
|
|
|
3631
4089
|
*/
|
|
3632
4090
|
|
|
3633
4091
|
class AuroDropdownBib extends i$2 {
|
|
3634
|
-
|
|
4092
|
+
// not extending AuroElement because Bib needs only `shape` prop
|
|
3635
4093
|
constructor() {
|
|
3636
4094
|
super();
|
|
3637
4095
|
|
|
@@ -3640,14 +4098,17 @@ class AuroDropdownBib extends i$2 {
|
|
|
3640
4098
|
*/
|
|
3641
4099
|
this._mobileBreakpointValue = undefined;
|
|
3642
4100
|
|
|
3643
|
-
AuroLibraryRuntimeUtils$1.prototype.handleComponentTagRename(this, 'auro-dropdownbib');
|
|
4101
|
+
AuroLibraryRuntimeUtils$2$1.prototype.handleComponentTagRename(this, 'auro-dropdownbib');
|
|
4102
|
+
|
|
4103
|
+
this.shape = "rounded";
|
|
4104
|
+
this.matchWidth = false;
|
|
3644
4105
|
}
|
|
3645
4106
|
|
|
3646
4107
|
static get styles() {
|
|
3647
4108
|
return [
|
|
3648
4109
|
styleCss$1$2,
|
|
3649
|
-
colorCss$2$
|
|
3650
|
-
tokensCss$1$
|
|
4110
|
+
colorCss$2$2,
|
|
4111
|
+
tokensCss$1$2
|
|
3651
4112
|
];
|
|
3652
4113
|
}
|
|
3653
4114
|
|
|
@@ -3678,6 +4139,15 @@ class AuroDropdownBib extends i$2 {
|
|
|
3678
4139
|
reflect: true
|
|
3679
4140
|
},
|
|
3680
4141
|
|
|
4142
|
+
/**
|
|
4143
|
+
* If declared, the bib width will match the trigger width.
|
|
4144
|
+
* @private
|
|
4145
|
+
*/
|
|
4146
|
+
matchWidth: {
|
|
4147
|
+
type: Boolean,
|
|
4148
|
+
reflect: true
|
|
4149
|
+
},
|
|
4150
|
+
|
|
3681
4151
|
/**
|
|
3682
4152
|
* If declared, will apply border-radius to the bib.
|
|
3683
4153
|
*/
|
|
@@ -3685,6 +4155,18 @@ class AuroDropdownBib extends i$2 {
|
|
|
3685
4155
|
type: Boolean,
|
|
3686
4156
|
reflect: true
|
|
3687
4157
|
},
|
|
4158
|
+
|
|
4159
|
+
/**
|
|
4160
|
+
* A reference to the associated bib template element.
|
|
4161
|
+
*/
|
|
4162
|
+
bibTemplate: {
|
|
4163
|
+
type: Object
|
|
4164
|
+
},
|
|
4165
|
+
|
|
4166
|
+
shape: {
|
|
4167
|
+
type: String,
|
|
4168
|
+
reflect: true
|
|
4169
|
+
}
|
|
3688
4170
|
};
|
|
3689
4171
|
}
|
|
3690
4172
|
|
|
@@ -3717,13 +4199,62 @@ class AuroDropdownBib extends i$2 {
|
|
|
3717
4199
|
}
|
|
3718
4200
|
}
|
|
3719
4201
|
});
|
|
4202
|
+
|
|
4203
|
+
if (this.bibTemplate) {
|
|
4204
|
+
// If the bib template is found, set the fullscreen attribute
|
|
4205
|
+
if (this.isFullscreen) {
|
|
4206
|
+
this.bibTemplate.setAttribute('isFullscreen', 'true');
|
|
4207
|
+
} else {
|
|
4208
|
+
this.bibTemplate.removeAttribute('isFullscreen');
|
|
4209
|
+
}
|
|
4210
|
+
}
|
|
3720
4211
|
}
|
|
3721
4212
|
}
|
|
3722
4213
|
|
|
4214
|
+
connectedCallback() {
|
|
4215
|
+
super.connectedCallback();
|
|
4216
|
+
|
|
4217
|
+
// Listen for the auro-bibtemplate-connected event to set the fullscreen attribute
|
|
4218
|
+
this.addEventListener('auro-bibtemplate-connected', (event) => {
|
|
4219
|
+
const bibTemplate = event.detail.element;
|
|
4220
|
+
this.bibTemplate = bibTemplate;
|
|
4221
|
+
|
|
4222
|
+
if (bibTemplate) {
|
|
4223
|
+
// If the bib template is found, set the fullscreen attribute
|
|
4224
|
+
if (this.isFullscreen) {
|
|
4225
|
+
bibTemplate.setAttribute('isFullscreen', 'true');
|
|
4226
|
+
} else {
|
|
4227
|
+
bibTemplate.removeAttribute('isFullscreen');
|
|
4228
|
+
}
|
|
4229
|
+
}
|
|
4230
|
+
});
|
|
4231
|
+
}
|
|
4232
|
+
|
|
4233
|
+
firstUpdated(changedProperties) {
|
|
4234
|
+
super.firstUpdated(changedProperties);
|
|
4235
|
+
|
|
4236
|
+
// Dispatch a custom event when the component is connected
|
|
4237
|
+
this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
|
|
4238
|
+
bubbles: true,
|
|
4239
|
+
composed: true,
|
|
4240
|
+
detail: {
|
|
4241
|
+
element: this
|
|
4242
|
+
}
|
|
4243
|
+
}));
|
|
4244
|
+
}
|
|
4245
|
+
|
|
3723
4246
|
// function that renders the HTML and CSS into the scope of the component
|
|
3724
4247
|
render() {
|
|
4248
|
+
const classes = {
|
|
4249
|
+
container: true
|
|
4250
|
+
};
|
|
4251
|
+
|
|
4252
|
+
// Since this class does not inherit from AuroElement, we apply the shape-related class within the `render` function,
|
|
4253
|
+
// mimicking the class naming convention used in AuroElement.resetShapeClasses.
|
|
4254
|
+
classes[`shape-${this.shape}`] = true;
|
|
4255
|
+
|
|
3725
4256
|
return u`
|
|
3726
|
-
<div class="
|
|
4257
|
+
<div class="${e(classes)}" part="bibContainer">
|
|
3727
4258
|
<slot></slot>
|
|
3728
4259
|
</div>
|
|
3729
4260
|
`;
|
|
@@ -3732,23 +4263,23 @@ class AuroDropdownBib extends i$2 {
|
|
|
3732
4263
|
|
|
3733
4264
|
var dropdownVersion$1 = '3.0.0';
|
|
3734
4265
|
|
|
3735
|
-
var shapeSizeCss = i$5`.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:
|
|
4266
|
+
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}`;
|
|
3736
4267
|
|
|
3737
|
-
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:
|
|
4268
|
+
var colorCss$1$2 = i$5`: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)}`;
|
|
3738
4269
|
|
|
3739
|
-
var classicColorCss = i$5
|
|
4270
|
+
var classicColorCss = i$5``;
|
|
3740
4271
|
|
|
3741
|
-
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]) .
|
|
4272
|
+
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([layout*=classic]:not([simple])) .triggerContentWrapper{padding-left:var(--ds-size-150, 0.75rem)}:host([layout*=classic][matchwidth]) #bibSizer{width:100%}:host([layout*=classic][disabled]){pointer-events:none}`;
|
|
3742
4273
|
|
|
3743
|
-
var styleEmphasizedCss = i$5`:host{display:block}.wrapper{display:flex;flex
|
|
4274
|
+
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)}`;
|
|
3744
4275
|
|
|
3745
|
-
var styleSnowflakeCss = i$5`:host{display:block}.wrapper{display:flex;flex
|
|
4276
|
+
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)}`;
|
|
3746
4277
|
|
|
3747
|
-
var colorCss$
|
|
4278
|
+
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)}`;
|
|
3748
4279
|
|
|
3749
|
-
var styleCss$
|
|
4280
|
+
var styleCss$6 = i$5`.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}`;
|
|
3750
4281
|
|
|
3751
|
-
var tokensCss$
|
|
4282
|
+
var tokensCss$4 = i$5`:host{--ds-auro-helptext-color: var(--ds-basic-color-texticon-muted, #676767)}`;
|
|
3752
4283
|
|
|
3753
4284
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
3754
4285
|
// See LICENSE in the project root for license information.
|
|
@@ -3757,7 +4288,7 @@ var tokensCss$3 = i$5`:host{--ds-auro-helptext-color: var(--ds-basic-color-texti
|
|
|
3757
4288
|
|
|
3758
4289
|
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
3759
4290
|
|
|
3760
|
-
let AuroLibraryRuntimeUtils$
|
|
4291
|
+
let AuroLibraryRuntimeUtils$5 = class AuroLibraryRuntimeUtils {
|
|
3761
4292
|
|
|
3762
4293
|
/* eslint-disable jsdoc/require-param */
|
|
3763
4294
|
|
|
@@ -3829,7 +4360,7 @@ let AuroLibraryRuntimeUtils$2 = class AuroLibraryRuntimeUtils {
|
|
|
3829
4360
|
*
|
|
3830
4361
|
* @attr { Boolean } large - If declared, make font-size to 1rem(16px).
|
|
3831
4362
|
*/
|
|
3832
|
-
class AuroHelpText extends i$2 {
|
|
4363
|
+
let AuroHelpText$1 = class AuroHelpText extends i$2 {
|
|
3833
4364
|
|
|
3834
4365
|
constructor() {
|
|
3835
4366
|
super();
|
|
@@ -3838,14 +4369,14 @@ class AuroHelpText extends i$2 {
|
|
|
3838
4369
|
this.onDark = false;
|
|
3839
4370
|
this.hasTextContent = false;
|
|
3840
4371
|
|
|
3841
|
-
AuroLibraryRuntimeUtils$
|
|
4372
|
+
AuroLibraryRuntimeUtils$5.prototype.handleComponentTagRename(this, 'auro-helptext');
|
|
3842
4373
|
}
|
|
3843
4374
|
|
|
3844
4375
|
static get styles() {
|
|
3845
4376
|
return [
|
|
3846
|
-
colorCss$
|
|
3847
|
-
styleCss$
|
|
3848
|
-
tokensCss$
|
|
4377
|
+
colorCss$5,
|
|
4378
|
+
styleCss$6,
|
|
4379
|
+
tokensCss$4
|
|
3849
4380
|
];
|
|
3850
4381
|
}
|
|
3851
4382
|
|
|
@@ -3894,7 +4425,7 @@ class AuroHelpText extends i$2 {
|
|
|
3894
4425
|
*
|
|
3895
4426
|
*/
|
|
3896
4427
|
static register(name = "auro-helptext") {
|
|
3897
|
-
AuroLibraryRuntimeUtils$
|
|
4428
|
+
AuroLibraryRuntimeUtils$5.prototype.registerComponent(name, AuroHelpText);
|
|
3898
4429
|
}
|
|
3899
4430
|
|
|
3900
4431
|
updated() {
|
|
@@ -3948,11 +4479,11 @@ class AuroHelpText extends i$2 {
|
|
|
3948
4479
|
</div>
|
|
3949
4480
|
`;
|
|
3950
4481
|
}
|
|
3951
|
-
}
|
|
4482
|
+
};
|
|
3952
4483
|
|
|
3953
|
-
var helpTextVersion = '1.0.0';
|
|
4484
|
+
var helpTextVersion$1 = '1.0.0';
|
|
3954
4485
|
|
|
3955
|
-
let AuroElement$
|
|
4486
|
+
let AuroElement$3 = class AuroElement extends i$2 {
|
|
3956
4487
|
static get properties() {
|
|
3957
4488
|
return {
|
|
3958
4489
|
|
|
@@ -3987,18 +4518,21 @@ let AuroElement$2 = class AuroElement extends i$2 {
|
|
|
3987
4518
|
}
|
|
3988
4519
|
|
|
3989
4520
|
resetShapeClasses() {
|
|
3990
|
-
|
|
3991
|
-
const wrapper = this.shadowRoot.querySelector('.wrapper');
|
|
4521
|
+
const wrapper = this.shadowRoot.querySelector('.wrapper');
|
|
3992
4522
|
|
|
3993
|
-
|
|
3994
|
-
|
|
3995
|
-
|
|
3996
|
-
|
|
3997
|
-
|
|
3998
|
-
|
|
4523
|
+
if (wrapper) {
|
|
4524
|
+
wrapper.classList.forEach((className) => {
|
|
4525
|
+
if (className.startsWith('shape-')) {
|
|
4526
|
+
wrapper.classList.remove(className);
|
|
4527
|
+
}
|
|
4528
|
+
});
|
|
3999
4529
|
|
|
4000
|
-
|
|
4001
|
-
|
|
4530
|
+
}
|
|
4531
|
+
|
|
4532
|
+
if (this.shape && this.size) {
|
|
4533
|
+
wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
|
|
4534
|
+
} else {
|
|
4535
|
+
wrapper.classList.add('shape-none');
|
|
4002
4536
|
}
|
|
4003
4537
|
}
|
|
4004
4538
|
|
|
@@ -4061,7 +4595,7 @@ let AuroElement$2 = class AuroElement extends i$2 {
|
|
|
4061
4595
|
* @event auroDropdown-toggled - Notifies that the visibility of the dropdown bib has changed.
|
|
4062
4596
|
* @event auroDropdown-idAdded - Notifies consumers that the unique ID for the dropdown bib has been generated.
|
|
4063
4597
|
*/
|
|
4064
|
-
class AuroDropdown extends AuroElement$
|
|
4598
|
+
class AuroDropdown extends AuroElement$3 {
|
|
4065
4599
|
constructor() {
|
|
4066
4600
|
super();
|
|
4067
4601
|
|
|
@@ -4070,20 +4604,16 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4070
4604
|
this.matchWidth = false;
|
|
4071
4605
|
this.noHideOnThisFocusLoss = false;
|
|
4072
4606
|
|
|
4073
|
-
this.errorMessage = ''; // TODO
|
|
4607
|
+
this.errorMessage = ''; // TODO - check with Doug if there is still more to do here
|
|
4074
4608
|
|
|
4075
4609
|
// Layout Config
|
|
4076
4610
|
this.layout = 'classic';
|
|
4077
|
-
this.shape = '
|
|
4611
|
+
this.shape = 'classic';
|
|
4078
4612
|
this.size = 'xl';
|
|
4079
4613
|
|
|
4080
|
-
this.
|
|
4081
|
-
}
|
|
4614
|
+
this.parentBorder = false;
|
|
4082
4615
|
|
|
4083
|
-
|
|
4084
|
-
return {
|
|
4085
|
-
// 'withValue': this.value && this.value.length > 0
|
|
4086
|
-
};
|
|
4616
|
+
this.privateDefaults();
|
|
4087
4617
|
}
|
|
4088
4618
|
|
|
4089
4619
|
get commonWrapperClasses() {
|
|
@@ -4091,7 +4621,8 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4091
4621
|
'trigger': true,
|
|
4092
4622
|
'wrapper': true,
|
|
4093
4623
|
'hasFocus': this.hasFocus,
|
|
4094
|
-
'simple': this.simple
|
|
4624
|
+
'simple': this.simple,
|
|
4625
|
+
'parentBorder': this.parentBorder
|
|
4095
4626
|
};
|
|
4096
4627
|
}
|
|
4097
4628
|
|
|
@@ -4102,6 +4633,7 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4102
4633
|
privateDefaults() {
|
|
4103
4634
|
this.chevron = false;
|
|
4104
4635
|
this.disabled = false;
|
|
4636
|
+
this.disableFocusTrap = false;
|
|
4105
4637
|
this.error = false;
|
|
4106
4638
|
this.inset = false;
|
|
4107
4639
|
this.rounded = false;
|
|
@@ -4143,7 +4675,7 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4143
4675
|
/**
|
|
4144
4676
|
* @private
|
|
4145
4677
|
*/
|
|
4146
|
-
this.runtimeUtils = new AuroLibraryRuntimeUtils$1();
|
|
4678
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$2$1();
|
|
4147
4679
|
|
|
4148
4680
|
/**
|
|
4149
4681
|
* @private
|
|
@@ -4168,7 +4700,7 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4168
4700
|
/**
|
|
4169
4701
|
* @private
|
|
4170
4702
|
*/
|
|
4171
|
-
this.helpTextTag = versioning.generateTag('auro-formkit-dropdown-helptext', helpTextVersion, AuroHelpText);
|
|
4703
|
+
this.helpTextTag = versioning.generateTag('auro-formkit-dropdown-helptext', helpTextVersion$1, AuroHelpText$1);
|
|
4172
4704
|
|
|
4173
4705
|
/**
|
|
4174
4706
|
* @private
|
|
@@ -4204,6 +4736,18 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4204
4736
|
this.floater.showBib();
|
|
4205
4737
|
}
|
|
4206
4738
|
|
|
4739
|
+
/**
|
|
4740
|
+
* When bib is open, focus on the first element inside of bib.
|
|
4741
|
+
* If not, trigger element will get focus.
|
|
4742
|
+
*/
|
|
4743
|
+
focus() {
|
|
4744
|
+
if (this.isPopoverVisible && this.focusTrap) {
|
|
4745
|
+
this.focusTrap.focusFirstElement();
|
|
4746
|
+
} else {
|
|
4747
|
+
this.trigger.focus();
|
|
4748
|
+
}
|
|
4749
|
+
}
|
|
4750
|
+
|
|
4207
4751
|
// function to define props used within the scope of this component
|
|
4208
4752
|
static get properties() {
|
|
4209
4753
|
return {
|
|
@@ -4250,6 +4794,14 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4250
4794
|
reflect: true
|
|
4251
4795
|
},
|
|
4252
4796
|
|
|
4797
|
+
/**
|
|
4798
|
+
* If declare, the focus trap inside of bib will be turned off.
|
|
4799
|
+
*/
|
|
4800
|
+
disableFocusTrap: {
|
|
4801
|
+
type: Boolean,
|
|
4802
|
+
reflect: true
|
|
4803
|
+
},
|
|
4804
|
+
|
|
4253
4805
|
/**
|
|
4254
4806
|
* @private
|
|
4255
4807
|
*/
|
|
@@ -4358,6 +4910,15 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4358
4910
|
reflect: true
|
|
4359
4911
|
},
|
|
4360
4912
|
|
|
4913
|
+
/**
|
|
4914
|
+
* Defines if the trigger should size based on the parent element providing the border UI.
|
|
4915
|
+
* @private
|
|
4916
|
+
*/
|
|
4917
|
+
parentBorder: {
|
|
4918
|
+
type: Boolean,
|
|
4919
|
+
reflect: true
|
|
4920
|
+
},
|
|
4921
|
+
|
|
4361
4922
|
/**
|
|
4362
4923
|
* If declared, the popover and trigger will be set to the same width.
|
|
4363
4924
|
*/
|
|
@@ -4460,7 +5021,7 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4460
5021
|
static get styles() {
|
|
4461
5022
|
return [
|
|
4462
5023
|
colorCss$1$2,
|
|
4463
|
-
tokensCss$1$
|
|
5024
|
+
tokensCss$1$2,
|
|
4464
5025
|
|
|
4465
5026
|
// default layout
|
|
4466
5027
|
classicColorCss,
|
|
@@ -4485,7 +5046,7 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4485
5046
|
*
|
|
4486
5047
|
*/
|
|
4487
5048
|
static register(name = "auro-dropdown") {
|
|
4488
|
-
AuroLibraryRuntimeUtils$1.prototype.registerComponent(name, AuroDropdown);
|
|
5049
|
+
AuroLibraryRuntimeUtils$2$1.prototype.registerComponent(name, AuroDropdown);
|
|
4489
5050
|
}
|
|
4490
5051
|
|
|
4491
5052
|
/**
|
|
@@ -4523,6 +5084,12 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4523
5084
|
this.handleTriggerContentSlotChange();
|
|
4524
5085
|
}
|
|
4525
5086
|
|
|
5087
|
+
if (changedProperties.has('isPopoverVisible')) {
|
|
5088
|
+
this.updateFocusTrap();
|
|
5089
|
+
if (!this.isPopoverVisible && this.hasFocus) {
|
|
5090
|
+
this.trigger.focus();
|
|
5091
|
+
}
|
|
5092
|
+
}
|
|
4526
5093
|
}
|
|
4527
5094
|
|
|
4528
5095
|
firstUpdated() {
|
|
@@ -4588,6 +5155,27 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4588
5155
|
this.hasFocus = true;
|
|
4589
5156
|
}
|
|
4590
5157
|
|
|
5158
|
+
/**
|
|
5159
|
+
* @private
|
|
5160
|
+
*/
|
|
5161
|
+
updateFocusTrap() {
|
|
5162
|
+
// If the dropdown is open, create a focus trap and focus the first element
|
|
5163
|
+
if (this.isPopoverVisible && !this.disableFocusTrap) {
|
|
5164
|
+
this.focusTrap = new FocusTrap(this.bibContent);
|
|
5165
|
+
this.focusTrap.focusFirstElement();
|
|
5166
|
+
return;
|
|
5167
|
+
}
|
|
5168
|
+
|
|
5169
|
+
// Guard Clause: Ensure there is a focus trap currently active before continuing
|
|
5170
|
+
if (!this.focusTrap) {
|
|
5171
|
+
return;
|
|
5172
|
+
}
|
|
5173
|
+
|
|
5174
|
+
// If the dropdown is not open, disconnect the focus trap if it exists
|
|
5175
|
+
this.focusTrap.disconnect();
|
|
5176
|
+
this.focusTrap = undefined;
|
|
5177
|
+
}
|
|
5178
|
+
|
|
4591
5179
|
/**
|
|
4592
5180
|
* Function to support @focusout event.
|
|
4593
5181
|
* @private
|
|
@@ -4748,14 +5336,13 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4748
5336
|
* @returns {void}
|
|
4749
5337
|
*/
|
|
4750
5338
|
handleTriggerContentSlotChange(event) {
|
|
4751
|
-
|
|
4752
5339
|
this.floater.handleTriggerTabIndex();
|
|
4753
5340
|
|
|
4754
5341
|
// Get the trigger
|
|
4755
5342
|
const trigger = this.shadowRoot.querySelector('#trigger');
|
|
4756
5343
|
|
|
4757
5344
|
// Get the trigger slot
|
|
4758
|
-
const triggerSlot = this.shadowRoot.querySelector('.
|
|
5345
|
+
const triggerSlot = this.shadowRoot.querySelector('.triggerContentWrapper slot');
|
|
4759
5346
|
|
|
4760
5347
|
// If there's a trigger slot
|
|
4761
5348
|
if (triggerSlot) {
|
|
@@ -4818,40 +5405,15 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4818
5405
|
*
|
|
4819
5406
|
* @private
|
|
4820
5407
|
* @method handleDefaultSlot
|
|
4821
|
-
* @param {Event} event - The event object representing the slot change.
|
|
4822
5408
|
* @fires Function#onSlotChange - Optional callback invoked when the slot content changes.
|
|
4823
5409
|
*/
|
|
4824
|
-
handleDefaultSlot(
|
|
4825
|
-
[...event.target.assignedNodes()].forEach((node) => this.bibContent.append(node));
|
|
5410
|
+
handleDefaultSlot() {
|
|
4826
5411
|
|
|
4827
5412
|
if (this.onSlotChange) {
|
|
4828
5413
|
this.onSlotChange();
|
|
4829
5414
|
}
|
|
4830
5415
|
}
|
|
4831
5416
|
|
|
4832
|
-
/**
|
|
4833
|
-
* @private
|
|
4834
|
-
* @method handleLabelSlotChange
|
|
4835
|
-
* @param {event} event - The event object representing the slot change.
|
|
4836
|
-
* @description Handles the slot change event for the label slot.
|
|
4837
|
-
*/
|
|
4838
|
-
handleLabelSlotChange (event) {
|
|
4839
|
-
|
|
4840
|
-
// Get the nodes from the event
|
|
4841
|
-
const nodes = event.target.assignedNodes();
|
|
4842
|
-
|
|
4843
|
-
// Guard clause for no nodes
|
|
4844
|
-
if (!nodes) {
|
|
4845
|
-
return;
|
|
4846
|
-
}
|
|
4847
|
-
|
|
4848
|
-
// Convert the nodes to a measurable array so we can get the length
|
|
4849
|
-
const nodesArr = Array.from(nodes);
|
|
4850
|
-
|
|
4851
|
-
// If the nodes array has a length, the dropdown is labeled
|
|
4852
|
-
this.labeled = nodesArr.length > 0;
|
|
4853
|
-
}
|
|
4854
|
-
|
|
4855
5417
|
/**
|
|
4856
5418
|
* Returns HTML for the common portion of the layouts.
|
|
4857
5419
|
* @private
|
|
@@ -4866,24 +5428,20 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4866
5428
|
class="${e(this.commonWrapperClasses)}" part="wrapper"
|
|
4867
5429
|
tabindex="${this.tabIndex}"
|
|
4868
5430
|
role="${o(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
4869
|
-
aria-expanded="${o(this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
4870
|
-
aria-controls="${o(this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
5431
|
+
aria-expanded="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
5432
|
+
aria-controls="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
4871
5433
|
aria-labelledby="${o(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
4872
5434
|
@focusin="${this.handleFocusin}"
|
|
4873
5435
|
@blur="${this.handleFocusOut}">
|
|
4874
|
-
<div class="triggerContentWrapper">
|
|
4875
|
-
<
|
|
4876
|
-
|
|
4877
|
-
|
|
4878
|
-
<div class="triggerContent">
|
|
4879
|
-
<slot
|
|
4880
|
-
name="trigger"
|
|
4881
|
-
@slotchange="${this.handleTriggerContentSlotChange}"></slot>
|
|
4882
|
-
</div>
|
|
5436
|
+
<div class="triggerContentWrapper" id="triggerLabel">
|
|
5437
|
+
<slot
|
|
5438
|
+
name="trigger"
|
|
5439
|
+
@slotchange="${this.handleTriggerContentSlotChange}"></slot>
|
|
4883
5440
|
</div>
|
|
4884
|
-
${this.chevron
|
|
5441
|
+
${this.chevron ? u`
|
|
4885
5442
|
<div
|
|
4886
5443
|
id="showStateIcon"
|
|
5444
|
+
class="chevron"
|
|
4887
5445
|
part="chevron">
|
|
4888
5446
|
<${this.iconTag}
|
|
4889
5447
|
category="interface"
|
|
@@ -4898,17 +5456,18 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4898
5456
|
<div class="${e(helpTextClasses)}">
|
|
4899
5457
|
<slot name="helpText"></slot>
|
|
4900
5458
|
</div>
|
|
4901
|
-
<div class="slotContent">
|
|
4902
|
-
<slot @slotchange="${this.handleDefaultSlot}"></slot>
|
|
4903
|
-
</div>
|
|
4904
5459
|
<div id="bibSizer" part="size"></div>
|
|
4905
5460
|
<${this.dropdownBibTag}
|
|
4906
5461
|
id="bib"
|
|
5462
|
+
shape="${this.shape}"
|
|
4907
5463
|
?data-show="${this.isPopoverVisible}"
|
|
4908
5464
|
?isfullscreen="${this.isBibFullscreen}"
|
|
4909
5465
|
?common="${this.common}"
|
|
4910
5466
|
?rounded="${this.common || this.rounded}"
|
|
4911
5467
|
?inset="${this.common || this.inset}">
|
|
5468
|
+
<div class="slotContent">
|
|
5469
|
+
<slot @slotchange="${this.handleDefaultSlot}"></slot>
|
|
5470
|
+
</div>
|
|
4912
5471
|
</${this.dropdownBibTag}>
|
|
4913
5472
|
</div>
|
|
4914
5473
|
`;
|
|
@@ -4920,67 +5479,14 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
4920
5479
|
* @returns {html} - Returns HTML for the classic layout.
|
|
4921
5480
|
*/
|
|
4922
5481
|
renderLayoutClassic() {
|
|
5482
|
+
// TODO: check with Doug why this was never used?
|
|
4923
5483
|
const helpTextClasses = {
|
|
4924
|
-
'helpText': true
|
|
4925
|
-
'leftIndent': false,
|
|
4926
|
-
'rightIndent': false
|
|
5484
|
+
'helpText': true
|
|
4927
5485
|
};
|
|
4928
5486
|
|
|
4929
5487
|
return u`
|
|
4930
5488
|
${this.renderBasicHtml(helpTextClasses)}
|
|
4931
5489
|
`;
|
|
4932
|
-
// return html`
|
|
4933
|
-
// <div>
|
|
4934
|
-
// <div
|
|
4935
|
-
// id="trigger"
|
|
4936
|
-
// class="trigger"
|
|
4937
|
-
// part="trigger"
|
|
4938
|
-
// tabindex="${this.tabIndex}"
|
|
4939
|
-
// ?showBorder="${this.showTriggerBorders}"
|
|
4940
|
-
// role="${ifDefined(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
4941
|
-
// aria-expanded="${ifDefined(this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
4942
|
-
// aria-controls="${ifDefined(this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
4943
|
-
// aria-labelledby="${ifDefined(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
4944
|
-
// >
|
|
4945
|
-
// <div class="triggerContentWrapper">
|
|
4946
|
-
// <label class="label" id="triggerLabel" hasTrigger=${this.hasTriggerContent}>
|
|
4947
|
-
// <slot name="label" @slotchange="${this.handleLabelSlotChange}"></slot>
|
|
4948
|
-
// </label>
|
|
4949
|
-
// <div class="triggerContent">
|
|
4950
|
-
// <slot
|
|
4951
|
-
// name="trigger"
|
|
4952
|
-
// @slotchange="${this.handleTriggerContentSlotChange}"></slot>
|
|
4953
|
-
// </div>
|
|
4954
|
-
// </div>
|
|
4955
|
-
// ${this.chevron || this.common ? html`
|
|
4956
|
-
// <div
|
|
4957
|
-
// id="showStateIcon"
|
|
4958
|
-
// part="chevron">
|
|
4959
|
-
// <${this.iconTag}
|
|
4960
|
-
// category="interface"
|
|
4961
|
-
// name="chevron-down"
|
|
4962
|
-
// ?onDark="${this.onDark}"
|
|
4963
|
-
// variant="${this.disabled ? 'disabled' : 'muted'}">
|
|
4964
|
-
// >
|
|
4965
|
-
// </${this.iconTag}>
|
|
4966
|
-
// </div>
|
|
4967
|
-
// ` : undefined }
|
|
4968
|
-
// </div>
|
|
4969
|
-
// <div class="slotContent">
|
|
4970
|
-
// <slot @slotchange="${this.handleDefaultSlot}"></slot>
|
|
4971
|
-
// </div>
|
|
4972
|
-
// <div id="bibSizer" part="size"></div>
|
|
4973
|
-
// <${this.dropdownBibTag}
|
|
4974
|
-
// id="bib"
|
|
4975
|
-
// ?data-show="${this.isPopoverVisible}"
|
|
4976
|
-
// ?isfullscreen="${this.isBibFullscreen}"
|
|
4977
|
-
// ?common="${this.common}"
|
|
4978
|
-
// ?rounded="${this.common || this.rounded}"
|
|
4979
|
-
// ?inset="${this.common || this.inset}"
|
|
4980
|
-
// >
|
|
4981
|
-
// </${this.dropdownBibTag}>
|
|
4982
|
-
// </div>
|
|
4983
|
-
// `;
|
|
4984
5490
|
}
|
|
4985
5491
|
|
|
4986
5492
|
/**
|
|
@@ -5047,9 +5553,9 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5047
5553
|
|
|
5048
5554
|
var dropdownVersion = '3.0.0';
|
|
5049
5555
|
|
|
5050
|
-
var colorCss$
|
|
5556
|
+
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)}`;
|
|
5051
5557
|
|
|
5052
|
-
var styleCss$
|
|
5558
|
+
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)}`;
|
|
5053
5559
|
|
|
5054
5560
|
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)}`;
|
|
5055
5561
|
|
|
@@ -5060,7 +5566,7 @@ var tokenCss = i$5`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-
|
|
|
5060
5566
|
|
|
5061
5567
|
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
5062
5568
|
|
|
5063
|
-
class AuroLibraryRuntimeUtils {
|
|
5569
|
+
let AuroLibraryRuntimeUtils$3 = class AuroLibraryRuntimeUtils {
|
|
5064
5570
|
|
|
5065
5571
|
/* eslint-disable jsdoc/require-param */
|
|
5066
5572
|
|
|
@@ -5121,7 +5627,7 @@ class AuroLibraryRuntimeUtils {
|
|
|
5121
5627
|
|
|
5122
5628
|
return elemTag === tag || elem.hasAttribute(tag);
|
|
5123
5629
|
}
|
|
5124
|
-
}
|
|
5630
|
+
};
|
|
5125
5631
|
|
|
5126
5632
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
5127
5633
|
// See LICENSE in the project root for license information.
|
|
@@ -5163,85 +5669,1129 @@ class AuroDependencyVersioning {
|
|
|
5163
5669
|
}
|
|
5164
5670
|
}
|
|
5165
5671
|
|
|
5166
|
-
|
|
5167
|
-
|
|
5168
|
-
|
|
5672
|
+
/**
|
|
5673
|
+
* Private module-level WeakMap to hold MutationObservers for each host element.
|
|
5674
|
+
*/
|
|
5675
|
+
const _observers = new WeakMap();
|
|
5169
5676
|
|
|
5170
5677
|
/**
|
|
5171
|
-
*
|
|
5172
|
-
*
|
|
5173
|
-
*
|
|
5678
|
+
* Private module-level WeakMap to hold attribute matchers and targets for each host element.
|
|
5679
|
+
* Structure: {
|
|
5680
|
+
* host: {
|
|
5681
|
+
* matchers: Set<Function>,
|
|
5682
|
+
* targets: Map<HTMLElement, Map<Function, {removeOriginal: boolean, currentAttributes: Map<string, string>}>>
|
|
5683
|
+
* }
|
|
5684
|
+
* }
|
|
5174
5685
|
*/
|
|
5686
|
+
const _transportConfig = new WeakMap();
|
|
5175
5687
|
|
|
5176
|
-
|
|
5688
|
+
/**
|
|
5689
|
+
* Transfers all matching attributes from a host element to a target element and observes for future changes.
|
|
5690
|
+
*
|
|
5691
|
+
* @param {Object} params - The parameters for the function.
|
|
5692
|
+
* @param {HTMLElement} params.host - The host element from which attributes will be transported.
|
|
5693
|
+
* @param {HTMLElement} params.target - The target element to which attributes will be transported.
|
|
5694
|
+
* @param {boolean} [params.removeOriginal=true] - Whether to remove the attributes from the host element.
|
|
5695
|
+
* @param {boolean} [params.observe=true] - Whether to attach a MutationObserver to the host element.
|
|
5696
|
+
* @returns {Function} A function to detach the observer when no longer needed.
|
|
5697
|
+
* @throws {TypeError} If the host or target parameters are not instances of HTMLElement.
|
|
5698
|
+
*/
|
|
5699
|
+
const transportAttributes = ({ host, target, match, removeOriginal = true }) => {
|
|
5700
|
+
// Guard Clause: Ensure host is valid HTMLElement instance
|
|
5701
|
+
if (typeof host !== 'object' || !(host instanceof HTMLElement)) {
|
|
5702
|
+
throw new TypeError('a11yUtilities.js | transportAttributes | The "host" parameter must be an instance of HTMLElement.');
|
|
5703
|
+
}
|
|
5177
5704
|
|
|
5178
|
-
//
|
|
5179
|
-
|
|
5180
|
-
|
|
5181
|
-
hidden: { type: Boolean,
|
|
5182
|
-
reflect: true },
|
|
5183
|
-
hiddenVisually: { type: Boolean,
|
|
5184
|
-
reflect: true },
|
|
5185
|
-
hiddenAudible: { type: Boolean,
|
|
5186
|
-
reflect: true },
|
|
5187
|
-
};
|
|
5705
|
+
// Guard Clause: Ensure target is valid HTMLElement instance
|
|
5706
|
+
if (typeof target !== 'object' || !(target instanceof HTMLElement)) {
|
|
5707
|
+
throw new TypeError('a11yUtilities.js | transportAttributes | The "target" parameter must be an instance of HTMLElement.');
|
|
5188
5708
|
}
|
|
5189
5709
|
|
|
5190
|
-
|
|
5191
|
-
|
|
5192
|
-
|
|
5193
|
-
|
|
5194
|
-
if (value) {
|
|
5195
|
-
return 'true'
|
|
5196
|
-
}
|
|
5710
|
+
// Guard Clause: Ensure match is a function
|
|
5711
|
+
if (typeof match !== 'function') {
|
|
5712
|
+
throw new TypeError('a11yUtilities.js | transportAttributes | The "match" parameter must be a function.');
|
|
5713
|
+
}
|
|
5197
5714
|
|
|
5198
|
-
|
|
5715
|
+
// Guard Clause: Ensure removeOriginal is a boolean
|
|
5716
|
+
if (typeof removeOriginal !== 'boolean') {
|
|
5717
|
+
throw new TypeError('a11yUtilities.js | transportAttributes | The "removeOriginal" parameter must be a boolean.');
|
|
5199
5718
|
}
|
|
5719
|
+
|
|
5720
|
+
// Register this transport and get cleanup function
|
|
5721
|
+
return _registerTransport({
|
|
5722
|
+
host,
|
|
5723
|
+
target,
|
|
5724
|
+
matcher: match,
|
|
5725
|
+
removeOriginal
|
|
5726
|
+
});
|
|
5200
5727
|
};
|
|
5201
5728
|
|
|
5202
|
-
var error$1 = {"svg":"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-labelledby=\"error__desc\" class=\"ico_squareLarge\" data-deprecated=\"true\" 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=\"error__desc\">Error alert indicator.</desc><path d=\"m13.047 5.599 6.786 11.586A1.207 1.207 0 0 1 18.786 19H5.214a1.207 1.207 0 0 1-1.047-1.815l6.786-11.586a1.214 1.214 0 0 1 2.094 0m-1.165.87a.23.23 0 0 0-.085.085L5.419 17.442a.232.232 0 0 0 .203.35h12.756a.234.234 0 0 0 .203-.35L12.203 6.554a.236.236 0 0 0-.321-.084M12 15.5a.75.75 0 1 1 0 1.5.75.75 0 0 1 0-1.5m-.024-6.22c.325 0 .589.261.589.583v4.434a.586.586 0 0 1-.589.583.586.586 0 0 1-.588-.583V9.863c0-.322.264-.583.588-.583\"/></svg>"};
|
|
5203
|
-
|
|
5204
|
-
/* eslint-disable no-underscore-dangle, jsdoc/no-undefined-types, jsdoc/require-param-description */
|
|
5205
|
-
|
|
5206
|
-
const _fetchMap$1 = new Map();
|
|
5207
|
-
|
|
5208
5729
|
/**
|
|
5209
|
-
*
|
|
5210
|
-
*
|
|
5211
|
-
* @
|
|
5212
|
-
* @param {
|
|
5213
|
-
* @
|
|
5730
|
+
* Registers a matcher and target for a host element and attaches an observer if needed.
|
|
5731
|
+
*
|
|
5732
|
+
* @param {Object} params - The parameters object.
|
|
5733
|
+
* @param {HTMLElement} params.host - The host element to observe.
|
|
5734
|
+
* @param {HTMLElement} params.target - The target element to receive attributes.
|
|
5735
|
+
* @param {Function} params.matcher - Function that determines which attributes to transport.
|
|
5736
|
+
* @param {boolean} [params.removeOriginal=true] - Whether to remove original attributes.
|
|
5737
|
+
* @param {boolean} [params.observe=true] - Whether to observe for attribute changes.
|
|
5738
|
+
* @returns {Function} Function to detach the specific matcher and target pairing.
|
|
5739
|
+
* @private
|
|
5214
5740
|
*/
|
|
5741
|
+
const _registerTransport = ({ host, target, matcher, removeOriginal = true }) => {
|
|
5742
|
+
// Initialize config for this host if it doesn't exist
|
|
5743
|
+
if (!_transportConfig.has(host)) {
|
|
5744
|
+
_transportConfig.set(host, {
|
|
5745
|
+
matchers: new Set(),
|
|
5746
|
+
targets: new Map()
|
|
5747
|
+
});
|
|
5748
|
+
}
|
|
5749
|
+
|
|
5750
|
+
const config = _transportConfig.get(host);
|
|
5751
|
+
|
|
5752
|
+
// Add the matcher to the set of matchers for this host
|
|
5753
|
+
config.matchers.add(matcher);
|
|
5754
|
+
|
|
5755
|
+
// Initialize target entry if it doesn't exist
|
|
5756
|
+
if (!config.targets.has(target)) {
|
|
5757
|
+
config.targets.set(target, new Map());
|
|
5758
|
+
}
|
|
5759
|
+
|
|
5760
|
+
// Store the matcher with its removeOriginal setting for this target
|
|
5761
|
+
config.targets.get(target).set(matcher, {
|
|
5762
|
+
removeOriginal,
|
|
5763
|
+
currentAttributes: new Map()
|
|
5764
|
+
});
|
|
5765
|
+
|
|
5766
|
+
// Perform initial attribute transport
|
|
5767
|
+
_transportAttributes({ host, target, matcher, removeOriginal });
|
|
5768
|
+
|
|
5769
|
+
// Attach observer
|
|
5770
|
+
_attachObserver(host);
|
|
5771
|
+
|
|
5772
|
+
// Return cleanup function and utility functions
|
|
5773
|
+
return {
|
|
5774
|
+
cleanup: () => _cleanupTransport(host, target, matcher),
|
|
5775
|
+
getObservedAttributes: () => _getObservedAttributes(host, target, matcher),
|
|
5776
|
+
getObservedAttribute: (attr) => _getObservedAttribute(host, target, matcher, attr),
|
|
5777
|
+
}
|
|
5778
|
+
};
|
|
5215
5779
|
|
|
5216
5780
|
/**
|
|
5217
|
-
*
|
|
5218
|
-
*
|
|
5219
|
-
* @param {
|
|
5220
|
-
* @param {
|
|
5221
|
-
* @param {
|
|
5222
|
-
* @
|
|
5781
|
+
* Cleans up resources associated with a specific matcher and target for a host element.
|
|
5782
|
+
*
|
|
5783
|
+
* @param {HTMLElement} host - The host element
|
|
5784
|
+
* @param {HTMLElement} target - The target element
|
|
5785
|
+
* @param {Function} matcher - The matcher function
|
|
5786
|
+
* @private
|
|
5223
5787
|
*/
|
|
5224
|
-
const
|
|
5225
|
-
const
|
|
5226
|
-
if (!
|
|
5227
|
-
|
|
5788
|
+
const _cleanupTransport = (host, target, matcher) => {
|
|
5789
|
+
const config = _transportConfig.get(host);
|
|
5790
|
+
if (!config) return;
|
|
5791
|
+
|
|
5792
|
+
// Remove this matcher from this target
|
|
5793
|
+
const targetMatchers = config.targets.get(target);
|
|
5794
|
+
if (targetMatchers) {
|
|
5795
|
+
targetMatchers.delete(matcher);
|
|
5796
|
+
|
|
5797
|
+
// If this target has no more matchers, remove it
|
|
5798
|
+
if (targetMatchers.size === 0) {
|
|
5799
|
+
config.targets.delete(target);
|
|
5800
|
+
}
|
|
5801
|
+
}
|
|
5802
|
+
|
|
5803
|
+
// Check if this matcher is still used by any target
|
|
5804
|
+
let matcherStillUsed = false;
|
|
5805
|
+
for (const matcherMap of config.targets.values()) {
|
|
5806
|
+
if (matcherMap.has(matcher)) {
|
|
5807
|
+
matcherStillUsed = true;
|
|
5808
|
+
break;
|
|
5809
|
+
}
|
|
5810
|
+
}
|
|
5811
|
+
|
|
5812
|
+
// If not used anymore, remove from matchers set
|
|
5813
|
+
if (!matcherStillUsed) {
|
|
5814
|
+
config.matchers.delete(matcher);
|
|
5815
|
+
}
|
|
5816
|
+
|
|
5817
|
+
// If no more targets or matchers, detach observer
|
|
5818
|
+
if (config.targets.size === 0 || config.matchers.size === 0) {
|
|
5819
|
+
_detachObserver(host);
|
|
5228
5820
|
}
|
|
5229
|
-
return _fetchMap$1.get(uri);
|
|
5230
5821
|
};
|
|
5231
5822
|
|
|
5232
|
-
|
|
5233
|
-
|
|
5234
|
-
|
|
5235
|
-
|
|
5236
|
-
|
|
5237
|
-
|
|
5238
|
-
|
|
5823
|
+
/**
|
|
5824
|
+
* Generic function to transport attributes from a host element to a target element.
|
|
5825
|
+
*
|
|
5826
|
+
* @param {Object} params - The parameters object.
|
|
5827
|
+
* @param {HTMLElement} params.host - The host element from which to transport attributes.
|
|
5828
|
+
* @param {HTMLElement} params.target - The target element to which attributes will be transported.
|
|
5829
|
+
* @param {Function} params.matcher - Function that takes an attribute name and returns true if it should be transported.
|
|
5830
|
+
* @param {boolean} [params.removeOriginal=true] - Whether to remove original attributes from host.
|
|
5831
|
+
* @returns {void}
|
|
5832
|
+
* @private
|
|
5833
|
+
*/
|
|
5834
|
+
const _transportAttributes = ({ host, target, matcher, removeOriginal = true }) => {
|
|
5835
|
+
// Get a list of all matching attributes on the host element and their values
|
|
5836
|
+
const matchingAttributes = host.getAttributeNames()
|
|
5837
|
+
.filter(attr => matcher(attr))
|
|
5838
|
+
.reduce((acc, attr) => {
|
|
5839
|
+
acc[attr] = host.getAttribute(attr);
|
|
5840
|
+
return acc;
|
|
5841
|
+
}, {});
|
|
5842
|
+
|
|
5843
|
+
// Move matching attributes to the target element, removing them from the host if removeOriginal is true
|
|
5844
|
+
Object.entries(matchingAttributes).forEach(([key, value]) => {
|
|
5845
|
+
_setObservedAttribute(host, target, matcher, key, value);
|
|
5846
|
+
target.setAttribute(key, value);
|
|
5847
|
+
if (removeOriginal) {
|
|
5848
|
+
host.removeAttribute(key);
|
|
5849
|
+
}
|
|
5850
|
+
});
|
|
5851
|
+
};
|
|
5852
|
+
|
|
5853
|
+
/**
|
|
5854
|
+
* Attaches a MutationObserver to the host element to monitor attribute changes.
|
|
5855
|
+
*
|
|
5856
|
+
* @param {HTMLElement} host - The element to observe for attribute changes.
|
|
5857
|
+
* @returns {MutationObserver} The observer instance.
|
|
5858
|
+
* @private
|
|
5859
|
+
*/
|
|
5860
|
+
const _attachObserver = (host) => {
|
|
5861
|
+
// If an observer for this host already exists, return it
|
|
5862
|
+
if (_observers.has(host)) {
|
|
5863
|
+
return _observers.get(host);
|
|
5864
|
+
}
|
|
5865
|
+
|
|
5866
|
+
// Create a new MutationObserver
|
|
5867
|
+
const observer = new MutationObserver((mutations) => {
|
|
5868
|
+
const config = _transportConfig.get(host);
|
|
5869
|
+
if (!config) return;
|
|
5870
|
+
|
|
5871
|
+
// For each mutation affecting attributes
|
|
5872
|
+
mutations
|
|
5873
|
+
.filter(mutation => mutation.type === 'attributes')
|
|
5874
|
+
.forEach(mutation => {
|
|
5875
|
+
const attributeName = mutation.attributeName;
|
|
5876
|
+
|
|
5877
|
+
// Find matchers that care about this attribute
|
|
5878
|
+
for (const matcher of config.matchers) {
|
|
5879
|
+
if (matcher(attributeName)) {
|
|
5880
|
+
// For each target that uses this matcher
|
|
5881
|
+
for (const [target, matcherConfigs] of config.targets.entries()) {
|
|
5882
|
+
if (matcherConfigs.has(matcher)) {
|
|
5883
|
+
const { removeOriginal } = matcherConfigs.get(matcher);
|
|
5884
|
+
_transportAttributes({
|
|
5885
|
+
host,
|
|
5886
|
+
target,
|
|
5887
|
+
matcher,
|
|
5888
|
+
removeOriginal
|
|
5889
|
+
});
|
|
5890
|
+
}
|
|
5891
|
+
}
|
|
5892
|
+
}
|
|
5893
|
+
}
|
|
5894
|
+
});
|
|
5895
|
+
});
|
|
5896
|
+
|
|
5897
|
+
// Start observing attribute changes
|
|
5898
|
+
observer.observe(host, { attributes: true });
|
|
5899
|
+
|
|
5900
|
+
// Store the observer
|
|
5901
|
+
_observers.set(host, observer);
|
|
5902
|
+
|
|
5903
|
+
return observer;
|
|
5904
|
+
};
|
|
5905
|
+
|
|
5906
|
+
/**
|
|
5907
|
+
* Detaches and cleans up the MutationObserver for a given host element.
|
|
5908
|
+
*
|
|
5909
|
+
* @param {HTMLElement} host - The element whose observer should be detached.
|
|
5910
|
+
* @private
|
|
5911
|
+
*/
|
|
5912
|
+
const _detachObserver = (host) => {
|
|
5913
|
+
if (_observers.has(host)) {
|
|
5914
|
+
const observer = _observers.get(host);
|
|
5915
|
+
observer.disconnect();
|
|
5916
|
+
_observers.delete(host);
|
|
5917
|
+
}
|
|
5918
|
+
|
|
5919
|
+
// Clean up the transport config as well
|
|
5920
|
+
if (_transportConfig.has(host)) {
|
|
5921
|
+
_transportConfig.delete(host);
|
|
5922
|
+
}
|
|
5923
|
+
};
|
|
5924
|
+
|
|
5925
|
+
/**
|
|
5926
|
+
* Gets the matcher configuration for a specific host, target, and matcher
|
|
5927
|
+
* @param {HTMLElement} host - The host element
|
|
5928
|
+
* @param {HTMLElement} target - The target element
|
|
5929
|
+
* @param {Function} matcher - The matcher function
|
|
5930
|
+
* @returns {Object|undefined} The matcher configuration if found
|
|
5931
|
+
* @private
|
|
5932
|
+
*/
|
|
5933
|
+
const _getMatcherConfig = (host, target, matcher) => {
|
|
5934
|
+
const config = _transportConfig.get(host);
|
|
5935
|
+
if (!config) return undefined;
|
|
5936
|
+
|
|
5937
|
+
const targetMatchers = config.targets.get(target);
|
|
5938
|
+
if (!targetMatchers) return undefined;
|
|
5939
|
+
|
|
5940
|
+
return targetMatchers.get(matcher);
|
|
5941
|
+
};
|
|
5942
|
+
|
|
5943
|
+
/**
|
|
5944
|
+
* Sets an observed attribute value
|
|
5945
|
+
* @param {HTMLElement} host - The host element
|
|
5946
|
+
* @param {HTMLElement} target - The target element
|
|
5947
|
+
* @param {Function} matcher - The matcher function
|
|
5948
|
+
* @param {string} key - The attribute name
|
|
5949
|
+
* @param {string} value - The attribute value
|
|
5950
|
+
* @private
|
|
5951
|
+
*/
|
|
5952
|
+
const _setObservedAttribute = (host, target, matcher, key, value) => {
|
|
5953
|
+
const matcherConfig = _getMatcherConfig(host, target, matcher);
|
|
5954
|
+
if (matcherConfig) {
|
|
5955
|
+
matcherConfig.currentAttributes.set(key, value);
|
|
5956
|
+
}
|
|
5957
|
+
};
|
|
5958
|
+
|
|
5959
|
+
const _getObservedAttribute = (host, target, matcher, attr) => {
|
|
5960
|
+
const matcherConfig = _getMatcherConfig(host, target, matcher);
|
|
5961
|
+
if (matcherConfig) return matcherConfig.currentAttributes.get(attr);
|
|
5962
|
+
return undefined;
|
|
5963
|
+
};
|
|
5964
|
+
|
|
5965
|
+
const _getObservedAttributes = (host, target, matcher) => {
|
|
5966
|
+
const matcherConfig = _getMatcherConfig(host, target, matcher);
|
|
5967
|
+
if (matcherConfig) return Array.from(matcherConfig.currentAttributes.entries());
|
|
5968
|
+
return [];
|
|
5969
|
+
};
|
|
5970
|
+
|
|
5971
|
+
const _matchers = {
|
|
5972
|
+
'aria-': attr => attr.startsWith('aria-'),
|
|
5973
|
+
'role': attr => attr.match(/^role$/)
|
|
5974
|
+
};
|
|
5975
|
+
|
|
5976
|
+
const transportAllA11yAttributes = ({ host, target, removeOriginal = true }) => {
|
|
5977
|
+
return transportAttributes({
|
|
5978
|
+
host,
|
|
5979
|
+
target,
|
|
5980
|
+
match: attr => {
|
|
5981
|
+
for (const key in _matchers) {
|
|
5982
|
+
if (_matchers[key](attr)) return true;
|
|
5983
|
+
}
|
|
5984
|
+
return false;
|
|
5985
|
+
},
|
|
5986
|
+
removeOriginal
|
|
5987
|
+
});
|
|
5988
|
+
};
|
|
5989
|
+
|
|
5990
|
+
let AuroElement$1 = class AuroElement extends i$2 {
|
|
5991
|
+
|
|
5992
|
+
/**
|
|
5993
|
+
* @type {Object} return object from transportAttributes via a11yUtilities
|
|
5994
|
+
* @property {Function} cleanup - Function to clean up the attribute watcher.
|
|
5995
|
+
* @property {Function} getCurrentAttributes - Function to get the current attributes being watched and their values.
|
|
5996
|
+
* @property {Function} getObservedAttribute - Function to get the value of a specific observed attribute by name.
|
|
5997
|
+
* @private
|
|
5998
|
+
*/
|
|
5999
|
+
attributeWatcher;
|
|
6000
|
+
|
|
6001
|
+
static get properties() {
|
|
6002
|
+
return {
|
|
6003
|
+
|
|
6004
|
+
/**
|
|
6005
|
+
* Defines the layout of an element.
|
|
6006
|
+
* @default {'default'}
|
|
6007
|
+
*/
|
|
6008
|
+
layout: {
|
|
6009
|
+
type: String,
|
|
6010
|
+
attribute: "layout",
|
|
6011
|
+
reflect: true
|
|
6012
|
+
},
|
|
6013
|
+
|
|
6014
|
+
/**
|
|
6015
|
+
* Defines the shape of an element.
|
|
6016
|
+
* @property {'default', 'rounded', 'pill', 'circle'}
|
|
6017
|
+
* @default {'default'}
|
|
6018
|
+
*/
|
|
6019
|
+
shape: {
|
|
6020
|
+
type: String,
|
|
6021
|
+
attribute: "shape",
|
|
6022
|
+
reflect: true
|
|
6023
|
+
},
|
|
6024
|
+
|
|
6025
|
+
/**
|
|
6026
|
+
* Defines the size of an element.
|
|
6027
|
+
* @property {'xs', 'sm', 'md', 'lg', 'xl'}
|
|
6028
|
+
* @default {'md'}
|
|
6029
|
+
*/
|
|
6030
|
+
size: {
|
|
6031
|
+
type: String,
|
|
6032
|
+
attribute: "size",
|
|
6033
|
+
reflect: true
|
|
6034
|
+
},
|
|
6035
|
+
|
|
6036
|
+
/**
|
|
6037
|
+
* This Boolean attribute lets you specify that the element should be rendered in dark mode.
|
|
6038
|
+
* @default {false}
|
|
6039
|
+
*/
|
|
6040
|
+
onDark: {
|
|
6041
|
+
type: Boolean,
|
|
6042
|
+
attribute: "ondark",
|
|
6043
|
+
reflect: true
|
|
6044
|
+
},
|
|
6045
|
+
|
|
6046
|
+
/**
|
|
6047
|
+
* A reference to the wrapper element in the shadow DOM.
|
|
6048
|
+
* This is used to apply layout and shape classes dynamically.
|
|
6049
|
+
* @type {HTMLElement|null}
|
|
6050
|
+
* @default {null}
|
|
6051
|
+
* @private
|
|
6052
|
+
*/
|
|
6053
|
+
wrapper: {
|
|
6054
|
+
attribute: false,
|
|
6055
|
+
reflect: false
|
|
6056
|
+
}
|
|
6057
|
+
};
|
|
6058
|
+
}
|
|
6059
|
+
|
|
6060
|
+
|
|
6061
|
+
|
|
6062
|
+
resetShapeClasses() {
|
|
6063
|
+
if (this.shape && this.size) {
|
|
6064
|
+
|
|
6065
|
+
if (this.wrapper) {
|
|
6066
|
+
this.wrapper.classList.forEach((className) => {
|
|
6067
|
+
if (className.startsWith('shape-')) {
|
|
6068
|
+
this.wrapper.classList.remove(className);
|
|
6069
|
+
}
|
|
6070
|
+
});
|
|
6071
|
+
|
|
6072
|
+
this.wrapper.classList.add(`shape-${this.shape.toLowerCase()}-${this.size.toLowerCase()}`);
|
|
6073
|
+
}
|
|
6074
|
+
}
|
|
6075
|
+
}
|
|
6076
|
+
|
|
6077
|
+
resetLayoutClasses() {
|
|
6078
|
+
if (this.layout) {
|
|
6079
|
+
if (this.wrapper) {
|
|
6080
|
+
this.wrapper.classList.forEach((className) => {
|
|
6081
|
+
if (className.startsWith('layout-')) {
|
|
6082
|
+
this.wrapper.classList.remove(className);
|
|
6083
|
+
}
|
|
6084
|
+
});
|
|
6085
|
+
|
|
6086
|
+
this.wrapper.classList.add(`layout-${this.layout.toLowerCase()}`);
|
|
6087
|
+
}
|
|
6088
|
+
}
|
|
6089
|
+
}
|
|
6090
|
+
|
|
6091
|
+
updateComponentArchitecture() {
|
|
6092
|
+
this.resetLayoutClasses();
|
|
6093
|
+
this.resetShapeClasses();
|
|
6094
|
+
}
|
|
6095
|
+
|
|
6096
|
+
updated(changedProperties) {
|
|
6097
|
+
if (changedProperties.has('layout') || changedProperties.has('shape') || changedProperties.has('size')) {
|
|
6098
|
+
this.updateComponentArchitecture();
|
|
6099
|
+
}
|
|
6100
|
+
}
|
|
6101
|
+
|
|
6102
|
+
firstUpdated() {
|
|
6103
|
+
super.firstUpdated();
|
|
6104
|
+
|
|
6105
|
+
// Set a reference to the wrapper element in the shadow DOM
|
|
6106
|
+
this.wrapper = this.shadowRoot.querySelector('.wrapper');
|
|
6107
|
+
|
|
6108
|
+
// Initialize the transportation of ARIA attributes to the target element and get the disconnect function for cleanup
|
|
6109
|
+
this.attributeWatcher = transportAllA11yAttributes({ host: this, target: this.shadowRoot.querySelector('.wrapper') });
|
|
6110
|
+
}
|
|
6111
|
+
|
|
6112
|
+
disconnectedCallback() {
|
|
6113
|
+
super.disconnectedCallback();
|
|
6114
|
+
|
|
6115
|
+
// Cleanup the ARIA observer if it exists
|
|
6116
|
+
if (this.attributeWatcher) {
|
|
6117
|
+
this.attributeWatcher.cleanup();
|
|
6118
|
+
this.attributeWatcher = null;
|
|
6119
|
+
}
|
|
6120
|
+
}
|
|
6121
|
+
|
|
6122
|
+
// Try to render the defined `this.layout` layout. If that fails, fall back to the default layout.
|
|
6123
|
+
// This will catch if an invalid layout value is passed in and render the default layout if so.
|
|
6124
|
+
render() {
|
|
6125
|
+
try {
|
|
6126
|
+
return this.renderLayout();
|
|
6127
|
+
} catch (error) {
|
|
6128
|
+
// failed to get the defined layout
|
|
6129
|
+
console.error('Failed to get the defined layout - using the default layout', error); // eslint-disable-line no-console
|
|
6130
|
+
|
|
6131
|
+
// fallback to the default layout
|
|
6132
|
+
return this.getLayout('default');
|
|
6133
|
+
}
|
|
6134
|
+
}
|
|
6135
|
+
};
|
|
6136
|
+
|
|
6137
|
+
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}`;
|
|
6138
|
+
|
|
6139
|
+
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)}`;
|
|
6140
|
+
|
|
6141
|
+
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}`;
|
|
6142
|
+
|
|
6143
|
+
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}`;
|
|
6144
|
+
|
|
6145
|
+
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
6146
|
+
// See LICENSE in the project root for license information.
|
|
6147
|
+
|
|
6148
|
+
// ---------------------------------------------------------------------
|
|
6149
|
+
|
|
6150
|
+
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
6151
|
+
|
|
6152
|
+
let AuroLibraryRuntimeUtils$2 = class AuroLibraryRuntimeUtils {
|
|
6153
|
+
|
|
6154
|
+
/* eslint-disable jsdoc/require-param */
|
|
6155
|
+
|
|
6156
|
+
/**
|
|
6157
|
+
* This will register a new custom element with the browser.
|
|
6158
|
+
* @param {String} name - The name of the custom element.
|
|
6159
|
+
* @param {Object} componentClass - The class to register as a custom element.
|
|
6160
|
+
* @returns {void}
|
|
6161
|
+
*/
|
|
6162
|
+
registerComponent(name, componentClass) {
|
|
6163
|
+
if (!customElements.get(name)) {
|
|
6164
|
+
customElements.define(name, class extends componentClass {});
|
|
6165
|
+
}
|
|
6166
|
+
}
|
|
6167
|
+
|
|
6168
|
+
/**
|
|
6169
|
+
* Finds and returns the closest HTML Element based on a selector.
|
|
6170
|
+
* @returns {void}
|
|
6171
|
+
*/
|
|
6172
|
+
closestElement(
|
|
6173
|
+
selector, // selector like in .closest()
|
|
6174
|
+
base = this, // extra functionality to skip a parent
|
|
6175
|
+
__Closest = (el, found = el && el.closest(selector)) =>
|
|
6176
|
+
!el || el === document || el === window
|
|
6177
|
+
? null // standard .closest() returns null for non-found selectors also
|
|
6178
|
+
: found
|
|
6179
|
+
? found // found a selector INside this element
|
|
6180
|
+
: __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
|
|
6181
|
+
) {
|
|
6182
|
+
return __Closest(base);
|
|
6183
|
+
}
|
|
6184
|
+
/* eslint-enable jsdoc/require-param */
|
|
6185
|
+
|
|
6186
|
+
/**
|
|
6187
|
+
* 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.
|
|
6188
|
+
* @param {Object} elem - The element to check.
|
|
6189
|
+
* @param {String} tagName - The name of the Auro component to check for or add as an attribute.
|
|
6190
|
+
* @returns {void}
|
|
6191
|
+
*/
|
|
6192
|
+
handleComponentTagRename(elem, tagName) {
|
|
6193
|
+
const tag = tagName.toLowerCase();
|
|
6194
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
6195
|
+
|
|
6196
|
+
if (elemTag !== tag) {
|
|
6197
|
+
elem.setAttribute(tag, true);
|
|
6198
|
+
}
|
|
6199
|
+
}
|
|
6200
|
+
|
|
6201
|
+
/**
|
|
6202
|
+
* Validates if an element is a specific Auro component.
|
|
6203
|
+
* @param {Object} elem - The element to validate.
|
|
6204
|
+
* @param {String} tagName - The name of the Auro component to check against.
|
|
6205
|
+
* @returns {Boolean} - Returns true if the element is the specified Auro component.
|
|
6206
|
+
*/
|
|
6207
|
+
elementMatch(elem, tagName) {
|
|
6208
|
+
const tag = tagName.toLowerCase();
|
|
6209
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
6210
|
+
|
|
6211
|
+
return elemTag === tag || elem.hasAttribute(tag);
|
|
6212
|
+
}
|
|
6213
|
+
};
|
|
6214
|
+
|
|
6215
|
+
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}}`;
|
|
6216
|
+
|
|
6217
|
+
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}`;
|
|
6218
|
+
|
|
6219
|
+
var tokensCss$1$1 = i$5`:host{--ds-auro-loader-background-color:currentcolor;--ds-auro-loader-border-color:currentcolor;--ds-auro-loader-color:currentcolor}`;
|
|
6220
|
+
|
|
6221
|
+
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
6222
|
+
// See LICENSE in the project root for license information.
|
|
6223
|
+
|
|
6224
|
+
|
|
6225
|
+
class AuroLoader extends i$2 {
|
|
6226
|
+
constructor() {
|
|
6227
|
+
super();
|
|
6228
|
+
|
|
6229
|
+
/**
|
|
6230
|
+
* @private
|
|
6231
|
+
*/
|
|
6232
|
+
this.keys = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
|
6233
|
+
|
|
6234
|
+
/**
|
|
6235
|
+
* @private
|
|
6236
|
+
*/
|
|
6237
|
+
this.mdCount = 3;
|
|
6238
|
+
|
|
6239
|
+
/**
|
|
6240
|
+
* @private
|
|
6241
|
+
*/
|
|
6242
|
+
this.smCount = 2;
|
|
6243
|
+
|
|
6244
|
+
/**
|
|
6245
|
+
* @private
|
|
6246
|
+
*/
|
|
6247
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$2();
|
|
6248
|
+
|
|
6249
|
+
this.orbit = false;
|
|
6250
|
+
this.ringworm = false;
|
|
6251
|
+
this.laser = false;
|
|
6252
|
+
this.pulse = false;
|
|
6253
|
+
}
|
|
6254
|
+
|
|
6255
|
+
// function to define props used within the scope of this component
|
|
6256
|
+
static get properties() {
|
|
6257
|
+
return {
|
|
6258
|
+
|
|
6259
|
+
/**
|
|
6260
|
+
* Sets loader to laser type.
|
|
6261
|
+
*/
|
|
6262
|
+
laser: {
|
|
6263
|
+
type: Boolean,
|
|
6264
|
+
reflect: true
|
|
6265
|
+
},
|
|
6266
|
+
|
|
6267
|
+
/**
|
|
6268
|
+
* Sets loader to orbit type.
|
|
6269
|
+
*/
|
|
6270
|
+
orbit: {
|
|
6271
|
+
type: Boolean,
|
|
6272
|
+
reflect: true
|
|
6273
|
+
},
|
|
6274
|
+
|
|
6275
|
+
/**
|
|
6276
|
+
* Sets loader to pulse type.
|
|
6277
|
+
*/
|
|
6278
|
+
pulse: {
|
|
6279
|
+
type: Boolean,
|
|
6280
|
+
reflect: true
|
|
6281
|
+
},
|
|
6282
|
+
|
|
6283
|
+
/**
|
|
6284
|
+
* Sets loader to ringworm type.
|
|
6285
|
+
*/
|
|
6286
|
+
ringworm: {
|
|
6287
|
+
type: Boolean,
|
|
6288
|
+
reflect: true
|
|
6289
|
+
}
|
|
6290
|
+
};
|
|
6291
|
+
}
|
|
6292
|
+
|
|
6293
|
+
static get styles() {
|
|
6294
|
+
return [
|
|
6295
|
+
i$5`${styleCss$2$1}`,
|
|
6296
|
+
i$5`${colorCss$1$1}`,
|
|
6297
|
+
i$5`${tokensCss$1$1}`
|
|
6298
|
+
];
|
|
6299
|
+
}
|
|
6300
|
+
|
|
6301
|
+
/**
|
|
6302
|
+
* This will register this element with the browser.
|
|
6303
|
+
* @param {string} [name="auro-loader"] - The name of element that you want to register to.
|
|
6304
|
+
*
|
|
6305
|
+
* @example
|
|
6306
|
+
* AuroLoader.register("custom-loader") // this will register this element to <custom-loader/>
|
|
6307
|
+
*
|
|
6308
|
+
*/
|
|
6309
|
+
static register(name = "auro-loader") {
|
|
6310
|
+
AuroLibraryRuntimeUtils$2.prototype.registerComponent(name, AuroLoader);
|
|
6311
|
+
}
|
|
6312
|
+
|
|
6313
|
+
firstUpdated() {
|
|
6314
|
+
// Add the tag name as an attribute if it is different than the component name
|
|
6315
|
+
this.runtimeUtils.handleComponentTagRename(this, 'auro-loader');
|
|
6316
|
+
}
|
|
6317
|
+
|
|
6318
|
+
connectedCallback() {
|
|
6319
|
+
super.connectedCallback();
|
|
6320
|
+
}
|
|
6321
|
+
|
|
6322
|
+
/**
|
|
6323
|
+
* @private
|
|
6324
|
+
* @returns {Array} Numbered array for template map.
|
|
6325
|
+
*/
|
|
6326
|
+
defineTemplate() {
|
|
6327
|
+
let nodes = Array.from(Array(this.mdCount).keys());
|
|
6328
|
+
|
|
6329
|
+
if (this.orbit || this.laser) {
|
|
6330
|
+
nodes = Array.from(Array(this.smCount).keys());
|
|
6331
|
+
} else if (this.ringworm) {
|
|
6332
|
+
nodes = Array.from(Array(0).keys());
|
|
6333
|
+
}
|
|
6334
|
+
|
|
6335
|
+
return nodes;
|
|
6336
|
+
}
|
|
6337
|
+
|
|
6338
|
+
// When using auroElement, use the following attribute and function when hiding content from screen readers.
|
|
6339
|
+
// aria-hidden="${this.hideAudible(this.hiddenAudible)}"
|
|
6340
|
+
|
|
6341
|
+
// function that renders the HTML and CSS into the scope of the component
|
|
6342
|
+
render() {
|
|
6343
|
+
return x`
|
|
6344
|
+
${this.defineTemplate().map((idx) => x`
|
|
6345
|
+
<span part="element" class="loader node-${idx}"></span>
|
|
6346
|
+
`)}
|
|
6347
|
+
|
|
6348
|
+
<div class="no-animation">Loading...</div>
|
|
6349
|
+
|
|
6350
|
+
${this.ringworm ? x`
|
|
6351
|
+
<svg part="element" class="circular" viewBox="25 25 50 50">
|
|
6352
|
+
<circle class="path" cx="50" cy="50" r="20" fill="none"/>
|
|
6353
|
+
</svg>`
|
|
6354
|
+
: ``
|
|
6355
|
+
}
|
|
6356
|
+
`;
|
|
6357
|
+
}
|
|
6358
|
+
}
|
|
6359
|
+
|
|
6360
|
+
var loaderVersion = '5.0.0';
|
|
6361
|
+
|
|
6362
|
+
/* eslint-disable max-lines, curly, jsdoc/no-undefined-types */
|
|
6363
|
+
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
6364
|
+
// See LICENSE in the project root for license information.
|
|
6365
|
+
|
|
6366
|
+
|
|
6367
|
+
/**
|
|
6368
|
+
* @slot - Default slot for the text of the button.
|
|
6369
|
+
* @csspart button - Apply CSS to HTML5 button.
|
|
6370
|
+
* @csspart loader - Apply CSS to auro-loader.
|
|
6371
|
+
* @csspart text - Apply CSS to text slot.
|
|
6372
|
+
* @csspart icon - Apply CSS to icon slot.
|
|
6373
|
+
*/
|
|
6374
|
+
|
|
6375
|
+
/* eslint-disable lit/no-invalid-html, lit/binding-positions */
|
|
6376
|
+
|
|
6377
|
+
const ICON_ONLY_SHAPES = ['circle'];
|
|
6378
|
+
|
|
6379
|
+
/**
|
|
6380
|
+
* AuroButton is a custom element that provides a styled, accessible button with support for various states and form association.
|
|
6381
|
+
* It is designed to be flexible, supporting loading states, icon slots, and integration with HTML5 forms.
|
|
6382
|
+
* @property {'default', 'rounded', 'pill', 'circle'} shape - Defines the shape of the button.
|
|
6383
|
+
* @property {'xs', 'sm', 'md', 'lg', 'xl'} size - Defines the size of the button.
|
|
6384
|
+
* @property {'primary', 'secondary', 'tertiary', 'ghost', 'flat'} variant - Sets the button variant.
|
|
6385
|
+
* @property {'submit', 'reset', 'button'} type - The type of button. Matches HTML5 Button Spec.
|
|
6386
|
+
* @property {boolean} onDark - Indicates if the button is rendered in dark mode.
|
|
6387
|
+
*/
|
|
6388
|
+
class AuroButton extends AuroElement$1 {
|
|
6389
|
+
|
|
6390
|
+
/**
|
|
6391
|
+
* Enables form association for this element.
|
|
6392
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/attachInternals
|
|
6393
|
+
* @returns {boolean} - Returns true to enable form association.
|
|
6394
|
+
*/
|
|
6395
|
+
static get formAssociated() {
|
|
6396
|
+
return true;
|
|
6397
|
+
}
|
|
6398
|
+
|
|
6399
|
+
constructor() {
|
|
6400
|
+
super();
|
|
6401
|
+
this.autofocus = false;
|
|
6402
|
+
this.disabled = false;
|
|
6403
|
+
this.loading = false;
|
|
6404
|
+
this.size = "md";
|
|
6405
|
+
this.shape = "rounded";
|
|
6406
|
+
this.onDark = false;
|
|
6407
|
+
this.fluid = false;
|
|
6408
|
+
this.loadingText = this.loadingText || 'Loading...';
|
|
6409
|
+
|
|
6410
|
+
// Support for HTML5 forms
|
|
6411
|
+
if (typeof this.attachInternals === 'function') {
|
|
6412
|
+
this.internals = this.attachInternals();
|
|
6413
|
+
} else {
|
|
6414
|
+
this.internals = null;
|
|
6415
|
+
|
|
6416
|
+
// eslint-disable-next-line no-console
|
|
6417
|
+
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.');
|
|
6418
|
+
}
|
|
6419
|
+
|
|
6420
|
+
/**
|
|
6421
|
+
* Generate unique names for dependency components.
|
|
6422
|
+
*/
|
|
6423
|
+
const versioning = new AuroDependencyVersioning();
|
|
6424
|
+
|
|
6425
|
+
/**
|
|
6426
|
+
* @private
|
|
6427
|
+
*/
|
|
6428
|
+
this.loaderTag = versioning.generateTag('auro-loader', loaderVersion, AuroLoader);
|
|
6429
|
+
|
|
6430
|
+
/**
|
|
6431
|
+
* @private
|
|
6432
|
+
*/
|
|
6433
|
+
this.buttonHref = undefined;
|
|
6434
|
+
|
|
6435
|
+
/**
|
|
6436
|
+
* @private
|
|
6437
|
+
*/
|
|
6438
|
+
this.buttonTarget = undefined;
|
|
6439
|
+
|
|
6440
|
+
/**
|
|
6441
|
+
* @private
|
|
6442
|
+
*/
|
|
6443
|
+
this.buttonRel = undefined;
|
|
6444
|
+
}
|
|
6445
|
+
|
|
6446
|
+
static get styles() {
|
|
6447
|
+
return [
|
|
6448
|
+
tokensCss$2$1,
|
|
6449
|
+
styleCss$3$1,
|
|
6450
|
+
colorCss$2$1,
|
|
6451
|
+
shapeSize
|
|
6452
|
+
];
|
|
6453
|
+
}
|
|
6454
|
+
|
|
6455
|
+
static get properties() {
|
|
6456
|
+
return {
|
|
6457
|
+
|
|
6458
|
+
...super.properties,
|
|
6459
|
+
|
|
6460
|
+
/**
|
|
6461
|
+
* Override layout since it isn't used in this component.
|
|
6462
|
+
* @private
|
|
6463
|
+
*/
|
|
6464
|
+
layout: {
|
|
6465
|
+
type: Boolean,
|
|
6466
|
+
attribute: false,
|
|
6467
|
+
reflect: false
|
|
6468
|
+
},
|
|
6469
|
+
|
|
6470
|
+
/**
|
|
6471
|
+
* This Boolean attribute lets you specify that the button should have input focus when the page loads, unless overridden by the user.
|
|
6472
|
+
*/
|
|
6473
|
+
autofocus: {
|
|
6474
|
+
type: Boolean,
|
|
6475
|
+
reflect: true
|
|
6476
|
+
},
|
|
6477
|
+
|
|
6478
|
+
/**
|
|
6479
|
+
* If set to true, button will become disabled and not allow for interactions.
|
|
6480
|
+
*/
|
|
6481
|
+
disabled: {
|
|
6482
|
+
type: Boolean,
|
|
6483
|
+
reflect: true
|
|
6484
|
+
},
|
|
6485
|
+
|
|
6486
|
+
/**
|
|
6487
|
+
* Alters the shape of the button to be full width of its parent container.
|
|
6488
|
+
*/
|
|
6489
|
+
fluid: {
|
|
6490
|
+
type: Boolean,
|
|
6491
|
+
reflect: true
|
|
6492
|
+
},
|
|
6493
|
+
|
|
6494
|
+
/**
|
|
6495
|
+
* If set to true button text will be replaced with `auro-loader` and become disabled.
|
|
6496
|
+
*/
|
|
6497
|
+
loading: {
|
|
6498
|
+
type: Boolean,
|
|
6499
|
+
reflect: true
|
|
6500
|
+
},
|
|
6501
|
+
|
|
6502
|
+
/**
|
|
6503
|
+
* 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.
|
|
6504
|
+
*/
|
|
6505
|
+
loadingText: {
|
|
6506
|
+
type: String
|
|
6507
|
+
},
|
|
6508
|
+
|
|
6509
|
+
/**
|
|
6510
|
+
* Populates `tabindex` to define the focusable sequence in keyboard navigation.
|
|
6511
|
+
*/
|
|
6512
|
+
tIndex: {
|
|
6513
|
+
type: String,
|
|
6514
|
+
reflect: true
|
|
6515
|
+
},
|
|
6516
|
+
|
|
6517
|
+
/**
|
|
6518
|
+
* Populates `tabindex` to define the focusable sequence in keyboard navigation.
|
|
6519
|
+
* Must be used with "." to ensure the host element does not retain a reference to the `tabindex` attribute.
|
|
6520
|
+
* Example: `<auro-button .tabindex="${this.disabled ? '-1' : '0'}"></auro-button>`
|
|
6521
|
+
*/
|
|
6522
|
+
tabindex: {
|
|
6523
|
+
type: String,
|
|
6524
|
+
reflect: false
|
|
6525
|
+
},
|
|
6526
|
+
|
|
6527
|
+
/**
|
|
6528
|
+
* Sets title attribute. The information is most often shown as a tooltip text when the mouse moves over the element.
|
|
6529
|
+
*/
|
|
6530
|
+
title: {
|
|
6531
|
+
type: String,
|
|
6532
|
+
reflect: true
|
|
6533
|
+
},
|
|
6534
|
+
|
|
6535
|
+
/**
|
|
6536
|
+
* The type of the button. Possible values are: `submit`, `reset`, `button`.
|
|
6537
|
+
*/
|
|
6538
|
+
type: {
|
|
6539
|
+
type: String,
|
|
6540
|
+
reflect: true
|
|
6541
|
+
},
|
|
6542
|
+
|
|
6543
|
+
/**
|
|
6544
|
+
* Defines the value associated with the button which is submitted with the form data.
|
|
6545
|
+
*/
|
|
6546
|
+
value: {
|
|
6547
|
+
type: String,
|
|
6548
|
+
reflect: true
|
|
6549
|
+
},
|
|
6550
|
+
|
|
6551
|
+
/**
|
|
6552
|
+
* Sets button variant option.
|
|
6553
|
+
* @default primary
|
|
6554
|
+
*/
|
|
6555
|
+
variant: {
|
|
6556
|
+
type: String,
|
|
6557
|
+
reflect: true
|
|
6558
|
+
},
|
|
6559
|
+
|
|
6560
|
+
/**
|
|
6561
|
+
* @private
|
|
6562
|
+
*/
|
|
6563
|
+
buttonHref: {
|
|
6564
|
+
type: String,
|
|
6565
|
+
},
|
|
6566
|
+
|
|
6567
|
+
/**
|
|
6568
|
+
* @private
|
|
6569
|
+
*/
|
|
6570
|
+
buttonTarget: {
|
|
6571
|
+
type: String,
|
|
6572
|
+
},
|
|
6573
|
+
|
|
6574
|
+
/**
|
|
6575
|
+
* @private
|
|
6576
|
+
*/
|
|
6577
|
+
buttonRel: {
|
|
6578
|
+
type: String,
|
|
6579
|
+
},
|
|
6580
|
+
};
|
|
6581
|
+
}
|
|
6582
|
+
|
|
6583
|
+
/**
|
|
6584
|
+
* This will register this element with the browser.
|
|
6585
|
+
* @param {string} [name="auro-button"] - The name of element that you want to register to.
|
|
6586
|
+
*
|
|
6587
|
+
* @example
|
|
6588
|
+
* AuroButton.register("custom-button") // this will register this element to <custom-button/>
|
|
6589
|
+
*
|
|
6590
|
+
*/
|
|
6591
|
+
static register(name = "auro-button") {
|
|
6592
|
+
AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroButton);
|
|
6593
|
+
}
|
|
6594
|
+
|
|
6595
|
+
/**
|
|
6596
|
+
* Internal method to apply focus to the HTML5 button.
|
|
6597
|
+
* @private
|
|
6598
|
+
* @returns {void}
|
|
6599
|
+
*/
|
|
6600
|
+
focus() {
|
|
6601
|
+
this.renderRoot.querySelector('button').focus();
|
|
6602
|
+
}
|
|
6603
|
+
|
|
6604
|
+
/**
|
|
6605
|
+
* Submits the form that this button is associated with.
|
|
6606
|
+
* @private
|
|
6607
|
+
* @returns {void}
|
|
6608
|
+
*/
|
|
6609
|
+
surfaceSubmitEvent() {
|
|
6610
|
+
if (this.form) {
|
|
6611
|
+
this.form.requestSubmit();
|
|
6612
|
+
}
|
|
6613
|
+
}
|
|
6614
|
+
|
|
6615
|
+
/**
|
|
6616
|
+
* Returns the form element that this button is associated with.
|
|
6617
|
+
* @private
|
|
6618
|
+
* @returns {HTMLFormElement | null}
|
|
6619
|
+
*/
|
|
6620
|
+
get form() {
|
|
6621
|
+
return this.internals ? this.internals.form : null;
|
|
6622
|
+
}
|
|
6623
|
+
|
|
6624
|
+
/**
|
|
6625
|
+
* @private
|
|
6626
|
+
* @returns {Boolean}
|
|
6627
|
+
*/
|
|
6628
|
+
get hideText() {
|
|
6629
|
+
return ICON_ONLY_SHAPES.includes(this.shape);
|
|
6630
|
+
}
|
|
6631
|
+
|
|
6632
|
+
/**
|
|
6633
|
+
* Returns the current value of the projected `aria-label` attribute or undefined if not set.
|
|
6634
|
+
* @returns {string | undefined}
|
|
6635
|
+
* @private
|
|
6636
|
+
*/
|
|
6637
|
+
get currentAriaLabel() {
|
|
6638
|
+
if (!this.attributeWatcher) return undefined;
|
|
6639
|
+
|
|
6640
|
+
const ariaLabel = this.attributeWatcher.getObservedAttribute("aria-label");
|
|
6641
|
+
return ariaLabel || undefined;
|
|
6642
|
+
}
|
|
6643
|
+
|
|
6644
|
+
/**
|
|
6645
|
+
* Returns the current value of the projected `aria-labelledby` attribute or undefined if not set.
|
|
6646
|
+
* @returns {string | undefined}
|
|
6647
|
+
* @private
|
|
6648
|
+
*/
|
|
6649
|
+
get currentAriaLabelledBy() {
|
|
6650
|
+
if (!this.attributeWatcher) return undefined;
|
|
6651
|
+
|
|
6652
|
+
const ariaLabelledBy = this.attributeWatcher.getObservedAttribute("aria-labelledby");
|
|
6653
|
+
return ariaLabelledBy || undefined;
|
|
6654
|
+
}
|
|
6655
|
+
|
|
6656
|
+
/**
|
|
6657
|
+
* Renders the default layout for the button.
|
|
6658
|
+
* @returns {TemplateResult}
|
|
6659
|
+
* @private
|
|
6660
|
+
*/
|
|
6661
|
+
renderLayoutDefault() {
|
|
6662
|
+
const classes = {
|
|
6663
|
+
"util_insetLg--squish": true,
|
|
6664
|
+
"auro-button": true,
|
|
6665
|
+
"icon-only": this.hideText,
|
|
6666
|
+
wrapper: true,
|
|
6667
|
+
loading: this.loading,
|
|
6668
|
+
};
|
|
6669
|
+
|
|
6670
|
+
const tag = this.buttonHref ? i`a` : i`button`;
|
|
6671
|
+
const part = this.buttonHref ? 'link' : 'button';
|
|
6672
|
+
|
|
6673
|
+
return u`
|
|
6674
|
+
<${tag}
|
|
6675
|
+
part="${part}"
|
|
6676
|
+
aria-label="${o(this.loading ? this.loadingText : this.currentAriaLabel || undefined)}"
|
|
6677
|
+
aria-labelledby="${o(this.loading ? undefined : this.currentAriaLabelledBy || undefined)}"
|
|
6678
|
+
tabindex="${o(this.tIndex || this.tabindex)}"
|
|
6679
|
+
?autofocus="${this.autofocus}"
|
|
6680
|
+
class=${e(classes)}
|
|
6681
|
+
?disabled="${this.disabled || this.loading}"
|
|
6682
|
+
?onDark="${this.onDark}"
|
|
6683
|
+
title="${o(this.title ? this.title : undefined)}"
|
|
6684
|
+
name="${o(this.name ? this.name : undefined)}"
|
|
6685
|
+
type="${o(this.type ? this.type : undefined)}"
|
|
6686
|
+
variant="${o(this.variant ? this.variant : undefined)}"
|
|
6687
|
+
.value="${o(this.value ? this.value : undefined)}"
|
|
6688
|
+
@click="${this.type === 'submit' ? this.surfaceSubmitEvent : undefined}"
|
|
6689
|
+
href="${o(this.buttonHref || undefined)}"
|
|
6690
|
+
target="${o(this.buttonTarget || undefined)}"
|
|
6691
|
+
rel="${o(this.buttonRel || undefined)}"
|
|
6692
|
+
>
|
|
6693
|
+
${o(this.loading ? u`<${this.loaderTag} pulse part="loader"></${this.loaderTag}>` : undefined)}
|
|
6694
|
+
|
|
6695
|
+
<span class="contentWrapper">
|
|
6696
|
+
<span class="textSlot" part="text">
|
|
6697
|
+
<slot></slot>
|
|
6698
|
+
</span>
|
|
6699
|
+
</span>
|
|
6700
|
+
</${tag}>
|
|
6701
|
+
`;
|
|
6702
|
+
}
|
|
6703
|
+
|
|
6704
|
+
/**
|
|
6705
|
+
* Renders the layout of the button.
|
|
6706
|
+
* @returns {TemplateResult}
|
|
6707
|
+
* @private
|
|
6708
|
+
*/
|
|
6709
|
+
renderLayout() {
|
|
6710
|
+
return this.renderLayoutDefault();
|
|
6711
|
+
}
|
|
6712
|
+
}
|
|
6713
|
+
|
|
6714
|
+
var buttonVersion = '11.2.1';
|
|
6715
|
+
|
|
6716
|
+
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
6717
|
+
// See LICENSE in the project root for license information.
|
|
6718
|
+
|
|
6719
|
+
|
|
6720
|
+
/**
|
|
6721
|
+
* @attr {Boolean} hidden - If present, the component will be hidden both visually and from screen readers
|
|
6722
|
+
* @attr {Boolean} hiddenVisually - If present, the component will be hidden visually, but still read by screen readers
|
|
6723
|
+
* @attr {Boolean} hiddenAudible - If present, the component will be hidden from screen readers, but seen visually
|
|
6724
|
+
*/
|
|
6725
|
+
|
|
6726
|
+
let AuroElement$2 = class AuroElement extends i$2 {
|
|
6727
|
+
|
|
6728
|
+
// function to define props used within the scope of this component
|
|
6729
|
+
static get properties() {
|
|
6730
|
+
return {
|
|
6731
|
+
hidden: { type: Boolean,
|
|
6732
|
+
reflect: true },
|
|
6733
|
+
hiddenVisually: { type: Boolean,
|
|
6734
|
+
reflect: true },
|
|
6735
|
+
hiddenAudible: { type: Boolean,
|
|
6736
|
+
reflect: true },
|
|
6737
|
+
};
|
|
6738
|
+
}
|
|
6739
|
+
|
|
6740
|
+
/**
|
|
6741
|
+
* @private Function that determines state of aria-hidden
|
|
6742
|
+
*/
|
|
6743
|
+
hideAudible(value) {
|
|
6744
|
+
if (value) {
|
|
6745
|
+
return 'true'
|
|
6746
|
+
}
|
|
6747
|
+
|
|
6748
|
+
return 'false'
|
|
6749
|
+
}
|
|
6750
|
+
};
|
|
6751
|
+
|
|
6752
|
+
var error$1 = {"svg":"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-labelledby=\"error__desc\" class=\"ico_squareLarge\" data-deprecated=\"true\" 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=\"error__desc\">Error alert indicator.</desc><path d=\"m13.047 5.599 6.786 11.586A1.207 1.207 0 0 1 18.786 19H5.214a1.207 1.207 0 0 1-1.047-1.815l6.786-11.586a1.214 1.214 0 0 1 2.094 0m-1.165.87a.23.23 0 0 0-.085.085L5.419 17.442a.232.232 0 0 0 .203.35h12.756a.234.234 0 0 0 .203-.35L12.203 6.554a.236.236 0 0 0-.321-.084M12 15.5a.75.75 0 1 1 0 1.5.75.75 0 0 1 0-1.5m-.024-6.22c.325 0 .589.261.589.583v4.434a.586.586 0 0 1-.589.583.586.586 0 0 1-.588-.583V9.863c0-.322.264-.583.588-.583\"/></svg>"};
|
|
6753
|
+
|
|
6754
|
+
/* eslint-disable no-underscore-dangle, jsdoc/no-undefined-types, jsdoc/require-param-description */
|
|
6755
|
+
|
|
6756
|
+
const _fetchMap$1 = new Map();
|
|
6757
|
+
|
|
6758
|
+
/**
|
|
6759
|
+
* A callback to parse Response body.
|
|
6760
|
+
*
|
|
6761
|
+
* @callback ResponseParser
|
|
6762
|
+
* @param {Fetch.Response} response
|
|
6763
|
+
* @returns {Promise}
|
|
6764
|
+
*/
|
|
6765
|
+
|
|
6766
|
+
/**
|
|
6767
|
+
* A minimal in-memory map to de-duplicate Fetch API media requests.
|
|
6768
|
+
*
|
|
6769
|
+
* @param {String} uri
|
|
6770
|
+
* @param {Object} [options={}]
|
|
6771
|
+
* @param {ResponseParser} [options.responseParser=(response) => response.text()]
|
|
6772
|
+
* @returns {Promise}
|
|
6773
|
+
*/
|
|
6774
|
+
const cacheFetch$1 = (uri, options = {}) => {
|
|
6775
|
+
const responseParser = options.responseParser || ((response) => response.text());
|
|
6776
|
+
if (!_fetchMap$1.has(uri)) {
|
|
6777
|
+
_fetchMap$1.set(uri, fetch(uri).then(responseParser));
|
|
6778
|
+
}
|
|
6779
|
+
return _fetchMap$1.get(uri);
|
|
6780
|
+
};
|
|
6781
|
+
|
|
6782
|
+
var styleCss$1$1 = 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}`;
|
|
6783
|
+
|
|
6784
|
+
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
6785
|
+
// See LICENSE in the project root for license information.
|
|
6786
|
+
|
|
6787
|
+
|
|
6788
|
+
// See https://git.io/JJ6SJ for "How to document your components using JSDoc"
|
|
5239
6789
|
/**
|
|
5240
6790
|
* @slot - Hidden from visibility, used for a11y if icon description is needed
|
|
5241
6791
|
*/
|
|
5242
6792
|
|
|
5243
6793
|
// build the component class
|
|
5244
|
-
let BaseIcon$1 = class BaseIcon extends AuroElement$
|
|
6794
|
+
let BaseIcon$1 = class BaseIcon extends AuroElement$2 {
|
|
5245
6795
|
constructor() {
|
|
5246
6796
|
super();
|
|
5247
6797
|
this.onDark = false;
|
|
@@ -5313,9 +6863,79 @@ let BaseIcon$1 = class BaseIcon extends AuroElement$1 {
|
|
|
5313
6863
|
}
|
|
5314
6864
|
};
|
|
5315
6865
|
|
|
5316
|
-
var tokensCss$
|
|
6866
|
+
var tokensCss$3 = 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)}`;
|
|
6867
|
+
|
|
6868
|
+
var colorCss$4 = 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)}`;
|
|
6869
|
+
|
|
6870
|
+
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
6871
|
+
// See LICENSE in the project root for license information.
|
|
6872
|
+
|
|
6873
|
+
// ---------------------------------------------------------------------
|
|
6874
|
+
|
|
6875
|
+
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
6876
|
+
|
|
6877
|
+
let AuroLibraryRuntimeUtils$1$1 = class AuroLibraryRuntimeUtils {
|
|
6878
|
+
|
|
6879
|
+
/* eslint-disable jsdoc/require-param */
|
|
6880
|
+
|
|
6881
|
+
/**
|
|
6882
|
+
* This will register a new custom element with the browser.
|
|
6883
|
+
* @param {String} name - The name of the custom element.
|
|
6884
|
+
* @param {Object} componentClass - The class to register as a custom element.
|
|
6885
|
+
* @returns {void}
|
|
6886
|
+
*/
|
|
6887
|
+
registerComponent(name, componentClass) {
|
|
6888
|
+
if (!customElements.get(name)) {
|
|
6889
|
+
customElements.define(name, class extends componentClass {});
|
|
6890
|
+
}
|
|
6891
|
+
}
|
|
6892
|
+
|
|
6893
|
+
/**
|
|
6894
|
+
* Finds and returns the closest HTML Element based on a selector.
|
|
6895
|
+
* @returns {void}
|
|
6896
|
+
*/
|
|
6897
|
+
closestElement(
|
|
6898
|
+
selector, // selector like in .closest()
|
|
6899
|
+
base = this, // extra functionality to skip a parent
|
|
6900
|
+
__Closest = (el, found = el && el.closest(selector)) =>
|
|
6901
|
+
!el || el === document || el === window
|
|
6902
|
+
? null // standard .closest() returns null for non-found selectors also
|
|
6903
|
+
: found
|
|
6904
|
+
? found // found a selector INside this element
|
|
6905
|
+
: __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
|
|
6906
|
+
) {
|
|
6907
|
+
return __Closest(base);
|
|
6908
|
+
}
|
|
6909
|
+
/* eslint-enable jsdoc/require-param */
|
|
6910
|
+
|
|
6911
|
+
/**
|
|
6912
|
+
* 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.
|
|
6913
|
+
* @param {Object} elem - The element to check.
|
|
6914
|
+
* @param {String} tagName - The name of the Auro component to check for or add as an attribute.
|
|
6915
|
+
* @returns {void}
|
|
6916
|
+
*/
|
|
6917
|
+
handleComponentTagRename(elem, tagName) {
|
|
6918
|
+
const tag = tagName.toLowerCase();
|
|
6919
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
6920
|
+
|
|
6921
|
+
if (elemTag !== tag) {
|
|
6922
|
+
elem.setAttribute(tag, true);
|
|
6923
|
+
}
|
|
6924
|
+
}
|
|
6925
|
+
|
|
6926
|
+
/**
|
|
6927
|
+
* Validates if an element is a specific Auro component.
|
|
6928
|
+
* @param {Object} elem - The element to validate.
|
|
6929
|
+
* @param {String} tagName - The name of the Auro component to check against.
|
|
6930
|
+
* @returns {Boolean} - Returns true if the element is the specified Auro component.
|
|
6931
|
+
*/
|
|
6932
|
+
elementMatch(elem, tagName) {
|
|
6933
|
+
const tag = tagName.toLowerCase();
|
|
6934
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
5317
6935
|
|
|
5318
|
-
|
|
6936
|
+
return elemTag === tag || elem.hasAttribute(tag);
|
|
6937
|
+
}
|
|
6938
|
+
};
|
|
5319
6939
|
|
|
5320
6940
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
5321
6941
|
// See LICENSE in the project root for license information.
|
|
@@ -5336,7 +6956,7 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
|
|
|
5336
6956
|
*/
|
|
5337
6957
|
privateDefaults() {
|
|
5338
6958
|
this.uri = 'https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist';
|
|
5339
|
-
this.runtimeUtils = new AuroLibraryRuntimeUtils();
|
|
6959
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$1$1();
|
|
5340
6960
|
}
|
|
5341
6961
|
|
|
5342
6962
|
// function to define props used within the scope of this component
|
|
@@ -5403,9 +7023,9 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
|
|
|
5403
7023
|
static get styles() {
|
|
5404
7024
|
return [
|
|
5405
7025
|
super.styles,
|
|
5406
|
-
i$5`${tokensCss$
|
|
7026
|
+
i$5`${tokensCss$3}`,
|
|
5407
7027
|
i$5`${styleCss$1$1}`,
|
|
5408
|
-
i$5`${colorCss$
|
|
7028
|
+
i$5`${colorCss$4}`
|
|
5409
7029
|
];
|
|
5410
7030
|
}
|
|
5411
7031
|
|
|
@@ -5418,7 +7038,7 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
|
|
|
5418
7038
|
*
|
|
5419
7039
|
*/
|
|
5420
7040
|
static register(name = "auro-icon") {
|
|
5421
|
-
AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroIcon);
|
|
7041
|
+
AuroLibraryRuntimeUtils$1$1.prototype.registerComponent(name, AuroIcon);
|
|
5422
7042
|
}
|
|
5423
7043
|
|
|
5424
7044
|
connectedCallback() {
|
|
@@ -5439,8 +7059,12 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
|
|
|
5439
7059
|
async firstUpdated() {
|
|
5440
7060
|
await super.firstUpdated();
|
|
5441
7061
|
|
|
5442
|
-
|
|
5443
|
-
|
|
7062
|
+
/**
|
|
7063
|
+
* icons provide a description for screen readers. Icon only instances Auro-button
|
|
7064
|
+
* depend on this description to provide context for the user using a screen reader.
|
|
7065
|
+
* Removes the SVG description for screen reader if ariaHidden is set to true.
|
|
7066
|
+
*/
|
|
7067
|
+
if (this.hasAttribute('ariaHidden') && this.svg) {
|
|
5444
7068
|
const svgDesc = this.svg.querySelector('desc');
|
|
5445
7069
|
|
|
5446
7070
|
if (svgDesc) {
|
|
@@ -5461,32 +7085,102 @@ let AuroIcon$1 = class AuroIcon extends BaseIcon$1 {
|
|
|
5461
7085
|
'svgWrapper': true,
|
|
5462
7086
|
};
|
|
5463
7087
|
|
|
5464
|
-
return x`
|
|
5465
|
-
<div class="componentWrapper">
|
|
5466
|
-
<div
|
|
5467
|
-
class="${e(svgClasses)}"
|
|
5468
|
-
title="${o(this.title || undefined)}">
|
|
5469
|
-
<span aria-hidden="${o(this.ariaHidden || true)}" part="svg">
|
|
5470
|
-
${this.customSvg ? x`
|
|
5471
|
-
<slot name="svg"></slot>
|
|
5472
|
-
` : x`
|
|
5473
|
-
${this.svg}
|
|
5474
|
-
`
|
|
5475
|
-
}
|
|
5476
|
-
</span>
|
|
5477
|
-
</div>
|
|
7088
|
+
return x`
|
|
7089
|
+
<div class="componentWrapper">
|
|
7090
|
+
<div
|
|
7091
|
+
class="${e(svgClasses)}"
|
|
7092
|
+
title="${o(this.title || undefined)}">
|
|
7093
|
+
<span aria-hidden="${o(this.ariaHidden || true)}" part="svg">
|
|
7094
|
+
${this.customSvg ? x`
|
|
7095
|
+
<slot name="svg"></slot>
|
|
7096
|
+
` : x`
|
|
7097
|
+
${this.svg}
|
|
7098
|
+
`
|
|
7099
|
+
}
|
|
7100
|
+
</span>
|
|
7101
|
+
</div>
|
|
7102
|
+
|
|
7103
|
+
<div class="${e(labelClasses)}">
|
|
7104
|
+
<slot></slot>
|
|
7105
|
+
</div>
|
|
7106
|
+
</div>
|
|
7107
|
+
`;
|
|
7108
|
+
}
|
|
7109
|
+
};
|
|
7110
|
+
|
|
7111
|
+
var iconVersion$1 = '8.0.4';
|
|
7112
|
+
|
|
7113
|
+
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
7114
|
+
// See LICENSE in the project root for license information.
|
|
7115
|
+
|
|
7116
|
+
// ---------------------------------------------------------------------
|
|
7117
|
+
|
|
7118
|
+
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
7119
|
+
|
|
7120
|
+
let AuroLibraryRuntimeUtils$4 = class AuroLibraryRuntimeUtils {
|
|
7121
|
+
|
|
7122
|
+
/* eslint-disable jsdoc/require-param */
|
|
7123
|
+
|
|
7124
|
+
/**
|
|
7125
|
+
* This will register a new custom element with the browser.
|
|
7126
|
+
* @param {String} name - The name of the custom element.
|
|
7127
|
+
* @param {Object} componentClass - The class to register as a custom element.
|
|
7128
|
+
* @returns {void}
|
|
7129
|
+
*/
|
|
7130
|
+
registerComponent(name, componentClass) {
|
|
7131
|
+
if (!customElements.get(name)) {
|
|
7132
|
+
customElements.define(name, class extends componentClass {});
|
|
7133
|
+
}
|
|
7134
|
+
}
|
|
7135
|
+
|
|
7136
|
+
/**
|
|
7137
|
+
* Finds and returns the closest HTML Element based on a selector.
|
|
7138
|
+
* @returns {void}
|
|
7139
|
+
*/
|
|
7140
|
+
closestElement(
|
|
7141
|
+
selector, // selector like in .closest()
|
|
7142
|
+
base = this, // extra functionality to skip a parent
|
|
7143
|
+
__Closest = (el, found = el && el.closest(selector)) =>
|
|
7144
|
+
!el || el === document || el === window
|
|
7145
|
+
? null // standard .closest() returns null for non-found selectors also
|
|
7146
|
+
: found
|
|
7147
|
+
? found // found a selector INside this element
|
|
7148
|
+
: __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
|
|
7149
|
+
) {
|
|
7150
|
+
return __Closest(base);
|
|
7151
|
+
}
|
|
7152
|
+
/* eslint-enable jsdoc/require-param */
|
|
7153
|
+
|
|
7154
|
+
/**
|
|
7155
|
+
* 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.
|
|
7156
|
+
* @param {Object} elem - The element to check.
|
|
7157
|
+
* @param {String} tagName - The name of the Auro component to check for or add as an attribute.
|
|
7158
|
+
* @returns {void}
|
|
7159
|
+
*/
|
|
7160
|
+
handleComponentTagRename(elem, tagName) {
|
|
7161
|
+
const tag = tagName.toLowerCase();
|
|
7162
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
7163
|
+
|
|
7164
|
+
if (elemTag !== tag) {
|
|
7165
|
+
elem.setAttribute(tag, true);
|
|
7166
|
+
}
|
|
7167
|
+
}
|
|
7168
|
+
|
|
7169
|
+
/**
|
|
7170
|
+
* Validates if an element is a specific Auro component.
|
|
7171
|
+
* @param {Object} elem - The element to validate.
|
|
7172
|
+
* @param {String} tagName - The name of the Auro component to check against.
|
|
7173
|
+
* @returns {Boolean} - Returns true if the element is the specified Auro component.
|
|
7174
|
+
*/
|
|
7175
|
+
elementMatch(elem, tagName) {
|
|
7176
|
+
const tag = tagName.toLowerCase();
|
|
7177
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
5478
7178
|
|
|
5479
|
-
|
|
5480
|
-
<slot></slot>
|
|
5481
|
-
</div>
|
|
5482
|
-
</div>
|
|
5483
|
-
`;
|
|
7179
|
+
return elemTag === tag || elem.hasAttribute(tag);
|
|
5484
7180
|
}
|
|
5485
7181
|
};
|
|
5486
7182
|
|
|
5487
|
-
var
|
|
5488
|
-
|
|
5489
|
-
var styleCss$4 = 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)}`;
|
|
7183
|
+
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)}`;
|
|
5490
7184
|
|
|
5491
7185
|
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
5492
7186
|
// See LICENSE in the project root for license information.
|
|
@@ -5515,7 +7209,7 @@ class AuroHeader extends i$2 {
|
|
|
5515
7209
|
/**
|
|
5516
7210
|
* @private
|
|
5517
7211
|
*/
|
|
5518
|
-
this.runtimeUtils = new AuroLibraryRuntimeUtils();
|
|
7212
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$4();
|
|
5519
7213
|
}
|
|
5520
7214
|
|
|
5521
7215
|
// function to define props used within the scope of this component
|
|
@@ -5533,7 +7227,7 @@ class AuroHeader extends i$2 {
|
|
|
5533
7227
|
}
|
|
5534
7228
|
|
|
5535
7229
|
static get styles() {
|
|
5536
|
-
return [styleCss$
|
|
7230
|
+
return [styleCss$5];
|
|
5537
7231
|
}
|
|
5538
7232
|
|
|
5539
7233
|
/**
|
|
@@ -5545,7 +7239,7 @@ class AuroHeader extends i$2 {
|
|
|
5545
7239
|
*
|
|
5546
7240
|
*/
|
|
5547
7241
|
static register(name = "auro-header") {
|
|
5548
|
-
AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroHeader);
|
|
7242
|
+
AuroLibraryRuntimeUtils$4.prototype.registerComponent(name, AuroHeader);
|
|
5549
7243
|
}
|
|
5550
7244
|
|
|
5551
7245
|
firstUpdated() {
|
|
@@ -5641,17 +7335,30 @@ class AuroBibtemplate extends i$2 {
|
|
|
5641
7335
|
|
|
5642
7336
|
this.large = false;
|
|
5643
7337
|
|
|
5644
|
-
AuroLibraryRuntimeUtils.prototype.handleComponentTagRename(this, 'auro-bibtemplate');
|
|
7338
|
+
AuroLibraryRuntimeUtils$3.prototype.handleComponentTagRename(this, 'auro-bibtemplate');
|
|
5645
7339
|
|
|
5646
7340
|
const versioning = new AuroDependencyVersioning();
|
|
7341
|
+
|
|
7342
|
+
/**
|
|
7343
|
+
* @private
|
|
7344
|
+
*/
|
|
5647
7345
|
this.iconTag = versioning.generateTag('auro-formkit-bibtemplate-icon', iconVersion$1, AuroIcon$1);
|
|
7346
|
+
|
|
7347
|
+
/**
|
|
7348
|
+
* @private
|
|
7349
|
+
*/
|
|
5648
7350
|
this.headerTag = versioning.generateTag('auro-formkit-bibtemplate-header', headerVersion, AuroHeader);
|
|
7351
|
+
|
|
7352
|
+
/**
|
|
7353
|
+
* @private
|
|
7354
|
+
*/
|
|
7355
|
+
this.buttonTag = versioning.generateTag('auro-formkit-input-button', buttonVersion, AuroButton);
|
|
5649
7356
|
}
|
|
5650
7357
|
|
|
5651
7358
|
static get styles() {
|
|
5652
7359
|
return [
|
|
5653
|
-
colorCss$
|
|
5654
|
-
styleCss$
|
|
7360
|
+
colorCss$3$1,
|
|
7361
|
+
styleCss$4$1,
|
|
5655
7362
|
tokenCss
|
|
5656
7363
|
];
|
|
5657
7364
|
}
|
|
@@ -5680,7 +7387,7 @@ class AuroBibtemplate extends i$2 {
|
|
|
5680
7387
|
*
|
|
5681
7388
|
*/
|
|
5682
7389
|
static register(name = "auro-bibtemplate") {
|
|
5683
|
-
AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroBibtemplate);
|
|
7390
|
+
AuroLibraryRuntimeUtils$3.prototype.registerComponent(name, AuroBibtemplate);
|
|
5684
7391
|
}
|
|
5685
7392
|
|
|
5686
7393
|
/**
|
|
@@ -5720,15 +7427,27 @@ class AuroBibtemplate extends i$2 {
|
|
|
5720
7427
|
this.setAttribute('exportparts', 'bibtemplate:dropdownBibTemplate');
|
|
5721
7428
|
}
|
|
5722
7429
|
|
|
7430
|
+
firstUpdated(changedProperties) {
|
|
7431
|
+
super.firstUpdated(changedProperties);
|
|
7432
|
+
|
|
7433
|
+
this.dispatchEvent(new CustomEvent("auro-bibtemplate-connected", {
|
|
7434
|
+
bubbles: true,
|
|
7435
|
+
composed: true,
|
|
7436
|
+
detail: {
|
|
7437
|
+
element: this
|
|
7438
|
+
}
|
|
7439
|
+
}));
|
|
7440
|
+
}
|
|
7441
|
+
|
|
5723
7442
|
// function that renders the HTML and CSS into the scope of the component
|
|
5724
7443
|
render() {
|
|
5725
7444
|
return u`
|
|
5726
7445
|
<div id="bibTemplate" part="bibtemplate">
|
|
5727
7446
|
${this.isFullscreen ? u`
|
|
5728
7447
|
<div id="headerContainer">
|
|
5729
|
-
|
|
7448
|
+
<${this.buttonTag} id="closeButton" variant="ghost" shape="circle" size="sm" @click="${this.onCloseButtonClick}">
|
|
5730
7449
|
<${this.iconTag} category="interface" name="x-lg"></${this.iconTag}>
|
|
5731
|
-
|
|
7450
|
+
</${this.buttonTag}>
|
|
5732
7451
|
<${this.headerTag} display="${this.large ? 'display' : '600'}" level="3" size="none" id="header" no-margin-block>
|
|
5733
7452
|
<slot name="header"></slot>
|
|
5734
7453
|
</${this.headerTag}>
|
|
@@ -5752,11 +7471,219 @@ class AuroBibtemplate extends i$2 {
|
|
|
5752
7471
|
|
|
5753
7472
|
var bibTemplateVersion = '1.0.0';
|
|
5754
7473
|
|
|
5755
|
-
i$5`:
|
|
7474
|
+
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)}`;
|
|
7475
|
+
|
|
7476
|
+
var styleCss$4 = i$5`.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}`;
|
|
7477
|
+
|
|
7478
|
+
var tokensCss$2 = i$5`:host{--ds-auro-helptext-color: var(--ds-basic-color-texticon-muted, #676767)}`;
|
|
7479
|
+
|
|
7480
|
+
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
7481
|
+
// See LICENSE in the project root for license information.
|
|
7482
|
+
|
|
7483
|
+
// ---------------------------------------------------------------------
|
|
7484
|
+
|
|
7485
|
+
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
7486
|
+
|
|
7487
|
+
let AuroLibraryRuntimeUtils$1 = class AuroLibraryRuntimeUtils {
|
|
7488
|
+
|
|
7489
|
+
/* eslint-disable jsdoc/require-param */
|
|
7490
|
+
|
|
7491
|
+
/**
|
|
7492
|
+
* This will register a new custom element with the browser.
|
|
7493
|
+
* @param {String} name - The name of the custom element.
|
|
7494
|
+
* @param {Object} componentClass - The class to register as a custom element.
|
|
7495
|
+
* @returns {void}
|
|
7496
|
+
*/
|
|
7497
|
+
registerComponent(name, componentClass) {
|
|
7498
|
+
if (!customElements.get(name)) {
|
|
7499
|
+
customElements.define(name, class extends componentClass {});
|
|
7500
|
+
}
|
|
7501
|
+
}
|
|
7502
|
+
|
|
7503
|
+
/**
|
|
7504
|
+
* Finds and returns the closest HTML Element based on a selector.
|
|
7505
|
+
* @returns {void}
|
|
7506
|
+
*/
|
|
7507
|
+
closestElement(
|
|
7508
|
+
selector, // selector like in .closest()
|
|
7509
|
+
base = this, // extra functionality to skip a parent
|
|
7510
|
+
__Closest = (el, found = el && el.closest(selector)) =>
|
|
7511
|
+
!el || el === document || el === window
|
|
7512
|
+
? null // standard .closest() returns null for non-found selectors also
|
|
7513
|
+
: found
|
|
7514
|
+
? found // found a selector INside this element
|
|
7515
|
+
: __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
|
|
7516
|
+
) {
|
|
7517
|
+
return __Closest(base);
|
|
7518
|
+
}
|
|
7519
|
+
/* eslint-enable jsdoc/require-param */
|
|
7520
|
+
|
|
7521
|
+
/**
|
|
7522
|
+
* 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.
|
|
7523
|
+
* @param {Object} elem - The element to check.
|
|
7524
|
+
* @param {String} tagName - The name of the Auro component to check for or add as an attribute.
|
|
7525
|
+
* @returns {void}
|
|
7526
|
+
*/
|
|
7527
|
+
handleComponentTagRename(elem, tagName) {
|
|
7528
|
+
const tag = tagName.toLowerCase();
|
|
7529
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
7530
|
+
|
|
7531
|
+
if (elemTag !== tag) {
|
|
7532
|
+
elem.setAttribute(tag, true);
|
|
7533
|
+
}
|
|
7534
|
+
}
|
|
7535
|
+
|
|
7536
|
+
/**
|
|
7537
|
+
* Validates if an element is a specific Auro component.
|
|
7538
|
+
* @param {Object} elem - The element to validate.
|
|
7539
|
+
* @param {String} tagName - The name of the Auro component to check against.
|
|
7540
|
+
* @returns {Boolean} - Returns true if the element is the specified Auro component.
|
|
7541
|
+
*/
|
|
7542
|
+
elementMatch(elem, tagName) {
|
|
7543
|
+
const tag = tagName.toLowerCase();
|
|
7544
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
7545
|
+
|
|
7546
|
+
return elemTag === tag || elem.hasAttribute(tag);
|
|
7547
|
+
}
|
|
7548
|
+
};
|
|
7549
|
+
|
|
7550
|
+
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
7551
|
+
// See LICENSE in the project root for license information.
|
|
7552
|
+
|
|
7553
|
+
|
|
7554
|
+
/**
|
|
7555
|
+
* Displays help text or error messages within form elements - Internal Use Only.
|
|
7556
|
+
*
|
|
7557
|
+
* @attr { Boolean } large - If declared, make font-size to 1rem(16px).
|
|
7558
|
+
*/
|
|
7559
|
+
class AuroHelpText extends i$2 {
|
|
7560
|
+
|
|
7561
|
+
constructor() {
|
|
7562
|
+
super();
|
|
7563
|
+
|
|
7564
|
+
this.error = false;
|
|
7565
|
+
this.onDark = false;
|
|
7566
|
+
this.hasTextContent = false;
|
|
7567
|
+
|
|
7568
|
+
AuroLibraryRuntimeUtils$1.prototype.handleComponentTagRename(this, 'auro-helptext');
|
|
7569
|
+
}
|
|
7570
|
+
|
|
7571
|
+
static get styles() {
|
|
7572
|
+
return [
|
|
7573
|
+
colorCss$3,
|
|
7574
|
+
styleCss$4,
|
|
7575
|
+
tokensCss$2
|
|
7576
|
+
];
|
|
7577
|
+
}
|
|
7578
|
+
|
|
7579
|
+
// function to define props used within the scope of this component
|
|
7580
|
+
static get properties() {
|
|
7581
|
+
return {
|
|
7582
|
+
|
|
7583
|
+
/**
|
|
7584
|
+
* @private
|
|
7585
|
+
*/
|
|
7586
|
+
slotNodes: {
|
|
7587
|
+
type: Boolean,
|
|
7588
|
+
},
|
|
7589
|
+
|
|
7590
|
+
/**
|
|
7591
|
+
* @private
|
|
7592
|
+
*/
|
|
7593
|
+
hasTextContent: {
|
|
7594
|
+
type: Boolean,
|
|
7595
|
+
},
|
|
7596
|
+
|
|
7597
|
+
/**
|
|
7598
|
+
* If declared, make font color red.
|
|
7599
|
+
*/
|
|
7600
|
+
error: {
|
|
7601
|
+
type: Boolean,
|
|
7602
|
+
reflect: true,
|
|
7603
|
+
},
|
|
7604
|
+
|
|
7605
|
+
/**
|
|
7606
|
+
* If declared, will apply onDark styles.
|
|
7607
|
+
*/
|
|
7608
|
+
onDark: {
|
|
7609
|
+
type: Boolean,
|
|
7610
|
+
reflect: true
|
|
7611
|
+
}
|
|
7612
|
+
};
|
|
7613
|
+
}
|
|
7614
|
+
|
|
7615
|
+
/**
|
|
7616
|
+
* This will register this element with the browser.
|
|
7617
|
+
* @param {string} [name="auro-helptext"] - The name of element that you want to register to.
|
|
7618
|
+
*
|
|
7619
|
+
* @example
|
|
7620
|
+
* AuroCheckbox.register("custom-helptext") // this will register this element to <custom-helptext/>
|
|
7621
|
+
*
|
|
7622
|
+
*/
|
|
7623
|
+
static register(name = "auro-helptext") {
|
|
7624
|
+
AuroLibraryRuntimeUtils$1.prototype.registerComponent(name, AuroHelpText);
|
|
7625
|
+
}
|
|
7626
|
+
|
|
7627
|
+
updated() {
|
|
7628
|
+
this.handleSlotChange();
|
|
7629
|
+
}
|
|
7630
|
+
|
|
7631
|
+
handleSlotChange(event) {
|
|
7632
|
+
if (event) {
|
|
7633
|
+
this.slotNodes = event.target.assignedNodes();
|
|
7634
|
+
}
|
|
7635
|
+
|
|
7636
|
+
this.hasTextContent = this.checkSlotsForContent(this.slotNodes);
|
|
7637
|
+
}
|
|
7638
|
+
|
|
7639
|
+
/**
|
|
7640
|
+
* Checks if any of the provided nodes or their nested slot nodes contain non-empty text content.
|
|
7641
|
+
*
|
|
7642
|
+
* @param {NodeList|Array} nodes - The list of nodes to check for content.
|
|
7643
|
+
* @returns {boolean} - Returns true if any node or nested slot node contains non-empty text content, otherwise false.
|
|
7644
|
+
* @private
|
|
7645
|
+
*/
|
|
7646
|
+
checkSlotsForContent(nodes) {
|
|
7647
|
+
if (!nodes) {
|
|
7648
|
+
return false;
|
|
7649
|
+
}
|
|
7650
|
+
|
|
7651
|
+
return nodes.some((node) => {
|
|
7652
|
+
if (node.textContent.trim()) {
|
|
7653
|
+
return true;
|
|
7654
|
+
}
|
|
7655
|
+
|
|
7656
|
+
if (!node.querySelector) {
|
|
7657
|
+
return false;
|
|
7658
|
+
}
|
|
7659
|
+
|
|
7660
|
+
const nestedSlot = node.tagName === 'SLOT' ? node : node.querySelector('slot');
|
|
7661
|
+
if (!nestedSlot) {
|
|
7662
|
+
return false;
|
|
7663
|
+
}
|
|
7664
|
+
|
|
7665
|
+
const nestedSlotNodes = nestedSlot.assignedNodes();
|
|
7666
|
+
return this.checkSlotsForContent(nestedSlotNodes);
|
|
7667
|
+
});
|
|
7668
|
+
}
|
|
7669
|
+
|
|
7670
|
+
// function that renders the HTML and CSS into the scope of the component
|
|
7671
|
+
render() {
|
|
7672
|
+
return x`
|
|
7673
|
+
<div class="helptext-wrapper" ?visible="${this.hasTextContent}">
|
|
7674
|
+
<slot @slotchange=${this.handleSlotChange}></slot>
|
|
7675
|
+
</div>
|
|
7676
|
+
`;
|
|
7677
|
+
}
|
|
7678
|
+
}
|
|
7679
|
+
|
|
7680
|
+
var helpTextVersion = '1.0.0';
|
|
7681
|
+
|
|
7682
|
+
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)}`;
|
|
5756
7683
|
|
|
5757
7684
|
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)}`;
|
|
5758
7685
|
|
|
5759
|
-
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)}`;
|
|
7686
|
+
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)}`;
|
|
5760
7687
|
|
|
5761
7688
|
// Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
5762
7689
|
// See LICENSE in the project root for license information.
|
|
@@ -5803,9 +7730,9 @@ function arrayConverter(value) {
|
|
|
5803
7730
|
throw new Error('Invalid value: Input must be an array or undefined');
|
|
5804
7731
|
}
|
|
5805
7732
|
|
|
5806
|
-
i$5`:host{display:flex;align-items:center;padding:var(--ds-size-50, 0.25rem) var(--ds-size-
|
|
7733
|
+
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) + 24px + 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) + 24px + 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}`;
|
|
5807
7734
|
|
|
5808
|
-
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)}`;
|
|
7735
|
+
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)}`;
|
|
5809
7736
|
|
|
5810
7737
|
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}`;
|
|
5811
7738
|
|
|
@@ -5813,7 +7740,7 @@ i$5`:host{--ds-auro-icon-color:var(--ds-basic-color-texticon-default, #2a2a2a);-
|
|
|
5813
7740
|
|
|
5814
7741
|
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)}`;
|
|
5815
7742
|
|
|
5816
|
-
var styleCss$3 = i$5
|
|
7743
|
+
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: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:8px}.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 8px 0 24px}:host([layout*=classic]) .triggerContent{padding:0 8px}: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]) *{user-select:none}`;
|
|
5817
7744
|
|
|
5818
7745
|
// Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
5819
7746
|
// See LICENSE in the project root for license information.
|
|
@@ -5826,16 +7753,19 @@ var styleCss$3 = i$5`:focus:not(:focus-visible){outline:3px solid transparent}.u
|
|
|
5826
7753
|
* @slot - Default slot for the menu content.
|
|
5827
7754
|
* @slot bib.fullscreen.headline - Defines the headline to display above menu-options
|
|
5828
7755
|
* @slot label - Defines the content of the label.
|
|
7756
|
+
* @slot {HTMLSlotElement} optionalLabel - Allows overriding the optional display text "(optional)", which appears next to the label.
|
|
5829
7757
|
* @slot helpText - Defines the content of the helpText.
|
|
5830
7758
|
* @slot placeholder - Defines the content of the placeholder to be shown when there is no value
|
|
7759
|
+
* @slot valueText - Dropdown value text display.
|
|
7760
|
+
* @slot displayValue - Allows custom HTML content to display the selected value when select is not focused.
|
|
5831
7761
|
* @event auroSelect-valueSet - Notifies that the component has a new value set.
|
|
5832
|
-
* @event input - Notifies every time the value prop of the element is changed.
|
|
7762
|
+
* @event input - Notifies every time the value prop of the element is changed. The updated `value` and `optionSelected` will be delivered in `detail` object.
|
|
5833
7763
|
* @event auroFormElement-validated - Notifies that the `validity` and `errorMessage` values have changed.
|
|
5834
7764
|
* @csspart helpText - Apply CSS to the help text.
|
|
5835
7765
|
*/
|
|
5836
7766
|
|
|
5837
7767
|
// build the component class
|
|
5838
|
-
class AuroSelect extends
|
|
7768
|
+
class AuroSelect extends AuroElement$4 {
|
|
5839
7769
|
constructor() {
|
|
5840
7770
|
super();
|
|
5841
7771
|
|
|
@@ -5845,12 +7775,25 @@ class AuroSelect extends i$2 {
|
|
|
5845
7775
|
const idSubstrEnd = 8;
|
|
5846
7776
|
const idSubstrStart = 2;
|
|
5847
7777
|
|
|
7778
|
+
this.matchWidth = false;
|
|
7779
|
+
|
|
7780
|
+
// Layout Config
|
|
7781
|
+
this.layout = 'snowflake';
|
|
7782
|
+
this.shape = 'snowflake';
|
|
7783
|
+
this.size = 'xl';
|
|
7784
|
+
|
|
5848
7785
|
// floaterConfig
|
|
5849
7786
|
this.placement = 'bottom-start';
|
|
5850
7787
|
this.offset = 0;
|
|
5851
7788
|
this.noFlip = false;
|
|
5852
7789
|
this.autoPlacement = false;
|
|
5853
7790
|
|
|
7791
|
+
this.forceDisplayValue = false;
|
|
7792
|
+
|
|
7793
|
+
this.layout = 'classic';
|
|
7794
|
+
this.shape = 'classic';
|
|
7795
|
+
this.size = 'xl';
|
|
7796
|
+
|
|
5854
7797
|
/**
|
|
5855
7798
|
* @private
|
|
5856
7799
|
*/
|
|
@@ -5866,7 +7809,7 @@ class AuroSelect extends i$2 {
|
|
|
5866
7809
|
/**
|
|
5867
7810
|
* @private
|
|
5868
7811
|
*/
|
|
5869
|
-
this.runtimeUtils = new AuroLibraryRuntimeUtils$
|
|
7812
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$6();
|
|
5870
7813
|
|
|
5871
7814
|
/**
|
|
5872
7815
|
* Generate unique names for dependency components.
|
|
@@ -5883,10 +7826,25 @@ class AuroSelect extends i$2 {
|
|
|
5883
7826
|
*/
|
|
5884
7827
|
this.bibtemplateTag = versioning.generateTag('auro-formkit-select-bibtemplate', bibTemplateVersion, AuroBibtemplate);
|
|
5885
7828
|
|
|
7829
|
+
/**
|
|
7830
|
+
* @private
|
|
7831
|
+
*/
|
|
7832
|
+
this.helpTextTag = versioning.generateTag('auro-formkit-input-helptext', helpTextVersion, AuroHelpText);
|
|
7833
|
+
|
|
5886
7834
|
/**
|
|
5887
7835
|
* @private
|
|
5888
7836
|
*/
|
|
5889
7837
|
this.isHiddenWhileLoading = false;
|
|
7838
|
+
|
|
7839
|
+
/**
|
|
7840
|
+
* @private
|
|
7841
|
+
*/
|
|
7842
|
+
this.hasFocus = false;
|
|
7843
|
+
|
|
7844
|
+
/**
|
|
7845
|
+
* @private
|
|
7846
|
+
*/
|
|
7847
|
+
this.hasDisplayValueContent = false;
|
|
5890
7848
|
}
|
|
5891
7849
|
|
|
5892
7850
|
/**
|
|
@@ -5900,6 +7858,7 @@ class AuroSelect extends i$2 {
|
|
|
5900
7858
|
this.value = undefined;
|
|
5901
7859
|
this.fullscreenBreakpoint = 'sm';
|
|
5902
7860
|
this.onDark = false;
|
|
7861
|
+
this.isPopoverVisible = false;
|
|
5903
7862
|
}
|
|
5904
7863
|
|
|
5905
7864
|
// This function is to define props used within the scope of this component
|
|
@@ -5916,6 +7875,14 @@ class AuroSelect extends i$2 {
|
|
|
5916
7875
|
reflect: true
|
|
5917
7876
|
},
|
|
5918
7877
|
|
|
7878
|
+
/**
|
|
7879
|
+
* If declared, the label and value will be visually hidden and the displayValue will render 100% of the time.
|
|
7880
|
+
*/
|
|
7881
|
+
forceDisplayValue: {
|
|
7882
|
+
type: Boolean,
|
|
7883
|
+
reflect: true
|
|
7884
|
+
},
|
|
7885
|
+
|
|
5919
7886
|
/**
|
|
5920
7887
|
* If declared, bib's position will be automatically calculated where to appear.
|
|
5921
7888
|
* @default false
|
|
@@ -5934,21 +7901,29 @@ class AuroSelect extends i$2 {
|
|
|
5934
7901
|
},
|
|
5935
7902
|
|
|
5936
7903
|
/**
|
|
5937
|
-
*
|
|
7904
|
+
* @private
|
|
5938
7905
|
*/
|
|
5939
|
-
|
|
5940
|
-
type:
|
|
5941
|
-
reflect:
|
|
7906
|
+
isPopoverVisible: {
|
|
7907
|
+
type: Boolean,
|
|
7908
|
+
reflect: false
|
|
5942
7909
|
},
|
|
5943
7910
|
|
|
5944
7911
|
/**
|
|
5945
|
-
* If
|
|
7912
|
+
* If declared, the popover and trigger will be set to the same width.
|
|
5946
7913
|
*/
|
|
5947
|
-
|
|
7914
|
+
matchWidth: {
|
|
5948
7915
|
type: Boolean,
|
|
5949
7916
|
reflect: true
|
|
5950
7917
|
},
|
|
5951
7918
|
|
|
7919
|
+
/**
|
|
7920
|
+
* The name for the select element.
|
|
7921
|
+
*/
|
|
7922
|
+
name: {
|
|
7923
|
+
type: String,
|
|
7924
|
+
reflect: true
|
|
7925
|
+
},
|
|
7926
|
+
|
|
5952
7927
|
/**
|
|
5953
7928
|
* Defines the screen size breakpoint (`xs`, `sm`, `md`, `lg`, `xl`, `disabled`)
|
|
5954
7929
|
* at which the dropdown switches to fullscreen mode on mobile. `disabled` indicates a dropdown should _never_ enter fullscreen.
|
|
@@ -6042,7 +8017,7 @@ class AuroSelect extends i$2 {
|
|
|
6042
8017
|
* "top" | "right" | "bottom" | "left" |
|
|
6043
8018
|
* "bottom-start" | "top-start" | "top-end" |
|
|
6044
8019
|
* "right-start" | "right-end" | "bottom-end" |
|
|
6045
|
-
* "left-start" | "left-end"
|
|
8020
|
+
* "left-start" | "left-end".
|
|
6046
8021
|
* @default bottom-start
|
|
6047
8022
|
*/
|
|
6048
8023
|
placement: {
|
|
@@ -6122,12 +8097,58 @@ class AuroSelect extends i$2 {
|
|
|
6122
8097
|
type: Boolean,
|
|
6123
8098
|
reflect: true,
|
|
6124
8099
|
attribute: false
|
|
6125
|
-
}
|
|
8100
|
+
},
|
|
8101
|
+
|
|
8102
|
+
/**
|
|
8103
|
+
* @private
|
|
8104
|
+
*/
|
|
8105
|
+
hasFocus: {
|
|
8106
|
+
type: Boolean,
|
|
8107
|
+
reflect: false,
|
|
8108
|
+
attribute: false
|
|
8109
|
+
},
|
|
8110
|
+
|
|
8111
|
+
/**
|
|
8112
|
+
* @private
|
|
8113
|
+
*/
|
|
8114
|
+
hasDisplayValueContent: {
|
|
8115
|
+
type: Boolean,
|
|
8116
|
+
reflect: false,
|
|
8117
|
+
attribute: false
|
|
8118
|
+
},
|
|
6126
8119
|
};
|
|
6127
8120
|
}
|
|
6128
8121
|
|
|
6129
8122
|
static get styles() {
|
|
6130
|
-
return [
|
|
8123
|
+
return [
|
|
8124
|
+
i$5`${shapeSizeCss$1}`,
|
|
8125
|
+
i$5`${tokensCss$5}`,
|
|
8126
|
+
i$5`${styleCss$3}`,
|
|
8127
|
+
];
|
|
8128
|
+
}
|
|
8129
|
+
|
|
8130
|
+
/**
|
|
8131
|
+
* Returns classmap configuration for html5 input labels in all layouts.
|
|
8132
|
+
* @private
|
|
8133
|
+
* @returns {void}
|
|
8134
|
+
*/
|
|
8135
|
+
get commonLabelClasses() {
|
|
8136
|
+
return {
|
|
8137
|
+
'is-disabled': this.disabled,
|
|
8138
|
+
'withValue': this.value && this.value.length > 0,
|
|
8139
|
+
'util_displayHiddenVisually': this.hasDisplayValueContent && !this.hasFocus && this.value && this.value.length > 0
|
|
8140
|
+
};
|
|
8141
|
+
}
|
|
8142
|
+
|
|
8143
|
+
/**
|
|
8144
|
+
* Returns classmap configuration for wrapper elements in each layout.
|
|
8145
|
+
* @private
|
|
8146
|
+
* @returns {object} - Returns classmap.
|
|
8147
|
+
*/
|
|
8148
|
+
get commonWrapperClasses() {
|
|
8149
|
+
return {
|
|
8150
|
+
'wrapper': true
|
|
8151
|
+
};
|
|
6131
8152
|
}
|
|
6132
8153
|
|
|
6133
8154
|
/**
|
|
@@ -6137,11 +8158,28 @@ class AuroSelect extends i$2 {
|
|
|
6137
8158
|
*/
|
|
6138
8159
|
configureDropdown() {
|
|
6139
8160
|
this.dropdown = this.shadowRoot.querySelector(this.dropdownTag._$litStatic$);
|
|
6140
|
-
|
|
8161
|
+
|
|
8162
|
+
this.dropdown.addEventListener('auroDropdown-toggled', () => {
|
|
8163
|
+
this.isPopoverVisible = this.dropdown.isPopoverVisible;
|
|
8164
|
+
|
|
8165
|
+
if (this.dropdown.isPopoverVisible) {
|
|
8166
|
+
// wait til the bib gets fully rendered
|
|
8167
|
+
setTimeout(() => {
|
|
8168
|
+
if (this.dropdown.isBibFullscreen) {
|
|
8169
|
+
// trigger holds the focus since menu is not a focusable element.
|
|
8170
|
+
this.dropdown.trigger.focus();
|
|
8171
|
+
|
|
8172
|
+
// default focus indicator on the first menu option
|
|
8173
|
+
if (this.menu.index < 0) {
|
|
8174
|
+
this.menu.navigateOptions('down');
|
|
8175
|
+
}
|
|
8176
|
+
}
|
|
8177
|
+
});
|
|
8178
|
+
}
|
|
8179
|
+
});
|
|
6141
8180
|
|
|
6142
8181
|
// setting up bibtemplate
|
|
6143
|
-
this.bibtemplate = this.dropdown.querySelector(this.bibtemplateTag._$litStatic$);
|
|
6144
|
-
this.bibtemplate.append(this.menuWrapper);
|
|
8182
|
+
this.bibtemplate = this.dropdown.querySelector(this.bibtemplateTag._$litStatic$);
|
|
6145
8183
|
|
|
6146
8184
|
if (this.customBibWidth) {
|
|
6147
8185
|
this.dropdown.dropdownWidth = this.customBibWidth;
|
|
@@ -6160,7 +8198,7 @@ class AuroSelect extends i$2 {
|
|
|
6160
8198
|
*
|
|
6161
8199
|
*/
|
|
6162
8200
|
static register(name = "auro-select") {
|
|
6163
|
-
AuroLibraryRuntimeUtils$
|
|
8201
|
+
AuroLibraryRuntimeUtils$6.prototype.registerComponent(name, AuroSelect);
|
|
6164
8202
|
}
|
|
6165
8203
|
|
|
6166
8204
|
/**
|
|
@@ -6171,27 +8209,34 @@ class AuroSelect extends i$2 {
|
|
|
6171
8209
|
updateDisplayedValue() {
|
|
6172
8210
|
const triggerContentEl = this.dropdown.querySelector('#triggerFocus');
|
|
6173
8211
|
|
|
6174
|
-
// Clear
|
|
6175
|
-
const
|
|
6176
|
-
|
|
6177
|
-
|
|
6178
|
-
triggerContentEl.appendChild(placeholder);
|
|
8212
|
+
// Clear out old value
|
|
8213
|
+
const valueElem = triggerContentEl.querySelector('#value');
|
|
8214
|
+
if (valueElem) {
|
|
8215
|
+
valueElem.innerHTML = '';
|
|
6179
8216
|
}
|
|
6180
8217
|
|
|
8218
|
+
const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
|
|
8219
|
+
const slottedElements = slot.assignedElements();
|
|
8220
|
+
|
|
8221
|
+
slottedElements.forEach((element) => {
|
|
8222
|
+
element.remove();
|
|
8223
|
+
});
|
|
8224
|
+
|
|
6181
8225
|
// Handle selected options
|
|
6182
8226
|
if (this.optionSelected) {
|
|
6183
|
-
let displayText = '';
|
|
6184
|
-
|
|
6185
8227
|
if (this.multiSelect && this.optionSelected.length > 0) {
|
|
6186
|
-
|
|
6187
|
-
|
|
8228
|
+
const displayText = this.optionSelected.map((option) => option.textContent).join(', ');
|
|
8229
|
+
|
|
8230
|
+
valueElem.textContent = displayText;
|
|
6188
8231
|
} else {
|
|
6189
|
-
|
|
6190
|
-
|
|
8232
|
+
valueElem.innerHTML = this.optionSelected.innerHTML;
|
|
8233
|
+
const displayValueEl = this.optionSelected.querySelector("[slot='displayValue']");
|
|
6191
8234
|
|
|
6192
|
-
|
|
6193
|
-
|
|
6194
|
-
|
|
8235
|
+
if (displayValueEl) {
|
|
8236
|
+
this.appendChild(displayValueEl.cloneNode(true));
|
|
8237
|
+
}
|
|
8238
|
+
this.hasDisplayValueContent = displayValueEl !== null;
|
|
8239
|
+
}
|
|
6195
8240
|
}
|
|
6196
8241
|
|
|
6197
8242
|
this.dropdown.requestUpdate();
|
|
@@ -6213,6 +8258,15 @@ class AuroSelect extends i$2 {
|
|
|
6213
8258
|
return;
|
|
6214
8259
|
}
|
|
6215
8260
|
|
|
8261
|
+
// set menu's default size if there it's not specified.
|
|
8262
|
+
if (!this.menu.getAttribute('size')) {
|
|
8263
|
+
this.menu.setAttribute('size', this.layout !== 'emphasized' ? 'md' : this.size);
|
|
8264
|
+
}
|
|
8265
|
+
|
|
8266
|
+
if (!this.getAttribute('shape')) {
|
|
8267
|
+
this.menu.setAttribute('shape', this.layout === 'classic' ? 'box' : this.shape);
|
|
8268
|
+
}
|
|
8269
|
+
|
|
6216
8270
|
if (this.multiSelect) {
|
|
6217
8271
|
this.menu.multiSelect = this.multiSelect;
|
|
6218
8272
|
}
|
|
@@ -6270,50 +8324,60 @@ class AuroSelect extends i$2 {
|
|
|
6270
8324
|
* @returns {void}
|
|
6271
8325
|
*/
|
|
6272
8326
|
configureSelect() {
|
|
6273
|
-
// inject menu into menuWrapper
|
|
6274
|
-
this.menuWrapper.append(this.menu);
|
|
6275
8327
|
|
|
6276
8328
|
this.addEventListener('keydown', (evt) => {
|
|
6277
|
-
|
|
6278
|
-
|
|
8329
|
+
// when the focus is on trigger not on close button
|
|
8330
|
+
if (this.dropdown.shadowRoot.activeElement === this.dropdown.trigger) {
|
|
8331
|
+
if (evt.key === 'ArrowUp') {
|
|
8332
|
+
evt.preventDefault();
|
|
6279
8333
|
|
|
6280
|
-
|
|
8334
|
+
this.dropdown.show();
|
|
6281
8335
|
|
|
6282
|
-
|
|
6283
|
-
|
|
8336
|
+
if (this.dropdown.isPopoverVisible) {
|
|
8337
|
+
this.menu.navigateOptions('up');
|
|
8338
|
+
}
|
|
8339
|
+
|
|
8340
|
+
return;
|
|
6284
8341
|
}
|
|
6285
8342
|
|
|
6286
|
-
|
|
6287
|
-
|
|
8343
|
+
if (evt.key === 'ArrowDown') {
|
|
8344
|
+
evt.preventDefault();
|
|
6288
8345
|
|
|
6289
|
-
|
|
6290
|
-
evt.preventDefault();
|
|
8346
|
+
this.dropdown.show();
|
|
6291
8347
|
|
|
6292
|
-
|
|
8348
|
+
if (this.dropdown.isPopoverVisible) {
|
|
8349
|
+
this.menu.navigateOptions('down');
|
|
8350
|
+
}
|
|
6293
8351
|
|
|
6294
|
-
|
|
6295
|
-
this.menu.navigateOptions('down');
|
|
8352
|
+
return;
|
|
6296
8353
|
}
|
|
6297
8354
|
|
|
6298
|
-
|
|
6299
|
-
|
|
8355
|
+
if (evt.key === 'Enter') {
|
|
8356
|
+
if (!this.dropdown.isPopoverVisible) {
|
|
8357
|
+
evt.preventDefault();
|
|
8358
|
+
this.menu.makeSelection();
|
|
8359
|
+
}
|
|
6300
8360
|
|
|
6301
|
-
|
|
6302
|
-
if (!this.dropdown.isPopoverVisible) {
|
|
6303
|
-
evt.preventDefault();
|
|
6304
|
-
this.menu.makeSelection();
|
|
8361
|
+
return;
|
|
6305
8362
|
}
|
|
6306
|
-
|
|
6307
|
-
return;
|
|
6308
8363
|
}
|
|
6309
8364
|
|
|
6310
|
-
if (evt.key === 'Tab') {
|
|
8365
|
+
if (evt.key === 'Tab' && this.dropdown.isPopoverVisible) {
|
|
6311
8366
|
if (this.dropdown.isBibFullscreen) {
|
|
6312
8367
|
evt.preventDefault();
|
|
8368
|
+
|
|
8369
|
+
// when the focus is on trigger not on close button
|
|
8370
|
+
if (this.dropdown.shadowRoot.activeElement === this.dropdown.trigger) {
|
|
8371
|
+
// `dropdown.focus` will move focus to the first focusable element in bib when it's open,
|
|
8372
|
+
// when bib it not open, it will focus onto trigger.
|
|
8373
|
+
this.dropdown.focus();
|
|
8374
|
+
} else {
|
|
8375
|
+
// when close button has the focus, move focus back to the trigger
|
|
8376
|
+
this.dropdown.trigger.focus();
|
|
8377
|
+
}
|
|
6313
8378
|
} else {
|
|
6314
8379
|
this.dropdown.hide();
|
|
6315
8380
|
}
|
|
6316
|
-
|
|
6317
8381
|
return;
|
|
6318
8382
|
}
|
|
6319
8383
|
|
|
@@ -6325,6 +8389,7 @@ class AuroSelect extends i$2 {
|
|
|
6325
8389
|
|
|
6326
8390
|
this.addEventListener('blur', () => {
|
|
6327
8391
|
this.validation.validate(this);
|
|
8392
|
+
this.hasFocus = false;
|
|
6328
8393
|
});
|
|
6329
8394
|
}
|
|
6330
8395
|
|
|
@@ -6400,6 +8465,7 @@ class AuroSelect extends i$2 {
|
|
|
6400
8465
|
*/
|
|
6401
8466
|
handleFocusin() {
|
|
6402
8467
|
|
|
8468
|
+
this.hasFocus = true;
|
|
6403
8469
|
this.touched = true;
|
|
6404
8470
|
}
|
|
6405
8471
|
|
|
@@ -6476,17 +8542,32 @@ class AuroSelect extends i$2 {
|
|
|
6476
8542
|
// Add the tag name as an attribute if it is different than the component name
|
|
6477
8543
|
this.runtimeUtils.handleComponentTagRename(this, 'auro-select');
|
|
6478
8544
|
|
|
6479
|
-
this.configureMenu();
|
|
6480
8545
|
this.configureDropdown();
|
|
8546
|
+
this.configureMenu();
|
|
6481
8547
|
this.configureSelect();
|
|
6482
8548
|
|
|
6483
8549
|
// Set the initial value in auro-menu if defined
|
|
6484
8550
|
if (this.hasAttribute('value') && this.getAttribute('value').length > 0) {
|
|
6485
8551
|
this.value = this.multiSelect ? arrayConverter(this.getAttribute('value')) : this.getAttribute('value');
|
|
6486
|
-
this.menu
|
|
8552
|
+
if (this.menu) {
|
|
8553
|
+
this.menu.value = this.value;
|
|
8554
|
+
}
|
|
6487
8555
|
}
|
|
6488
8556
|
}
|
|
6489
8557
|
|
|
8558
|
+
/**
|
|
8559
|
+
* Update the menu value. With checks for menu existence. Awaits value update.
|
|
8560
|
+
* @param {string} value - The value to set in the menu.
|
|
8561
|
+
* @returns void
|
|
8562
|
+
* @private
|
|
8563
|
+
*/
|
|
8564
|
+
async updateMenuValue(value) {
|
|
8565
|
+
if (!this.menu) return;
|
|
8566
|
+
|
|
8567
|
+
this.menu.value = value;
|
|
8568
|
+
await this.menu.updateComplete;
|
|
8569
|
+
}
|
|
8570
|
+
|
|
6490
8571
|
async updated(changedProperties) {
|
|
6491
8572
|
if (changedProperties.has('multiSelect')) {
|
|
6492
8573
|
this.clearSelection();
|
|
@@ -6496,14 +8577,13 @@ class AuroSelect extends i$2 {
|
|
|
6496
8577
|
if (this.value) {
|
|
6497
8578
|
this.value = this.multiSelect ? arrayConverter(this.value) : this.value;
|
|
6498
8579
|
|
|
6499
|
-
this.
|
|
6500
|
-
|
|
6501
|
-
// Wait for menu to finish updating its value
|
|
6502
|
-
await this.menu.updateComplete;
|
|
8580
|
+
await this.updateMenuValue(this.value);
|
|
6503
8581
|
|
|
6504
|
-
|
|
8582
|
+
if (this.menu) {
|
|
8583
|
+
this.optionSelected = this.menu.optionSelected;
|
|
8584
|
+
}
|
|
6505
8585
|
} else {
|
|
6506
|
-
this.
|
|
8586
|
+
await this.updateMenuValue(undefined);
|
|
6507
8587
|
}
|
|
6508
8588
|
|
|
6509
8589
|
this._updateNativeSelect();
|
|
@@ -6520,6 +8600,10 @@ class AuroSelect extends i$2 {
|
|
|
6520
8600
|
bubbles: true,
|
|
6521
8601
|
cancelable: true,
|
|
6522
8602
|
composed: true,
|
|
8603
|
+
detail: {
|
|
8604
|
+
optionSelected: this.optionSelected,
|
|
8605
|
+
value: this.value
|
|
8606
|
+
}
|
|
6523
8607
|
}));
|
|
6524
8608
|
}
|
|
6525
8609
|
|
|
@@ -6530,6 +8614,14 @@ class AuroSelect extends i$2 {
|
|
|
6530
8614
|
if (changedProperties.has('error')) {
|
|
6531
8615
|
this.validate(true);
|
|
6532
8616
|
}
|
|
8617
|
+
|
|
8618
|
+
if (changedProperties.has('shape') && this.menu) {
|
|
8619
|
+
this.menu.setAttribute('shape', this.layout === 'classic' ? 'box' : this.shape);
|
|
8620
|
+
}
|
|
8621
|
+
|
|
8622
|
+
if (changedProperties.has('size') && this.menu) {
|
|
8623
|
+
this.menu.setAttribute('size', this.layout !== 'emphasized' ? 'md' : this.size);
|
|
8624
|
+
}
|
|
6533
8625
|
}
|
|
6534
8626
|
|
|
6535
8627
|
/**
|
|
@@ -6554,53 +8646,400 @@ class AuroSelect extends i$2 {
|
|
|
6554
8646
|
* Validates value.
|
|
6555
8647
|
* @param {boolean} [force=false] - Whether to force validation.
|
|
6556
8648
|
*/
|
|
6557
|
-
validate(force = false) {
|
|
6558
|
-
this.validation.validate(this, force);
|
|
8649
|
+
validate(force = false) {
|
|
8650
|
+
this.validation.validate(this, force);
|
|
8651
|
+
}
|
|
8652
|
+
|
|
8653
|
+
/**
|
|
8654
|
+
* Syncs the value from the native select element to the component's value.
|
|
8655
|
+
* @param {Event} event // The change event from the native select element.
|
|
8656
|
+
* @returns {void}
|
|
8657
|
+
* @private
|
|
8658
|
+
*/
|
|
8659
|
+
_handleNativeSelectChange(event) {
|
|
8660
|
+
const selectedOption = event.target.options[event.target.selectedIndex];
|
|
8661
|
+
const selectedValue = selectedOption.value;
|
|
8662
|
+
|
|
8663
|
+
if (this.multiSelect) {
|
|
8664
|
+
const currentArray = Array.isArray(this.value) ? this.value : [];
|
|
8665
|
+
|
|
8666
|
+
if (!currentArray.includes(selectedValue)) {
|
|
8667
|
+
this.value = [
|
|
8668
|
+
...currentArray,
|
|
8669
|
+
selectedValue
|
|
8670
|
+
];
|
|
8671
|
+
}
|
|
8672
|
+
} else {
|
|
8673
|
+
const currentValue = this.value;
|
|
8674
|
+
|
|
8675
|
+
if (currentValue !== selectedValue) {
|
|
8676
|
+
this.value = selectedValue;
|
|
8677
|
+
}
|
|
8678
|
+
}
|
|
8679
|
+
}
|
|
8680
|
+
|
|
8681
|
+
/**
|
|
8682
|
+
* Updates the native select element's value based on the component's value.
|
|
8683
|
+
* @returns {void}
|
|
8684
|
+
* @private
|
|
8685
|
+
*/
|
|
8686
|
+
_updateNativeSelect() {
|
|
8687
|
+
const nativeSelect = this.shadowRoot.querySelector('select');
|
|
8688
|
+
if (!nativeSelect) {
|
|
8689
|
+
return;
|
|
8690
|
+
}
|
|
8691
|
+
|
|
8692
|
+
if (this.multiSelect) {
|
|
8693
|
+
nativeSelect.value = this.value ? this.value[0] : '';
|
|
8694
|
+
} else {
|
|
8695
|
+
nativeSelect.value = this.value || '';
|
|
8696
|
+
}
|
|
8697
|
+
}
|
|
8698
|
+
|
|
8699
|
+
renderAriaHtml() {
|
|
8700
|
+
return u`
|
|
8701
|
+
<div aria-live="polite" class="util_displayHiddenVisually">
|
|
8702
|
+
${this.optionActive && this.options.length > 0
|
|
8703
|
+
? u`
|
|
8704
|
+
${`${this.optionActive.innerText}, option ${this.options.indexOf(this.optionActive) + 1} of ${this.options.length}`}
|
|
8705
|
+
`
|
|
8706
|
+
: undefined
|
|
8707
|
+
};
|
|
8708
|
+
|
|
8709
|
+
${this.optionSelected && this.options.length > 0
|
|
8710
|
+
? u`
|
|
8711
|
+
${`${this.optionSelected.innerText} selected`}
|
|
8712
|
+
`
|
|
8713
|
+
: undefined
|
|
8714
|
+
};
|
|
8715
|
+
</div>
|
|
8716
|
+
`;
|
|
8717
|
+
}
|
|
8718
|
+
|
|
8719
|
+
renderNativeSelect() {
|
|
8720
|
+
return u`
|
|
8721
|
+
<div class="nativeSelectWrapper util_displayHidden">
|
|
8722
|
+
<select
|
|
8723
|
+
tabindex="-1"
|
|
8724
|
+
id="${`native-select-${this.id || this.uniqueId}`}"
|
|
8725
|
+
name="${this.name || ''}"
|
|
8726
|
+
?disabled="${this.disabled}"
|
|
8727
|
+
?required="${this.required}"
|
|
8728
|
+
aria-hidden="true"
|
|
8729
|
+
autocomplete="${o(this.autocomplete)}"
|
|
8730
|
+
@change="${this._handleNativeSelectChange}">
|
|
8731
|
+
<option value="" ?selected="${!this.value}"></option>
|
|
8732
|
+
${this.options.map((option) => {
|
|
8733
|
+
const optionValue = option.value || option.textContent;
|
|
8734
|
+
return u`
|
|
8735
|
+
<option
|
|
8736
|
+
value="${optionValue}"
|
|
8737
|
+
?selected="${this.value === optionValue}">
|
|
8738
|
+
${option.textContent}
|
|
8739
|
+
</option>
|
|
8740
|
+
`;
|
|
8741
|
+
})}
|
|
8742
|
+
</select>
|
|
8743
|
+
</div>
|
|
8744
|
+
`;
|
|
8745
|
+
}
|
|
8746
|
+
|
|
8747
|
+
/**
|
|
8748
|
+
* Returns HTML for the help text and error message.
|
|
8749
|
+
* @private
|
|
8750
|
+
* @returns {html} - Returns HTML for the help text and error message.
|
|
8751
|
+
*/
|
|
8752
|
+
renderHtmlHelpText() {
|
|
8753
|
+
return u`
|
|
8754
|
+
${!this.validity || this.validity === undefined || this.validity === 'valid'
|
|
8755
|
+
? u`
|
|
8756
|
+
<${this.helpTextTag} ?onDark="${this.onDark}">
|
|
8757
|
+
<p id="${this.uniqueId}" part="helpText">
|
|
8758
|
+
<slot name="helpText"></slot>
|
|
8759
|
+
</p>
|
|
8760
|
+
</${this.helpTextTag}>
|
|
8761
|
+
`
|
|
8762
|
+
: u`
|
|
8763
|
+
<${this.helpTextTag} error ?onDark="${this.onDark}">
|
|
8764
|
+
<p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
|
|
8765
|
+
ERROR MESSAGE ${this.errorMessage}
|
|
8766
|
+
</p>
|
|
8767
|
+
</${this.helpTextTag}>
|
|
8768
|
+
`
|
|
8769
|
+
}
|
|
8770
|
+
`;
|
|
8771
|
+
}
|
|
8772
|
+
|
|
8773
|
+
/**
|
|
8774
|
+
* Returns HTML for the emphasized layout.
|
|
8775
|
+
* @private
|
|
8776
|
+
* @returns {import("lit").TemplateResult} - Returns HTML for the emphasized layout.
|
|
8777
|
+
*/
|
|
8778
|
+
renderLayoutEmphasized() {
|
|
8779
|
+
const placeholderClass = {
|
|
8780
|
+
hidden: this.value,
|
|
8781
|
+
};
|
|
8782
|
+
|
|
8783
|
+
const displayValueClasses = {
|
|
8784
|
+
'displayValue': true,
|
|
8785
|
+
'hasContent': this.hasDisplayValueContent,
|
|
8786
|
+
'hasFocus': this.isPopoverVisible,
|
|
8787
|
+
'withValue': this.value && this.value.length > 0,
|
|
8788
|
+
'force': this.forceDisplayValue,
|
|
8789
|
+
};
|
|
8790
|
+
|
|
8791
|
+
const valueContainerClasses = {
|
|
8792
|
+
'valueContainer': true,
|
|
8793
|
+
'util_displayHiddenVisually': (this.forceDisplayValue || !(this.dropdown && this.dropdown.isPopoverVisible)) && this.hasDisplayValueContent
|
|
8794
|
+
};
|
|
8795
|
+
|
|
8796
|
+
return u`
|
|
8797
|
+
<div
|
|
8798
|
+
class="${e(this.commonWrapperClasses)}"
|
|
8799
|
+
part="wrapper">
|
|
8800
|
+
<div id="slotHolder" aria-hidden="true">
|
|
8801
|
+
<slot name="bib.fullscreen.headline" @slotchange="${this.handleSlotChange}"></slot>
|
|
8802
|
+
</div>
|
|
8803
|
+
<${this.dropdownTag}
|
|
8804
|
+
a11yRole="select"
|
|
8805
|
+
?autoPlacement="${this.autoPlacement}"
|
|
8806
|
+
?error="${this.validity !== undefined && this.validity !== 'valid'}"
|
|
8807
|
+
?matchWidth="${this.matchWidth}"
|
|
8808
|
+
?noFlip="${this.noFlip}"
|
|
8809
|
+
?onDark="${this.onDark}"
|
|
8810
|
+
.fullscreenBreakpoint="${this.fullscreenBreakpoint}"
|
|
8811
|
+
.offset="${this.offset}"
|
|
8812
|
+
.placement="${this.placement}"
|
|
8813
|
+
chevron
|
|
8814
|
+
fluid
|
|
8815
|
+
for="selectMenu"
|
|
8816
|
+
layout="${this.layout}"
|
|
8817
|
+
part="dropdown"
|
|
8818
|
+
shape="${this.shape}"
|
|
8819
|
+
size="${this.size}">
|
|
8820
|
+
<div slot="trigger" aria-haspopup="true" id="triggerFocus" class="triggerContent">
|
|
8821
|
+
<div class="accents left">
|
|
8822
|
+
<slot name="typeIcon"></slot>
|
|
8823
|
+
</div>
|
|
8824
|
+
<div class="mainContent">
|
|
8825
|
+
<div class="${e(valueContainerClasses)}">
|
|
8826
|
+
<label class="${e(this.commonLabelClasses)}">
|
|
8827
|
+
<slot name="label"></slot>
|
|
8828
|
+
${this.required ? undefined : u`<slot name="optionalLabel"> (optional)</slot>`}
|
|
8829
|
+
</label>
|
|
8830
|
+
<div class="value" id="value"></div>
|
|
8831
|
+
${this.value ? undefined : u`
|
|
8832
|
+
<div id="placeholder" class="${e(placeholderClass)}">
|
|
8833
|
+
<slot name="placeholder"></slot>
|
|
8834
|
+
</div>
|
|
8835
|
+
`}
|
|
8836
|
+
</div>
|
|
8837
|
+
<div class="${e(displayValueClasses)}" aria-hidden="true" part="displayValue">
|
|
8838
|
+
<slot name="displayValue"></slot>
|
|
8839
|
+
</div>
|
|
8840
|
+
</div>
|
|
8841
|
+
<div class="accents right"></div>
|
|
8842
|
+
</div>
|
|
8843
|
+
<div class="menuWrapper"></div>
|
|
8844
|
+
<${this.bibtemplateTag} ?large="${this.largeFullscreenHeadline}" @close-click="${this.hideBib}">
|
|
8845
|
+
<slot></slot>
|
|
8846
|
+
</${this.bibtemplateTag}>
|
|
8847
|
+
<div slot="helpText">
|
|
8848
|
+
${this.renderHtmlHelpText()}
|
|
8849
|
+
</div>
|
|
8850
|
+
</${this.dropdownTag}>
|
|
8851
|
+
</div>
|
|
8852
|
+
`;
|
|
8853
|
+
}
|
|
8854
|
+
|
|
8855
|
+
/**
|
|
8856
|
+
* Returns HTML for the snowflake layout.
|
|
8857
|
+
* @private
|
|
8858
|
+
* @returns {import("lit").TemplateResult} - Returns HTML for the snowflake layout.
|
|
8859
|
+
*/
|
|
8860
|
+
renderLayoutSnowflake() {
|
|
8861
|
+
const placeholderClass = {
|
|
8862
|
+
hidden: this.value,
|
|
8863
|
+
};
|
|
8864
|
+
|
|
8865
|
+
const displayValueClasses = {
|
|
8866
|
+
'displayValue': true,
|
|
8867
|
+
'hasContent': this.hasDisplayValueContent,
|
|
8868
|
+
'hasFocus': this.isPopoverVisible,
|
|
8869
|
+
'withValue': this.value && this.value.length > 0,
|
|
8870
|
+
'force': this.forceDisplayValue,
|
|
8871
|
+
};
|
|
8872
|
+
|
|
8873
|
+
const valueContainerClasses = {
|
|
8874
|
+
'valueContainer': true,
|
|
8875
|
+
'util_displayHiddenVisually': (this.forceDisplayValue || !(this.dropdown && this.dropdown.isPopoverVisible)) && this.hasDisplayValueContent
|
|
8876
|
+
};
|
|
8877
|
+
|
|
8878
|
+
return u`
|
|
8879
|
+
<div
|
|
8880
|
+
class="${e(this.commonWrapperClasses)}"
|
|
8881
|
+
part="wrapper">
|
|
8882
|
+
<div id="slotHolder" aria-hidden="true">
|
|
8883
|
+
<slot name="bib.fullscreen.headline" @slotchange="${this.handleSlotChange}"></slot>
|
|
8884
|
+
</div>
|
|
8885
|
+
<${this.dropdownTag}
|
|
8886
|
+
?autoPlacement="${this.autoPlacement}"
|
|
8887
|
+
?error="${this.validity !== undefined && this.validity !== 'valid'}"
|
|
8888
|
+
?matchWidth="${this.matchWidth}"
|
|
8889
|
+
?noFlip="${this.noFlip}"
|
|
8890
|
+
?onDark="${this.onDark}"
|
|
8891
|
+
.fullscreenBreakpoint="${this.fullscreenBreakpoint}"
|
|
8892
|
+
.offset="${this.offset}"
|
|
8893
|
+
.placement="${this.placement}"
|
|
8894
|
+
chevron
|
|
8895
|
+
fluid
|
|
8896
|
+
for="selectMenu"
|
|
8897
|
+
layout="${this.layout}"
|
|
8898
|
+
part="dropdown"
|
|
8899
|
+
shape="${this.shape}"
|
|
8900
|
+
size="${this.size}">
|
|
8901
|
+
<div slot="trigger" aria-haspopup="true" id="triggerFocus" class="triggerContent">
|
|
8902
|
+
<div class="accents left">
|
|
8903
|
+
<slot name="typeIcon"></slot>
|
|
8904
|
+
</div>
|
|
8905
|
+
<div class="mainContent">
|
|
8906
|
+
<div class="${e(valueContainerClasses)}">
|
|
8907
|
+
<label class="${e(this.commonLabelClasses)}">
|
|
8908
|
+
<slot name="label"></slot>
|
|
8909
|
+
${this.required ? undefined : u`<slot name="optionalLabel"> (optional)</slot>`}
|
|
8910
|
+
</label>
|
|
8911
|
+
<div class="value" id="value"></div>
|
|
8912
|
+
${this.value ? undefined : u`
|
|
8913
|
+
<div id="placeholder" class="${e(placeholderClass)}">
|
|
8914
|
+
<slot name="placeholder"></slot>
|
|
8915
|
+
</div>
|
|
8916
|
+
`}
|
|
8917
|
+
</div>
|
|
8918
|
+
<div class="${e(displayValueClasses)}" aria-hidden="true" part="displayValue">
|
|
8919
|
+
<slot name="displayValue"></slot>
|
|
8920
|
+
</div>
|
|
8921
|
+
</div>
|
|
8922
|
+
<div class="accents right"></div>
|
|
8923
|
+
</div>
|
|
8924
|
+
<div class="menuWrapper"></div>
|
|
8925
|
+
<${this.bibtemplateTag} ?large="${this.largeFullscreenHeadline}" @close-click="${this.hideBib}">
|
|
8926
|
+
<slot></slot>
|
|
8927
|
+
</${this.bibtemplateTag}>
|
|
8928
|
+
<div slot="helpText">
|
|
8929
|
+
${this.renderHtmlHelpText()}
|
|
8930
|
+
</div>
|
|
8931
|
+
</${this.dropdownTag}>
|
|
8932
|
+
${this.renderNativeSelect()}
|
|
8933
|
+
</div>
|
|
8934
|
+
`;
|
|
6559
8935
|
}
|
|
6560
8936
|
|
|
6561
8937
|
/**
|
|
6562
|
-
*
|
|
6563
|
-
* @param {Event} event // The change event from the native select element.
|
|
6564
|
-
* @returns {void}
|
|
8938
|
+
* Returns HTML for the classic layout.
|
|
6565
8939
|
* @private
|
|
8940
|
+
* @returns {import("lit").TemplateResult} - Returns HTML for the classic layout.
|
|
6566
8941
|
*/
|
|
6567
|
-
|
|
6568
|
-
const
|
|
6569
|
-
|
|
8942
|
+
renderLayoutClassic() {
|
|
8943
|
+
const placeholderClass = {
|
|
8944
|
+
hidden: this.value,
|
|
8945
|
+
};
|
|
6570
8946
|
|
|
6571
|
-
|
|
6572
|
-
|
|
8947
|
+
const displayValueClasses = {
|
|
8948
|
+
'displayValue': true,
|
|
8949
|
+
'hasContent': this.hasDisplayValueContent,
|
|
8950
|
+
'hasFocus': this.isPopoverVisible,
|
|
8951
|
+
'withValue': this.value && this.value.length > 0,
|
|
8952
|
+
'force': this.forceDisplayValue,
|
|
8953
|
+
};
|
|
6573
8954
|
|
|
6574
|
-
|
|
6575
|
-
|
|
6576
|
-
|
|
6577
|
-
|
|
6578
|
-
];
|
|
6579
|
-
}
|
|
6580
|
-
} else {
|
|
6581
|
-
const currentValue = this.value;
|
|
8955
|
+
const valueContainerClasses = {
|
|
8956
|
+
'valueContainer': true,
|
|
8957
|
+
'util_displayHiddenVisually': (this.forceDisplayValue || !(this.dropdown && this.dropdown.isPopoverVisible)) && this.hasDisplayValueContent
|
|
8958
|
+
};
|
|
6582
8959
|
|
|
6583
|
-
|
|
6584
|
-
|
|
6585
|
-
|
|
6586
|
-
|
|
8960
|
+
return u`
|
|
8961
|
+
<div
|
|
8962
|
+
class="${e(this.commonWrapperClasses)}"
|
|
8963
|
+
part="wrapper">
|
|
8964
|
+
<div id="slotHolder" aria-hidden="true">
|
|
8965
|
+
<slot name="bib.fullscreen.headline" @slotchange="${this.handleSlotChange}"></slot>
|
|
8966
|
+
</div>
|
|
8967
|
+
<${this.dropdownTag}
|
|
8968
|
+
?autoPlacement="${this.autoPlacement}"
|
|
8969
|
+
?error="${this.validity !== undefined && this.validity !== 'valid'}"
|
|
8970
|
+
?matchWidth="${!this.flexMenuWidth}"
|
|
8971
|
+
?noFlip="${this.noFlip}"
|
|
8972
|
+
?onDark="${this.onDark}"
|
|
8973
|
+
.fullscreenBreakpoint="${this.fullscreenBreakpoint}"
|
|
8974
|
+
.offset="${this.offset}"
|
|
8975
|
+
.placement="${this.placement}"
|
|
8976
|
+
chevron
|
|
8977
|
+
fluid
|
|
8978
|
+
for="selectMenu"
|
|
8979
|
+
layout="${this.layout}"
|
|
8980
|
+
part="dropdown"
|
|
8981
|
+
shape="${this.shape}"
|
|
8982
|
+
size="${this.size}">
|
|
8983
|
+
<div slot="trigger" aria-haspopup="true" id="triggerFocus" class="triggerContent">
|
|
8984
|
+
<div class="accents left">
|
|
8985
|
+
<slot name="typeIcon"></slot>
|
|
8986
|
+
</div>
|
|
8987
|
+
<div class="mainContent">
|
|
8988
|
+
<div class="${e(valueContainerClasses)}">
|
|
8989
|
+
<label class="${e(this.commonLabelClasses)}">
|
|
8990
|
+
<slot name="label"></slot>
|
|
8991
|
+
${this.required ? undefined : u`<slot name="optionalLabel"> (optional)</slot>`}
|
|
8992
|
+
</label>
|
|
8993
|
+
<div class="value" id="value"></div>
|
|
8994
|
+
${this.value ? undefined : u`
|
|
8995
|
+
<div id="placeholder" class="${e(placeholderClass)}">
|
|
8996
|
+
<slot name="placeholder"></slot>
|
|
8997
|
+
</div>
|
|
8998
|
+
`}
|
|
8999
|
+
</div>
|
|
9000
|
+
<div class="${e(displayValueClasses)}" aria-hidden="true" part="displayValue">
|
|
9001
|
+
<slot name="displayValue"></slot>
|
|
9002
|
+
</div>
|
|
9003
|
+
</div>
|
|
9004
|
+
<div class="accents right"></div>
|
|
9005
|
+
</div>
|
|
9006
|
+
<div class="menuWrapper"></div>
|
|
9007
|
+
<${this.bibtemplateTag} ?large="${this.largeFullscreenHeadline}" @close-click="${this.hideBib}">
|
|
9008
|
+
<slot></slot>
|
|
9009
|
+
</${this.bibtemplateTag}>
|
|
9010
|
+
<div slot="helpText">
|
|
9011
|
+
${this.renderHtmlHelpText()}
|
|
9012
|
+
</div>
|
|
9013
|
+
</${this.dropdownTag}>
|
|
9014
|
+
${this.renderNativeSelect()}
|
|
9015
|
+
</div>
|
|
9016
|
+
`;
|
|
6587
9017
|
}
|
|
6588
9018
|
|
|
6589
9019
|
/**
|
|
6590
|
-
*
|
|
6591
|
-
* @returns {void}
|
|
9020
|
+
* Logic to determine the layout of the component.
|
|
6592
9021
|
* @private
|
|
9022
|
+
* @param {string} [ForcedLayout] - Used to force a specific layout, pass in the layout name to use.
|
|
9023
|
+
* @returns {void}
|
|
6593
9024
|
*/
|
|
6594
|
-
|
|
6595
|
-
const
|
|
6596
|
-
if (!nativeSelect) {
|
|
6597
|
-
return;
|
|
6598
|
-
}
|
|
9025
|
+
renderLayout(ForcedLayout) {
|
|
9026
|
+
const layout = ForcedLayout || this.layout;
|
|
6599
9027
|
|
|
6600
|
-
|
|
6601
|
-
|
|
6602
|
-
|
|
6603
|
-
|
|
9028
|
+
switch (layout) {
|
|
9029
|
+
case 'emphasized':
|
|
9030
|
+
return this.renderLayoutEmphasized();
|
|
9031
|
+
case 'emphasized-left':
|
|
9032
|
+
return this.renderLayoutEmphasized();
|
|
9033
|
+
case 'emphasized-right':
|
|
9034
|
+
return this.renderLayoutEmphasized();
|
|
9035
|
+
case 'snowflake':
|
|
9036
|
+
return this.renderLayoutSnowflake();
|
|
9037
|
+
case 'snowflake-left':
|
|
9038
|
+
return this.renderLayoutSnowflake();
|
|
9039
|
+
case 'snowflake-right':
|
|
9040
|
+
return this.renderLayoutSnowflake();
|
|
9041
|
+
default:
|
|
9042
|
+
return this.renderLayoutClassic();
|
|
6604
9043
|
}
|
|
6605
9044
|
}
|
|
6606
9045
|
|
|
@@ -6608,7 +9047,7 @@ class AuroSelect extends i$2 {
|
|
|
6608
9047
|
// aria-hidden="${this.hideAudible(this.hiddenAudible)}"
|
|
6609
9048
|
|
|
6610
9049
|
// function that renders the HTML and CSS into the scope of the component
|
|
6611
|
-
|
|
9050
|
+
renderBACKUP() {
|
|
6612
9051
|
const placeholderClass = {
|
|
6613
9052
|
hidden: this.value,
|
|
6614
9053
|
};
|
|
@@ -6634,29 +9073,37 @@ class AuroSelect extends i$2 {
|
|
|
6634
9073
|
<slot name="bib.fullscreen.headline" @slotchange="${this.handleSlotChange}"></slot>
|
|
6635
9074
|
</div>
|
|
6636
9075
|
<${this.dropdownTag}
|
|
6637
|
-
|
|
9076
|
+
?autoPlacement="${this.autoPlacement}"
|
|
9077
|
+
?disabled="${this.disabled}"
|
|
6638
9078
|
?error="${this.validity !== undefined && this.validity !== 'valid'}"
|
|
9079
|
+
?matchWidth="${this.matchWidth}"
|
|
9080
|
+
?noFlip="${this.noFlip}"
|
|
6639
9081
|
?onDark="${this.onDark}"
|
|
6640
|
-
common
|
|
6641
|
-
fluid
|
|
6642
9082
|
.fullscreenBreakpoint="${this.fullscreenBreakpoint}"
|
|
6643
|
-
?matchWidth="${!this.flexMenuWidth}"
|
|
6644
|
-
chevron
|
|
6645
|
-
.placement="${this.placement}"
|
|
6646
9083
|
.offset="${this.offset}"
|
|
6647
|
-
|
|
6648
|
-
|
|
6649
|
-
|
|
9084
|
+
.placement="${this.placement}"
|
|
9085
|
+
chevron
|
|
9086
|
+
fluid
|
|
9087
|
+
for="selectMenu"
|
|
9088
|
+
layout="${this.layout}"
|
|
9089
|
+
part="dropdown"
|
|
9090
|
+
shape="${this.shape}"
|
|
9091
|
+
size="${this.size}">
|
|
6650
9092
|
<span slot="trigger" aria-haspopup="true" id="triggerFocus">
|
|
6651
|
-
<span id="placeholder"
|
|
9093
|
+
<span id="placeholder"
|
|
9094
|
+
class="${e(placeholderClass)}"
|
|
9095
|
+
?aria-hidden="${this.optionSelected && this.optionSelected.length ? 'true' : false}"
|
|
9096
|
+
>
|
|
9097
|
+
<slot name="placeholder"></slot>
|
|
9098
|
+
</span>
|
|
9099
|
+
<slot name="valueText" id="valueText"></slot>
|
|
6652
9100
|
</span>
|
|
6653
9101
|
|
|
6654
|
-
<div class="menuWrapper">
|
|
6655
|
-
</div>
|
|
6656
|
-
|
|
6657
9102
|
<${this.bibtemplateTag} ?large="${this.largeFullscreenHeadline}" @close-click="${this.hideBib}">
|
|
9103
|
+
<slot></slot>
|
|
6658
9104
|
</${this.bibtemplateTag}>
|
|
6659
9105
|
<slot name="label" slot="label"></slot>
|
|
9106
|
+
${this.required ? undefined : u`<slot name="optionalLabel"> (optional)</slot>`}
|
|
6660
9107
|
<p slot="helpText">
|
|
6661
9108
|
${!this.validity || this.validity === undefined || this.validity === 'valid'
|
|
6662
9109
|
? u`
|
|
@@ -6694,16 +9141,17 @@ class AuroSelect extends i$2 {
|
|
|
6694
9141
|
</select>
|
|
6695
9142
|
</div>
|
|
6696
9143
|
<!-- Help text and error message template -->
|
|
9144
|
+
${this.renderHtmlHelpText()}
|
|
6697
9145
|
</div>
|
|
6698
9146
|
`;
|
|
6699
9147
|
}
|
|
6700
9148
|
}
|
|
6701
9149
|
|
|
6702
|
-
var styleCss$2 = i$5`:focus:not(:focus-visible){outline:3px solid transparent}:host{display:
|
|
9150
|
+
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)}`;
|
|
6703
9151
|
|
|
6704
9152
|
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)}`;
|
|
6705
9153
|
|
|
6706
|
-
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)}`;
|
|
9154
|
+
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)}`;
|
|
6707
9155
|
|
|
6708
9156
|
// Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
6709
9157
|
// See LICENSE in the project root for license information.
|
|
@@ -6769,14 +9217,17 @@ function dispatchMenuEvent(element, eventName, detail = null) {
|
|
|
6769
9217
|
* @slot - Slot for insertion of menu options.
|
|
6770
9218
|
*/
|
|
6771
9219
|
|
|
6772
|
-
/* eslint-disable no-magic-numbers, max-lines, no-extra-parens */
|
|
9220
|
+
/* eslint-disable no-magic-numbers, max-lines, no-extra-parens, no-inline-comments, line-comment-position */
|
|
6773
9221
|
|
|
6774
|
-
class AuroMenu extends
|
|
9222
|
+
class AuroMenu extends AuroElement$4 {
|
|
6775
9223
|
constructor() {
|
|
6776
9224
|
super();
|
|
6777
9225
|
|
|
6778
9226
|
// State properties (reactive)
|
|
6779
9227
|
|
|
9228
|
+
this.shape = ""; // box, rounded, pill
|
|
9229
|
+
this.size = ""; // md, lg, xl
|
|
9230
|
+
|
|
6780
9231
|
// Value of the selected options
|
|
6781
9232
|
this.value = undefined;
|
|
6782
9233
|
// Currently selected option
|
|
@@ -6835,6 +9286,7 @@ class AuroMenu extends i$2 {
|
|
|
6835
9286
|
|
|
6836
9287
|
static get properties() {
|
|
6837
9288
|
return {
|
|
9289
|
+
...super.properties,
|
|
6838
9290
|
noCheckmark: {
|
|
6839
9291
|
type: Boolean,
|
|
6840
9292
|
reflect: true,
|
|
@@ -6868,6 +9320,16 @@ class AuroMenu extends i$2 {
|
|
|
6868
9320
|
value: {
|
|
6869
9321
|
// Allow string, string[] arrays and undefined
|
|
6870
9322
|
type: Object
|
|
9323
|
+
},
|
|
9324
|
+
|
|
9325
|
+
/**
|
|
9326
|
+
* Indent level for submenus.
|
|
9327
|
+
* @private
|
|
9328
|
+
*/
|
|
9329
|
+
level: {
|
|
9330
|
+
type: Number,
|
|
9331
|
+
reflect: false,
|
|
9332
|
+
attribute: false
|
|
6871
9333
|
}
|
|
6872
9334
|
};
|
|
6873
9335
|
}
|
|
@@ -6889,7 +9351,7 @@ class AuroMenu extends i$2 {
|
|
|
6889
9351
|
*
|
|
6890
9352
|
*/
|
|
6891
9353
|
static register(name = "auro-menu") {
|
|
6892
|
-
AuroLibraryRuntimeUtils$
|
|
9354
|
+
AuroLibraryRuntimeUtils$6.prototype.registerComponent(name, AuroMenu);
|
|
6893
9355
|
}
|
|
6894
9356
|
|
|
6895
9357
|
// Lifecycle Methods
|
|
@@ -6901,6 +9363,7 @@ class AuroMenu extends i$2 {
|
|
|
6901
9363
|
this.addEventListener('mousedown', this.handleMouseSelect);
|
|
6902
9364
|
this.addEventListener('auroMenuOption-mouseover', this.handleOptionHover);
|
|
6903
9365
|
this.addEventListener('slotchange', this.handleSlotChange);
|
|
9366
|
+
this.setTagAttribute("auro-menu");
|
|
6904
9367
|
}
|
|
6905
9368
|
|
|
6906
9369
|
disconnectedCallback() {
|
|
@@ -6913,19 +9376,33 @@ class AuroMenu extends i$2 {
|
|
|
6913
9376
|
}
|
|
6914
9377
|
|
|
6915
9378
|
firstUpdated() {
|
|
6916
|
-
AuroLibraryRuntimeUtils$
|
|
9379
|
+
AuroLibraryRuntimeUtils$6.prototype.handleComponentTagRename(this, 'auro-menu');
|
|
6917
9380
|
|
|
6918
9381
|
this.loadingSlots = this.querySelectorAll("[slot='loadingText'], [slot='loadingIcon']");
|
|
6919
9382
|
this.initializeMenu();
|
|
6920
9383
|
}
|
|
6921
9384
|
|
|
9385
|
+
/**
|
|
9386
|
+
* Sets an attribute that matches the default tag name if the tag name is not the default.
|
|
9387
|
+
* @param {string} tagName - The tag name to set as an attribute.
|
|
9388
|
+
* @private
|
|
9389
|
+
*/
|
|
9390
|
+
setTagAttribute(tagName) {
|
|
9391
|
+
if (this.tagName.toLowerCase() !== tagName) {
|
|
9392
|
+
this.setAttribute(tagName, true);
|
|
9393
|
+
}
|
|
9394
|
+
}
|
|
9395
|
+
|
|
6922
9396
|
updated(changedProperties) {
|
|
9397
|
+
super.updated(changedProperties);
|
|
9398
|
+
|
|
6923
9399
|
if (changedProperties.has('multiSelect')) {
|
|
6924
9400
|
// Reset selection if multiSelect mode changes
|
|
6925
9401
|
this.clearSelection();
|
|
6926
9402
|
}
|
|
6927
9403
|
|
|
6928
|
-
|
|
9404
|
+
|
|
9405
|
+
if (changedProperties.has("value")) {
|
|
6929
9406
|
// Handle null/undefined case
|
|
6930
9407
|
if (this.value === undefined || this.value === null) {
|
|
6931
9408
|
this.optionSelected = undefined;
|
|
@@ -6993,6 +9470,19 @@ class AuroMenu extends i$2 {
|
|
|
6993
9470
|
this.querySelectorAll('auro-menu, [auro-menu], auro-menuoption, [auro-menuoption]').forEach((element) => element.setAttribute('noCheckmark', ''));
|
|
6994
9471
|
}
|
|
6995
9472
|
|
|
9473
|
+
// Handle layout propagation to all menus and options
|
|
9474
|
+
const propagationTargets = this.querySelectorAll('auro-menu, [auro-menu], auro-menuoption, [auro-menuoption]');
|
|
9475
|
+
[
|
|
9476
|
+
'size',
|
|
9477
|
+
'shape'
|
|
9478
|
+
].forEach((prop) => {
|
|
9479
|
+
if (changedProperties.has(prop)) {
|
|
9480
|
+
propagationTargets.forEach((el) => {
|
|
9481
|
+
el.setAttribute(prop, this[prop]);
|
|
9482
|
+
});
|
|
9483
|
+
}
|
|
9484
|
+
});
|
|
9485
|
+
|
|
6996
9486
|
// Regex for matchWord if needed
|
|
6997
9487
|
let regexWord = null;
|
|
6998
9488
|
|
|
@@ -7189,21 +9679,20 @@ class AuroMenu extends i$2 {
|
|
|
7189
9679
|
* @param {HTMLElement} menu - Root menu element.
|
|
7190
9680
|
*/
|
|
7191
9681
|
handleNestedMenus(menu) {
|
|
7192
|
-
|
|
9682
|
+
menu.level = menu.parentElement.level >= 0 ? menu.parentElement.level + 1 : 0;
|
|
7193
9683
|
|
|
7194
|
-
|
|
7195
|
-
|
|
7196
|
-
|
|
7197
|
-
if (!
|
|
7198
|
-
|
|
9684
|
+
if (menu.level > 0) {
|
|
9685
|
+
menu.setAttribute('role', 'group');
|
|
9686
|
+
menu.removeAttribute("root");
|
|
9687
|
+
if (!menu.hasAttribute('aria-label')) {
|
|
9688
|
+
menu.setAttribute('aria-label', 'submenu');
|
|
7199
9689
|
}
|
|
9690
|
+
}
|
|
7200
9691
|
|
|
7201
|
-
|
|
7202
|
-
|
|
7203
|
-
|
|
7204
|
-
|
|
7205
|
-
|
|
7206
|
-
this.handleNestedMenus(nestedMenu);
|
|
9692
|
+
const options = menu.querySelectorAll(':scope > auro-menuoption, :scope > [auro-menuoption]');
|
|
9693
|
+
options.forEach((option) => {
|
|
9694
|
+
const regex = new RegExp(this.nestingSpacer, "gu");
|
|
9695
|
+
option.innerHTML = this.nestingSpacer.repeat(menu.level) + option.innerHTML.replace(regex, '');
|
|
7207
9696
|
});
|
|
7208
9697
|
}
|
|
7209
9698
|
|
|
@@ -7445,28 +9934,39 @@ class AuroMenu extends i$2 {
|
|
|
7445
9934
|
}
|
|
7446
9935
|
|
|
7447
9936
|
/**
|
|
7448
|
-
*
|
|
7449
|
-
* @
|
|
9937
|
+
* Logic to determine the layout of the component.
|
|
9938
|
+
* @protected
|
|
9939
|
+
* @returns {void}
|
|
7450
9940
|
*/
|
|
7451
|
-
|
|
9941
|
+
renderLayout() {
|
|
7452
9942
|
if (this.loading) {
|
|
7453
9943
|
return x`
|
|
7454
|
-
<
|
|
7455
|
-
<
|
|
7456
|
-
|
|
7457
|
-
|
|
7458
|
-
|
|
7459
|
-
|
|
9944
|
+
<div class="wrapper">
|
|
9945
|
+
<auro-menuoption
|
|
9946
|
+
disabled
|
|
9947
|
+
loadingplaceholder
|
|
9948
|
+
class="${this.hasLoadingPlaceholder ? "" : "empty"}"
|
|
9949
|
+
>
|
|
9950
|
+
<div>
|
|
9951
|
+
<slot name="loadingIcon"></slot>
|
|
9952
|
+
<slot name="loadingText"></slot>
|
|
9953
|
+
</div>
|
|
9954
|
+
</auro-menuoption>
|
|
9955
|
+
</div>
|
|
7460
9956
|
`;
|
|
7461
9957
|
}
|
|
7462
9958
|
|
|
7463
|
-
return x
|
|
9959
|
+
return x`
|
|
9960
|
+
<div class="wrapper">
|
|
9961
|
+
<slot @slotchange=${this.handleSlotChange}></slot>
|
|
9962
|
+
</div>
|
|
9963
|
+
`;
|
|
7464
9964
|
}
|
|
7465
9965
|
}
|
|
7466
9966
|
|
|
7467
|
-
var styleCss$1 = i$5`:host{display:flex;align-items:center;padding:var(--ds-size-50, 0.25rem) var(--ds-size-
|
|
9967
|
+
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) + 24px + 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) + 24px + 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}`;
|
|
7468
9968
|
|
|
7469
|
-
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)}`;
|
|
9969
|
+
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)}`;
|
|
7470
9970
|
|
|
7471
9971
|
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
7472
9972
|
// See LICENSE in the project root for license information.
|
|
@@ -7622,6 +10122,76 @@ var tokensCss = i$5`:host{--ds-auro-icon-color:var(--ds-basic-color-texticon-def
|
|
|
7622
10122
|
|
|
7623
10123
|
var colorCss = 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)}`;
|
|
7624
10124
|
|
|
10125
|
+
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
10126
|
+
// See LICENSE in the project root for license information.
|
|
10127
|
+
|
|
10128
|
+
// ---------------------------------------------------------------------
|
|
10129
|
+
|
|
10130
|
+
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
10131
|
+
|
|
10132
|
+
class AuroLibraryRuntimeUtils {
|
|
10133
|
+
|
|
10134
|
+
/* eslint-disable jsdoc/require-param */
|
|
10135
|
+
|
|
10136
|
+
/**
|
|
10137
|
+
* This will register a new custom element with the browser.
|
|
10138
|
+
* @param {String} name - The name of the custom element.
|
|
10139
|
+
* @param {Object} componentClass - The class to register as a custom element.
|
|
10140
|
+
* @returns {void}
|
|
10141
|
+
*/
|
|
10142
|
+
registerComponent(name, componentClass) {
|
|
10143
|
+
if (!customElements.get(name)) {
|
|
10144
|
+
customElements.define(name, class extends componentClass {});
|
|
10145
|
+
}
|
|
10146
|
+
}
|
|
10147
|
+
|
|
10148
|
+
/**
|
|
10149
|
+
* Finds and returns the closest HTML Element based on a selector.
|
|
10150
|
+
* @returns {void}
|
|
10151
|
+
*/
|
|
10152
|
+
closestElement(
|
|
10153
|
+
selector, // selector like in .closest()
|
|
10154
|
+
base = this, // extra functionality to skip a parent
|
|
10155
|
+
__Closest = (el, found = el && el.closest(selector)) =>
|
|
10156
|
+
!el || el === document || el === window
|
|
10157
|
+
? null // standard .closest() returns null for non-found selectors also
|
|
10158
|
+
: found
|
|
10159
|
+
? found // found a selector INside this element
|
|
10160
|
+
: __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
|
|
10161
|
+
) {
|
|
10162
|
+
return __Closest(base);
|
|
10163
|
+
}
|
|
10164
|
+
/* eslint-enable jsdoc/require-param */
|
|
10165
|
+
|
|
10166
|
+
/**
|
|
10167
|
+
* 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.
|
|
10168
|
+
* @param {Object} elem - The element to check.
|
|
10169
|
+
* @param {String} tagName - The name of the Auro component to check for or add as an attribute.
|
|
10170
|
+
* @returns {void}
|
|
10171
|
+
*/
|
|
10172
|
+
handleComponentTagRename(elem, tagName) {
|
|
10173
|
+
const tag = tagName.toLowerCase();
|
|
10174
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
10175
|
+
|
|
10176
|
+
if (elemTag !== tag) {
|
|
10177
|
+
elem.setAttribute(tag, true);
|
|
10178
|
+
}
|
|
10179
|
+
}
|
|
10180
|
+
|
|
10181
|
+
/**
|
|
10182
|
+
* Validates if an element is a specific Auro component.
|
|
10183
|
+
* @param {Object} elem - The element to validate.
|
|
10184
|
+
* @param {String} tagName - The name of the Auro component to check against.
|
|
10185
|
+
* @returns {Boolean} - Returns true if the element is the specified Auro component.
|
|
10186
|
+
*/
|
|
10187
|
+
elementMatch(elem, tagName) {
|
|
10188
|
+
const tag = tagName.toLowerCase();
|
|
10189
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
10190
|
+
|
|
10191
|
+
return elemTag === tag || elem.hasAttribute(tag);
|
|
10192
|
+
}
|
|
10193
|
+
}
|
|
10194
|
+
|
|
7625
10195
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
7626
10196
|
// See LICENSE in the project root for license information.
|
|
7627
10197
|
|
|
@@ -7641,7 +10211,7 @@ class AuroIcon extends BaseIcon {
|
|
|
7641
10211
|
*/
|
|
7642
10212
|
privateDefaults() {
|
|
7643
10213
|
this.uri = 'https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist';
|
|
7644
|
-
this.runtimeUtils = new AuroLibraryRuntimeUtils
|
|
10214
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils();
|
|
7645
10215
|
}
|
|
7646
10216
|
|
|
7647
10217
|
// function to define props used within the scope of this component
|
|
@@ -7723,7 +10293,7 @@ class AuroIcon extends BaseIcon {
|
|
|
7723
10293
|
*
|
|
7724
10294
|
*/
|
|
7725
10295
|
static register(name = "auro-icon") {
|
|
7726
|
-
AuroLibraryRuntimeUtils
|
|
10296
|
+
AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroIcon);
|
|
7727
10297
|
}
|
|
7728
10298
|
|
|
7729
10299
|
connectedCallback() {
|
|
@@ -7744,8 +10314,12 @@ class AuroIcon extends BaseIcon {
|
|
|
7744
10314
|
async firstUpdated() {
|
|
7745
10315
|
await super.firstUpdated();
|
|
7746
10316
|
|
|
7747
|
-
|
|
7748
|
-
|
|
10317
|
+
/**
|
|
10318
|
+
* icons provide a description for screen readers. Icon only instances Auro-button
|
|
10319
|
+
* depend on this description to provide context for the user using a screen reader.
|
|
10320
|
+
* Removes the SVG description for screen reader if ariaHidden is set to true.
|
|
10321
|
+
*/
|
|
10322
|
+
if (this.hasAttribute('ariaHidden') && this.svg) {
|
|
7749
10323
|
const svgDesc = this.svg.querySelector('desc');
|
|
7750
10324
|
|
|
7751
10325
|
if (svgDesc) {
|
|
@@ -7789,7 +10363,7 @@ class AuroIcon extends BaseIcon {
|
|
|
7789
10363
|
}
|
|
7790
10364
|
}
|
|
7791
10365
|
|
|
7792
|
-
var iconVersion = '8.0.
|
|
10366
|
+
var iconVersion = '8.0.4';
|
|
7793
10367
|
|
|
7794
10368
|
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>"};
|
|
7795
10369
|
|
|
@@ -7807,10 +10381,13 @@ var checkmarkIcon = {"svg":"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlin
|
|
|
7807
10381
|
* @event auroMenuOption-mouseover - Notifies that this option has been hovered over.
|
|
7808
10382
|
* @slot - Specifies text for an option, but is not the value.
|
|
7809
10383
|
*/
|
|
7810
|
-
class AuroMenuOption extends
|
|
10384
|
+
class AuroMenuOption extends AuroElement$4 {
|
|
7811
10385
|
constructor() {
|
|
7812
10386
|
super();
|
|
7813
10387
|
|
|
10388
|
+
this.size = ""; // md, lg, xl
|
|
10389
|
+
this.shape = ""; // box, rounded, pill
|
|
10390
|
+
|
|
7814
10391
|
/**
|
|
7815
10392
|
* Generate unique names for dependency components.
|
|
7816
10393
|
*/
|
|
@@ -7829,11 +10406,12 @@ class AuroMenuOption extends i$2 {
|
|
|
7829
10406
|
/**
|
|
7830
10407
|
* @private
|
|
7831
10408
|
*/
|
|
7832
|
-
this.runtimeUtils = new AuroLibraryRuntimeUtils$
|
|
10409
|
+
this.runtimeUtils = new AuroLibraryRuntimeUtils$6();
|
|
7833
10410
|
}
|
|
7834
10411
|
|
|
7835
10412
|
static get properties() {
|
|
7836
10413
|
return {
|
|
10414
|
+
...super.properties,
|
|
7837
10415
|
nocheckmark: {
|
|
7838
10416
|
type: Boolean,
|
|
7839
10417
|
reflect: true
|
|
@@ -7873,7 +10451,7 @@ class AuroMenuOption extends i$2 {
|
|
|
7873
10451
|
*
|
|
7874
10452
|
*/
|
|
7875
10453
|
static register(name = "auro-menuoption") {
|
|
7876
|
-
AuroLibraryRuntimeUtils$
|
|
10454
|
+
AuroLibraryRuntimeUtils$6.prototype.registerComponent(name, AuroMenuOption);
|
|
7877
10455
|
}
|
|
7878
10456
|
|
|
7879
10457
|
firstUpdated() {
|
|
@@ -7895,6 +10473,8 @@ class AuroMenuOption extends i$2 {
|
|
|
7895
10473
|
|
|
7896
10474
|
// observer for selected property changes
|
|
7897
10475
|
updated(changedProperties) {
|
|
10476
|
+
super.updated(changedProperties);
|
|
10477
|
+
|
|
7898
10478
|
if (changedProperties.has('selected')) {
|
|
7899
10479
|
this.setAttribute('aria-selected', this.selected.toString());
|
|
7900
10480
|
}
|
|
@@ -7916,10 +10496,19 @@ class AuroMenuOption extends i$2 {
|
|
|
7916
10496
|
return u`<${this.iconTag} customColor customSvg slot="icon">${svg}</${this.iconTag}>`;
|
|
7917
10497
|
}
|
|
7918
10498
|
|
|
7919
|
-
|
|
10499
|
+
/**
|
|
10500
|
+
* Logic to determine the layout of the component.
|
|
10501
|
+
* @protected
|
|
10502
|
+
* @returns {void}
|
|
10503
|
+
*/
|
|
10504
|
+
renderLayout() {
|
|
7920
10505
|
return u`
|
|
7921
|
-
|
|
7922
|
-
|
|
10506
|
+
<div class="wrapper">
|
|
10507
|
+
${this.selected && !this.nocheckmark
|
|
10508
|
+
? this.generateIconHtml(checkmarkIcon.svg)
|
|
10509
|
+
: undefined}
|
|
10510
|
+
<slot></slot>
|
|
10511
|
+
</div>
|
|
7923
10512
|
`;
|
|
7924
10513
|
}
|
|
7925
10514
|
}
|