@aurodesignsystem-dev/auro-formkit 0.0.0-pr1508.0 → 0.0.0-pr1509.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +293 -141
- package/components/combobox/demo/getting-started.min.js +293 -141
- package/components/combobox/demo/index.min.js +293 -141
- package/components/combobox/dist/auro-combobox.d.ts +0 -9
- package/components/combobox/dist/index.js +293 -141
- package/components/combobox/dist/registered.js +293 -141
- 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 +167 -44
- package/components/datepicker/demo/index.min.js +167 -44
- package/components/datepicker/dist/index.js +167 -44
- package/components/datepicker/dist/registered.js +167 -44
- 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 +631 -232
- package/components/form/demo/getting-started.min.js +631 -232
- package/components/form/demo/index.min.js +631 -232
- package/components/form/demo/registerDemoDeps.min.js +631 -232
- package/components/input/demo/customize.min.js +165 -41
- package/components/input/demo/getting-started.min.js +165 -41
- package/components/input/demo/index.min.js +165 -41
- package/components/input/dist/base-input.d.ts +49 -1
- package/components/input/dist/index.js +165 -41
- package/components/input/dist/registered.js +165 -41
- 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() {
|
|
@@ -12265,6 +12311,15 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12265
12311
|
this.wrapperElement.addEventListener('click', this.handleClick);
|
|
12266
12312
|
}
|
|
12267
12313
|
|
|
12314
|
+
// add attribute for query selectors when auro-input is registered under a custom name
|
|
12315
|
+
// COVERAGE: the body of this branch is unreachable in WTR — connectedCallback
|
|
12316
|
+
// performs the same `setAttribute('auro-input', '')` earlier (see L665-667),
|
|
12317
|
+
// so by the time firstUpdated runs the attribute is already present and the
|
|
12318
|
+
// `!hasAttribute('auro-input')` guard is false. Retained as a defensive
|
|
12319
|
+
// safety net in case connectedCallback is ever short-circuited.
|
|
12320
|
+
if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
|
|
12321
|
+
this.setAttribute('auro-input', '');
|
|
12322
|
+
}
|
|
12268
12323
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
12269
12324
|
|
|
12270
12325
|
// use validity message override if declared when initializing the component
|
|
@@ -12275,6 +12330,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12275
12330
|
this.setCustomHelpTextMessage();
|
|
12276
12331
|
this.configureAutoFormatting();
|
|
12277
12332
|
this.configureDataForType();
|
|
12333
|
+
this.syncDateValues();
|
|
12278
12334
|
}
|
|
12279
12335
|
|
|
12280
12336
|
/**
|
|
@@ -12350,6 +12406,13 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12350
12406
|
|
|
12351
12407
|
if (typeToI18n.includes(this.type)) {
|
|
12352
12408
|
this.setCustomValidityForType = i18n$3(this.lang, this.type);
|
|
12409
|
+
// COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
|
|
12410
|
+
// (L682) calls configureDataForType, which at L1266-1268 assigns
|
|
12411
|
+
// `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
|
|
12412
|
+
// type=date input whose `format` attribute is unset. That runs before
|
|
12413
|
+
// firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
|
|
12414
|
+
// always false here. Retained as a defensive fallback; the whole function
|
|
12415
|
+
// is @deprecated per AB#1557296 and slated for removal.
|
|
12353
12416
|
} else if (!this.format && this.type === 'date') {
|
|
12354
12417
|
this.setCustomValidityForType = i18n$3(this.lang, 'dateMMDDYYYY');
|
|
12355
12418
|
} else if (this.dateFormatMap[this.format]) {
|
|
@@ -12411,6 +12474,8 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12411
12474
|
this.configureDataForType();
|
|
12412
12475
|
}
|
|
12413
12476
|
|
|
12477
|
+
this.syncDateValues(changedProperties);
|
|
12478
|
+
|
|
12414
12479
|
if (changedProperties.has('value')) {
|
|
12415
12480
|
if (this.value && this.value.length > 0) {
|
|
12416
12481
|
this.hasValue = true;
|
|
@@ -12432,14 +12497,14 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12432
12497
|
|
|
12433
12498
|
if (formattedValue !== this.inputElement.value) {
|
|
12434
12499
|
this.skipNextProgrammaticInputEvent = true;
|
|
12435
|
-
if (this.maskInstance && this.type
|
|
12500
|
+
if (this.maskInstance && this.type === 'credit-card') {
|
|
12436
12501
|
// Route through the mask so its _value and el.value stay in lock-step
|
|
12437
12502
|
// (set value calls updateControl which writes el.value = displayValue).
|
|
12438
12503
|
// 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.
|
|
12504
|
+
// stale; _saveSelection on the next focus/click then warns. Scoped to
|
|
12505
|
+
// credit-card so date's own formattedValue (raw ISO when calendar-invalid)
|
|
12506
|
+
// isn't re-masked through the mm/dd/yyyy mask, which would truncate it
|
|
12507
|
+
// and flip validity from patternMismatch to tooShort.
|
|
12443
12508
|
this.maskInstance.value = formattedValue || '';
|
|
12444
12509
|
} else if (formattedValue) {
|
|
12445
12510
|
this.inputElement.value = formattedValue;
|
|
@@ -12481,65 +12546,120 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12481
12546
|
}));
|
|
12482
12547
|
}
|
|
12483
12548
|
|
|
12549
|
+
|
|
12550
|
+
/**
|
|
12551
|
+
* Synchronizes the ISO string values and Date object representations for date-related properties.
|
|
12552
|
+
* This keeps the model and display values aligned when either side changes.
|
|
12553
|
+
*
|
|
12554
|
+
* When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
|
|
12555
|
+
* Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
|
|
12556
|
+
* represents a full year/month/day date format.
|
|
12557
|
+
*
|
|
12558
|
+
* @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
|
|
12559
|
+
* @returns {void}
|
|
12560
|
+
* @private
|
|
12561
|
+
*/
|
|
12562
|
+
syncDateValues(changedProperties = undefined) {
|
|
12563
|
+
if (!this.util.isFullDateFormat(this.type, this.format)) {
|
|
12564
|
+
return;
|
|
12565
|
+
}
|
|
12566
|
+
|
|
12567
|
+
this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
|
|
12568
|
+
this.syncSingleDateValue(changedProperties, 'minObject', 'min');
|
|
12569
|
+
this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
|
|
12570
|
+
}
|
|
12571
|
+
|
|
12572
|
+
/**
|
|
12573
|
+
* Synchronizes one date object/string property pair.
|
|
12574
|
+
* @private
|
|
12575
|
+
* @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
|
|
12576
|
+
* @param {string} objectProperty - Date object property name.
|
|
12577
|
+
* @param {string} valueProperty - ISO string property name.
|
|
12578
|
+
* @returns {void}
|
|
12579
|
+
*/
|
|
12580
|
+
syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
|
|
12581
|
+
const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
|
|
12582
|
+
|
|
12583
|
+
// objectProperty wins over valueProperty when both changed
|
|
12584
|
+
if (objectPropertyChanged && this[objectProperty]) {
|
|
12585
|
+
this[valueProperty] = dateFormatter$3.toISOFormatString(this[objectProperty]);
|
|
12586
|
+
return;
|
|
12587
|
+
}
|
|
12588
|
+
|
|
12589
|
+
const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
|
|
12590
|
+
if (!valuePropertyChanged) {
|
|
12591
|
+
return;
|
|
12592
|
+
}
|
|
12593
|
+
|
|
12594
|
+
// 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)
|
|
12595
|
+
if (
|
|
12596
|
+
changedProperties &&
|
|
12597
|
+
valueProperty === 'value' &&
|
|
12598
|
+
changedProperties.get('value') === undefined &&
|
|
12599
|
+
this[objectProperty] instanceof Date &&
|
|
12600
|
+
this[valueProperty] === dateFormatter$3.toISOFormatString(this[objectProperty])
|
|
12601
|
+
) {
|
|
12602
|
+
return;
|
|
12603
|
+
}
|
|
12604
|
+
|
|
12605
|
+
if (dateFormatter$3.isValidDate(this[valueProperty])) {
|
|
12606
|
+
this.setDateObjectProperty(objectProperty, dateFormatter$3.stringToDateInstance(this[valueProperty]));
|
|
12607
|
+
} else {
|
|
12608
|
+
this.setDateObjectProperty(objectProperty, undefined);
|
|
12609
|
+
}
|
|
12610
|
+
}
|
|
12611
|
+
|
|
12484
12612
|
/**
|
|
12485
12613
|
* Sets up IMasks and logic based on auto-formatting requirements.
|
|
12486
12614
|
* @private
|
|
12487
12615
|
* @returns {void}
|
|
12488
12616
|
*/
|
|
12489
12617
|
configureAutoFormatting() {
|
|
12490
|
-
//
|
|
12491
|
-
//
|
|
12492
|
-
//
|
|
12493
|
-
//
|
|
12618
|
+
// Re-entrancy guard. The patched-setter's synthetic input event (suppressed
|
|
12619
|
+
// by _configuringMask above) could otherwise trigger handleInput →
|
|
12620
|
+
// processCreditCard → configureAutoFormatting before the outer call's
|
|
12621
|
+
// set value has finished its alignCursor pass.
|
|
12494
12622
|
if (this._configuringMask) return;
|
|
12495
12623
|
this._configuringMask = true;
|
|
12496
12624
|
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
12625
|
if (this.maskInstance) {
|
|
12503
12626
|
this.maskInstance.destroy();
|
|
12504
|
-
this.maskInstance = null;
|
|
12505
12627
|
}
|
|
12506
12628
|
|
|
12629
|
+
// Pass new format to util
|
|
12507
12630
|
this.util.updateFormat(this.format);
|
|
12508
12631
|
|
|
12509
12632
|
const maskOptions = this.util.getMaskOptions(this.type, this.format);
|
|
12510
12633
|
|
|
12511
12634
|
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
12635
|
|
|
12518
|
-
//
|
|
12519
|
-
//
|
|
12520
|
-
//
|
|
12521
|
-
//
|
|
12636
|
+
// Stash and clear any existing value before IMask init.
|
|
12637
|
+
// IMask's constructor processes the current input value which requires
|
|
12638
|
+
// selection state — clearing first avoids that scenario entirely.
|
|
12639
|
+
// When the format changes (e.g. locale switch) and we have a valid ISO
|
|
12640
|
+
// model value, compute the display string for the NEW format instead of
|
|
12641
|
+
// re-using the old display string, which may be invalid in the new mask.
|
|
12642
|
+
let existingValue = this.inputElement.value;
|
|
12522
12643
|
if (
|
|
12523
12644
|
this.util.isFullDateFormat(this.type, this.format) &&
|
|
12524
12645
|
this.value &&
|
|
12525
|
-
this.
|
|
12646
|
+
dateFormatter$3.isValidDate(this.value) &&
|
|
12647
|
+
this.valueObject instanceof Date &&
|
|
12648
|
+
!Number.isNaN(this.valueObject.getTime()) &&
|
|
12526
12649
|
typeof maskOptions.format === 'function'
|
|
12527
12650
|
) {
|
|
12528
12651
|
existingValue = maskOptions.format(this.valueObject);
|
|
12529
12652
|
}
|
|
12530
12653
|
|
|
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
12654
|
this.skipNextProgrammaticInputEvent = true;
|
|
12535
12655
|
this.inputElement.value = '';
|
|
12536
12656
|
|
|
12537
12657
|
this.maskInstance = IMask$3(this.inputElement, maskOptions);
|
|
12538
12658
|
|
|
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
12659
|
this.maskInstance.on('accept', () => {
|
|
12660
|
+
// Suppress propagation during configureAutoFormatting's own value-restoration
|
|
12661
|
+
// (line below) — the mask emits 'accept' on every value-set, including ours,
|
|
12662
|
+
// and we don't want to overwrite a value the parent just pushed.
|
|
12543
12663
|
if (this._configuringMask) return;
|
|
12544
12664
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
12545
12665
|
if (this.type === "date") {
|
|
@@ -12547,8 +12667,6 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12547
12667
|
}
|
|
12548
12668
|
});
|
|
12549
12669
|
|
|
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
12670
|
this.maskInstance.on('complete', () => {
|
|
12553
12671
|
if (this._configuringMask) return;
|
|
12554
12672
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
@@ -12557,9 +12675,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12557
12675
|
}
|
|
12558
12676
|
});
|
|
12559
12677
|
|
|
12560
|
-
//
|
|
12561
|
-
// the mask reformats it under the new rules and keeps its internal
|
|
12562
|
-
// _value aligned with the input's displayed text.
|
|
12678
|
+
// Restore the stashed value through IMask so it's properly masked
|
|
12563
12679
|
if (existingValue) {
|
|
12564
12680
|
this.maskInstance.value = existingValue;
|
|
12565
12681
|
}
|
|
@@ -12727,6 +12843,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12727
12843
|
*/
|
|
12728
12844
|
reset() {
|
|
12729
12845
|
this.value = undefined;
|
|
12846
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
12730
12847
|
this.validation.reset(this);
|
|
12731
12848
|
}
|
|
12732
12849
|
|
|
@@ -12735,6 +12852,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12735
12852
|
*/
|
|
12736
12853
|
clear() {
|
|
12737
12854
|
this.value = undefined;
|
|
12855
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
12738
12856
|
}
|
|
12739
12857
|
|
|
12740
12858
|
/**
|
|
@@ -12772,6 +12890,12 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12772
12890
|
*/
|
|
12773
12891
|
get placeholderStr() {
|
|
12774
12892
|
if (!this.placeholder && this.type === 'date') {
|
|
12893
|
+
// COVERAGE: the `'MM/DD/YYYY'` literal fallback is unreachable in WTR.
|
|
12894
|
+
// connectedCallback (L682) calls configureDataForType, which at L1266-1268
|
|
12895
|
+
// assigns `this.format = this.util.getDateMaskFromLocale().toLowerCase()`
|
|
12896
|
+
// when type=date and format is unset. That runs before the first render
|
|
12897
|
+
// reads this getter, so the ternary's truthy arm always wins. Retained
|
|
12898
|
+
// as a defensive fallback for direct getter calls before connection.
|
|
12775
12899
|
return this.format ? this.format.toUpperCase() : 'MM/DD/YYYY';
|
|
12776
12900
|
}
|
|
12777
12901
|
return this.placeholder || "";
|
|
@@ -13263,7 +13387,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$3 {
|
|
|
13263
13387
|
}
|
|
13264
13388
|
};
|
|
13265
13389
|
|
|
13266
|
-
var formkitVersion$8 = '
|
|
13390
|
+
var formkitVersion$8 = '202606232113';
|
|
13267
13391
|
|
|
13268
13392
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
13269
13393
|
// See LICENSE in the project root for license information.
|
|
@@ -24502,7 +24626,6 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
|
|
|
24502
24626
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
24503
24627
|
|
|
24504
24628
|
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
24629
|
return undefined;
|
|
24507
24630
|
}
|
|
24508
24631
|
|
|
@@ -27383,7 +27506,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$3 {
|
|
|
27383
27506
|
}
|
|
27384
27507
|
};
|
|
27385
27508
|
|
|
27386
|
-
var formkitVersion$2$1 = '
|
|
27509
|
+
var formkitVersion$2$1 = '202606232113';
|
|
27387
27510
|
|
|
27388
27511
|
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
27512
|
`,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 +33017,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$3 {
|
|
|
32894
33017
|
}
|
|
32895
33018
|
};
|
|
32896
33019
|
|
|
32897
|
-
var formkitVersion$1$3 = '
|
|
33020
|
+
var formkitVersion$1$3 = '202606232113';
|
|
32898
33021
|
|
|
32899
33022
|
let AuroElement$2$2 = class AuroElement extends i$3 {
|
|
32900
33023
|
static get properties() {
|
|
@@ -44616,7 +44739,6 @@ let AuroInputUtilities$2 = class AuroInputUtilities {
|
|
|
44616
44739
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
44617
44740
|
|
|
44618
44741
|
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
44742
|
return undefined;
|
|
44621
44743
|
}
|
|
44622
44744
|
|
|
@@ -44768,8 +44890,10 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44768
44890
|
this.layout = 'classic';
|
|
44769
44891
|
this.locale = 'en-US';
|
|
44770
44892
|
this.max = undefined;
|
|
44893
|
+
this._maxObject = undefined;
|
|
44771
44894
|
this.maxLength = undefined;
|
|
44772
44895
|
this.min = undefined;
|
|
44896
|
+
this._minObject = undefined;
|
|
44773
44897
|
this.minLength = undefined;
|
|
44774
44898
|
this.required = false;
|
|
44775
44899
|
this.onDark = false;
|
|
@@ -44777,6 +44901,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44777
44901
|
this.size = 'lg';
|
|
44778
44902
|
this.shape = 'classic';
|
|
44779
44903
|
this.value = undefined;
|
|
44904
|
+
this._valueObject = undefined;
|
|
44780
44905
|
|
|
44781
44906
|
this._initializePrivateDefaults();
|
|
44782
44907
|
}
|
|
@@ -45316,7 +45441,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45316
45441
|
* @returns {Date|undefined}
|
|
45317
45442
|
*/
|
|
45318
45443
|
get valueObject() {
|
|
45319
|
-
return this.
|
|
45444
|
+
return this._valueObject || this._computeDateObjectFallback(this.value);
|
|
45320
45445
|
}
|
|
45321
45446
|
|
|
45322
45447
|
/**
|
|
@@ -45324,7 +45449,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45324
45449
|
* @returns {Date|undefined}
|
|
45325
45450
|
*/
|
|
45326
45451
|
get minObject() {
|
|
45327
|
-
return this.
|
|
45452
|
+
return this._minObject || this._computeDateObjectFallback(this.min);
|
|
45328
45453
|
}
|
|
45329
45454
|
|
|
45330
45455
|
/**
|
|
@@ -45332,7 +45457,50 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45332
45457
|
* @returns {Date|undefined}
|
|
45333
45458
|
*/
|
|
45334
45459
|
get maxObject() {
|
|
45335
|
-
return this.
|
|
45460
|
+
return this._maxObject || this._computeDateObjectFallback(this.max);
|
|
45461
|
+
}
|
|
45462
|
+
|
|
45463
|
+
/**
|
|
45464
|
+
* Parses a date string into a Date object when the corresponding `_*Object`
|
|
45465
|
+
* field hasn't been synced yet by `updated()`. Returns undefined when the
|
|
45466
|
+
* input type/format isn't a full date or the string is not a valid date.
|
|
45467
|
+
*
|
|
45468
|
+
* Why this exists: a parent (datepicker) can call `inputN.validate()` from
|
|
45469
|
+
* inside its own `updated()` before this input's `updated()` has run
|
|
45470
|
+
* `syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`
|
|
45471
|
+
* and range checks would otherwise silently no-op (flipping the result to
|
|
45472
|
+
* `valid` or `patternMismatch`).
|
|
45473
|
+
* @private
|
|
45474
|
+
* @param {string|undefined} dateStr - ISO date string from `value`/`min`/`max`.
|
|
45475
|
+
* @returns {Date|undefined}
|
|
45476
|
+
*/
|
|
45477
|
+
_computeDateObjectFallback(dateStr) {
|
|
45478
|
+
if (!dateStr || !this.util || !this.util.isFullDateFormat(this.type, this.format)) {
|
|
45479
|
+
return undefined;
|
|
45480
|
+
}
|
|
45481
|
+
if (!dateFormatter$2.isValidDate(dateStr)) {
|
|
45482
|
+
return undefined;
|
|
45483
|
+
}
|
|
45484
|
+
return dateFormatter$2.stringToDateInstance(dateStr);
|
|
45485
|
+
}
|
|
45486
|
+
|
|
45487
|
+
/**
|
|
45488
|
+
* Internal setter for readonly date object properties.
|
|
45489
|
+
* @private
|
|
45490
|
+
* @param {'valueObject'|'minObject'|'maxObject'} propertyName - Public object property name.
|
|
45491
|
+
* @param {Date|undefined} propertyValue - Value to assign.
|
|
45492
|
+
* @returns {void}
|
|
45493
|
+
*/
|
|
45494
|
+
setDateObjectProperty(propertyName, propertyValue) {
|
|
45495
|
+
const internalPropertyName = `_${propertyName}`;
|
|
45496
|
+
const previousValue = this[internalPropertyName];
|
|
45497
|
+
|
|
45498
|
+
if (previousValue === propertyValue) {
|
|
45499
|
+
return;
|
|
45500
|
+
}
|
|
45501
|
+
|
|
45502
|
+
this[internalPropertyName] = propertyValue;
|
|
45503
|
+
this.requestUpdate(propertyName, previousValue);
|
|
45336
45504
|
}
|
|
45337
45505
|
|
|
45338
45506
|
connectedCallback() {
|
|
@@ -45361,6 +45529,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45361
45529
|
format: this.format
|
|
45362
45530
|
});
|
|
45363
45531
|
this.configureDataForType();
|
|
45532
|
+
this.syncDateValues();
|
|
45364
45533
|
}
|
|
45365
45534
|
|
|
45366
45535
|
disconnectedCallback() {
|
|
@@ -45380,6 +45549,15 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45380
45549
|
this.wrapperElement.addEventListener('click', this.handleClick);
|
|
45381
45550
|
}
|
|
45382
45551
|
|
|
45552
|
+
// add attribute for query selectors when auro-input is registered under a custom name
|
|
45553
|
+
// COVERAGE: the body of this branch is unreachable in WTR — connectedCallback
|
|
45554
|
+
// performs the same `setAttribute('auro-input', '')` earlier (see L665-667),
|
|
45555
|
+
// so by the time firstUpdated runs the attribute is already present and the
|
|
45556
|
+
// `!hasAttribute('auro-input')` guard is false. Retained as a defensive
|
|
45557
|
+
// safety net in case connectedCallback is ever short-circuited.
|
|
45558
|
+
if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
|
|
45559
|
+
this.setAttribute('auro-input', '');
|
|
45560
|
+
}
|
|
45383
45561
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
45384
45562
|
|
|
45385
45563
|
// use validity message override if declared when initializing the component
|
|
@@ -45390,6 +45568,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45390
45568
|
this.setCustomHelpTextMessage();
|
|
45391
45569
|
this.configureAutoFormatting();
|
|
45392
45570
|
this.configureDataForType();
|
|
45571
|
+
this.syncDateValues();
|
|
45393
45572
|
}
|
|
45394
45573
|
|
|
45395
45574
|
/**
|
|
@@ -45465,6 +45644,13 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45465
45644
|
|
|
45466
45645
|
if (typeToI18n.includes(this.type)) {
|
|
45467
45646
|
this.setCustomValidityForType = i18n$1(this.lang, this.type);
|
|
45647
|
+
// COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
|
|
45648
|
+
// (L682) calls configureDataForType, which at L1266-1268 assigns
|
|
45649
|
+
// `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
|
|
45650
|
+
// type=date input whose `format` attribute is unset. That runs before
|
|
45651
|
+
// firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
|
|
45652
|
+
// always false here. Retained as a defensive fallback; the whole function
|
|
45653
|
+
// is @deprecated per AB#1557296 and slated for removal.
|
|
45468
45654
|
} else if (!this.format && this.type === 'date') {
|
|
45469
45655
|
this.setCustomValidityForType = i18n$1(this.lang, 'dateMMDDYYYY');
|
|
45470
45656
|
} else if (this.dateFormatMap[this.format]) {
|
|
@@ -45526,6 +45712,8 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45526
45712
|
this.configureDataForType();
|
|
45527
45713
|
}
|
|
45528
45714
|
|
|
45715
|
+
this.syncDateValues(changedProperties);
|
|
45716
|
+
|
|
45529
45717
|
if (changedProperties.has('value')) {
|
|
45530
45718
|
if (this.value && this.value.length > 0) {
|
|
45531
45719
|
this.hasValue = true;
|
|
@@ -45547,14 +45735,14 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45547
45735
|
|
|
45548
45736
|
if (formattedValue !== this.inputElement.value) {
|
|
45549
45737
|
this.skipNextProgrammaticInputEvent = true;
|
|
45550
|
-
if (this.maskInstance && this.type
|
|
45738
|
+
if (this.maskInstance && this.type === 'credit-card') {
|
|
45551
45739
|
// Route through the mask so its _value and el.value stay in lock-step
|
|
45552
45740
|
// (set value calls updateControl which writes el.value = displayValue).
|
|
45553
45741
|
// 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.
|
|
45742
|
+
// stale; _saveSelection on the next focus/click then warns. Scoped to
|
|
45743
|
+
// credit-card so date's own formattedValue (raw ISO when calendar-invalid)
|
|
45744
|
+
// isn't re-masked through the mm/dd/yyyy mask, which would truncate it
|
|
45745
|
+
// and flip validity from patternMismatch to tooShort.
|
|
45558
45746
|
this.maskInstance.value = formattedValue || '';
|
|
45559
45747
|
} else if (formattedValue) {
|
|
45560
45748
|
this.inputElement.value = formattedValue;
|
|
@@ -45596,65 +45784,120 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45596
45784
|
}));
|
|
45597
45785
|
}
|
|
45598
45786
|
|
|
45787
|
+
|
|
45788
|
+
/**
|
|
45789
|
+
* Synchronizes the ISO string values and Date object representations for date-related properties.
|
|
45790
|
+
* This keeps the model and display values aligned when either side changes.
|
|
45791
|
+
*
|
|
45792
|
+
* When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
|
|
45793
|
+
* Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
|
|
45794
|
+
* represents a full year/month/day date format.
|
|
45795
|
+
*
|
|
45796
|
+
* @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
|
|
45797
|
+
* @returns {void}
|
|
45798
|
+
* @private
|
|
45799
|
+
*/
|
|
45800
|
+
syncDateValues(changedProperties = undefined) {
|
|
45801
|
+
if (!this.util.isFullDateFormat(this.type, this.format)) {
|
|
45802
|
+
return;
|
|
45803
|
+
}
|
|
45804
|
+
|
|
45805
|
+
this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
|
|
45806
|
+
this.syncSingleDateValue(changedProperties, 'minObject', 'min');
|
|
45807
|
+
this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
|
|
45808
|
+
}
|
|
45809
|
+
|
|
45810
|
+
/**
|
|
45811
|
+
* Synchronizes one date object/string property pair.
|
|
45812
|
+
* @private
|
|
45813
|
+
* @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
|
|
45814
|
+
* @param {string} objectProperty - Date object property name.
|
|
45815
|
+
* @param {string} valueProperty - ISO string property name.
|
|
45816
|
+
* @returns {void}
|
|
45817
|
+
*/
|
|
45818
|
+
syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
|
|
45819
|
+
const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
|
|
45820
|
+
|
|
45821
|
+
// objectProperty wins over valueProperty when both changed
|
|
45822
|
+
if (objectPropertyChanged && this[objectProperty]) {
|
|
45823
|
+
this[valueProperty] = dateFormatter$2.toISOFormatString(this[objectProperty]);
|
|
45824
|
+
return;
|
|
45825
|
+
}
|
|
45826
|
+
|
|
45827
|
+
const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
|
|
45828
|
+
if (!valuePropertyChanged) {
|
|
45829
|
+
return;
|
|
45830
|
+
}
|
|
45831
|
+
|
|
45832
|
+
// 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)
|
|
45833
|
+
if (
|
|
45834
|
+
changedProperties &&
|
|
45835
|
+
valueProperty === 'value' &&
|
|
45836
|
+
changedProperties.get('value') === undefined &&
|
|
45837
|
+
this[objectProperty] instanceof Date &&
|
|
45838
|
+
this[valueProperty] === dateFormatter$2.toISOFormatString(this[objectProperty])
|
|
45839
|
+
) {
|
|
45840
|
+
return;
|
|
45841
|
+
}
|
|
45842
|
+
|
|
45843
|
+
if (dateFormatter$2.isValidDate(this[valueProperty])) {
|
|
45844
|
+
this.setDateObjectProperty(objectProperty, dateFormatter$2.stringToDateInstance(this[valueProperty]));
|
|
45845
|
+
} else {
|
|
45846
|
+
this.setDateObjectProperty(objectProperty, undefined);
|
|
45847
|
+
}
|
|
45848
|
+
}
|
|
45849
|
+
|
|
45599
45850
|
/**
|
|
45600
45851
|
* Sets up IMasks and logic based on auto-formatting requirements.
|
|
45601
45852
|
* @private
|
|
45602
45853
|
* @returns {void}
|
|
45603
45854
|
*/
|
|
45604
45855
|
configureAutoFormatting() {
|
|
45605
|
-
//
|
|
45606
|
-
//
|
|
45607
|
-
//
|
|
45608
|
-
//
|
|
45856
|
+
// Re-entrancy guard. The patched-setter's synthetic input event (suppressed
|
|
45857
|
+
// by _configuringMask above) could otherwise trigger handleInput →
|
|
45858
|
+
// processCreditCard → configureAutoFormatting before the outer call's
|
|
45859
|
+
// set value has finished its alignCursor pass.
|
|
45609
45860
|
if (this._configuringMask) return;
|
|
45610
45861
|
this._configuringMask = true;
|
|
45611
45862
|
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
45863
|
if (this.maskInstance) {
|
|
45618
45864
|
this.maskInstance.destroy();
|
|
45619
|
-
this.maskInstance = null;
|
|
45620
45865
|
}
|
|
45621
45866
|
|
|
45867
|
+
// Pass new format to util
|
|
45622
45868
|
this.util.updateFormat(this.format);
|
|
45623
45869
|
|
|
45624
45870
|
const maskOptions = this.util.getMaskOptions(this.type, this.format);
|
|
45625
45871
|
|
|
45626
45872
|
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
45873
|
|
|
45633
|
-
//
|
|
45634
|
-
//
|
|
45635
|
-
//
|
|
45636
|
-
//
|
|
45874
|
+
// Stash and clear any existing value before IMask init.
|
|
45875
|
+
// IMask's constructor processes the current input value which requires
|
|
45876
|
+
// selection state — clearing first avoids that scenario entirely.
|
|
45877
|
+
// When the format changes (e.g. locale switch) and we have a valid ISO
|
|
45878
|
+
// model value, compute the display string for the NEW format instead of
|
|
45879
|
+
// re-using the old display string, which may be invalid in the new mask.
|
|
45880
|
+
let existingValue = this.inputElement.value;
|
|
45637
45881
|
if (
|
|
45638
45882
|
this.util.isFullDateFormat(this.type, this.format) &&
|
|
45639
45883
|
this.value &&
|
|
45640
|
-
this.
|
|
45884
|
+
dateFormatter$2.isValidDate(this.value) &&
|
|
45885
|
+
this.valueObject instanceof Date &&
|
|
45886
|
+
!Number.isNaN(this.valueObject.getTime()) &&
|
|
45641
45887
|
typeof maskOptions.format === 'function'
|
|
45642
45888
|
) {
|
|
45643
45889
|
existingValue = maskOptions.format(this.valueObject);
|
|
45644
45890
|
}
|
|
45645
45891
|
|
|
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
45892
|
this.skipNextProgrammaticInputEvent = true;
|
|
45650
45893
|
this.inputElement.value = '';
|
|
45651
45894
|
|
|
45652
45895
|
this.maskInstance = IMask$2(this.inputElement, maskOptions);
|
|
45653
45896
|
|
|
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
45897
|
this.maskInstance.on('accept', () => {
|
|
45898
|
+
// Suppress propagation during configureAutoFormatting's own value-restoration
|
|
45899
|
+
// (line below) — the mask emits 'accept' on every value-set, including ours,
|
|
45900
|
+
// and we don't want to overwrite a value the parent just pushed.
|
|
45658
45901
|
if (this._configuringMask) return;
|
|
45659
45902
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
45660
45903
|
if (this.type === "date") {
|
|
@@ -45662,8 +45905,6 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45662
45905
|
}
|
|
45663
45906
|
});
|
|
45664
45907
|
|
|
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
45908
|
this.maskInstance.on('complete', () => {
|
|
45668
45909
|
if (this._configuringMask) return;
|
|
45669
45910
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
@@ -45672,9 +45913,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45672
45913
|
}
|
|
45673
45914
|
});
|
|
45674
45915
|
|
|
45675
|
-
//
|
|
45676
|
-
// the mask reformats it under the new rules and keeps its internal
|
|
45677
|
-
// _value aligned with the input's displayed text.
|
|
45916
|
+
// Restore the stashed value through IMask so it's properly masked
|
|
45678
45917
|
if (existingValue) {
|
|
45679
45918
|
this.maskInstance.value = existingValue;
|
|
45680
45919
|
}
|
|
@@ -45842,6 +46081,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45842
46081
|
*/
|
|
45843
46082
|
reset() {
|
|
45844
46083
|
this.value = undefined;
|
|
46084
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
45845
46085
|
this.validation.reset(this);
|
|
45846
46086
|
}
|
|
45847
46087
|
|
|
@@ -45850,6 +46090,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45850
46090
|
*/
|
|
45851
46091
|
clear() {
|
|
45852
46092
|
this.value = undefined;
|
|
46093
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
45853
46094
|
}
|
|
45854
46095
|
|
|
45855
46096
|
/**
|
|
@@ -45887,6 +46128,12 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45887
46128
|
*/
|
|
45888
46129
|
get placeholderStr() {
|
|
45889
46130
|
if (!this.placeholder && this.type === 'date') {
|
|
46131
|
+
// COVERAGE: the `'MM/DD/YYYY'` literal fallback is unreachable in WTR.
|
|
46132
|
+
// connectedCallback (L682) calls configureDataForType, which at L1266-1268
|
|
46133
|
+
// assigns `this.format = this.util.getDateMaskFromLocale().toLowerCase()`
|
|
46134
|
+
// when type=date and format is unset. That runs before the first render
|
|
46135
|
+
// reads this getter, so the ternary's truthy arm always wins. Retained
|
|
46136
|
+
// as a defensive fallback for direct getter calls before connection.
|
|
45890
46137
|
return this.format ? this.format.toUpperCase() : 'MM/DD/YYYY';
|
|
45891
46138
|
}
|
|
45892
46139
|
return this.placeholder || "";
|
|
@@ -46378,7 +46625,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$3 {
|
|
|
46378
46625
|
}
|
|
46379
46626
|
};
|
|
46380
46627
|
|
|
46381
|
-
var formkitVersion$7 = '
|
|
46628
|
+
var formkitVersion$7 = '202606232113';
|
|
46382
46629
|
|
|
46383
46630
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
46384
46631
|
// See LICENSE in the project root for license information.
|
|
@@ -51081,7 +51328,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$3 {
|
|
|
51081
51328
|
}
|
|
51082
51329
|
};
|
|
51083
51330
|
|
|
51084
|
-
var formkitVersion$1$2 = '
|
|
51331
|
+
var formkitVersion$1$2 = '202606232113';
|
|
51085
51332
|
|
|
51086
51333
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
51087
51334
|
// See LICENSE in the project root for license information.
|
|
@@ -55409,7 +55656,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$3 {
|
|
|
55409
55656
|
}
|
|
55410
55657
|
};
|
|
55411
55658
|
|
|
55412
|
-
var formkitVersion$6 = '
|
|
55659
|
+
var formkitVersion$6 = '202606232113';
|
|
55413
55660
|
|
|
55414
55661
|
let AuroElement$1$2 = class AuroElement extends i$3 {
|
|
55415
55662
|
static get properties() {
|
|
@@ -59349,7 +59596,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$3 {
|
|
|
59349
59596
|
}
|
|
59350
59597
|
};
|
|
59351
59598
|
|
|
59352
|
-
var formkitVersion$5 = '
|
|
59599
|
+
var formkitVersion$5 = '202606232113';
|
|
59353
59600
|
|
|
59354
59601
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
59355
59602
|
// See LICENSE in the project root for license information.
|
|
@@ -61099,7 +61346,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$3 {
|
|
|
61099
61346
|
}
|
|
61100
61347
|
};
|
|
61101
61348
|
|
|
61102
|
-
var formkitVersion$4 = '
|
|
61349
|
+
var formkitVersion$4 = '202606232113';
|
|
61103
61350
|
|
|
61104
61351
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
61105
61352
|
// See LICENSE in the project root for license information.
|
|
@@ -62275,8 +62522,6 @@ function navigateArrow$1(component, direction, options = {}) {
|
|
|
62275
62522
|
}
|
|
62276
62523
|
}
|
|
62277
62524
|
|
|
62278
|
-
/* eslint-disable no-underscore-dangle */
|
|
62279
|
-
|
|
62280
62525
|
/**
|
|
62281
62526
|
* Returns the clear button element from the active input's shadow
|
|
62282
62527
|
* DOM, if available.
|
|
@@ -62312,9 +62557,11 @@ function isClearBtnFocused(ctx, clearBtn = getClearBtn(ctx)) {
|
|
|
62312
62557
|
* @param {Object} menu - The menu component.
|
|
62313
62558
|
*/
|
|
62314
62559
|
function reconcileMenuIndex(menu) {
|
|
62560
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
62315
62561
|
if (menu._index < 0 && menu.optionActive && menu.items) {
|
|
62316
62562
|
const idx = menu.items.indexOf(menu.optionActive);
|
|
62317
62563
|
if (idx >= 0) {
|
|
62564
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
62318
62565
|
menu._index = idx;
|
|
62319
62566
|
}
|
|
62320
62567
|
}
|
|
@@ -66314,7 +66561,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
|
|
|
66314
66561
|
}
|
|
66315
66562
|
};
|
|
66316
66563
|
|
|
66317
|
-
var formkitVersion$2 = '
|
|
66564
|
+
var formkitVersion$2 = '202606232113';
|
|
66318
66565
|
|
|
66319
66566
|
let AuroElement$2$1 = class AuroElement extends i$3 {
|
|
66320
66567
|
static get properties() {
|
|
@@ -78036,7 +78283,6 @@ class AuroInputUtilities {
|
|
|
78036
78283
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
78037
78284
|
|
|
78038
78285
|
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
78286
|
return undefined;
|
|
78041
78287
|
}
|
|
78042
78288
|
|
|
@@ -78188,8 +78434,10 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78188
78434
|
this.layout = 'classic';
|
|
78189
78435
|
this.locale = 'en-US';
|
|
78190
78436
|
this.max = undefined;
|
|
78437
|
+
this._maxObject = undefined;
|
|
78191
78438
|
this.maxLength = undefined;
|
|
78192
78439
|
this.min = undefined;
|
|
78440
|
+
this._minObject = undefined;
|
|
78193
78441
|
this.minLength = undefined;
|
|
78194
78442
|
this.required = false;
|
|
78195
78443
|
this.onDark = false;
|
|
@@ -78197,6 +78445,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78197
78445
|
this.size = 'lg';
|
|
78198
78446
|
this.shape = 'classic';
|
|
78199
78447
|
this.value = undefined;
|
|
78448
|
+
this._valueObject = undefined;
|
|
78200
78449
|
|
|
78201
78450
|
this._initializePrivateDefaults();
|
|
78202
78451
|
}
|
|
@@ -78736,7 +78985,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78736
78985
|
* @returns {Date|undefined}
|
|
78737
78986
|
*/
|
|
78738
78987
|
get valueObject() {
|
|
78739
|
-
return this.
|
|
78988
|
+
return this._valueObject || this._computeDateObjectFallback(this.value);
|
|
78740
78989
|
}
|
|
78741
78990
|
|
|
78742
78991
|
/**
|
|
@@ -78744,7 +78993,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78744
78993
|
* @returns {Date|undefined}
|
|
78745
78994
|
*/
|
|
78746
78995
|
get minObject() {
|
|
78747
|
-
return this.
|
|
78996
|
+
return this._minObject || this._computeDateObjectFallback(this.min);
|
|
78748
78997
|
}
|
|
78749
78998
|
|
|
78750
78999
|
/**
|
|
@@ -78752,7 +79001,50 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78752
79001
|
* @returns {Date|undefined}
|
|
78753
79002
|
*/
|
|
78754
79003
|
get maxObject() {
|
|
78755
|
-
return this.
|
|
79004
|
+
return this._maxObject || this._computeDateObjectFallback(this.max);
|
|
79005
|
+
}
|
|
79006
|
+
|
|
79007
|
+
/**
|
|
79008
|
+
* Parses a date string into a Date object when the corresponding `_*Object`
|
|
79009
|
+
* field hasn't been synced yet by `updated()`. Returns undefined when the
|
|
79010
|
+
* input type/format isn't a full date or the string is not a valid date.
|
|
79011
|
+
*
|
|
79012
|
+
* Why this exists: a parent (datepicker) can call `inputN.validate()` from
|
|
79013
|
+
* inside its own `updated()` before this input's `updated()` has run
|
|
79014
|
+
* `syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`
|
|
79015
|
+
* and range checks would otherwise silently no-op (flipping the result to
|
|
79016
|
+
* `valid` or `patternMismatch`).
|
|
79017
|
+
* @private
|
|
79018
|
+
* @param {string|undefined} dateStr - ISO date string from `value`/`min`/`max`.
|
|
79019
|
+
* @returns {Date|undefined}
|
|
79020
|
+
*/
|
|
79021
|
+
_computeDateObjectFallback(dateStr) {
|
|
79022
|
+
if (!dateStr || !this.util || !this.util.isFullDateFormat(this.type, this.format)) {
|
|
79023
|
+
return undefined;
|
|
79024
|
+
}
|
|
79025
|
+
if (!dateFormatter.isValidDate(dateStr)) {
|
|
79026
|
+
return undefined;
|
|
79027
|
+
}
|
|
79028
|
+
return dateFormatter.stringToDateInstance(dateStr);
|
|
79029
|
+
}
|
|
79030
|
+
|
|
79031
|
+
/**
|
|
79032
|
+
* Internal setter for readonly date object properties.
|
|
79033
|
+
* @private
|
|
79034
|
+
* @param {'valueObject'|'minObject'|'maxObject'} propertyName - Public object property name.
|
|
79035
|
+
* @param {Date|undefined} propertyValue - Value to assign.
|
|
79036
|
+
* @returns {void}
|
|
79037
|
+
*/
|
|
79038
|
+
setDateObjectProperty(propertyName, propertyValue) {
|
|
79039
|
+
const internalPropertyName = `_${propertyName}`;
|
|
79040
|
+
const previousValue = this[internalPropertyName];
|
|
79041
|
+
|
|
79042
|
+
if (previousValue === propertyValue) {
|
|
79043
|
+
return;
|
|
79044
|
+
}
|
|
79045
|
+
|
|
79046
|
+
this[internalPropertyName] = propertyValue;
|
|
79047
|
+
this.requestUpdate(propertyName, previousValue);
|
|
78756
79048
|
}
|
|
78757
79049
|
|
|
78758
79050
|
connectedCallback() {
|
|
@@ -78781,6 +79073,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78781
79073
|
format: this.format
|
|
78782
79074
|
});
|
|
78783
79075
|
this.configureDataForType();
|
|
79076
|
+
this.syncDateValues();
|
|
78784
79077
|
}
|
|
78785
79078
|
|
|
78786
79079
|
disconnectedCallback() {
|
|
@@ -78800,6 +79093,15 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78800
79093
|
this.wrapperElement.addEventListener('click', this.handleClick);
|
|
78801
79094
|
}
|
|
78802
79095
|
|
|
79096
|
+
// add attribute for query selectors when auro-input is registered under a custom name
|
|
79097
|
+
// COVERAGE: the body of this branch is unreachable in WTR — connectedCallback
|
|
79098
|
+
// performs the same `setAttribute('auro-input', '')` earlier (see L665-667),
|
|
79099
|
+
// so by the time firstUpdated runs the attribute is already present and the
|
|
79100
|
+
// `!hasAttribute('auro-input')` guard is false. Retained as a defensive
|
|
79101
|
+
// safety net in case connectedCallback is ever short-circuited.
|
|
79102
|
+
if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
|
|
79103
|
+
this.setAttribute('auro-input', '');
|
|
79104
|
+
}
|
|
78803
79105
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
78804
79106
|
|
|
78805
79107
|
// use validity message override if declared when initializing the component
|
|
@@ -78810,6 +79112,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78810
79112
|
this.setCustomHelpTextMessage();
|
|
78811
79113
|
this.configureAutoFormatting();
|
|
78812
79114
|
this.configureDataForType();
|
|
79115
|
+
this.syncDateValues();
|
|
78813
79116
|
}
|
|
78814
79117
|
|
|
78815
79118
|
/**
|
|
@@ -78885,6 +79188,13 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78885
79188
|
|
|
78886
79189
|
if (typeToI18n.includes(this.type)) {
|
|
78887
79190
|
this.setCustomValidityForType = i18n(this.lang, this.type);
|
|
79191
|
+
// COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
|
|
79192
|
+
// (L682) calls configureDataForType, which at L1266-1268 assigns
|
|
79193
|
+
// `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
|
|
79194
|
+
// type=date input whose `format` attribute is unset. That runs before
|
|
79195
|
+
// firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
|
|
79196
|
+
// always false here. Retained as a defensive fallback; the whole function
|
|
79197
|
+
// is @deprecated per AB#1557296 and slated for removal.
|
|
78888
79198
|
} else if (!this.format && this.type === 'date') {
|
|
78889
79199
|
this.setCustomValidityForType = i18n(this.lang, 'dateMMDDYYYY');
|
|
78890
79200
|
} else if (this.dateFormatMap[this.format]) {
|
|
@@ -78946,6 +79256,8 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78946
79256
|
this.configureDataForType();
|
|
78947
79257
|
}
|
|
78948
79258
|
|
|
79259
|
+
this.syncDateValues(changedProperties);
|
|
79260
|
+
|
|
78949
79261
|
if (changedProperties.has('value')) {
|
|
78950
79262
|
if (this.value && this.value.length > 0) {
|
|
78951
79263
|
this.hasValue = true;
|
|
@@ -78967,14 +79279,14 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78967
79279
|
|
|
78968
79280
|
if (formattedValue !== this.inputElement.value) {
|
|
78969
79281
|
this.skipNextProgrammaticInputEvent = true;
|
|
78970
|
-
if (this.maskInstance && this.type
|
|
79282
|
+
if (this.maskInstance && this.type === 'credit-card') {
|
|
78971
79283
|
// Route through the mask so its _value and el.value stay in lock-step
|
|
78972
79284
|
// (set value calls updateControl which writes el.value = displayValue).
|
|
78973
79285
|
// 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.
|
|
79286
|
+
// stale; _saveSelection on the next focus/click then warns. Scoped to
|
|
79287
|
+
// credit-card so date's own formattedValue (raw ISO when calendar-invalid)
|
|
79288
|
+
// isn't re-masked through the mm/dd/yyyy mask, which would truncate it
|
|
79289
|
+
// and flip validity from patternMismatch to tooShort.
|
|
78978
79290
|
this.maskInstance.value = formattedValue || '';
|
|
78979
79291
|
} else if (formattedValue) {
|
|
78980
79292
|
this.inputElement.value = formattedValue;
|
|
@@ -79016,65 +79328,120 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
79016
79328
|
}));
|
|
79017
79329
|
}
|
|
79018
79330
|
|
|
79331
|
+
|
|
79332
|
+
/**
|
|
79333
|
+
* Synchronizes the ISO string values and Date object representations for date-related properties.
|
|
79334
|
+
* This keeps the model and display values aligned when either side changes.
|
|
79335
|
+
*
|
|
79336
|
+
* When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
|
|
79337
|
+
* Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
|
|
79338
|
+
* represents a full year/month/day date format.
|
|
79339
|
+
*
|
|
79340
|
+
* @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
|
|
79341
|
+
* @returns {void}
|
|
79342
|
+
* @private
|
|
79343
|
+
*/
|
|
79344
|
+
syncDateValues(changedProperties = undefined) {
|
|
79345
|
+
if (!this.util.isFullDateFormat(this.type, this.format)) {
|
|
79346
|
+
return;
|
|
79347
|
+
}
|
|
79348
|
+
|
|
79349
|
+
this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
|
|
79350
|
+
this.syncSingleDateValue(changedProperties, 'minObject', 'min');
|
|
79351
|
+
this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
|
|
79352
|
+
}
|
|
79353
|
+
|
|
79354
|
+
/**
|
|
79355
|
+
* Synchronizes one date object/string property pair.
|
|
79356
|
+
* @private
|
|
79357
|
+
* @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
|
|
79358
|
+
* @param {string} objectProperty - Date object property name.
|
|
79359
|
+
* @param {string} valueProperty - ISO string property name.
|
|
79360
|
+
* @returns {void}
|
|
79361
|
+
*/
|
|
79362
|
+
syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
|
|
79363
|
+
const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
|
|
79364
|
+
|
|
79365
|
+
// objectProperty wins over valueProperty when both changed
|
|
79366
|
+
if (objectPropertyChanged && this[objectProperty]) {
|
|
79367
|
+
this[valueProperty] = dateFormatter.toISOFormatString(this[objectProperty]);
|
|
79368
|
+
return;
|
|
79369
|
+
}
|
|
79370
|
+
|
|
79371
|
+
const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
|
|
79372
|
+
if (!valuePropertyChanged) {
|
|
79373
|
+
return;
|
|
79374
|
+
}
|
|
79375
|
+
|
|
79376
|
+
// 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)
|
|
79377
|
+
if (
|
|
79378
|
+
changedProperties &&
|
|
79379
|
+
valueProperty === 'value' &&
|
|
79380
|
+
changedProperties.get('value') === undefined &&
|
|
79381
|
+
this[objectProperty] instanceof Date &&
|
|
79382
|
+
this[valueProperty] === dateFormatter.toISOFormatString(this[objectProperty])
|
|
79383
|
+
) {
|
|
79384
|
+
return;
|
|
79385
|
+
}
|
|
79386
|
+
|
|
79387
|
+
if (dateFormatter.isValidDate(this[valueProperty])) {
|
|
79388
|
+
this.setDateObjectProperty(objectProperty, dateFormatter.stringToDateInstance(this[valueProperty]));
|
|
79389
|
+
} else {
|
|
79390
|
+
this.setDateObjectProperty(objectProperty, undefined);
|
|
79391
|
+
}
|
|
79392
|
+
}
|
|
79393
|
+
|
|
79019
79394
|
/**
|
|
79020
79395
|
* Sets up IMasks and logic based on auto-formatting requirements.
|
|
79021
79396
|
* @private
|
|
79022
79397
|
* @returns {void}
|
|
79023
79398
|
*/
|
|
79024
79399
|
configureAutoFormatting() {
|
|
79025
|
-
//
|
|
79026
|
-
//
|
|
79027
|
-
//
|
|
79028
|
-
//
|
|
79400
|
+
// Re-entrancy guard. The patched-setter's synthetic input event (suppressed
|
|
79401
|
+
// by _configuringMask above) could otherwise trigger handleInput →
|
|
79402
|
+
// processCreditCard → configureAutoFormatting before the outer call's
|
|
79403
|
+
// set value has finished its alignCursor pass.
|
|
79029
79404
|
if (this._configuringMask) return;
|
|
79030
79405
|
this._configuringMask = true;
|
|
79031
79406
|
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
79407
|
if (this.maskInstance) {
|
|
79038
79408
|
this.maskInstance.destroy();
|
|
79039
|
-
this.maskInstance = null;
|
|
79040
79409
|
}
|
|
79041
79410
|
|
|
79411
|
+
// Pass new format to util
|
|
79042
79412
|
this.util.updateFormat(this.format);
|
|
79043
79413
|
|
|
79044
79414
|
const maskOptions = this.util.getMaskOptions(this.type, this.format);
|
|
79045
79415
|
|
|
79046
79416
|
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
79417
|
|
|
79053
|
-
//
|
|
79054
|
-
//
|
|
79055
|
-
//
|
|
79056
|
-
//
|
|
79418
|
+
// Stash and clear any existing value before IMask init.
|
|
79419
|
+
// IMask's constructor processes the current input value which requires
|
|
79420
|
+
// selection state — clearing first avoids that scenario entirely.
|
|
79421
|
+
// When the format changes (e.g. locale switch) and we have a valid ISO
|
|
79422
|
+
// model value, compute the display string for the NEW format instead of
|
|
79423
|
+
// re-using the old display string, which may be invalid in the new mask.
|
|
79424
|
+
let existingValue = this.inputElement.value;
|
|
79057
79425
|
if (
|
|
79058
79426
|
this.util.isFullDateFormat(this.type, this.format) &&
|
|
79059
79427
|
this.value &&
|
|
79060
|
-
this.
|
|
79428
|
+
dateFormatter.isValidDate(this.value) &&
|
|
79429
|
+
this.valueObject instanceof Date &&
|
|
79430
|
+
!Number.isNaN(this.valueObject.getTime()) &&
|
|
79061
79431
|
typeof maskOptions.format === 'function'
|
|
79062
79432
|
) {
|
|
79063
79433
|
existingValue = maskOptions.format(this.valueObject);
|
|
79064
79434
|
}
|
|
79065
79435
|
|
|
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
79436
|
this.skipNextProgrammaticInputEvent = true;
|
|
79070
79437
|
this.inputElement.value = '';
|
|
79071
79438
|
|
|
79072
79439
|
this.maskInstance = IMask(this.inputElement, maskOptions);
|
|
79073
79440
|
|
|
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
79441
|
this.maskInstance.on('accept', () => {
|
|
79442
|
+
// Suppress propagation during configureAutoFormatting's own value-restoration
|
|
79443
|
+
// (line below) — the mask emits 'accept' on every value-set, including ours,
|
|
79444
|
+
// and we don't want to overwrite a value the parent just pushed.
|
|
79078
79445
|
if (this._configuringMask) return;
|
|
79079
79446
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
79080
79447
|
if (this.type === "date") {
|
|
@@ -79082,8 +79449,6 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
79082
79449
|
}
|
|
79083
79450
|
});
|
|
79084
79451
|
|
|
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
79452
|
this.maskInstance.on('complete', () => {
|
|
79088
79453
|
if (this._configuringMask) return;
|
|
79089
79454
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
@@ -79092,9 +79457,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
79092
79457
|
}
|
|
79093
79458
|
});
|
|
79094
79459
|
|
|
79095
|
-
//
|
|
79096
|
-
// the mask reformats it under the new rules and keeps its internal
|
|
79097
|
-
// _value aligned with the input's displayed text.
|
|
79460
|
+
// Restore the stashed value through IMask so it's properly masked
|
|
79098
79461
|
if (existingValue) {
|
|
79099
79462
|
this.maskInstance.value = existingValue;
|
|
79100
79463
|
}
|
|
@@ -79262,6 +79625,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
79262
79625
|
*/
|
|
79263
79626
|
reset() {
|
|
79264
79627
|
this.value = undefined;
|
|
79628
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
79265
79629
|
this.validation.reset(this);
|
|
79266
79630
|
}
|
|
79267
79631
|
|
|
@@ -79270,6 +79634,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
79270
79634
|
*/
|
|
79271
79635
|
clear() {
|
|
79272
79636
|
this.value = undefined;
|
|
79637
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
79273
79638
|
}
|
|
79274
79639
|
|
|
79275
79640
|
/**
|
|
@@ -79307,6 +79672,12 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
79307
79672
|
*/
|
|
79308
79673
|
get placeholderStr() {
|
|
79309
79674
|
if (!this.placeholder && this.type === 'date') {
|
|
79675
|
+
// COVERAGE: the `'MM/DD/YYYY'` literal fallback is unreachable in WTR.
|
|
79676
|
+
// connectedCallback (L682) calls configureDataForType, which at L1266-1268
|
|
79677
|
+
// assigns `this.format = this.util.getDateMaskFromLocale().toLowerCase()`
|
|
79678
|
+
// when type=date and format is unset. That runs before the first render
|
|
79679
|
+
// reads this getter, so the ternary's truthy arm always wins. Retained
|
|
79680
|
+
// as a defensive fallback for direct getter calls before connection.
|
|
79310
79681
|
return this.format ? this.format.toUpperCase() : 'MM/DD/YYYY';
|
|
79311
79682
|
}
|
|
79312
79683
|
return this.placeholder || "";
|
|
@@ -79798,7 +80169,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$3 {
|
|
|
79798
80169
|
}
|
|
79799
80170
|
};
|
|
79800
80171
|
|
|
79801
|
-
var formkitVersion$1$1 = '
|
|
80172
|
+
var formkitVersion$1$1 = '202606232113';
|
|
79802
80173
|
|
|
79803
80174
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
79804
80175
|
// See LICENSE in the project root for license information.
|
|
@@ -80919,7 +81290,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$3 {
|
|
|
80919
81290
|
}
|
|
80920
81291
|
};
|
|
80921
81292
|
|
|
80922
|
-
var formkitVersion$3 = '
|
|
81293
|
+
var formkitVersion$3 = '202606232113';
|
|
80923
81294
|
|
|
80924
81295
|
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
81296
|
|
|
@@ -81906,7 +82277,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81906
82277
|
if (this.menu) {
|
|
81907
82278
|
this.menu.matchWord = normalizeFilterValue(this.input.value);
|
|
81908
82279
|
}
|
|
81909
|
-
const label = getOptionLabel(this.menu.optionSelected);
|
|
82280
|
+
const label = getOptionLabel(this.menu.optionSelected) || this.menu.currentLabel;
|
|
81910
82281
|
this.updateTriggerTextDisplay(label || this.value);
|
|
81911
82282
|
}
|
|
81912
82283
|
|
|
@@ -81920,9 +82291,40 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81920
82291
|
// in suggestion mode, do not override input value if no selection has been made and the input currently has focus
|
|
81921
82292
|
const isInputFocusedWithNoSelection = !this.menu.value && (this.input.matches(':focus-within') || (this.inputInBib && this.inputInBib.matches(':focus-within')));
|
|
81922
82293
|
|
|
81923
|
-
|
|
81924
|
-
|
|
81925
|
-
|
|
82294
|
+
if (!this.persistInput && !(this.behavior === 'suggestion' && isInputFocusedWithNoSelection)) {
|
|
82295
|
+
const nextValue = label || this.value;
|
|
82296
|
+
// Only set the flag when there's an actual write to suppress —
|
|
82297
|
+
// syncValuesAndStates re-enters here during typing when both inputs
|
|
82298
|
+
// already match, and a no-op flag flip would make the bib branch's
|
|
82299
|
+
// bail eat legitimate user-input events.
|
|
82300
|
+
const triggerNeedsSync = this.input.value !== nextValue;
|
|
82301
|
+
const bibNeedsSync = Boolean(this.inputInBib && this.inputInBib !== this.input && this.inputInBib.value !== nextValue);
|
|
82302
|
+
if (triggerNeedsSync || bibNeedsSync) {
|
|
82303
|
+
this._syncingDisplayValue = true;
|
|
82304
|
+
if (triggerNeedsSync) {
|
|
82305
|
+
this.input.value = nextValue;
|
|
82306
|
+
}
|
|
82307
|
+
if (bibNeedsSync) {
|
|
82308
|
+
this.inputInBib.value = nextValue;
|
|
82309
|
+
}
|
|
82310
|
+
const pending = [];
|
|
82311
|
+
if (triggerNeedsSync) {
|
|
82312
|
+
pending.push(this.input.updateComplete);
|
|
82313
|
+
}
|
|
82314
|
+
if (bibNeedsSync) {
|
|
82315
|
+
pending.push(this.inputInBib.updateComplete);
|
|
82316
|
+
}
|
|
82317
|
+
Promise.all(pending).then(() => {
|
|
82318
|
+
// imask reasserts otherwise, and handleBlur reverts to its stale value.
|
|
82319
|
+
if (triggerNeedsSync && this.input.maskInstance && typeof this.input.maskInstance.updateValue === 'function') {
|
|
82320
|
+
this.input.maskInstance.updateValue();
|
|
82321
|
+
}
|
|
82322
|
+
if (bibNeedsSync && this.inputInBib && this.inputInBib.maskInstance && typeof this.inputInBib.maskInstance.updateValue === 'function') {
|
|
82323
|
+
this.inputInBib.maskInstance.updateValue();
|
|
82324
|
+
}
|
|
82325
|
+
this._syncingDisplayValue = false;
|
|
82326
|
+
});
|
|
82327
|
+
}
|
|
81926
82328
|
}
|
|
81927
82329
|
|
|
81928
82330
|
// update the displayValue in the trigger if displayValue slot content is present
|
|
@@ -81950,48 +82352,6 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81950
82352
|
this.requestUpdate();
|
|
81951
82353
|
}
|
|
81952
82354
|
|
|
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
82355
|
/**
|
|
81996
82356
|
* Processes hidden state of all menu options and determines if there are any available options not hidden.
|
|
81997
82357
|
* @private
|
|
@@ -82019,9 +82379,9 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82019
82379
|
this.syncValuesAndStates();
|
|
82020
82380
|
}
|
|
82021
82381
|
|
|
82022
|
-
// Re-activate when optionActive is
|
|
82023
|
-
//
|
|
82024
|
-
//
|
|
82382
|
+
// Re-activate when optionActive is no longer visible, or when _index has
|
|
82383
|
+
// been reset (e.g. by clearSelection in an async update) so that
|
|
82384
|
+
// makeSelection() can find the correct option.
|
|
82025
82385
|
if (!this.availableOptions.includes(this.menu.optionActive) || this.menu._index < 0) {
|
|
82026
82386
|
this.activateFirstEnabledAvailableOption();
|
|
82027
82387
|
}
|
|
@@ -82155,25 +82515,28 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82155
82515
|
|
|
82156
82516
|
guardTouchPassthrough$1(this.menu);
|
|
82157
82517
|
|
|
82158
|
-
// showModal()
|
|
82159
|
-
//
|
|
82160
|
-
//
|
|
82161
|
-
// validation guard.
|
|
82518
|
+
// The dialog's showModal() steals focus from the trigger.
|
|
82519
|
+
// A single rAF is enough for the dialog DOM to be painted and
|
|
82520
|
+
// focusable, then doubleRaf finalizes the transition.
|
|
82162
82521
|
requestAnimationFrame(() => {
|
|
82163
82522
|
this.setInputFocus();
|
|
82164
82523
|
});
|
|
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) {
|
|
82524
|
+
|
|
82525
|
+
doubleRaf$1(() => {
|
|
82526
|
+
this.setInputFocus();
|
|
82174
82527
|
this._inFullscreenTransition = false;
|
|
82175
|
-
}
|
|
82176
|
-
}
|
|
82528
|
+
});
|
|
82529
|
+
} else {
|
|
82530
|
+
// Desktop popover-open: restore the trigger caret to end-of-text.
|
|
82531
|
+
// Clicking the trigger lands on auro-input's floating <label for="…">
|
|
82532
|
+
// overlay; Chrome resets the native input's selection to [0, 0] on
|
|
82533
|
+
// label-focus before any JS runs. setInputFocus()'s non-fullscreen
|
|
82534
|
+
// branch parks the caret at end. doubleRaf lets the dropdown layout
|
|
82535
|
+
// settle first, matching the fullscreen branch timing.
|
|
82536
|
+
doubleRaf$1(() => {
|
|
82537
|
+
this.setInputFocus();
|
|
82538
|
+
});
|
|
82539
|
+
}
|
|
82177
82540
|
}
|
|
82178
82541
|
});
|
|
82179
82542
|
|
|
@@ -82384,7 +82747,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82384
82747
|
if (this.menu.optionSelected) {
|
|
82385
82748
|
const selected = this.menu.optionSelected;
|
|
82386
82749
|
|
|
82387
|
-
if (this.optionSelected !== selected) {
|
|
82750
|
+
if (!this.optionSelected || this.optionSelected !== selected) {
|
|
82388
82751
|
this.optionSelected = selected;
|
|
82389
82752
|
}
|
|
82390
82753
|
|
|
@@ -82397,7 +82760,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82397
82760
|
}
|
|
82398
82761
|
|
|
82399
82762
|
// Update display
|
|
82400
|
-
this.updateTriggerTextDisplay(getOptionLabel(this.optionSelected));
|
|
82763
|
+
this.updateTriggerTextDisplay(getOptionLabel(this.optionSelected) || this.menu.value);
|
|
82401
82764
|
|
|
82402
82765
|
// Update match word for filtering
|
|
82403
82766
|
const trimmedInput = normalizeFilterValue(this.input.value);
|
|
@@ -82413,22 +82776,13 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82413
82776
|
this.hideBib();
|
|
82414
82777
|
}
|
|
82415
82778
|
|
|
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
82779
|
// Announce the selection after the dropdown closes so it isn't
|
|
82422
82780
|
// 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
82781
|
const selectedValue = this.menu.value;
|
|
82426
|
-
|
|
82427
|
-
|
|
82428
|
-
|
|
82429
|
-
|
|
82430
|
-
}, announcementDelay);
|
|
82431
|
-
}
|
|
82782
|
+
const announcementDelay = 300;
|
|
82783
|
+
setTimeout(() => {
|
|
82784
|
+
announceToScreenReader$1(this._getAnnouncementRoot(), `${selectedValue}, selected`);
|
|
82785
|
+
}, announcementDelay);
|
|
82432
82786
|
}
|
|
82433
82787
|
|
|
82434
82788
|
// Programmatic value syncs leave availableOptions stale because
|
|
@@ -82442,6 +82796,18 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82442
82796
|
this._programmaticFilterRefresh = false;
|
|
82443
82797
|
}, 0);
|
|
82444
82798
|
}
|
|
82799
|
+
|
|
82800
|
+
// base-input skips auto-validate when focus is inside its own shadow,
|
|
82801
|
+
// which it is after setTriggerInputFocus — re-run so prior tooShort
|
|
82802
|
+
// clears. processCreditCard reasserts errorMessage on every render.
|
|
82803
|
+
if (!isEcho && this.menu.optionSelected && this.input.validate) {
|
|
82804
|
+
this.input.updateComplete.then(() => {
|
|
82805
|
+
this.input.validate(true);
|
|
82806
|
+
if (this.input.validity === 'valid') {
|
|
82807
|
+
this.input.errorMessage = '';
|
|
82808
|
+
}
|
|
82809
|
+
});
|
|
82810
|
+
}
|
|
82445
82811
|
});
|
|
82446
82812
|
|
|
82447
82813
|
this.menu.addEventListener('auroMenu-customEventFired', () => {
|
|
@@ -82776,7 +83142,15 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82776
83142
|
this.menu.value = undefined;
|
|
82777
83143
|
this.validation.reset(this);
|
|
82778
83144
|
this.touched = false;
|
|
83145
|
+
// Force validity back to the cleared state. validation.reset() calls
|
|
83146
|
+
// validate() at the end, and (post-credit-card-fix) the trigger input's
|
|
83147
|
+
// residual validity may still be copied into the combobox by the
|
|
83148
|
+
// auroInputElements loop. Explicitly clear here so reset() actually
|
|
83149
|
+
// leaves the component in a "no validity" state.
|
|
82779
83150
|
this.validity = undefined;
|
|
83151
|
+
this.errorMessage = '';
|
|
83152
|
+
this.input.validity = undefined;
|
|
83153
|
+
this.input.errorMessage = '';
|
|
82780
83154
|
}
|
|
82781
83155
|
|
|
82782
83156
|
/**
|
|
@@ -82829,27 +83203,52 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
82829
83203
|
this.input.value = this.value;
|
|
82830
83204
|
}
|
|
82831
83205
|
|
|
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.
|
|
83206
|
+
// Sync menu.value only when an option actually matches; otherwise clear it.
|
|
82836
83207
|
if (this.menu.options && this.menu.options.length > 0) {
|
|
82837
|
-
if (this.menu.options.some((opt) => opt.value === this.value)
|
|
83208
|
+
if (this.menu.options.some((opt) => opt.value === this.value)) {
|
|
83209
|
+
this.setMenuValue(this.value);
|
|
83210
|
+
} else if (this.behavior === 'filter') {
|
|
83211
|
+
// In filter mode, freeform values aren't allowed. Push the unmatched
|
|
83212
|
+
// value through setMenuValue so menu dispatches auroMenu-selectValueFailure
|
|
83213
|
+
// and the listener at line 1206 clears combobox.value (mirrors select's
|
|
83214
|
+
// pattern). Bypassing setMenuValue here would skip the failure cascade.
|
|
82838
83215
|
this.setMenuValue(this.value);
|
|
82839
83216
|
} 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();
|
|
83217
|
+
if (this.menu.value) {
|
|
83218
|
+
this.menu.value = undefined;
|
|
82846
83219
|
}
|
|
82847
|
-
//
|
|
82848
|
-
//
|
|
82849
|
-
//
|
|
82850
|
-
|
|
82851
|
-
|
|
82852
|
-
|
|
83220
|
+
// Sync the display for programmatic freeform value changes (e.g. the
|
|
83221
|
+
// swap-values pattern). Guard with _syncingDisplayValue so that the
|
|
83222
|
+
// re-entrant input event from base-input.notifyValueChanged() is
|
|
83223
|
+
// ignored by handleInputValueChange. Skip the sync when input already
|
|
83224
|
+
// matches to avoid spurious events during the normal typing path.
|
|
83225
|
+
const nextValue = this.value || '';
|
|
83226
|
+
const triggerNeedsSync = this.input.value !== nextValue;
|
|
83227
|
+
const bibNeedsSync = Boolean(this.inputInBib && this.inputInBib !== this.input && this.inputInBib.value !== nextValue);
|
|
83228
|
+
if (triggerNeedsSync || bibNeedsSync) {
|
|
83229
|
+
this._syncingDisplayValue = true;
|
|
83230
|
+
if (triggerNeedsSync) {
|
|
83231
|
+
this.input.value = nextValue;
|
|
83232
|
+
}
|
|
83233
|
+
if (bibNeedsSync) {
|
|
83234
|
+
this.inputInBib.value = nextValue;
|
|
83235
|
+
}
|
|
83236
|
+
const pending = [];
|
|
83237
|
+
if (triggerNeedsSync) {
|
|
83238
|
+
pending.push(this.input.updateComplete);
|
|
83239
|
+
}
|
|
83240
|
+
if (bibNeedsSync) {
|
|
83241
|
+
pending.push(this.inputInBib.updateComplete);
|
|
83242
|
+
}
|
|
83243
|
+
Promise.all(pending).then(() => {
|
|
83244
|
+
if (triggerNeedsSync && this.input.maskInstance && typeof this.input.maskInstance.updateValue === 'function') {
|
|
83245
|
+
this.input.maskInstance.updateValue();
|
|
83246
|
+
}
|
|
83247
|
+
if (bibNeedsSync && this.inputInBib && this.inputInBib.maskInstance && typeof this.inputInBib.maskInstance.updateValue === 'function') {
|
|
83248
|
+
this.inputInBib.maskInstance.updateValue();
|
|
83249
|
+
}
|
|
83250
|
+
this._syncingDisplayValue = false;
|
|
83251
|
+
// handleInputValueChange bailed on the flag — refresh the filter.
|
|
82853
83252
|
this._programmaticFilterRefresh = true;
|
|
82854
83253
|
this.handleMenuOptions();
|
|
82855
83254
|
setTimeout(() => {
|
|
@@ -89682,7 +90081,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
|
|
|
89682
90081
|
}
|
|
89683
90082
|
};
|
|
89684
90083
|
|
|
89685
|
-
var formkitVersion$1 = '
|
|
90084
|
+
var formkitVersion$1 = '202606232113';
|
|
89686
90085
|
|
|
89687
90086
|
class AuroElement extends i$3 {
|
|
89688
90087
|
static get properties() {
|
|
@@ -91703,7 +92102,7 @@ class AuroHelpText extends i$3 {
|
|
|
91703
92102
|
}
|
|
91704
92103
|
}
|
|
91705
92104
|
|
|
91706
|
-
var formkitVersion = '
|
|
92105
|
+
var formkitVersion = '202606232113';
|
|
91707
92106
|
|
|
91708
92107
|
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
92108
|
|