@aurodesignsystem-dev/auro-formkit 0.0.0-pr1508.0 → 0.0.0-pr1509.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/checkbox/demo/customize.min.js +1 -1
- package/components/checkbox/demo/getting-started.min.js +1 -1
- package/components/checkbox/demo/index.min.js +1 -1
- package/components/checkbox/dist/index.js +1 -1
- package/components/checkbox/dist/registered.js +1 -1
- package/components/combobox/demo/customize.min.js +279 -142
- package/components/combobox/demo/getting-started.min.js +279 -142
- package/components/combobox/demo/index.min.js +279 -142
- package/components/combobox/dist/auro-combobox.d.ts +0 -9
- package/components/combobox/dist/index.js +279 -142
- package/components/combobox/dist/registered.js +279 -142
- package/components/counter/demo/customize.min.js +2 -2
- package/components/counter/demo/index.min.js +2 -2
- package/components/counter/dist/index.js +2 -2
- package/components/counter/dist/registered.js +2 -2
- package/components/datepicker/demo/customize.min.js +153 -45
- package/components/datepicker/demo/index.min.js +153 -45
- package/components/datepicker/dist/index.js +153 -45
- package/components/datepicker/dist/registered.js +153 -45
- package/components/dropdown/demo/customize.min.js +1 -1
- package/components/dropdown/demo/getting-started.min.js +1 -1
- package/components/dropdown/demo/index.min.js +1 -1
- package/components/dropdown/dist/index.js +1 -1
- package/components/dropdown/dist/registered.js +1 -1
- package/components/form/demo/customize.min.js +589 -235
- package/components/form/demo/getting-started.min.js +589 -235
- package/components/form/demo/index.min.js +589 -235
- package/components/form/demo/registerDemoDeps.min.js +589 -235
- package/components/input/demo/customize.min.js +151 -42
- package/components/input/demo/getting-started.min.js +151 -42
- package/components/input/demo/index.min.js +151 -42
- package/components/input/dist/base-input.d.ts +49 -1
- package/components/input/dist/index.js +151 -42
- package/components/input/dist/registered.js +151 -42
- package/components/radio/demo/customize.min.js +1 -1
- package/components/radio/demo/getting-started.min.js +1 -1
- package/components/radio/demo/index.min.js +1 -1
- package/components/radio/dist/index.js +1 -1
- package/components/radio/dist/registered.js +1 -1
- package/components/select/demo/customize.min.js +2 -2
- package/components/select/demo/getting-started.min.js +2 -2
- package/components/select/demo/index.min.js +2 -2
- package/components/select/dist/index.js +2 -2
- package/components/select/dist/registered.js +2 -2
- package/custom-elements.json +264 -20
- package/package.json +1 -1
|
@@ -11501,7 +11501,6 @@ let AuroInputUtilities$3 = class AuroInputUtilities {
|
|
|
11501
11501
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
11502
11502
|
|
|
11503
11503
|
if (!(valueObject instanceof Date) || Number.isNaN(valueObject.getTime()) || !maskOptions || typeof maskOptions.format !== 'function') {
|
|
11504
|
-
console.debug('Invalid date object or mask options for formatting', { valueObject, maskOptions }); // eslint-disable-line no-console
|
|
11505
11504
|
return undefined;
|
|
11506
11505
|
}
|
|
11507
11506
|
|
|
@@ -11653,8 +11652,10 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11653
11652
|
this.layout = 'classic';
|
|
11654
11653
|
this.locale = 'en-US';
|
|
11655
11654
|
this.max = undefined;
|
|
11655
|
+
this._maxObject = undefined;
|
|
11656
11656
|
this.maxLength = undefined;
|
|
11657
11657
|
this.min = undefined;
|
|
11658
|
+
this._minObject = undefined;
|
|
11658
11659
|
this.minLength = undefined;
|
|
11659
11660
|
this.required = false;
|
|
11660
11661
|
this.onDark = false;
|
|
@@ -11662,6 +11663,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11662
11663
|
this.size = 'lg';
|
|
11663
11664
|
this.shape = 'classic';
|
|
11664
11665
|
this.value = undefined;
|
|
11666
|
+
this._valueObject = undefined;
|
|
11665
11667
|
|
|
11666
11668
|
this._initializePrivateDefaults();
|
|
11667
11669
|
}
|
|
@@ -12201,7 +12203,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12201
12203
|
* @returns {Date|undefined}
|
|
12202
12204
|
*/
|
|
12203
12205
|
get valueObject() {
|
|
12204
|
-
return this.
|
|
12206
|
+
return this._valueObject || this._computeDateObjectFallback(this.value);
|
|
12205
12207
|
}
|
|
12206
12208
|
|
|
12207
12209
|
/**
|
|
@@ -12209,7 +12211,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12209
12211
|
* @returns {Date|undefined}
|
|
12210
12212
|
*/
|
|
12211
12213
|
get minObject() {
|
|
12212
|
-
return this.
|
|
12214
|
+
return this._minObject || this._computeDateObjectFallback(this.min);
|
|
12213
12215
|
}
|
|
12214
12216
|
|
|
12215
12217
|
/**
|
|
@@ -12217,7 +12219,50 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12217
12219
|
* @returns {Date|undefined}
|
|
12218
12220
|
*/
|
|
12219
12221
|
get maxObject() {
|
|
12220
|
-
return this.
|
|
12222
|
+
return this._maxObject || this._computeDateObjectFallback(this.max);
|
|
12223
|
+
}
|
|
12224
|
+
|
|
12225
|
+
/**
|
|
12226
|
+
* Parses a date string into a Date object when the corresponding `_*Object`
|
|
12227
|
+
* field hasn't been synced yet by `updated()`. Returns undefined when the
|
|
12228
|
+
* input type/format isn't a full date or the string is not a valid date.
|
|
12229
|
+
*
|
|
12230
|
+
* Why this exists: a parent (datepicker) can call `inputN.validate()` from
|
|
12231
|
+
* inside its own `updated()` before this input's `updated()` has run
|
|
12232
|
+
* `syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`
|
|
12233
|
+
* and range checks would otherwise silently no-op (flipping the result to
|
|
12234
|
+
* `valid` or `patternMismatch`).
|
|
12235
|
+
* @private
|
|
12236
|
+
* @param {string|undefined} dateStr - ISO date string from `value`/`min`/`max`.
|
|
12237
|
+
* @returns {Date|undefined}
|
|
12238
|
+
*/
|
|
12239
|
+
_computeDateObjectFallback(dateStr) {
|
|
12240
|
+
if (!dateStr || !this.util || !this.util.isFullDateFormat(this.type, this.format)) {
|
|
12241
|
+
return undefined;
|
|
12242
|
+
}
|
|
12243
|
+
if (!dateFormatter$3.isValidDate(dateStr)) {
|
|
12244
|
+
return undefined;
|
|
12245
|
+
}
|
|
12246
|
+
return dateFormatter$3.stringToDateInstance(dateStr);
|
|
12247
|
+
}
|
|
12248
|
+
|
|
12249
|
+
/**
|
|
12250
|
+
* Internal setter for readonly date object properties.
|
|
12251
|
+
* @private
|
|
12252
|
+
* @param {'valueObject'|'minObject'|'maxObject'} propertyName - Public object property name.
|
|
12253
|
+
* @param {Date|undefined} propertyValue - Value to assign.
|
|
12254
|
+
* @returns {void}
|
|
12255
|
+
*/
|
|
12256
|
+
setDateObjectProperty(propertyName, propertyValue) {
|
|
12257
|
+
const internalPropertyName = `_${propertyName}`;
|
|
12258
|
+
const previousValue = this[internalPropertyName];
|
|
12259
|
+
|
|
12260
|
+
if (previousValue === propertyValue) {
|
|
12261
|
+
return;
|
|
12262
|
+
}
|
|
12263
|
+
|
|
12264
|
+
this[internalPropertyName] = propertyValue;
|
|
12265
|
+
this.requestUpdate(propertyName, previousValue);
|
|
12221
12266
|
}
|
|
12222
12267
|
|
|
12223
12268
|
connectedCallback() {
|
|
@@ -12246,6 +12291,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12246
12291
|
format: this.format
|
|
12247
12292
|
});
|
|
12248
12293
|
this.configureDataForType();
|
|
12294
|
+
this.syncDateValues();
|
|
12249
12295
|
}
|
|
12250
12296
|
|
|
12251
12297
|
disconnectedCallback() {
|
|
@@ -12275,6 +12321,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12275
12321
|
this.setCustomHelpTextMessage();
|
|
12276
12322
|
this.configureAutoFormatting();
|
|
12277
12323
|
this.configureDataForType();
|
|
12324
|
+
this.syncDateValues();
|
|
12278
12325
|
}
|
|
12279
12326
|
|
|
12280
12327
|
/**
|
|
@@ -12350,6 +12397,13 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12350
12397
|
|
|
12351
12398
|
if (typeToI18n.includes(this.type)) {
|
|
12352
12399
|
this.setCustomValidityForType = i18n$3(this.lang, this.type);
|
|
12400
|
+
// COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
|
|
12401
|
+
// (L682) calls configureDataForType, which at L1266-1268 assigns
|
|
12402
|
+
// `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
|
|
12403
|
+
// type=date input whose `format` attribute is unset. That runs before
|
|
12404
|
+
// firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
|
|
12405
|
+
// always false here. Retained as a defensive fallback; the whole function
|
|
12406
|
+
// is @deprecated per AB#1557296 and slated for removal.
|
|
12353
12407
|
} else if (!this.format && this.type === 'date') {
|
|
12354
12408
|
this.setCustomValidityForType = i18n$3(this.lang, 'dateMMDDYYYY');
|
|
12355
12409
|
} else if (this.dateFormatMap[this.format]) {
|
|
@@ -12411,6 +12465,8 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12411
12465
|
this.configureDataForType();
|
|
12412
12466
|
}
|
|
12413
12467
|
|
|
12468
|
+
this.syncDateValues(changedProperties);
|
|
12469
|
+
|
|
12414
12470
|
if (changedProperties.has('value')) {
|
|
12415
12471
|
if (this.value && this.value.length > 0) {
|
|
12416
12472
|
this.hasValue = true;
|
|
@@ -12432,14 +12488,14 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12432
12488
|
|
|
12433
12489
|
if (formattedValue !== this.inputElement.value) {
|
|
12434
12490
|
this.skipNextProgrammaticInputEvent = true;
|
|
12435
|
-
if (this.maskInstance && this.type
|
|
12491
|
+
if (this.maskInstance && this.type === 'credit-card') {
|
|
12436
12492
|
// Route through the mask so its _value and el.value stay in lock-step
|
|
12437
12493
|
// (set value calls updateControl which writes el.value = displayValue).
|
|
12438
12494
|
// Writing el.value directly leaves the mask thinking displayValue is
|
|
12439
|
-
// stale; _saveSelection on the next focus/click then warns.
|
|
12440
|
-
//
|
|
12441
|
-
//
|
|
12442
|
-
// flip validity from patternMismatch to tooShort.
|
|
12495
|
+
// stale; _saveSelection on the next focus/click then warns. Scoped to
|
|
12496
|
+
// credit-card so date's own formattedValue (raw ISO when calendar-invalid)
|
|
12497
|
+
// isn't re-masked through the mm/dd/yyyy mask, which would truncate it
|
|
12498
|
+
// and flip validity from patternMismatch to tooShort.
|
|
12443
12499
|
this.maskInstance.value = formattedValue || '';
|
|
12444
12500
|
} else if (formattedValue) {
|
|
12445
12501
|
this.inputElement.value = formattedValue;
|
|
@@ -12481,65 +12537,120 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12481
12537
|
}));
|
|
12482
12538
|
}
|
|
12483
12539
|
|
|
12540
|
+
|
|
12541
|
+
/**
|
|
12542
|
+
* Synchronizes the ISO string values and Date object representations for date-related properties.
|
|
12543
|
+
* This keeps the model and display values aligned when either side changes.
|
|
12544
|
+
*
|
|
12545
|
+
* When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
|
|
12546
|
+
* Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
|
|
12547
|
+
* represents a full year/month/day date format.
|
|
12548
|
+
*
|
|
12549
|
+
* @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
|
|
12550
|
+
* @returns {void}
|
|
12551
|
+
* @private
|
|
12552
|
+
*/
|
|
12553
|
+
syncDateValues(changedProperties = undefined) {
|
|
12554
|
+
if (!this.util.isFullDateFormat(this.type, this.format)) {
|
|
12555
|
+
return;
|
|
12556
|
+
}
|
|
12557
|
+
|
|
12558
|
+
this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
|
|
12559
|
+
this.syncSingleDateValue(changedProperties, 'minObject', 'min');
|
|
12560
|
+
this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
|
|
12561
|
+
}
|
|
12562
|
+
|
|
12563
|
+
/**
|
|
12564
|
+
* Synchronizes one date object/string property pair.
|
|
12565
|
+
* @private
|
|
12566
|
+
* @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
|
|
12567
|
+
* @param {string} objectProperty - Date object property name.
|
|
12568
|
+
* @param {string} valueProperty - ISO string property name.
|
|
12569
|
+
* @returns {void}
|
|
12570
|
+
*/
|
|
12571
|
+
syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
|
|
12572
|
+
const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
|
|
12573
|
+
|
|
12574
|
+
// objectProperty wins over valueProperty when both changed
|
|
12575
|
+
if (objectPropertyChanged && this[objectProperty]) {
|
|
12576
|
+
this[valueProperty] = dateFormatter$3.toISOFormatString(this[objectProperty]);
|
|
12577
|
+
return;
|
|
12578
|
+
}
|
|
12579
|
+
|
|
12580
|
+
const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
|
|
12581
|
+
if (!valuePropertyChanged) {
|
|
12582
|
+
return;
|
|
12583
|
+
}
|
|
12584
|
+
|
|
12585
|
+
// when value is newly set to the same ISO string that corresponds to the existing Date object, do not clear the Date object (avoid unnecessary updates)
|
|
12586
|
+
if (
|
|
12587
|
+
changedProperties &&
|
|
12588
|
+
valueProperty === 'value' &&
|
|
12589
|
+
changedProperties.get('value') === undefined &&
|
|
12590
|
+
this[objectProperty] instanceof Date &&
|
|
12591
|
+
this[valueProperty] === dateFormatter$3.toISOFormatString(this[objectProperty])
|
|
12592
|
+
) {
|
|
12593
|
+
return;
|
|
12594
|
+
}
|
|
12595
|
+
|
|
12596
|
+
if (dateFormatter$3.isValidDate(this[valueProperty])) {
|
|
12597
|
+
this.setDateObjectProperty(objectProperty, dateFormatter$3.stringToDateInstance(this[valueProperty]));
|
|
12598
|
+
} else {
|
|
12599
|
+
this.setDateObjectProperty(objectProperty, undefined);
|
|
12600
|
+
}
|
|
12601
|
+
}
|
|
12602
|
+
|
|
12484
12603
|
/**
|
|
12485
12604
|
* Sets up IMasks and logic based on auto-formatting requirements.
|
|
12486
12605
|
* @private
|
|
12487
12606
|
* @returns {void}
|
|
12488
12607
|
*/
|
|
12489
12608
|
configureAutoFormatting() {
|
|
12490
|
-
//
|
|
12491
|
-
//
|
|
12492
|
-
//
|
|
12493
|
-
//
|
|
12609
|
+
// Re-entrancy guard. The patched-setter's synthetic input event (suppressed
|
|
12610
|
+
// by _configuringMask above) could otherwise trigger handleInput →
|
|
12611
|
+
// processCreditCard → configureAutoFormatting before the outer call's
|
|
12612
|
+
// set value has finished its alignCursor pass.
|
|
12494
12613
|
if (this._configuringMask) return;
|
|
12495
12614
|
this._configuringMask = true;
|
|
12496
12615
|
try {
|
|
12497
|
-
// Destroy any prior mask so IMask can attach fresh under the new format.
|
|
12498
|
-
// Null the reference too — if the new maskOptions.mask is falsy (e.g.
|
|
12499
|
-
// type switched from credit-card to text) the IMask() reassignment
|
|
12500
|
-
// below is skipped, and downstream writes at line ~823 would otherwise
|
|
12501
|
-
// route through the destroyed instance.
|
|
12502
12616
|
if (this.maskInstance) {
|
|
12503
12617
|
this.maskInstance.destroy();
|
|
12504
|
-
this.maskInstance = null;
|
|
12505
12618
|
}
|
|
12506
12619
|
|
|
12620
|
+
// Pass new format to util
|
|
12507
12621
|
this.util.updateFormat(this.format);
|
|
12508
12622
|
|
|
12509
12623
|
const maskOptions = this.util.getMaskOptions(this.type, this.format);
|
|
12510
12624
|
|
|
12511
12625
|
if (this.inputElement && maskOptions.mask) {
|
|
12512
|
-
// Capture the current display so it can be re-applied after IMask
|
|
12513
|
-
// attaches. The restore at the bottom goes through maskInstance.value
|
|
12514
|
-
// (not inputElement.value directly) so the mask's internal state and
|
|
12515
|
-
// the input's displayed text stay in lock-step.
|
|
12516
|
-
let existingValue = this.inputElement.value;
|
|
12517
12626
|
|
|
12518
|
-
//
|
|
12519
|
-
//
|
|
12520
|
-
//
|
|
12521
|
-
//
|
|
12627
|
+
// Stash and clear any existing value before IMask init.
|
|
12628
|
+
// IMask's constructor processes the current input value which requires
|
|
12629
|
+
// selection state — clearing first avoids that scenario entirely.
|
|
12630
|
+
// When the format changes (e.g. locale switch) and we have a valid ISO
|
|
12631
|
+
// model value, compute the display string for the NEW format instead of
|
|
12632
|
+
// re-using the old display string, which may be invalid in the new mask.
|
|
12633
|
+
let existingValue = this.inputElement.value;
|
|
12522
12634
|
if (
|
|
12523
12635
|
this.util.isFullDateFormat(this.type, this.format) &&
|
|
12524
12636
|
this.value &&
|
|
12525
|
-
this.
|
|
12637
|
+
dateFormatter$3.isValidDate(this.value) &&
|
|
12638
|
+
this.valueObject instanceof Date &&
|
|
12639
|
+
!Number.isNaN(this.valueObject.getTime()) &&
|
|
12526
12640
|
typeof maskOptions.format === 'function'
|
|
12527
12641
|
) {
|
|
12528
12642
|
existingValue = maskOptions.format(this.valueObject);
|
|
12529
12643
|
}
|
|
12530
12644
|
|
|
12531
|
-
// Clear before IMask attaches so the constructor seeds an empty
|
|
12532
|
-
// internal value. Otherwise IMask reads the stale unmasked string
|
|
12533
|
-
// and emits a spurious 'accept' before the restore below runs.
|
|
12534
12645
|
this.skipNextProgrammaticInputEvent = true;
|
|
12535
12646
|
this.inputElement.value = '';
|
|
12536
12647
|
|
|
12537
12648
|
this.maskInstance = IMask$3(this.inputElement, maskOptions);
|
|
12538
12649
|
|
|
12539
|
-
// Mask fires 'accept' on every value change, including the restore
|
|
12540
|
-
// step below. Skip events fired during configureAutoFormatting so
|
|
12541
|
-
// we don't overwrite a value the parent just pushed.
|
|
12542
12650
|
this.maskInstance.on('accept', () => {
|
|
12651
|
+
// Suppress propagation during configureAutoFormatting's own value-restoration
|
|
12652
|
+
// (line below) — the mask emits 'accept' on every value-set, including ours,
|
|
12653
|
+
// and we don't want to overwrite a value the parent just pushed.
|
|
12543
12654
|
if (this._configuringMask) return;
|
|
12544
12655
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
12545
12656
|
if (this.type === "date") {
|
|
@@ -12547,8 +12658,6 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12547
12658
|
}
|
|
12548
12659
|
});
|
|
12549
12660
|
|
|
12550
|
-
// Mask fires 'complete' on the restore step below for any value that
|
|
12551
|
-
// happens to be a complete match. Same setup-suppression as 'accept'.
|
|
12552
12661
|
this.maskInstance.on('complete', () => {
|
|
12553
12662
|
if (this._configuringMask) return;
|
|
12554
12663
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
@@ -12557,9 +12666,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12557
12666
|
}
|
|
12558
12667
|
});
|
|
12559
12668
|
|
|
12560
|
-
//
|
|
12561
|
-
// the mask reformats it under the new rules and keeps its internal
|
|
12562
|
-
// _value aligned with the input's displayed text.
|
|
12669
|
+
// Restore the stashed value through IMask so it's properly masked
|
|
12563
12670
|
if (existingValue) {
|
|
12564
12671
|
this.maskInstance.value = existingValue;
|
|
12565
12672
|
}
|
|
@@ -12727,6 +12834,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12727
12834
|
*/
|
|
12728
12835
|
reset() {
|
|
12729
12836
|
this.value = undefined;
|
|
12837
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
12730
12838
|
this.validation.reset(this);
|
|
12731
12839
|
}
|
|
12732
12840
|
|
|
@@ -12735,6 +12843,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12735
12843
|
*/
|
|
12736
12844
|
clear() {
|
|
12737
12845
|
this.value = undefined;
|
|
12846
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
12738
12847
|
}
|
|
12739
12848
|
|
|
12740
12849
|
/**
|
|
@@ -12772,7 +12881,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12772
12881
|
*/
|
|
12773
12882
|
get placeholderStr() {
|
|
12774
12883
|
if (!this.placeholder && this.type === 'date') {
|
|
12775
|
-
return this.format
|
|
12884
|
+
return this.format.toUpperCase();
|
|
12776
12885
|
}
|
|
12777
12886
|
return this.placeholder || "";
|
|
12778
12887
|
}
|
|
@@ -13263,7 +13372,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$3 {
|
|
|
13263
13372
|
}
|
|
13264
13373
|
};
|
|
13265
13374
|
|
|
13266
|
-
var formkitVersion$8 = '
|
|
13375
|
+
var formkitVersion$8 = '202606241801';
|
|
13267
13376
|
|
|
13268
13377
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
13269
13378
|
// See LICENSE in the project root for license information.
|
|
@@ -24502,7 +24611,6 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
|
|
|
24502
24611
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
24503
24612
|
|
|
24504
24613
|
if (!(valueObject instanceof Date) || Number.isNaN(valueObject.getTime()) || !maskOptions || typeof maskOptions.format !== 'function') {
|
|
24505
|
-
console.debug('Invalid date object or mask options for formatting', { valueObject, maskOptions }); // eslint-disable-line no-console
|
|
24506
24614
|
return undefined;
|
|
24507
24615
|
}
|
|
24508
24616
|
|
|
@@ -27383,7 +27491,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$3 {
|
|
|
27383
27491
|
}
|
|
27384
27492
|
};
|
|
27385
27493
|
|
|
27386
|
-
var formkitVersion$2$1 = '
|
|
27494
|
+
var formkitVersion$2$1 = '202606241801';
|
|
27387
27495
|
|
|
27388
27496
|
let l$1$2 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=i$2`${s$3(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1$2 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$1$2 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$1$3=i$6`: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]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--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}
|
|
27389
27497
|
`,u$4$2=i$6`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}: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;box-sizing:border-box}: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: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.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(0)}to{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{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{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%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
|
|
@@ -32894,7 +33002,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$3 {
|
|
|
32894
33002
|
}
|
|
32895
33003
|
};
|
|
32896
33004
|
|
|
32897
|
-
var formkitVersion$1$3 = '
|
|
33005
|
+
var formkitVersion$1$3 = '202606241801';
|
|
32898
33006
|
|
|
32899
33007
|
let AuroElement$2$2 = class AuroElement extends i$3 {
|
|
32900
33008
|
static get properties() {
|
|
@@ -44616,7 +44724,6 @@ let AuroInputUtilities$2 = class AuroInputUtilities {
|
|
|
44616
44724
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
44617
44725
|
|
|
44618
44726
|
if (!(valueObject instanceof Date) || Number.isNaN(valueObject.getTime()) || !maskOptions || typeof maskOptions.format !== 'function') {
|
|
44619
|
-
console.debug('Invalid date object or mask options for formatting', { valueObject, maskOptions }); // eslint-disable-line no-console
|
|
44620
44727
|
return undefined;
|
|
44621
44728
|
}
|
|
44622
44729
|
|
|
@@ -44768,8 +44875,10 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44768
44875
|
this.layout = 'classic';
|
|
44769
44876
|
this.locale = 'en-US';
|
|
44770
44877
|
this.max = undefined;
|
|
44878
|
+
this._maxObject = undefined;
|
|
44771
44879
|
this.maxLength = undefined;
|
|
44772
44880
|
this.min = undefined;
|
|
44881
|
+
this._minObject = undefined;
|
|
44773
44882
|
this.minLength = undefined;
|
|
44774
44883
|
this.required = false;
|
|
44775
44884
|
this.onDark = false;
|
|
@@ -44777,6 +44886,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44777
44886
|
this.size = 'lg';
|
|
44778
44887
|
this.shape = 'classic';
|
|
44779
44888
|
this.value = undefined;
|
|
44889
|
+
this._valueObject = undefined;
|
|
44780
44890
|
|
|
44781
44891
|
this._initializePrivateDefaults();
|
|
44782
44892
|
}
|
|
@@ -45316,7 +45426,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45316
45426
|
* @returns {Date|undefined}
|
|
45317
45427
|
*/
|
|
45318
45428
|
get valueObject() {
|
|
45319
|
-
return this.
|
|
45429
|
+
return this._valueObject || this._computeDateObjectFallback(this.value);
|
|
45320
45430
|
}
|
|
45321
45431
|
|
|
45322
45432
|
/**
|
|
@@ -45324,7 +45434,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45324
45434
|
* @returns {Date|undefined}
|
|
45325
45435
|
*/
|
|
45326
45436
|
get minObject() {
|
|
45327
|
-
return this.
|
|
45437
|
+
return this._minObject || this._computeDateObjectFallback(this.min);
|
|
45328
45438
|
}
|
|
45329
45439
|
|
|
45330
45440
|
/**
|
|
@@ -45332,7 +45442,50 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45332
45442
|
* @returns {Date|undefined}
|
|
45333
45443
|
*/
|
|
45334
45444
|
get maxObject() {
|
|
45335
|
-
return this.
|
|
45445
|
+
return this._maxObject || this._computeDateObjectFallback(this.max);
|
|
45446
|
+
}
|
|
45447
|
+
|
|
45448
|
+
/**
|
|
45449
|
+
* Parses a date string into a Date object when the corresponding `_*Object`
|
|
45450
|
+
* field hasn't been synced yet by `updated()`. Returns undefined when the
|
|
45451
|
+
* input type/format isn't a full date or the string is not a valid date.
|
|
45452
|
+
*
|
|
45453
|
+
* Why this exists: a parent (datepicker) can call `inputN.validate()` from
|
|
45454
|
+
* inside its own `updated()` before this input's `updated()` has run
|
|
45455
|
+
* `syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`
|
|
45456
|
+
* and range checks would otherwise silently no-op (flipping the result to
|
|
45457
|
+
* `valid` or `patternMismatch`).
|
|
45458
|
+
* @private
|
|
45459
|
+
* @param {string|undefined} dateStr - ISO date string from `value`/`min`/`max`.
|
|
45460
|
+
* @returns {Date|undefined}
|
|
45461
|
+
*/
|
|
45462
|
+
_computeDateObjectFallback(dateStr) {
|
|
45463
|
+
if (!dateStr || !this.util || !this.util.isFullDateFormat(this.type, this.format)) {
|
|
45464
|
+
return undefined;
|
|
45465
|
+
}
|
|
45466
|
+
if (!dateFormatter$2.isValidDate(dateStr)) {
|
|
45467
|
+
return undefined;
|
|
45468
|
+
}
|
|
45469
|
+
return dateFormatter$2.stringToDateInstance(dateStr);
|
|
45470
|
+
}
|
|
45471
|
+
|
|
45472
|
+
/**
|
|
45473
|
+
* Internal setter for readonly date object properties.
|
|
45474
|
+
* @private
|
|
45475
|
+
* @param {'valueObject'|'minObject'|'maxObject'} propertyName - Public object property name.
|
|
45476
|
+
* @param {Date|undefined} propertyValue - Value to assign.
|
|
45477
|
+
* @returns {void}
|
|
45478
|
+
*/
|
|
45479
|
+
setDateObjectProperty(propertyName, propertyValue) {
|
|
45480
|
+
const internalPropertyName = `_${propertyName}`;
|
|
45481
|
+
const previousValue = this[internalPropertyName];
|
|
45482
|
+
|
|
45483
|
+
if (previousValue === propertyValue) {
|
|
45484
|
+
return;
|
|
45485
|
+
}
|
|
45486
|
+
|
|
45487
|
+
this[internalPropertyName] = propertyValue;
|
|
45488
|
+
this.requestUpdate(propertyName, previousValue);
|
|
45336
45489
|
}
|
|
45337
45490
|
|
|
45338
45491
|
connectedCallback() {
|
|
@@ -45361,6 +45514,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45361
45514
|
format: this.format
|
|
45362
45515
|
});
|
|
45363
45516
|
this.configureDataForType();
|
|
45517
|
+
this.syncDateValues();
|
|
45364
45518
|
}
|
|
45365
45519
|
|
|
45366
45520
|
disconnectedCallback() {
|
|
@@ -45390,6 +45544,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45390
45544
|
this.setCustomHelpTextMessage();
|
|
45391
45545
|
this.configureAutoFormatting();
|
|
45392
45546
|
this.configureDataForType();
|
|
45547
|
+
this.syncDateValues();
|
|
45393
45548
|
}
|
|
45394
45549
|
|
|
45395
45550
|
/**
|
|
@@ -45465,6 +45620,13 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45465
45620
|
|
|
45466
45621
|
if (typeToI18n.includes(this.type)) {
|
|
45467
45622
|
this.setCustomValidityForType = i18n$1(this.lang, this.type);
|
|
45623
|
+
// COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
|
|
45624
|
+
// (L682) calls configureDataForType, which at L1266-1268 assigns
|
|
45625
|
+
// `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
|
|
45626
|
+
// type=date input whose `format` attribute is unset. That runs before
|
|
45627
|
+
// firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
|
|
45628
|
+
// always false here. Retained as a defensive fallback; the whole function
|
|
45629
|
+
// is @deprecated per AB#1557296 and slated for removal.
|
|
45468
45630
|
} else if (!this.format && this.type === 'date') {
|
|
45469
45631
|
this.setCustomValidityForType = i18n$1(this.lang, 'dateMMDDYYYY');
|
|
45470
45632
|
} else if (this.dateFormatMap[this.format]) {
|
|
@@ -45526,6 +45688,8 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45526
45688
|
this.configureDataForType();
|
|
45527
45689
|
}
|
|
45528
45690
|
|
|
45691
|
+
this.syncDateValues(changedProperties);
|
|
45692
|
+
|
|
45529
45693
|
if (changedProperties.has('value')) {
|
|
45530
45694
|
if (this.value && this.value.length > 0) {
|
|
45531
45695
|
this.hasValue = true;
|
|
@@ -45547,14 +45711,14 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45547
45711
|
|
|
45548
45712
|
if (formattedValue !== this.inputElement.value) {
|
|
45549
45713
|
this.skipNextProgrammaticInputEvent = true;
|
|
45550
|
-
if (this.maskInstance && this.type
|
|
45714
|
+
if (this.maskInstance && this.type === 'credit-card') {
|
|
45551
45715
|
// Route through the mask so its _value and el.value stay in lock-step
|
|
45552
45716
|
// (set value calls updateControl which writes el.value = displayValue).
|
|
45553
45717
|
// Writing el.value directly leaves the mask thinking displayValue is
|
|
45554
|
-
// stale; _saveSelection on the next focus/click then warns.
|
|
45555
|
-
//
|
|
45556
|
-
//
|
|
45557
|
-
// flip validity from patternMismatch to tooShort.
|
|
45718
|
+
// stale; _saveSelection on the next focus/click then warns. Scoped to
|
|
45719
|
+
// credit-card so date's own formattedValue (raw ISO when calendar-invalid)
|
|
45720
|
+
// isn't re-masked through the mm/dd/yyyy mask, which would truncate it
|
|
45721
|
+
// and flip validity from patternMismatch to tooShort.
|
|
45558
45722
|
this.maskInstance.value = formattedValue || '';
|
|
45559
45723
|
} else if (formattedValue) {
|
|
45560
45724
|
this.inputElement.value = formattedValue;
|
|
@@ -45596,65 +45760,120 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45596
45760
|
}));
|
|
45597
45761
|
}
|
|
45598
45762
|
|
|
45763
|
+
|
|
45764
|
+
/**
|
|
45765
|
+
* Synchronizes the ISO string values and Date object representations for date-related properties.
|
|
45766
|
+
* This keeps the model and display values aligned when either side changes.
|
|
45767
|
+
*
|
|
45768
|
+
* When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
|
|
45769
|
+
* Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
|
|
45770
|
+
* represents a full year/month/day date format.
|
|
45771
|
+
*
|
|
45772
|
+
* @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
|
|
45773
|
+
* @returns {void}
|
|
45774
|
+
* @private
|
|
45775
|
+
*/
|
|
45776
|
+
syncDateValues(changedProperties = undefined) {
|
|
45777
|
+
if (!this.util.isFullDateFormat(this.type, this.format)) {
|
|
45778
|
+
return;
|
|
45779
|
+
}
|
|
45780
|
+
|
|
45781
|
+
this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
|
|
45782
|
+
this.syncSingleDateValue(changedProperties, 'minObject', 'min');
|
|
45783
|
+
this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
|
|
45784
|
+
}
|
|
45785
|
+
|
|
45786
|
+
/**
|
|
45787
|
+
* Synchronizes one date object/string property pair.
|
|
45788
|
+
* @private
|
|
45789
|
+
* @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
|
|
45790
|
+
* @param {string} objectProperty - Date object property name.
|
|
45791
|
+
* @param {string} valueProperty - ISO string property name.
|
|
45792
|
+
* @returns {void}
|
|
45793
|
+
*/
|
|
45794
|
+
syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
|
|
45795
|
+
const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
|
|
45796
|
+
|
|
45797
|
+
// objectProperty wins over valueProperty when both changed
|
|
45798
|
+
if (objectPropertyChanged && this[objectProperty]) {
|
|
45799
|
+
this[valueProperty] = dateFormatter$2.toISOFormatString(this[objectProperty]);
|
|
45800
|
+
return;
|
|
45801
|
+
}
|
|
45802
|
+
|
|
45803
|
+
const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
|
|
45804
|
+
if (!valuePropertyChanged) {
|
|
45805
|
+
return;
|
|
45806
|
+
}
|
|
45807
|
+
|
|
45808
|
+
// when value is newly set to the same ISO string that corresponds to the existing Date object, do not clear the Date object (avoid unnecessary updates)
|
|
45809
|
+
if (
|
|
45810
|
+
changedProperties &&
|
|
45811
|
+
valueProperty === 'value' &&
|
|
45812
|
+
changedProperties.get('value') === undefined &&
|
|
45813
|
+
this[objectProperty] instanceof Date &&
|
|
45814
|
+
this[valueProperty] === dateFormatter$2.toISOFormatString(this[objectProperty])
|
|
45815
|
+
) {
|
|
45816
|
+
return;
|
|
45817
|
+
}
|
|
45818
|
+
|
|
45819
|
+
if (dateFormatter$2.isValidDate(this[valueProperty])) {
|
|
45820
|
+
this.setDateObjectProperty(objectProperty, dateFormatter$2.stringToDateInstance(this[valueProperty]));
|
|
45821
|
+
} else {
|
|
45822
|
+
this.setDateObjectProperty(objectProperty, undefined);
|
|
45823
|
+
}
|
|
45824
|
+
}
|
|
45825
|
+
|
|
45599
45826
|
/**
|
|
45600
45827
|
* Sets up IMasks and logic based on auto-formatting requirements.
|
|
45601
45828
|
* @private
|
|
45602
45829
|
* @returns {void}
|
|
45603
45830
|
*/
|
|
45604
45831
|
configureAutoFormatting() {
|
|
45605
|
-
//
|
|
45606
|
-
//
|
|
45607
|
-
//
|
|
45608
|
-
//
|
|
45832
|
+
// Re-entrancy guard. The patched-setter's synthetic input event (suppressed
|
|
45833
|
+
// by _configuringMask above) could otherwise trigger handleInput →
|
|
45834
|
+
// processCreditCard → configureAutoFormatting before the outer call's
|
|
45835
|
+
// set value has finished its alignCursor pass.
|
|
45609
45836
|
if (this._configuringMask) return;
|
|
45610
45837
|
this._configuringMask = true;
|
|
45611
45838
|
try {
|
|
45612
|
-
// Destroy any prior mask so IMask can attach fresh under the new format.
|
|
45613
|
-
// Null the reference too — if the new maskOptions.mask is falsy (e.g.
|
|
45614
|
-
// type switched from credit-card to text) the IMask() reassignment
|
|
45615
|
-
// below is skipped, and downstream writes at line ~823 would otherwise
|
|
45616
|
-
// route through the destroyed instance.
|
|
45617
45839
|
if (this.maskInstance) {
|
|
45618
45840
|
this.maskInstance.destroy();
|
|
45619
|
-
this.maskInstance = null;
|
|
45620
45841
|
}
|
|
45621
45842
|
|
|
45843
|
+
// Pass new format to util
|
|
45622
45844
|
this.util.updateFormat(this.format);
|
|
45623
45845
|
|
|
45624
45846
|
const maskOptions = this.util.getMaskOptions(this.type, this.format);
|
|
45625
45847
|
|
|
45626
45848
|
if (this.inputElement && maskOptions.mask) {
|
|
45627
|
-
// Capture the current display so it can be re-applied after IMask
|
|
45628
|
-
// attaches. The restore at the bottom goes through maskInstance.value
|
|
45629
|
-
// (not inputElement.value directly) so the mask's internal state and
|
|
45630
|
-
// the input's displayed text stay in lock-step.
|
|
45631
|
-
let existingValue = this.inputElement.value;
|
|
45632
45849
|
|
|
45633
|
-
//
|
|
45634
|
-
//
|
|
45635
|
-
//
|
|
45636
|
-
//
|
|
45850
|
+
// Stash and clear any existing value before IMask init.
|
|
45851
|
+
// IMask's constructor processes the current input value which requires
|
|
45852
|
+
// selection state — clearing first avoids that scenario entirely.
|
|
45853
|
+
// When the format changes (e.g. locale switch) and we have a valid ISO
|
|
45854
|
+
// model value, compute the display string for the NEW format instead of
|
|
45855
|
+
// re-using the old display string, which may be invalid in the new mask.
|
|
45856
|
+
let existingValue = this.inputElement.value;
|
|
45637
45857
|
if (
|
|
45638
45858
|
this.util.isFullDateFormat(this.type, this.format) &&
|
|
45639
45859
|
this.value &&
|
|
45640
|
-
this.
|
|
45860
|
+
dateFormatter$2.isValidDate(this.value) &&
|
|
45861
|
+
this.valueObject instanceof Date &&
|
|
45862
|
+
!Number.isNaN(this.valueObject.getTime()) &&
|
|
45641
45863
|
typeof maskOptions.format === 'function'
|
|
45642
45864
|
) {
|
|
45643
45865
|
existingValue = maskOptions.format(this.valueObject);
|
|
45644
45866
|
}
|
|
45645
45867
|
|
|
45646
|
-
// Clear before IMask attaches so the constructor seeds an empty
|
|
45647
|
-
// internal value. Otherwise IMask reads the stale unmasked string
|
|
45648
|
-
// and emits a spurious 'accept' before the restore below runs.
|
|
45649
45868
|
this.skipNextProgrammaticInputEvent = true;
|
|
45650
45869
|
this.inputElement.value = '';
|
|
45651
45870
|
|
|
45652
45871
|
this.maskInstance = IMask$2(this.inputElement, maskOptions);
|
|
45653
45872
|
|
|
45654
|
-
// Mask fires 'accept' on every value change, including the restore
|
|
45655
|
-
// step below. Skip events fired during configureAutoFormatting so
|
|
45656
|
-
// we don't overwrite a value the parent just pushed.
|
|
45657
45873
|
this.maskInstance.on('accept', () => {
|
|
45874
|
+
// Suppress propagation during configureAutoFormatting's own value-restoration
|
|
45875
|
+
// (line below) — the mask emits 'accept' on every value-set, including ours,
|
|
45876
|
+
// and we don't want to overwrite a value the parent just pushed.
|
|
45658
45877
|
if (this._configuringMask) return;
|
|
45659
45878
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
45660
45879
|
if (this.type === "date") {
|
|
@@ -45662,8 +45881,6 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45662
45881
|
}
|
|
45663
45882
|
});
|
|
45664
45883
|
|
|
45665
|
-
// Mask fires 'complete' on the restore step below for any value that
|
|
45666
|
-
// happens to be a complete match. Same setup-suppression as 'accept'.
|
|
45667
45884
|
this.maskInstance.on('complete', () => {
|
|
45668
45885
|
if (this._configuringMask) return;
|
|
45669
45886
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
@@ -45672,9 +45889,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45672
45889
|
}
|
|
45673
45890
|
});
|
|
45674
45891
|
|
|
45675
|
-
//
|
|
45676
|
-
// the mask reformats it under the new rules and keeps its internal
|
|
45677
|
-
// _value aligned with the input's displayed text.
|
|
45892
|
+
// Restore the stashed value through IMask so it's properly masked
|
|
45678
45893
|
if (existingValue) {
|
|
45679
45894
|
this.maskInstance.value = existingValue;
|
|
45680
45895
|
}
|
|
@@ -45842,6 +46057,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45842
46057
|
*/
|
|
45843
46058
|
reset() {
|
|
45844
46059
|
this.value = undefined;
|
|
46060
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
45845
46061
|
this.validation.reset(this);
|
|
45846
46062
|
}
|
|
45847
46063
|
|
|
@@ -45850,6 +46066,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45850
46066
|
*/
|
|
45851
46067
|
clear() {
|
|
45852
46068
|
this.value = undefined;
|
|
46069
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
45853
46070
|
}
|
|
45854
46071
|
|
|
45855
46072
|
/**
|
|
@@ -45887,7 +46104,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45887
46104
|
*/
|
|
45888
46105
|
get placeholderStr() {
|
|
45889
46106
|
if (!this.placeholder && this.type === 'date') {
|
|
45890
|
-
return this.format
|
|
46107
|
+
return this.format.toUpperCase();
|
|
45891
46108
|
}
|
|
45892
46109
|
return this.placeholder || "";
|
|
45893
46110
|
}
|
|
@@ -46378,7 +46595,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$3 {
|
|
|
46378
46595
|
}
|
|
46379
46596
|
};
|
|
46380
46597
|
|
|
46381
|
-
var formkitVersion$7 = '
|
|
46598
|
+
var formkitVersion$7 = '202606241801';
|
|
46382
46599
|
|
|
46383
46600
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
46384
46601
|
// See LICENSE in the project root for license information.
|
|
@@ -51081,7 +51298,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$3 {
|
|
|
51081
51298
|
}
|
|
51082
51299
|
};
|
|
51083
51300
|
|
|
51084
|
-
var formkitVersion$1$2 = '
|
|
51301
|
+
var formkitVersion$1$2 = '202606241801';
|
|
51085
51302
|
|
|
51086
51303
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
51087
51304
|
// See LICENSE in the project root for license information.
|
|
@@ -55409,7 +55626,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$3 {
|
|
|
55409
55626
|
}
|
|
55410
55627
|
};
|
|
55411
55628
|
|
|
55412
|
-
var formkitVersion$6 = '
|
|
55629
|
+
var formkitVersion$6 = '202606241801';
|
|
55413
55630
|
|
|
55414
55631
|
let AuroElement$1$2 = class AuroElement extends i$3 {
|
|
55415
55632
|
static get properties() {
|
|
@@ -59349,7 +59566,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$3 {
|
|
|
59349
59566
|
}
|
|
59350
59567
|
};
|
|
59351
59568
|
|
|
59352
|
-
var formkitVersion$5 = '
|
|
59569
|
+
var formkitVersion$5 = '202606241801';
|
|
59353
59570
|
|
|
59354
59571
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
59355
59572
|
// See LICENSE in the project root for license information.
|
|
@@ -61099,7 +61316,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$3 {
|
|
|
61099
61316
|
}
|
|
61100
61317
|
};
|
|
61101
61318
|
|
|
61102
|
-
var formkitVersion$4 = '
|
|
61319
|
+
var formkitVersion$4 = '202606241801';
|
|
61103
61320
|
|
|
61104
61321
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
61105
61322
|
// See LICENSE in the project root for license information.
|
|
@@ -62275,8 +62492,6 @@ function navigateArrow$1(component, direction, options = {}) {
|
|
|
62275
62492
|
}
|
|
62276
62493
|
}
|
|
62277
62494
|
|
|
62278
|
-
/* eslint-disable no-underscore-dangle */
|
|
62279
|
-
|
|
62280
62495
|
/**
|
|
62281
62496
|
* Returns the clear button element from the active input's shadow
|
|
62282
62497
|
* DOM, if available.
|
|
@@ -62312,9 +62527,11 @@ function isClearBtnFocused(ctx, clearBtn = getClearBtn(ctx)) {
|
|
|
62312
62527
|
* @param {Object} menu - The menu component.
|
|
62313
62528
|
*/
|
|
62314
62529
|
function reconcileMenuIndex(menu) {
|
|
62530
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
62315
62531
|
if (menu._index < 0 && menu.optionActive && menu.items) {
|
|
62316
62532
|
const idx = menu.items.indexOf(menu.optionActive);
|
|
62317
62533
|
if (idx >= 0) {
|
|
62534
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
62318
62535
|
menu._index = idx;
|
|
62319
62536
|
}
|
|
62320
62537
|
}
|
|
@@ -66314,7 +66531,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
|
|
|
66314
66531
|
}
|
|
66315
66532
|
};
|
|
66316
66533
|
|
|
66317
|
-
var formkitVersion$2 = '
|
|
66534
|
+
var formkitVersion$2 = '202606241801';
|
|
66318
66535
|
|
|
66319
66536
|
let AuroElement$2$1 = class AuroElement extends i$3 {
|
|
66320
66537
|
static get properties() {
|
|
@@ -78036,7 +78253,6 @@ class AuroInputUtilities {
|
|
|
78036
78253
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
78037
78254
|
|
|
78038
78255
|
if (!(valueObject instanceof Date) || Number.isNaN(valueObject.getTime()) || !maskOptions || typeof maskOptions.format !== 'function') {
|
|
78039
|
-
console.debug('Invalid date object or mask options for formatting', { valueObject, maskOptions }); // eslint-disable-line no-console
|
|
78040
78256
|
return undefined;
|
|
78041
78257
|
}
|
|
78042
78258
|
|
|
@@ -78188,8 +78404,10 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78188
78404
|
this.layout = 'classic';
|
|
78189
78405
|
this.locale = 'en-US';
|
|
78190
78406
|
this.max = undefined;
|
|
78407
|
+
this._maxObject = undefined;
|
|
78191
78408
|
this.maxLength = undefined;
|
|
78192
78409
|
this.min = undefined;
|
|
78410
|
+
this._minObject = undefined;
|
|
78193
78411
|
this.minLength = undefined;
|
|
78194
78412
|
this.required = false;
|
|
78195
78413
|
this.onDark = false;
|
|
@@ -78197,6 +78415,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78197
78415
|
this.size = 'lg';
|
|
78198
78416
|
this.shape = 'classic';
|
|
78199
78417
|
this.value = undefined;
|
|
78418
|
+
this._valueObject = undefined;
|
|
78200
78419
|
|
|
78201
78420
|
this._initializePrivateDefaults();
|
|
78202
78421
|
}
|
|
@@ -78736,7 +78955,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78736
78955
|
* @returns {Date|undefined}
|
|
78737
78956
|
*/
|
|
78738
78957
|
get valueObject() {
|
|
78739
|
-
return this.
|
|
78958
|
+
return this._valueObject || this._computeDateObjectFallback(this.value);
|
|
78740
78959
|
}
|
|
78741
78960
|
|
|
78742
78961
|
/**
|
|
@@ -78744,7 +78963,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78744
78963
|
* @returns {Date|undefined}
|
|
78745
78964
|
*/
|
|
78746
78965
|
get minObject() {
|
|
78747
|
-
return this.
|
|
78966
|
+
return this._minObject || this._computeDateObjectFallback(this.min);
|
|
78748
78967
|
}
|
|
78749
78968
|
|
|
78750
78969
|
/**
|
|
@@ -78752,7 +78971,50 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78752
78971
|
* @returns {Date|undefined}
|
|
78753
78972
|
*/
|
|
78754
78973
|
get maxObject() {
|
|
78755
|
-
return this.
|
|
78974
|
+
return this._maxObject || this._computeDateObjectFallback(this.max);
|
|
78975
|
+
}
|
|
78976
|
+
|
|
78977
|
+
/**
|
|
78978
|
+
* Parses a date string into a Date object when the corresponding `_*Object`
|
|
78979
|
+
* field hasn't been synced yet by `updated()`. Returns undefined when the
|
|
78980
|
+
* input type/format isn't a full date or the string is not a valid date.
|
|
78981
|
+
*
|
|
78982
|
+
* Why this exists: a parent (datepicker) can call `inputN.validate()` from
|
|
78983
|
+
* inside its own `updated()` before this input's `updated()` has run
|
|
78984
|
+
* `syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`
|
|
78985
|
+
* and range checks would otherwise silently no-op (flipping the result to
|
|
78986
|
+
* `valid` or `patternMismatch`).
|
|
78987
|
+
* @private
|
|
78988
|
+
* @param {string|undefined} dateStr - ISO date string from `value`/`min`/`max`.
|
|
78989
|
+
* @returns {Date|undefined}
|
|
78990
|
+
*/
|
|
78991
|
+
_computeDateObjectFallback(dateStr) {
|
|
78992
|
+
if (!dateStr || !this.util || !this.util.isFullDateFormat(this.type, this.format)) {
|
|
78993
|
+
return undefined;
|
|
78994
|
+
}
|
|
78995
|
+
if (!dateFormatter.isValidDate(dateStr)) {
|
|
78996
|
+
return undefined;
|
|
78997
|
+
}
|
|
78998
|
+
return dateFormatter.stringToDateInstance(dateStr);
|
|
78999
|
+
}
|
|
79000
|
+
|
|
79001
|
+
/**
|
|
79002
|
+
* Internal setter for readonly date object properties.
|
|
79003
|
+
* @private
|
|
79004
|
+
* @param {'valueObject'|'minObject'|'maxObject'} propertyName - Public object property name.
|
|
79005
|
+
* @param {Date|undefined} propertyValue - Value to assign.
|
|
79006
|
+
* @returns {void}
|
|
79007
|
+
*/
|
|
79008
|
+
setDateObjectProperty(propertyName, propertyValue) {
|
|
79009
|
+
const internalPropertyName = `_${propertyName}`;
|
|
79010
|
+
const previousValue = this[internalPropertyName];
|
|
79011
|
+
|
|
79012
|
+
if (previousValue === propertyValue) {
|
|
79013
|
+
return;
|
|
79014
|
+
}
|
|
79015
|
+
|
|
79016
|
+
this[internalPropertyName] = propertyValue;
|
|
79017
|
+
this.requestUpdate(propertyName, previousValue);
|
|
78756
79018
|
}
|
|
78757
79019
|
|
|
78758
79020
|
connectedCallback() {
|
|
@@ -78781,6 +79043,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78781
79043
|
format: this.format
|
|
78782
79044
|
});
|
|
78783
79045
|
this.configureDataForType();
|
|
79046
|
+
this.syncDateValues();
|
|
78784
79047
|
}
|
|
78785
79048
|
|
|
78786
79049
|
disconnectedCallback() {
|
|
@@ -78810,6 +79073,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78810
79073
|
this.setCustomHelpTextMessage();
|
|
78811
79074
|
this.configureAutoFormatting();
|
|
78812
79075
|
this.configureDataForType();
|
|
79076
|
+
this.syncDateValues();
|
|
78813
79077
|
}
|
|
78814
79078
|
|
|
78815
79079
|
/**
|
|
@@ -78885,6 +79149,13 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78885
79149
|
|
|
78886
79150
|
if (typeToI18n.includes(this.type)) {
|
|
78887
79151
|
this.setCustomValidityForType = i18n(this.lang, this.type);
|
|
79152
|
+
// COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
|
|
79153
|
+
// (L682) calls configureDataForType, which at L1266-1268 assigns
|
|
79154
|
+
// `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
|
|
79155
|
+
// type=date input whose `format` attribute is unset. That runs before
|
|
79156
|
+
// firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
|
|
79157
|
+
// always false here. Retained as a defensive fallback; the whole function
|
|
79158
|
+
// is @deprecated per AB#1557296 and slated for removal.
|
|
78888
79159
|
} else if (!this.format && this.type === 'date') {
|
|
78889
79160
|
this.setCustomValidityForType = i18n(this.lang, 'dateMMDDYYYY');
|
|
78890
79161
|
} else if (this.dateFormatMap[this.format]) {
|
|
@@ -78946,6 +79217,8 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78946
79217
|
this.configureDataForType();
|
|
78947
79218
|
}
|
|
78948
79219
|
|
|
79220
|
+
this.syncDateValues(changedProperties);
|
|
79221
|
+
|
|
78949
79222
|
if (changedProperties.has('value')) {
|
|
78950
79223
|
if (this.value && this.value.length > 0) {
|
|
78951
79224
|
this.hasValue = true;
|
|
@@ -78967,14 +79240,14 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78967
79240
|
|
|
78968
79241
|
if (formattedValue !== this.inputElement.value) {
|
|
78969
79242
|
this.skipNextProgrammaticInputEvent = true;
|
|
78970
|
-
if (this.maskInstance && this.type
|
|
79243
|
+
if (this.maskInstance && this.type === 'credit-card') {
|
|
78971
79244
|
// Route through the mask so its _value and el.value stay in lock-step
|
|
78972
79245
|
// (set value calls updateControl which writes el.value = displayValue).
|
|
78973
79246
|
// Writing el.value directly leaves the mask thinking displayValue is
|
|
78974
|
-
// stale; _saveSelection on the next focus/click then warns.
|
|
78975
|
-
//
|
|
78976
|
-
//
|
|
78977
|
-
// flip validity from patternMismatch to tooShort.
|
|
79247
|
+
// stale; _saveSelection on the next focus/click then warns. Scoped to
|
|
79248
|
+
// credit-card so date's own formattedValue (raw ISO when calendar-invalid)
|
|
79249
|
+
// isn't re-masked through the mm/dd/yyyy mask, which would truncate it
|
|
79250
|
+
// and flip validity from patternMismatch to tooShort.
|
|
78978
79251
|
this.maskInstance.value = formattedValue || '';
|
|
78979
79252
|
} else if (formattedValue) {
|
|
78980
79253
|
this.inputElement.value = formattedValue;
|
|
@@ -79016,65 +79289,120 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
79016
79289
|
}));
|
|
79017
79290
|
}
|
|
79018
79291
|
|
|
79292
|
+
|
|
79293
|
+
/**
|
|
79294
|
+
* Synchronizes the ISO string values and Date object representations for date-related properties.
|
|
79295
|
+
* This keeps the model and display values aligned when either side changes.
|
|
79296
|
+
*
|
|
79297
|
+
* When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
|
|
79298
|
+
* Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
|
|
79299
|
+
* represents a full year/month/day date format.
|
|
79300
|
+
*
|
|
79301
|
+
* @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
|
|
79302
|
+
* @returns {void}
|
|
79303
|
+
* @private
|
|
79304
|
+
*/
|
|
79305
|
+
syncDateValues(changedProperties = undefined) {
|
|
79306
|
+
if (!this.util.isFullDateFormat(this.type, this.format)) {
|
|
79307
|
+
return;
|
|
79308
|
+
}
|
|
79309
|
+
|
|
79310
|
+
this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
|
|
79311
|
+
this.syncSingleDateValue(changedProperties, 'minObject', 'min');
|
|
79312
|
+
this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
|
|
79313
|
+
}
|
|
79314
|
+
|
|
79315
|
+
/**
|
|
79316
|
+
* Synchronizes one date object/string property pair.
|
|
79317
|
+
* @private
|
|
79318
|
+
* @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
|
|
79319
|
+
* @param {string} objectProperty - Date object property name.
|
|
79320
|
+
* @param {string} valueProperty - ISO string property name.
|
|
79321
|
+
* @returns {void}
|
|
79322
|
+
*/
|
|
79323
|
+
syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
|
|
79324
|
+
const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
|
|
79325
|
+
|
|
79326
|
+
// objectProperty wins over valueProperty when both changed
|
|
79327
|
+
if (objectPropertyChanged && this[objectProperty]) {
|
|
79328
|
+
this[valueProperty] = dateFormatter.toISOFormatString(this[objectProperty]);
|
|
79329
|
+
return;
|
|
79330
|
+
}
|
|
79331
|
+
|
|
79332
|
+
const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
|
|
79333
|
+
if (!valuePropertyChanged) {
|
|
79334
|
+
return;
|
|
79335
|
+
}
|
|
79336
|
+
|
|
79337
|
+
// when value is newly set to the same ISO string that corresponds to the existing Date object, do not clear the Date object (avoid unnecessary updates)
|
|
79338
|
+
if (
|
|
79339
|
+
changedProperties &&
|
|
79340
|
+
valueProperty === 'value' &&
|
|
79341
|
+
changedProperties.get('value') === undefined &&
|
|
79342
|
+
this[objectProperty] instanceof Date &&
|
|
79343
|
+
this[valueProperty] === dateFormatter.toISOFormatString(this[objectProperty])
|
|
79344
|
+
) {
|
|
79345
|
+
return;
|
|
79346
|
+
}
|
|
79347
|
+
|
|
79348
|
+
if (dateFormatter.isValidDate(this[valueProperty])) {
|
|
79349
|
+
this.setDateObjectProperty(objectProperty, dateFormatter.stringToDateInstance(this[valueProperty]));
|
|
79350
|
+
} else {
|
|
79351
|
+
this.setDateObjectProperty(objectProperty, undefined);
|
|
79352
|
+
}
|
|
79353
|
+
}
|
|
79354
|
+
|
|
79019
79355
|
/**
|
|
79020
79356
|
* Sets up IMasks and logic based on auto-formatting requirements.
|
|
79021
79357
|
* @private
|
|
79022
79358
|
* @returns {void}
|
|
79023
79359
|
*/
|
|
79024
79360
|
configureAutoFormatting() {
|
|
79025
|
-
//
|
|
79026
|
-
//
|
|
79027
|
-
//
|
|
79028
|
-
//
|
|
79361
|
+
// Re-entrancy guard. The patched-setter's synthetic input event (suppressed
|
|
79362
|
+
// by _configuringMask above) could otherwise trigger handleInput →
|
|
79363
|
+
// processCreditCard → configureAutoFormatting before the outer call's
|
|
79364
|
+
// set value has finished its alignCursor pass.
|
|
79029
79365
|
if (this._configuringMask) return;
|
|
79030
79366
|
this._configuringMask = true;
|
|
79031
79367
|
try {
|
|
79032
|
-
// Destroy any prior mask so IMask can attach fresh under the new format.
|
|
79033
|
-
// Null the reference too — if the new maskOptions.mask is falsy (e.g.
|
|
79034
|
-
// type switched from credit-card to text) the IMask() reassignment
|
|
79035
|
-
// below is skipped, and downstream writes at line ~823 would otherwise
|
|
79036
|
-
// route through the destroyed instance.
|
|
79037
79368
|
if (this.maskInstance) {
|
|
79038
79369
|
this.maskInstance.destroy();
|
|
79039
|
-
this.maskInstance = null;
|
|
79040
79370
|
}
|
|
79041
79371
|
|
|
79372
|
+
// Pass new format to util
|
|
79042
79373
|
this.util.updateFormat(this.format);
|
|
79043
79374
|
|
|
79044
79375
|
const maskOptions = this.util.getMaskOptions(this.type, this.format);
|
|
79045
79376
|
|
|
79046
79377
|
if (this.inputElement && maskOptions.mask) {
|
|
79047
|
-
// Capture the current display so it can be re-applied after IMask
|
|
79048
|
-
// attaches. The restore at the bottom goes through maskInstance.value
|
|
79049
|
-
// (not inputElement.value directly) so the mask's internal state and
|
|
79050
|
-
// the input's displayed text stay in lock-step.
|
|
79051
|
-
let existingValue = this.inputElement.value;
|
|
79052
79378
|
|
|
79053
|
-
//
|
|
79054
|
-
//
|
|
79055
|
-
//
|
|
79056
|
-
//
|
|
79379
|
+
// Stash and clear any existing value before IMask init.
|
|
79380
|
+
// IMask's constructor processes the current input value which requires
|
|
79381
|
+
// selection state — clearing first avoids that scenario entirely.
|
|
79382
|
+
// When the format changes (e.g. locale switch) and we have a valid ISO
|
|
79383
|
+
// model value, compute the display string for the NEW format instead of
|
|
79384
|
+
// re-using the old display string, which may be invalid in the new mask.
|
|
79385
|
+
let existingValue = this.inputElement.value;
|
|
79057
79386
|
if (
|
|
79058
79387
|
this.util.isFullDateFormat(this.type, this.format) &&
|
|
79059
79388
|
this.value &&
|
|
79060
|
-
this.
|
|
79389
|
+
dateFormatter.isValidDate(this.value) &&
|
|
79390
|
+
this.valueObject instanceof Date &&
|
|
79391
|
+
!Number.isNaN(this.valueObject.getTime()) &&
|
|
79061
79392
|
typeof maskOptions.format === 'function'
|
|
79062
79393
|
) {
|
|
79063
79394
|
existingValue = maskOptions.format(this.valueObject);
|
|
79064
79395
|
}
|
|
79065
79396
|
|
|
79066
|
-
// Clear before IMask attaches so the constructor seeds an empty
|
|
79067
|
-
// internal value. Otherwise IMask reads the stale unmasked string
|
|
79068
|
-
// and emits a spurious 'accept' before the restore below runs.
|
|
79069
79397
|
this.skipNextProgrammaticInputEvent = true;
|
|
79070
79398
|
this.inputElement.value = '';
|
|
79071
79399
|
|
|
79072
79400
|
this.maskInstance = IMask(this.inputElement, maskOptions);
|
|
79073
79401
|
|
|
79074
|
-
// Mask fires 'accept' on every value change, including the restore
|
|
79075
|
-
// step below. Skip events fired during configureAutoFormatting so
|
|
79076
|
-
// we don't overwrite a value the parent just pushed.
|
|
79077
79402
|
this.maskInstance.on('accept', () => {
|
|
79403
|
+
// Suppress propagation during configureAutoFormatting's own value-restoration
|
|
79404
|
+
// (line below) — the mask emits 'accept' on every value-set, including ours,
|
|
79405
|
+
// and we don't want to overwrite a value the parent just pushed.
|
|
79078
79406
|
if (this._configuringMask) return;
|
|
79079
79407
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
79080
79408
|
if (this.type === "date") {
|
|
@@ -79082,8 +79410,6 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
79082
79410
|
}
|
|
79083
79411
|
});
|
|
79084
79412
|
|
|
79085
|
-
// Mask fires 'complete' on the restore step below for any value that
|
|
79086
|
-
// happens to be a complete match. Same setup-suppression as 'accept'.
|
|
79087
79413
|
this.maskInstance.on('complete', () => {
|
|
79088
79414
|
if (this._configuringMask) return;
|
|
79089
79415
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
@@ -79092,9 +79418,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
79092
79418
|
}
|
|
79093
79419
|
});
|
|
79094
79420
|
|
|
79095
|
-
//
|
|
79096
|
-
// the mask reformats it under the new rules and keeps its internal
|
|
79097
|
-
// _value aligned with the input's displayed text.
|
|
79421
|
+
// Restore the stashed value through IMask so it's properly masked
|
|
79098
79422
|
if (existingValue) {
|
|
79099
79423
|
this.maskInstance.value = existingValue;
|
|
79100
79424
|
}
|
|
@@ -79262,6 +79586,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
79262
79586
|
*/
|
|
79263
79587
|
reset() {
|
|
79264
79588
|
this.value = undefined;
|
|
79589
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
79265
79590
|
this.validation.reset(this);
|
|
79266
79591
|
}
|
|
79267
79592
|
|
|
@@ -79270,6 +79595,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
79270
79595
|
*/
|
|
79271
79596
|
clear() {
|
|
79272
79597
|
this.value = undefined;
|
|
79598
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
79273
79599
|
}
|
|
79274
79600
|
|
|
79275
79601
|
/**
|
|
@@ -79307,7 +79633,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
79307
79633
|
*/
|
|
79308
79634
|
get placeholderStr() {
|
|
79309
79635
|
if (!this.placeholder && this.type === 'date') {
|
|
79310
|
-
return this.format
|
|
79636
|
+
return this.format.toUpperCase();
|
|
79311
79637
|
}
|
|
79312
79638
|
return this.placeholder || "";
|
|
79313
79639
|
}
|
|
@@ -79798,7 +80124,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$3 {
|
|
|
79798
80124
|
}
|
|
79799
80125
|
};
|
|
79800
80126
|
|
|
79801
|
-
var formkitVersion$1$1 = '
|
|
80127
|
+
var formkitVersion$1$1 = '202606241801';
|
|
79802
80128
|
|
|
79803
80129
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
79804
80130
|
// See LICENSE in the project root for license information.
|
|
@@ -80919,7 +81245,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$3 {
|
|
|
80919
81245
|
}
|
|
80920
81246
|
};
|
|
80921
81247
|
|
|
80922
|
-
var formkitVersion$3 = '
|
|
81248
|
+
var formkitVersion$3 = '202606241801';
|
|
80923
81249
|
|
|
80924
81250
|
var styleCss$1$3 = i$6`.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}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
|
|
80925
81251
|
|
|
@@ -81906,7 +82232,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81906
82232
|
if (this.menu) {
|
|
81907
82233
|
this.menu.matchWord = normalizeFilterValue(this.input.value);
|
|
81908
82234
|
}
|
|
81909
|
-
const label = getOptionLabel(this.menu.optionSelected);
|
|
82235
|
+
const label = getOptionLabel(this.menu.optionSelected) || this.menu.currentLabel;
|
|
81910
82236
|
this.updateTriggerTextDisplay(label || this.value);
|
|
81911
82237
|
}
|
|
81912
82238
|
|
|
@@ -81920,9 +82246,40 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81920
82246
|
// in suggestion mode, do not override input value if no selection has been made and the input currently has focus
|
|
81921
82247
|
const isInputFocusedWithNoSelection = !this.menu.value && (this.input.matches(':focus-within') || (this.inputInBib && this.inputInBib.matches(':focus-within')));
|
|
81922
82248
|
|
|
81923
|
-
|
|
81924
|
-
|
|
81925
|
-
|
|
82249
|
+
if (!this.persistInput && !(this.behavior === 'suggestion' && isInputFocusedWithNoSelection)) {
|
|
82250
|
+
const nextValue = label || this.value;
|
|
82251
|
+
// Only set the flag when there's an actual write to suppress —
|
|
82252
|
+
// syncValuesAndStates re-enters here during typing when both inputs
|
|
82253
|
+
// already match, and a no-op flag flip would make the bib branch's
|
|
82254
|
+
// bail eat legitimate user-input events.
|
|
82255
|
+
const triggerNeedsSync = this.input.value !== nextValue;
|
|
82256
|
+
const bibNeedsSync = Boolean(this.inputInBib && this.inputInBib !== this.input && this.inputInBib.value !== nextValue);
|
|
82257
|
+
if (triggerNeedsSync || bibNeedsSync) {
|
|
82258
|
+
this._syncingDisplayValue = true;
|
|
82259
|
+
if (triggerNeedsSync) {
|
|
82260
|
+
this.input.value = nextValue;
|
|
82261
|
+
}
|
|
82262
|
+
if (bibNeedsSync) {
|
|
82263
|
+
this.inputInBib.value = nextValue;
|
|
82264
|
+
}
|
|
82265
|
+
const pending = [];
|
|
82266
|
+
if (triggerNeedsSync) {
|
|
82267
|
+
pending.push(this.input.updateComplete);
|
|
82268
|
+
}
|
|
82269
|
+
if (bibNeedsSync) {
|
|
82270
|
+
pending.push(this.inputInBib.updateComplete);
|
|
82271
|
+
}
|
|
82272
|
+
Promise.all(pending).then(() => {
|
|
82273
|
+
// imask reasserts otherwise, and handleBlur reverts to its stale value.
|
|
82274
|
+
if (triggerNeedsSync && this.input.maskInstance && typeof this.input.maskInstance.updateValue === 'function') {
|
|
82275
|
+
this.input.maskInstance.updateValue();
|
|
82276
|
+
}
|
|
82277
|
+
if (bibNeedsSync && this.inputInBib && this.inputInBib.maskInstance && typeof this.inputInBib.maskInstance.updateValue === 'function') {
|
|
82278
|
+
this.inputInBib.maskInstance.updateValue();
|
|
82279
|
+
}
|
|
82280
|
+
this._syncingDisplayValue = false;
|
|
82281
|
+
});
|
|
82282
|
+
}
|
|
81926
82283
|
}
|
|
81927
82284
|
|
|
81928
82285
|
// update the displayValue in the trigger if displayValue slot content is present
|
|
@@ -81950,48 +82307,6 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81950
82307
|
this.requestUpdate();
|
|
81951
82308
|
}
|
|
81952
82309
|
|
|
81953
|
-
/**
|
|
81954
|
-
* Writes nextValue to the trigger input and the bib input when their current
|
|
81955
|
-
* value differs, then re-asserts imask after Lit's update flushes.
|
|
81956
|
-
* @param {string} nextValue - The value to write to both inputs.
|
|
81957
|
-
* @returns {Promise<void> | null} Promise that resolves after the inputs flush,
|
|
81958
|
-
* or null when no sync was needed (so callers can skip post-flush work).
|
|
81959
|
-
* @private
|
|
81960
|
-
*/
|
|
81961
|
-
syncInputValuesAcrossTriggerAndBib(nextValue) {
|
|
81962
|
-
// Only set the flag when there's an actual write to suppress —
|
|
81963
|
-
// syncValuesAndStates re-enters here during typing when both inputs
|
|
81964
|
-
// already match, and a no-op flag flip would make the bib branch's
|
|
81965
|
-
// bail eat legitimate user-input events.
|
|
81966
|
-
const triggerNeedsSync = this.input.value !== nextValue;
|
|
81967
|
-
const bibNeedsSync = this.inputInBib.value !== nextValue;
|
|
81968
|
-
if (!triggerNeedsSync && !bibNeedsSync) {
|
|
81969
|
-
return null;
|
|
81970
|
-
}
|
|
81971
|
-
|
|
81972
|
-
this._syncingDisplayValue = true;
|
|
81973
|
-
|
|
81974
|
-
const pending = [];
|
|
81975
|
-
if (triggerNeedsSync) {
|
|
81976
|
-
this.input.value = nextValue;
|
|
81977
|
-
pending.push(this.input.updateComplete);
|
|
81978
|
-
}
|
|
81979
|
-
if (bibNeedsSync) {
|
|
81980
|
-
this.inputInBib.value = nextValue;
|
|
81981
|
-
pending.push(this.inputInBib.updateComplete);
|
|
81982
|
-
}
|
|
81983
|
-
return Promise.all(pending).then(() => {
|
|
81984
|
-
// imask reasserts otherwise, and handleBlur reverts to its stale value.
|
|
81985
|
-
if (triggerNeedsSync && this.input.maskInstance && typeof this.input.maskInstance.updateValue === 'function') {
|
|
81986
|
-
this.input.maskInstance.updateValue();
|
|
81987
|
-
}
|
|
81988
|
-
if (bibNeedsSync && this.inputInBib && this.inputInBib.maskInstance && typeof this.inputInBib.maskInstance.updateValue === 'function') {
|
|
81989
|
-
this.inputInBib.maskInstance.updateValue();
|
|
81990
|
-
}
|
|
81991
|
-
this._syncingDisplayValue = false;
|
|
81992
|
-
});
|
|
81993
|
-
}
|
|
81994
|
-
|
|
81995
82310
|
/**
|
|
81996
82311
|
* Processes hidden state of all menu options and determines if there are any available options not hidden.
|
|
81997
82312
|
* @private
|
|
@@ -82019,9 +82334,9 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82019
82334
|
this.syncValuesAndStates();
|
|
82020
82335
|
}
|
|
82021
82336
|
|
|
82022
|
-
// Re-activate when optionActive is
|
|
82023
|
-
//
|
|
82024
|
-
//
|
|
82337
|
+
// Re-activate when optionActive is no longer visible, or when _index has
|
|
82338
|
+
// been reset (e.g. by clearSelection in an async update) so that
|
|
82339
|
+
// makeSelection() can find the correct option.
|
|
82025
82340
|
if (!this.availableOptions.includes(this.menu.optionActive) || this.menu._index < 0) {
|
|
82026
82341
|
this.activateFirstEnabledAvailableOption();
|
|
82027
82342
|
}
|
|
@@ -82155,25 +82470,28 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82155
82470
|
|
|
82156
82471
|
guardTouchPassthrough$1(this.menu);
|
|
82157
82472
|
|
|
82158
|
-
// showModal()
|
|
82159
|
-
//
|
|
82160
|
-
//
|
|
82161
|
-
// validation guard.
|
|
82473
|
+
// The dialog's showModal() steals focus from the trigger.
|
|
82474
|
+
// A single rAF is enough for the dialog DOM to be painted and
|
|
82475
|
+
// focusable, then doubleRaf finalizes the transition.
|
|
82162
82476
|
requestAnimationFrame(() => {
|
|
82163
82477
|
this.setInputFocus();
|
|
82164
82478
|
});
|
|
82165
|
-
|
|
82166
|
-
|
|
82167
|
-
|
|
82168
|
-
// The shared doubleRaf below parks the caret back at end-of-text
|
|
82169
|
-
// after the dropdown layout settles.
|
|
82170
|
-
|
|
82171
|
-
doubleRaf$1(() => {
|
|
82172
|
-
this.setInputFocus();
|
|
82173
|
-
if (this._inFullscreenTransition) {
|
|
82479
|
+
|
|
82480
|
+
doubleRaf$1(() => {
|
|
82481
|
+
this.setInputFocus();
|
|
82174
82482
|
this._inFullscreenTransition = false;
|
|
82175
|
-
}
|
|
82176
|
-
}
|
|
82483
|
+
});
|
|
82484
|
+
} else {
|
|
82485
|
+
// Desktop popover-open: restore the trigger caret to end-of-text.
|
|
82486
|
+
// Clicking the trigger lands on auro-input's floating <label for="…">
|
|
82487
|
+
// overlay; Chrome resets the native input's selection to [0, 0] on
|
|
82488
|
+
// label-focus before any JS runs. setInputFocus()'s non-fullscreen
|
|
82489
|
+
// branch parks the caret at end. doubleRaf lets the dropdown layout
|
|
82490
|
+
// settle first, matching the fullscreen branch timing.
|
|
82491
|
+
doubleRaf$1(() => {
|
|
82492
|
+
this.setInputFocus();
|
|
82493
|
+
});
|
|
82494
|
+
}
|
|
82177
82495
|
}
|
|
82178
82496
|
});
|
|
82179
82497
|
|
|
@@ -82384,7 +82702,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82384
82702
|
if (this.menu.optionSelected) {
|
|
82385
82703
|
const selected = this.menu.optionSelected;
|
|
82386
82704
|
|
|
82387
|
-
if (this.optionSelected !== selected) {
|
|
82705
|
+
if (!this.optionSelected || this.optionSelected !== selected) {
|
|
82388
82706
|
this.optionSelected = selected;
|
|
82389
82707
|
}
|
|
82390
82708
|
|
|
@@ -82397,7 +82715,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82397
82715
|
}
|
|
82398
82716
|
|
|
82399
82717
|
// Update display
|
|
82400
|
-
this.updateTriggerTextDisplay(getOptionLabel(this.optionSelected));
|
|
82718
|
+
this.updateTriggerTextDisplay(getOptionLabel(this.optionSelected) || this.menu.value);
|
|
82401
82719
|
|
|
82402
82720
|
// Update match word for filtering
|
|
82403
82721
|
const trimmedInput = normalizeFilterValue(this.input.value);
|
|
@@ -82413,22 +82731,13 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82413
82731
|
this.hideBib();
|
|
82414
82732
|
}
|
|
82415
82733
|
|
|
82416
|
-
// Move focus to the clear button when the user makes a selection.
|
|
82417
|
-
if (!isEcho && this.menu.value !== undefined) {
|
|
82418
|
-
this.setClearBtnFocus();
|
|
82419
|
-
}
|
|
82420
|
-
|
|
82421
82734
|
// Announce the selection after the dropdown closes so it isn't
|
|
82422
82735
|
// overridden by VoiceOver's "collapsed" announcement from aria-expanded.
|
|
82423
|
-
// Skip when there's no selected value (e.g. menu.clearSelection() from
|
|
82424
|
-
// the unmatched-value path), otherwise VoiceOver reads "undefined".
|
|
82425
82736
|
const selectedValue = this.menu.value;
|
|
82426
|
-
|
|
82427
|
-
|
|
82428
|
-
|
|
82429
|
-
|
|
82430
|
-
}, announcementDelay);
|
|
82431
|
-
}
|
|
82737
|
+
const announcementDelay = 300;
|
|
82738
|
+
setTimeout(() => {
|
|
82739
|
+
announceToScreenReader$1(this._getAnnouncementRoot(), `${selectedValue}, selected`);
|
|
82740
|
+
}, announcementDelay);
|
|
82432
82741
|
}
|
|
82433
82742
|
|
|
82434
82743
|
// Programmatic value syncs leave availableOptions stale because
|
|
@@ -82442,6 +82751,18 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82442
82751
|
this._programmaticFilterRefresh = false;
|
|
82443
82752
|
}, 0);
|
|
82444
82753
|
}
|
|
82754
|
+
|
|
82755
|
+
// base-input skips auto-validate when focus is inside its own shadow,
|
|
82756
|
+
// which it is after setTriggerInputFocus — re-run so prior tooShort
|
|
82757
|
+
// clears. processCreditCard reasserts errorMessage on every render.
|
|
82758
|
+
if (!isEcho && this.menu.optionSelected && this.input.validate) {
|
|
82759
|
+
this.input.updateComplete.then(() => {
|
|
82760
|
+
this.input.validate(true);
|
|
82761
|
+
if (this.input.validity === 'valid') {
|
|
82762
|
+
this.input.errorMessage = '';
|
|
82763
|
+
}
|
|
82764
|
+
});
|
|
82765
|
+
}
|
|
82445
82766
|
});
|
|
82446
82767
|
|
|
82447
82768
|
this.menu.addEventListener('auroMenu-customEventFired', () => {
|
|
@@ -82776,7 +83097,15 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82776
83097
|
this.menu.value = undefined;
|
|
82777
83098
|
this.validation.reset(this);
|
|
82778
83099
|
this.touched = false;
|
|
83100
|
+
// Force validity back to the cleared state. validation.reset() calls
|
|
83101
|
+
// validate() at the end, and (post-credit-card-fix) the trigger input's
|
|
83102
|
+
// residual validity may still be copied into the combobox by the
|
|
83103
|
+
// auroInputElements loop. Explicitly clear here so reset() actually
|
|
83104
|
+
// leaves the component in a "no validity" state.
|
|
82779
83105
|
this.validity = undefined;
|
|
83106
|
+
this.errorMessage = '';
|
|
83107
|
+
this.input.validity = undefined;
|
|
83108
|
+
this.input.errorMessage = '';
|
|
82780
83109
|
}
|
|
82781
83110
|
|
|
82782
83111
|
/**
|
|
@@ -82829,27 +83158,52 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82829
83158
|
this.input.value = this.value;
|
|
82830
83159
|
}
|
|
82831
83160
|
|
|
82832
|
-
// Sync menu.value only when an option actually matches
|
|
82833
|
-
// mode needs setMenuValue to dispatch auroMenu-selectValueFailure (the
|
|
82834
|
-
// listener at line 1206 clears combobox.value, mirroring select's
|
|
82835
|
-
// pattern). Otherwise sync the input display for freeform values.
|
|
83161
|
+
// Sync menu.value only when an option actually matches; otherwise clear it.
|
|
82836
83162
|
if (this.menu.options && this.menu.options.length > 0) {
|
|
82837
|
-
if (this.menu.options.some((opt) => opt.value === this.value)
|
|
83163
|
+
if (this.menu.options.some((opt) => opt.value === this.value)) {
|
|
83164
|
+
this.setMenuValue(this.value);
|
|
83165
|
+
} else if (this.behavior === 'filter') {
|
|
83166
|
+
// In filter mode, freeform values aren't allowed. Push the unmatched
|
|
83167
|
+
// value through setMenuValue so menu dispatches auroMenu-selectValueFailure
|
|
83168
|
+
// and the listener at line 1206 clears combobox.value (mirrors select's
|
|
83169
|
+
// pattern). Bypassing setMenuValue here would skip the failure cascade.
|
|
82838
83170
|
this.setMenuValue(this.value);
|
|
82839
83171
|
} else {
|
|
82840
|
-
|
|
82841
|
-
|
|
82842
|
-
// as menu.optionSelected; a later auroMenu-selectedOption event
|
|
82843
|
-
// would then write its stale .value back into combobox.value.
|
|
82844
|
-
if (this.menu.value || this.menu.optionSelected) {
|
|
82845
|
-
this.menu.clearSelection();
|
|
83172
|
+
if (this.menu.value) {
|
|
83173
|
+
this.menu.value = undefined;
|
|
82846
83174
|
}
|
|
82847
|
-
//
|
|
82848
|
-
//
|
|
82849
|
-
//
|
|
82850
|
-
|
|
82851
|
-
|
|
82852
|
-
|
|
83175
|
+
// Sync the display for programmatic freeform value changes (e.g. the
|
|
83176
|
+
// swap-values pattern). Guard with _syncingDisplayValue so that the
|
|
83177
|
+
// re-entrant input event from base-input.notifyValueChanged() is
|
|
83178
|
+
// ignored by handleInputValueChange. Skip the sync when input already
|
|
83179
|
+
// matches to avoid spurious events during the normal typing path.
|
|
83180
|
+
const nextValue = this.value || '';
|
|
83181
|
+
const triggerNeedsSync = this.input.value !== nextValue;
|
|
83182
|
+
const bibNeedsSync = Boolean(this.inputInBib && this.inputInBib !== this.input && this.inputInBib.value !== nextValue);
|
|
83183
|
+
if (triggerNeedsSync || bibNeedsSync) {
|
|
83184
|
+
this._syncingDisplayValue = true;
|
|
83185
|
+
if (triggerNeedsSync) {
|
|
83186
|
+
this.input.value = nextValue;
|
|
83187
|
+
}
|
|
83188
|
+
if (bibNeedsSync) {
|
|
83189
|
+
this.inputInBib.value = nextValue;
|
|
83190
|
+
}
|
|
83191
|
+
const pending = [];
|
|
83192
|
+
if (triggerNeedsSync) {
|
|
83193
|
+
pending.push(this.input.updateComplete);
|
|
83194
|
+
}
|
|
83195
|
+
if (bibNeedsSync) {
|
|
83196
|
+
pending.push(this.inputInBib.updateComplete);
|
|
83197
|
+
}
|
|
83198
|
+
Promise.all(pending).then(() => {
|
|
83199
|
+
if (triggerNeedsSync && this.input.maskInstance && typeof this.input.maskInstance.updateValue === 'function') {
|
|
83200
|
+
this.input.maskInstance.updateValue();
|
|
83201
|
+
}
|
|
83202
|
+
if (bibNeedsSync && this.inputInBib && this.inputInBib.maskInstance && typeof this.inputInBib.maskInstance.updateValue === 'function') {
|
|
83203
|
+
this.inputInBib.maskInstance.updateValue();
|
|
83204
|
+
}
|
|
83205
|
+
this._syncingDisplayValue = false;
|
|
83206
|
+
// handleInputValueChange bailed on the flag — refresh the filter.
|
|
82853
83207
|
this._programmaticFilterRefresh = true;
|
|
82854
83208
|
this.handleMenuOptions();
|
|
82855
83209
|
setTimeout(() => {
|
|
@@ -89682,7 +90036,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
|
|
|
89682
90036
|
}
|
|
89683
90037
|
};
|
|
89684
90038
|
|
|
89685
|
-
var formkitVersion$1 = '
|
|
90039
|
+
var formkitVersion$1 = '202606241801';
|
|
89686
90040
|
|
|
89687
90041
|
class AuroElement extends i$3 {
|
|
89688
90042
|
static get properties() {
|
|
@@ -91703,7 +92057,7 @@ class AuroHelpText extends i$3 {
|
|
|
91703
92057
|
}
|
|
91704
92058
|
}
|
|
91705
92059
|
|
|
91706
|
-
var formkitVersion = '
|
|
92060
|
+
var formkitVersion = '202606241801';
|
|
91707
92061
|
|
|
91708
92062
|
var styleCss = i$6`.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}.body-default{font-size:var(--wcss-body-default-font-size, 1rem);font-weight:var(--wcss-body-default-weight, );line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-default-emphasized{font-size:var(--wcss-body-default-emphasized-font-size, 1rem);font-weight:var(--wcss-body-default-emphasized-weight, );line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);font-weight:var(--wcss-body-lg-weight, );line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg,.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg-emphasized{font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);font-weight:var(--wcss-body-lg-emphasized-weight, );line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);font-weight:var(--wcss-body-sm-weight, );line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-sm-emphasized{font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);font-weight:var(--wcss-body-sm-emphasized-weight, );line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);font-weight:var(--wcss-body-xs-weight, );line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs,.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs-emphasized{font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);font-weight:var(--wcss-body-xs-emphasized-weight, );line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-weight, );line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs,.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-2xs-emphasized{font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-emphasized-weight, );line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 300);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 300);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}[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);--ds-auro-dropdown-trigger-outline-color: var(--ds-auro-select-outline-color)}:host{display:inline-block;text-align:left;vertical-align:top}:host([layout*=emphasized]) [auro-dropdown],:host([layout*=snowflake]) [auro-dropdown]{--ds-auro-select-border-color: transparent}:host([layout*=emphasized]) .mainContent,:host([layout*=snowflake]) .mainContent{text-align:center}.mainContent{position:relative;display:flex;overflow:hidden;flex:1;flex-direction:column;align-items:center;justify-content:center}.valueContainer [slot=displayValue]{display:none}.accents{display:flex;flex-direction:row;align-items:center;justify-content:center}::slotted([slot=typeIcon]){margin-right:var(--ds-size-100, 0.5rem)}.displayValue{display:block}.displayValue:not(.force){display:none}.displayValue:not(.force).hasContent:is(.withValue):not(.hasFocus){display:block}.triggerContent{display:flex;width:100%;align-items:center;justify-content:center}:host([layout*=emphasized]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-300, 1.5rem)}:host([layout*=snowflake]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-200, 1rem)}:host([layout*=snowflake]) label{padding-block:var(--ds-size-25, 0.125rem)}:host([layout*=classic]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem)}:host([layout*=classic]) .mainContent{align-items:start}:host([layout*=classic]) label{overflow:hidden;cursor:text;text-overflow:ellipsis;white-space:nowrap}:host([layout*=classic]) .value{height:auto}label{color:var(--ds-auro-select-label-text-color)}:host(:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-select-outline-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],:host([appearance=inverse]:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-select-outline-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}#slotHolder{display:none}:host([fluid]){width:100%}:host([disabled]){pointer-events:none;user-select:none}:host([disabled]:not([ondark])) [auro-dropdown],:host([disabled]:not([appearance=inverse])) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host(:not([layout*=classic])[disabled][ondark]) [auro-dropdown],:host(:not([layout*=classic])[disabled][appearance=inverse]) [auro-dropdown]{--ds-auro-select-border-color: transparent}`;
|
|
91709
92063
|
|