@aurodesignsystem-dev/auro-formkit 0.0.0-pr1508.0 → 0.0.0-pr1509.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/checkbox/demo/customize.min.js +1 -1
- package/components/checkbox/demo/getting-started.min.js +1 -1
- package/components/checkbox/demo/index.min.js +1 -1
- package/components/checkbox/dist/index.js +1 -1
- package/components/checkbox/dist/registered.js +1 -1
- package/components/combobox/demo/customize.min.js +279 -142
- package/components/combobox/demo/getting-started.min.js +279 -142
- package/components/combobox/demo/index.min.js +279 -142
- package/components/combobox/dist/auro-combobox.d.ts +0 -9
- package/components/combobox/dist/index.js +279 -142
- package/components/combobox/dist/registered.js +279 -142
- package/components/counter/demo/customize.min.js +2 -2
- package/components/counter/demo/index.min.js +2 -2
- package/components/counter/dist/index.js +2 -2
- package/components/counter/dist/registered.js +2 -2
- package/components/datepicker/demo/customize.min.js +153 -45
- package/components/datepicker/demo/index.min.js +153 -45
- package/components/datepicker/dist/index.js +153 -45
- package/components/datepicker/dist/registered.js +153 -45
- package/components/dropdown/demo/customize.min.js +1 -1
- package/components/dropdown/demo/getting-started.min.js +1 -1
- package/components/dropdown/demo/index.min.js +1 -1
- package/components/dropdown/dist/index.js +1 -1
- package/components/dropdown/dist/registered.js +1 -1
- package/components/form/demo/customize.min.js +589 -235
- package/components/form/demo/getting-started.min.js +589 -235
- package/components/form/demo/index.min.js +589 -235
- package/components/form/demo/registerDemoDeps.min.js +589 -235
- package/components/input/demo/customize.min.js +151 -42
- package/components/input/demo/getting-started.min.js +151 -42
- package/components/input/demo/index.min.js +151 -42
- package/components/input/dist/base-input.d.ts +49 -1
- package/components/input/dist/index.js +151 -42
- package/components/input/dist/registered.js +151 -42
- package/components/radio/demo/customize.min.js +1 -1
- package/components/radio/demo/getting-started.min.js +1 -1
- package/components/radio/demo/index.min.js +1 -1
- package/components/radio/dist/index.js +1 -1
- package/components/radio/dist/registered.js +1 -1
- package/components/select/demo/customize.min.js +2 -2
- package/components/select/demo/getting-started.min.js +2 -2
- package/components/select/demo/index.min.js +2 -2
- package/components/select/dist/index.js +2 -2
- package/components/select/dist/registered.js +2 -2
- package/custom-elements.json +264 -20
- package/package.json +1 -1
|
@@ -10460,7 +10460,6 @@ let AuroInputUtilities$3 = class AuroInputUtilities {
|
|
|
10460
10460
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
10461
10461
|
|
|
10462
10462
|
if (!(valueObject instanceof Date) || Number.isNaN(valueObject.getTime()) || !maskOptions || typeof maskOptions.format !== 'function') {
|
|
10463
|
-
console.debug('Invalid date object or mask options for formatting', { valueObject, maskOptions }); // eslint-disable-line no-console
|
|
10464
10463
|
return undefined;
|
|
10465
10464
|
}
|
|
10466
10465
|
|
|
@@ -10612,8 +10611,10 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
10612
10611
|
this.layout = 'classic';
|
|
10613
10612
|
this.locale = 'en-US';
|
|
10614
10613
|
this.max = undefined;
|
|
10614
|
+
this._maxObject = undefined;
|
|
10615
10615
|
this.maxLength = undefined;
|
|
10616
10616
|
this.min = undefined;
|
|
10617
|
+
this._minObject = undefined;
|
|
10617
10618
|
this.minLength = undefined;
|
|
10618
10619
|
this.required = false;
|
|
10619
10620
|
this.onDark = false;
|
|
@@ -10621,6 +10622,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
10621
10622
|
this.size = 'lg';
|
|
10622
10623
|
this.shape = 'classic';
|
|
10623
10624
|
this.value = undefined;
|
|
10625
|
+
this._valueObject = undefined;
|
|
10624
10626
|
|
|
10625
10627
|
this._initializePrivateDefaults();
|
|
10626
10628
|
}
|
|
@@ -11160,7 +11162,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11160
11162
|
* @returns {Date|undefined}
|
|
11161
11163
|
*/
|
|
11162
11164
|
get valueObject() {
|
|
11163
|
-
return this.
|
|
11165
|
+
return this._valueObject || this._computeDateObjectFallback(this.value);
|
|
11164
11166
|
}
|
|
11165
11167
|
|
|
11166
11168
|
/**
|
|
@@ -11168,7 +11170,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11168
11170
|
* @returns {Date|undefined}
|
|
11169
11171
|
*/
|
|
11170
11172
|
get minObject() {
|
|
11171
|
-
return this.
|
|
11173
|
+
return this._minObject || this._computeDateObjectFallback(this.min);
|
|
11172
11174
|
}
|
|
11173
11175
|
|
|
11174
11176
|
/**
|
|
@@ -11176,7 +11178,50 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11176
11178
|
* @returns {Date|undefined}
|
|
11177
11179
|
*/
|
|
11178
11180
|
get maxObject() {
|
|
11179
|
-
return this.
|
|
11181
|
+
return this._maxObject || this._computeDateObjectFallback(this.max);
|
|
11182
|
+
}
|
|
11183
|
+
|
|
11184
|
+
/**
|
|
11185
|
+
* Parses a date string into a Date object when the corresponding `_*Object`
|
|
11186
|
+
* field hasn't been synced yet by `updated()`. Returns undefined when the
|
|
11187
|
+
* input type/format isn't a full date or the string is not a valid date.
|
|
11188
|
+
*
|
|
11189
|
+
* Why this exists: a parent (datepicker) can call `inputN.validate()` from
|
|
11190
|
+
* inside its own `updated()` before this input's `updated()` has run
|
|
11191
|
+
* `syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`
|
|
11192
|
+
* and range checks would otherwise silently no-op (flipping the result to
|
|
11193
|
+
* `valid` or `patternMismatch`).
|
|
11194
|
+
* @private
|
|
11195
|
+
* @param {string|undefined} dateStr - ISO date string from `value`/`min`/`max`.
|
|
11196
|
+
* @returns {Date|undefined}
|
|
11197
|
+
*/
|
|
11198
|
+
_computeDateObjectFallback(dateStr) {
|
|
11199
|
+
if (!dateStr || !this.util || !this.util.isFullDateFormat(this.type, this.format)) {
|
|
11200
|
+
return undefined;
|
|
11201
|
+
}
|
|
11202
|
+
if (!dateFormatter$3.isValidDate(dateStr)) {
|
|
11203
|
+
return undefined;
|
|
11204
|
+
}
|
|
11205
|
+
return dateFormatter$3.stringToDateInstance(dateStr);
|
|
11206
|
+
}
|
|
11207
|
+
|
|
11208
|
+
/**
|
|
11209
|
+
* Internal setter for readonly date object properties.
|
|
11210
|
+
* @private
|
|
11211
|
+
* @param {'valueObject'|'minObject'|'maxObject'} propertyName - Public object property name.
|
|
11212
|
+
* @param {Date|undefined} propertyValue - Value to assign.
|
|
11213
|
+
* @returns {void}
|
|
11214
|
+
*/
|
|
11215
|
+
setDateObjectProperty(propertyName, propertyValue) {
|
|
11216
|
+
const internalPropertyName = `_${propertyName}`;
|
|
11217
|
+
const previousValue = this[internalPropertyName];
|
|
11218
|
+
|
|
11219
|
+
if (previousValue === propertyValue) {
|
|
11220
|
+
return;
|
|
11221
|
+
}
|
|
11222
|
+
|
|
11223
|
+
this[internalPropertyName] = propertyValue;
|
|
11224
|
+
this.requestUpdate(propertyName, previousValue);
|
|
11180
11225
|
}
|
|
11181
11226
|
|
|
11182
11227
|
connectedCallback() {
|
|
@@ -11205,6 +11250,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11205
11250
|
format: this.format
|
|
11206
11251
|
});
|
|
11207
11252
|
this.configureDataForType();
|
|
11253
|
+
this.syncDateValues();
|
|
11208
11254
|
}
|
|
11209
11255
|
|
|
11210
11256
|
disconnectedCallback() {
|
|
@@ -11234,6 +11280,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11234
11280
|
this.setCustomHelpTextMessage();
|
|
11235
11281
|
this.configureAutoFormatting();
|
|
11236
11282
|
this.configureDataForType();
|
|
11283
|
+
this.syncDateValues();
|
|
11237
11284
|
}
|
|
11238
11285
|
|
|
11239
11286
|
/**
|
|
@@ -11309,6 +11356,13 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11309
11356
|
|
|
11310
11357
|
if (typeToI18n.includes(this.type)) {
|
|
11311
11358
|
this.setCustomValidityForType = i18n$3(this.lang, this.type);
|
|
11359
|
+
// COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
|
|
11360
|
+
// (L682) calls configureDataForType, which at L1266-1268 assigns
|
|
11361
|
+
// `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
|
|
11362
|
+
// type=date input whose `format` attribute is unset. That runs before
|
|
11363
|
+
// firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
|
|
11364
|
+
// always false here. Retained as a defensive fallback; the whole function
|
|
11365
|
+
// is @deprecated per AB#1557296 and slated for removal.
|
|
11312
11366
|
} else if (!this.format && this.type === 'date') {
|
|
11313
11367
|
this.setCustomValidityForType = i18n$3(this.lang, 'dateMMDDYYYY');
|
|
11314
11368
|
} else if (this.dateFormatMap[this.format]) {
|
|
@@ -11370,6 +11424,8 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11370
11424
|
this.configureDataForType();
|
|
11371
11425
|
}
|
|
11372
11426
|
|
|
11427
|
+
this.syncDateValues(changedProperties);
|
|
11428
|
+
|
|
11373
11429
|
if (changedProperties.has('value')) {
|
|
11374
11430
|
if (this.value && this.value.length > 0) {
|
|
11375
11431
|
this.hasValue = true;
|
|
@@ -11391,14 +11447,14 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11391
11447
|
|
|
11392
11448
|
if (formattedValue !== this.inputElement.value) {
|
|
11393
11449
|
this.skipNextProgrammaticInputEvent = true;
|
|
11394
|
-
if (this.maskInstance && this.type
|
|
11450
|
+
if (this.maskInstance && this.type === 'credit-card') {
|
|
11395
11451
|
// Route through the mask so its _value and el.value stay in lock-step
|
|
11396
11452
|
// (set value calls updateControl which writes el.value = displayValue).
|
|
11397
11453
|
// Writing el.value directly leaves the mask thinking displayValue is
|
|
11398
|
-
// stale; _saveSelection on the next focus/click then warns.
|
|
11399
|
-
//
|
|
11400
|
-
//
|
|
11401
|
-
// flip validity from patternMismatch to tooShort.
|
|
11454
|
+
// stale; _saveSelection on the next focus/click then warns. Scoped to
|
|
11455
|
+
// credit-card so date's own formattedValue (raw ISO when calendar-invalid)
|
|
11456
|
+
// isn't re-masked through the mm/dd/yyyy mask, which would truncate it
|
|
11457
|
+
// and flip validity from patternMismatch to tooShort.
|
|
11402
11458
|
this.maskInstance.value = formattedValue || '';
|
|
11403
11459
|
} else if (formattedValue) {
|
|
11404
11460
|
this.inputElement.value = formattedValue;
|
|
@@ -11440,65 +11496,120 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11440
11496
|
}));
|
|
11441
11497
|
}
|
|
11442
11498
|
|
|
11499
|
+
|
|
11500
|
+
/**
|
|
11501
|
+
* Synchronizes the ISO string values and Date object representations for date-related properties.
|
|
11502
|
+
* This keeps the model and display values aligned when either side changes.
|
|
11503
|
+
*
|
|
11504
|
+
* When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
|
|
11505
|
+
* Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
|
|
11506
|
+
* represents a full year/month/day date format.
|
|
11507
|
+
*
|
|
11508
|
+
* @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
|
|
11509
|
+
* @returns {void}
|
|
11510
|
+
* @private
|
|
11511
|
+
*/
|
|
11512
|
+
syncDateValues(changedProperties = undefined) {
|
|
11513
|
+
if (!this.util.isFullDateFormat(this.type, this.format)) {
|
|
11514
|
+
return;
|
|
11515
|
+
}
|
|
11516
|
+
|
|
11517
|
+
this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
|
|
11518
|
+
this.syncSingleDateValue(changedProperties, 'minObject', 'min');
|
|
11519
|
+
this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
|
|
11520
|
+
}
|
|
11521
|
+
|
|
11522
|
+
/**
|
|
11523
|
+
* Synchronizes one date object/string property pair.
|
|
11524
|
+
* @private
|
|
11525
|
+
* @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
|
|
11526
|
+
* @param {string} objectProperty - Date object property name.
|
|
11527
|
+
* @param {string} valueProperty - ISO string property name.
|
|
11528
|
+
* @returns {void}
|
|
11529
|
+
*/
|
|
11530
|
+
syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
|
|
11531
|
+
const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
|
|
11532
|
+
|
|
11533
|
+
// objectProperty wins over valueProperty when both changed
|
|
11534
|
+
if (objectPropertyChanged && this[objectProperty]) {
|
|
11535
|
+
this[valueProperty] = dateFormatter$3.toISOFormatString(this[objectProperty]);
|
|
11536
|
+
return;
|
|
11537
|
+
}
|
|
11538
|
+
|
|
11539
|
+
const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
|
|
11540
|
+
if (!valuePropertyChanged) {
|
|
11541
|
+
return;
|
|
11542
|
+
}
|
|
11543
|
+
|
|
11544
|
+
// 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)
|
|
11545
|
+
if (
|
|
11546
|
+
changedProperties &&
|
|
11547
|
+
valueProperty === 'value' &&
|
|
11548
|
+
changedProperties.get('value') === undefined &&
|
|
11549
|
+
this[objectProperty] instanceof Date &&
|
|
11550
|
+
this[valueProperty] === dateFormatter$3.toISOFormatString(this[objectProperty])
|
|
11551
|
+
) {
|
|
11552
|
+
return;
|
|
11553
|
+
}
|
|
11554
|
+
|
|
11555
|
+
if (dateFormatter$3.isValidDate(this[valueProperty])) {
|
|
11556
|
+
this.setDateObjectProperty(objectProperty, dateFormatter$3.stringToDateInstance(this[valueProperty]));
|
|
11557
|
+
} else {
|
|
11558
|
+
this.setDateObjectProperty(objectProperty, undefined);
|
|
11559
|
+
}
|
|
11560
|
+
}
|
|
11561
|
+
|
|
11443
11562
|
/**
|
|
11444
11563
|
* Sets up IMasks and logic based on auto-formatting requirements.
|
|
11445
11564
|
* @private
|
|
11446
11565
|
* @returns {void}
|
|
11447
11566
|
*/
|
|
11448
11567
|
configureAutoFormatting() {
|
|
11449
|
-
//
|
|
11450
|
-
//
|
|
11451
|
-
//
|
|
11452
|
-
//
|
|
11568
|
+
// Re-entrancy guard. The patched-setter's synthetic input event (suppressed
|
|
11569
|
+
// by _configuringMask above) could otherwise trigger handleInput →
|
|
11570
|
+
// processCreditCard → configureAutoFormatting before the outer call's
|
|
11571
|
+
// set value has finished its alignCursor pass.
|
|
11453
11572
|
if (this._configuringMask) return;
|
|
11454
11573
|
this._configuringMask = true;
|
|
11455
11574
|
try {
|
|
11456
|
-
// Destroy any prior mask so IMask can attach fresh under the new format.
|
|
11457
|
-
// Null the reference too — if the new maskOptions.mask is falsy (e.g.
|
|
11458
|
-
// type switched from credit-card to text) the IMask() reassignment
|
|
11459
|
-
// below is skipped, and downstream writes at line ~823 would otherwise
|
|
11460
|
-
// route through the destroyed instance.
|
|
11461
11575
|
if (this.maskInstance) {
|
|
11462
11576
|
this.maskInstance.destroy();
|
|
11463
|
-
this.maskInstance = null;
|
|
11464
11577
|
}
|
|
11465
11578
|
|
|
11579
|
+
// Pass new format to util
|
|
11466
11580
|
this.util.updateFormat(this.format);
|
|
11467
11581
|
|
|
11468
11582
|
const maskOptions = this.util.getMaskOptions(this.type, this.format);
|
|
11469
11583
|
|
|
11470
11584
|
if (this.inputElement && maskOptions.mask) {
|
|
11471
|
-
// Capture the current display so it can be re-applied after IMask
|
|
11472
|
-
// attaches. The restore at the bottom goes through maskInstance.value
|
|
11473
|
-
// (not inputElement.value directly) so the mask's internal state and
|
|
11474
|
-
// the input's displayed text stay in lock-step.
|
|
11475
|
-
let existingValue = this.inputElement.value;
|
|
11476
11585
|
|
|
11477
|
-
//
|
|
11478
|
-
//
|
|
11479
|
-
//
|
|
11480
|
-
//
|
|
11586
|
+
// Stash and clear any existing value before IMask init.
|
|
11587
|
+
// IMask's constructor processes the current input value which requires
|
|
11588
|
+
// selection state — clearing first avoids that scenario entirely.
|
|
11589
|
+
// When the format changes (e.g. locale switch) and we have a valid ISO
|
|
11590
|
+
// model value, compute the display string for the NEW format instead of
|
|
11591
|
+
// re-using the old display string, which may be invalid in the new mask.
|
|
11592
|
+
let existingValue = this.inputElement.value;
|
|
11481
11593
|
if (
|
|
11482
11594
|
this.util.isFullDateFormat(this.type, this.format) &&
|
|
11483
11595
|
this.value &&
|
|
11484
|
-
this.
|
|
11596
|
+
dateFormatter$3.isValidDate(this.value) &&
|
|
11597
|
+
this.valueObject instanceof Date &&
|
|
11598
|
+
!Number.isNaN(this.valueObject.getTime()) &&
|
|
11485
11599
|
typeof maskOptions.format === 'function'
|
|
11486
11600
|
) {
|
|
11487
11601
|
existingValue = maskOptions.format(this.valueObject);
|
|
11488
11602
|
}
|
|
11489
11603
|
|
|
11490
|
-
// Clear before IMask attaches so the constructor seeds an empty
|
|
11491
|
-
// internal value. Otherwise IMask reads the stale unmasked string
|
|
11492
|
-
// and emits a spurious 'accept' before the restore below runs.
|
|
11493
11604
|
this.skipNextProgrammaticInputEvent = true;
|
|
11494
11605
|
this.inputElement.value = '';
|
|
11495
11606
|
|
|
11496
11607
|
this.maskInstance = IMask$3(this.inputElement, maskOptions);
|
|
11497
11608
|
|
|
11498
|
-
// Mask fires 'accept' on every value change, including the restore
|
|
11499
|
-
// step below. Skip events fired during configureAutoFormatting so
|
|
11500
|
-
// we don't overwrite a value the parent just pushed.
|
|
11501
11609
|
this.maskInstance.on('accept', () => {
|
|
11610
|
+
// Suppress propagation during configureAutoFormatting's own value-restoration
|
|
11611
|
+
// (line below) — the mask emits 'accept' on every value-set, including ours,
|
|
11612
|
+
// and we don't want to overwrite a value the parent just pushed.
|
|
11502
11613
|
if (this._configuringMask) return;
|
|
11503
11614
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
11504
11615
|
if (this.type === "date") {
|
|
@@ -11506,8 +11617,6 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11506
11617
|
}
|
|
11507
11618
|
});
|
|
11508
11619
|
|
|
11509
|
-
// Mask fires 'complete' on the restore step below for any value that
|
|
11510
|
-
// happens to be a complete match. Same setup-suppression as 'accept'.
|
|
11511
11620
|
this.maskInstance.on('complete', () => {
|
|
11512
11621
|
if (this._configuringMask) return;
|
|
11513
11622
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
@@ -11516,9 +11625,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11516
11625
|
}
|
|
11517
11626
|
});
|
|
11518
11627
|
|
|
11519
|
-
//
|
|
11520
|
-
// the mask reformats it under the new rules and keeps its internal
|
|
11521
|
-
// _value aligned with the input's displayed text.
|
|
11628
|
+
// Restore the stashed value through IMask so it's properly masked
|
|
11522
11629
|
if (existingValue) {
|
|
11523
11630
|
this.maskInstance.value = existingValue;
|
|
11524
11631
|
}
|
|
@@ -11686,6 +11793,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11686
11793
|
*/
|
|
11687
11794
|
reset() {
|
|
11688
11795
|
this.value = undefined;
|
|
11796
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
11689
11797
|
this.validation.reset(this);
|
|
11690
11798
|
}
|
|
11691
11799
|
|
|
@@ -11694,6 +11802,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11694
11802
|
*/
|
|
11695
11803
|
clear() {
|
|
11696
11804
|
this.value = undefined;
|
|
11805
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
11697
11806
|
}
|
|
11698
11807
|
|
|
11699
11808
|
/**
|
|
@@ -11731,7 +11840,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11731
11840
|
*/
|
|
11732
11841
|
get placeholderStr() {
|
|
11733
11842
|
if (!this.placeholder && this.type === 'date') {
|
|
11734
|
-
return this.format
|
|
11843
|
+
return this.format.toUpperCase();
|
|
11735
11844
|
}
|
|
11736
11845
|
return this.placeholder || "";
|
|
11737
11846
|
}
|
|
@@ -12222,7 +12331,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$2 {
|
|
|
12222
12331
|
}
|
|
12223
12332
|
};
|
|
12224
12333
|
|
|
12225
|
-
var formkitVersion$8 = '
|
|
12334
|
+
var formkitVersion$8 = '202606241801';
|
|
12226
12335
|
|
|
12227
12336
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
12228
12337
|
// See LICENSE in the project root for license information.
|
|
@@ -23461,7 +23570,6 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
|
|
|
23461
23570
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
23462
23571
|
|
|
23463
23572
|
if (!(valueObject instanceof Date) || Number.isNaN(valueObject.getTime()) || !maskOptions || typeof maskOptions.format !== 'function') {
|
|
23464
|
-
console.debug('Invalid date object or mask options for formatting', { valueObject, maskOptions }); // eslint-disable-line no-console
|
|
23465
23573
|
return undefined;
|
|
23466
23574
|
}
|
|
23467
23575
|
|
|
@@ -26342,7 +26450,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$2 {
|
|
|
26342
26450
|
}
|
|
26343
26451
|
};
|
|
26344
26452
|
|
|
26345
|
-
var formkitVersion$2$1 = '
|
|
26453
|
+
var formkitVersion$2$1 = '202606241801';
|
|
26346
26454
|
|
|
26347
26455
|
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$5`${s$5(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$4`: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}
|
|
26348
26456
|
`,u$4$2=i$4`.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}}
|
|
@@ -31853,7 +31961,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$2 {
|
|
|
31853
31961
|
}
|
|
31854
31962
|
};
|
|
31855
31963
|
|
|
31856
|
-
var formkitVersion$1$3 = '
|
|
31964
|
+
var formkitVersion$1$3 = '202606241801';
|
|
31857
31965
|
|
|
31858
31966
|
let AuroElement$2$2 = class AuroElement extends i$2 {
|
|
31859
31967
|
static get properties() {
|
|
@@ -43575,7 +43683,6 @@ let AuroInputUtilities$2 = class AuroInputUtilities {
|
|
|
43575
43683
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
43576
43684
|
|
|
43577
43685
|
if (!(valueObject instanceof Date) || Number.isNaN(valueObject.getTime()) || !maskOptions || typeof maskOptions.format !== 'function') {
|
|
43578
|
-
console.debug('Invalid date object or mask options for formatting', { valueObject, maskOptions }); // eslint-disable-line no-console
|
|
43579
43686
|
return undefined;
|
|
43580
43687
|
}
|
|
43581
43688
|
|
|
@@ -43727,8 +43834,10 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
43727
43834
|
this.layout = 'classic';
|
|
43728
43835
|
this.locale = 'en-US';
|
|
43729
43836
|
this.max = undefined;
|
|
43837
|
+
this._maxObject = undefined;
|
|
43730
43838
|
this.maxLength = undefined;
|
|
43731
43839
|
this.min = undefined;
|
|
43840
|
+
this._minObject = undefined;
|
|
43732
43841
|
this.minLength = undefined;
|
|
43733
43842
|
this.required = false;
|
|
43734
43843
|
this.onDark = false;
|
|
@@ -43736,6 +43845,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
43736
43845
|
this.size = 'lg';
|
|
43737
43846
|
this.shape = 'classic';
|
|
43738
43847
|
this.value = undefined;
|
|
43848
|
+
this._valueObject = undefined;
|
|
43739
43849
|
|
|
43740
43850
|
this._initializePrivateDefaults();
|
|
43741
43851
|
}
|
|
@@ -44275,7 +44385,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44275
44385
|
* @returns {Date|undefined}
|
|
44276
44386
|
*/
|
|
44277
44387
|
get valueObject() {
|
|
44278
|
-
return this.
|
|
44388
|
+
return this._valueObject || this._computeDateObjectFallback(this.value);
|
|
44279
44389
|
}
|
|
44280
44390
|
|
|
44281
44391
|
/**
|
|
@@ -44283,7 +44393,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44283
44393
|
* @returns {Date|undefined}
|
|
44284
44394
|
*/
|
|
44285
44395
|
get minObject() {
|
|
44286
|
-
return this.
|
|
44396
|
+
return this._minObject || this._computeDateObjectFallback(this.min);
|
|
44287
44397
|
}
|
|
44288
44398
|
|
|
44289
44399
|
/**
|
|
@@ -44291,7 +44401,50 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44291
44401
|
* @returns {Date|undefined}
|
|
44292
44402
|
*/
|
|
44293
44403
|
get maxObject() {
|
|
44294
|
-
return this.
|
|
44404
|
+
return this._maxObject || this._computeDateObjectFallback(this.max);
|
|
44405
|
+
}
|
|
44406
|
+
|
|
44407
|
+
/**
|
|
44408
|
+
* Parses a date string into a Date object when the corresponding `_*Object`
|
|
44409
|
+
* field hasn't been synced yet by `updated()`. Returns undefined when the
|
|
44410
|
+
* input type/format isn't a full date or the string is not a valid date.
|
|
44411
|
+
*
|
|
44412
|
+
* Why this exists: a parent (datepicker) can call `inputN.validate()` from
|
|
44413
|
+
* inside its own `updated()` before this input's `updated()` has run
|
|
44414
|
+
* `syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`
|
|
44415
|
+
* and range checks would otherwise silently no-op (flipping the result to
|
|
44416
|
+
* `valid` or `patternMismatch`).
|
|
44417
|
+
* @private
|
|
44418
|
+
* @param {string|undefined} dateStr - ISO date string from `value`/`min`/`max`.
|
|
44419
|
+
* @returns {Date|undefined}
|
|
44420
|
+
*/
|
|
44421
|
+
_computeDateObjectFallback(dateStr) {
|
|
44422
|
+
if (!dateStr || !this.util || !this.util.isFullDateFormat(this.type, this.format)) {
|
|
44423
|
+
return undefined;
|
|
44424
|
+
}
|
|
44425
|
+
if (!dateFormatter$2.isValidDate(dateStr)) {
|
|
44426
|
+
return undefined;
|
|
44427
|
+
}
|
|
44428
|
+
return dateFormatter$2.stringToDateInstance(dateStr);
|
|
44429
|
+
}
|
|
44430
|
+
|
|
44431
|
+
/**
|
|
44432
|
+
* Internal setter for readonly date object properties.
|
|
44433
|
+
* @private
|
|
44434
|
+
* @param {'valueObject'|'minObject'|'maxObject'} propertyName - Public object property name.
|
|
44435
|
+
* @param {Date|undefined} propertyValue - Value to assign.
|
|
44436
|
+
* @returns {void}
|
|
44437
|
+
*/
|
|
44438
|
+
setDateObjectProperty(propertyName, propertyValue) {
|
|
44439
|
+
const internalPropertyName = `_${propertyName}`;
|
|
44440
|
+
const previousValue = this[internalPropertyName];
|
|
44441
|
+
|
|
44442
|
+
if (previousValue === propertyValue) {
|
|
44443
|
+
return;
|
|
44444
|
+
}
|
|
44445
|
+
|
|
44446
|
+
this[internalPropertyName] = propertyValue;
|
|
44447
|
+
this.requestUpdate(propertyName, previousValue);
|
|
44295
44448
|
}
|
|
44296
44449
|
|
|
44297
44450
|
connectedCallback() {
|
|
@@ -44320,6 +44473,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44320
44473
|
format: this.format
|
|
44321
44474
|
});
|
|
44322
44475
|
this.configureDataForType();
|
|
44476
|
+
this.syncDateValues();
|
|
44323
44477
|
}
|
|
44324
44478
|
|
|
44325
44479
|
disconnectedCallback() {
|
|
@@ -44349,6 +44503,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44349
44503
|
this.setCustomHelpTextMessage();
|
|
44350
44504
|
this.configureAutoFormatting();
|
|
44351
44505
|
this.configureDataForType();
|
|
44506
|
+
this.syncDateValues();
|
|
44352
44507
|
}
|
|
44353
44508
|
|
|
44354
44509
|
/**
|
|
@@ -44424,6 +44579,13 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44424
44579
|
|
|
44425
44580
|
if (typeToI18n.includes(this.type)) {
|
|
44426
44581
|
this.setCustomValidityForType = i18n$1(this.lang, this.type);
|
|
44582
|
+
// COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
|
|
44583
|
+
// (L682) calls configureDataForType, which at L1266-1268 assigns
|
|
44584
|
+
// `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
|
|
44585
|
+
// type=date input whose `format` attribute is unset. That runs before
|
|
44586
|
+
// firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
|
|
44587
|
+
// always false here. Retained as a defensive fallback; the whole function
|
|
44588
|
+
// is @deprecated per AB#1557296 and slated for removal.
|
|
44427
44589
|
} else if (!this.format && this.type === 'date') {
|
|
44428
44590
|
this.setCustomValidityForType = i18n$1(this.lang, 'dateMMDDYYYY');
|
|
44429
44591
|
} else if (this.dateFormatMap[this.format]) {
|
|
@@ -44485,6 +44647,8 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44485
44647
|
this.configureDataForType();
|
|
44486
44648
|
}
|
|
44487
44649
|
|
|
44650
|
+
this.syncDateValues(changedProperties);
|
|
44651
|
+
|
|
44488
44652
|
if (changedProperties.has('value')) {
|
|
44489
44653
|
if (this.value && this.value.length > 0) {
|
|
44490
44654
|
this.hasValue = true;
|
|
@@ -44506,14 +44670,14 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44506
44670
|
|
|
44507
44671
|
if (formattedValue !== this.inputElement.value) {
|
|
44508
44672
|
this.skipNextProgrammaticInputEvent = true;
|
|
44509
|
-
if (this.maskInstance && this.type
|
|
44673
|
+
if (this.maskInstance && this.type === 'credit-card') {
|
|
44510
44674
|
// Route through the mask so its _value and el.value stay in lock-step
|
|
44511
44675
|
// (set value calls updateControl which writes el.value = displayValue).
|
|
44512
44676
|
// Writing el.value directly leaves the mask thinking displayValue is
|
|
44513
|
-
// stale; _saveSelection on the next focus/click then warns.
|
|
44514
|
-
//
|
|
44515
|
-
//
|
|
44516
|
-
// flip validity from patternMismatch to tooShort.
|
|
44677
|
+
// stale; _saveSelection on the next focus/click then warns. Scoped to
|
|
44678
|
+
// credit-card so date's own formattedValue (raw ISO when calendar-invalid)
|
|
44679
|
+
// isn't re-masked through the mm/dd/yyyy mask, which would truncate it
|
|
44680
|
+
// and flip validity from patternMismatch to tooShort.
|
|
44517
44681
|
this.maskInstance.value = formattedValue || '';
|
|
44518
44682
|
} else if (formattedValue) {
|
|
44519
44683
|
this.inputElement.value = formattedValue;
|
|
@@ -44555,65 +44719,120 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44555
44719
|
}));
|
|
44556
44720
|
}
|
|
44557
44721
|
|
|
44722
|
+
|
|
44723
|
+
/**
|
|
44724
|
+
* Synchronizes the ISO string values and Date object representations for date-related properties.
|
|
44725
|
+
* This keeps the model and display values aligned when either side changes.
|
|
44726
|
+
*
|
|
44727
|
+
* When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
|
|
44728
|
+
* Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
|
|
44729
|
+
* represents a full year/month/day date format.
|
|
44730
|
+
*
|
|
44731
|
+
* @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
|
|
44732
|
+
* @returns {void}
|
|
44733
|
+
* @private
|
|
44734
|
+
*/
|
|
44735
|
+
syncDateValues(changedProperties = undefined) {
|
|
44736
|
+
if (!this.util.isFullDateFormat(this.type, this.format)) {
|
|
44737
|
+
return;
|
|
44738
|
+
}
|
|
44739
|
+
|
|
44740
|
+
this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
|
|
44741
|
+
this.syncSingleDateValue(changedProperties, 'minObject', 'min');
|
|
44742
|
+
this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
|
|
44743
|
+
}
|
|
44744
|
+
|
|
44745
|
+
/**
|
|
44746
|
+
* Synchronizes one date object/string property pair.
|
|
44747
|
+
* @private
|
|
44748
|
+
* @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
|
|
44749
|
+
* @param {string} objectProperty - Date object property name.
|
|
44750
|
+
* @param {string} valueProperty - ISO string property name.
|
|
44751
|
+
* @returns {void}
|
|
44752
|
+
*/
|
|
44753
|
+
syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
|
|
44754
|
+
const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
|
|
44755
|
+
|
|
44756
|
+
// objectProperty wins over valueProperty when both changed
|
|
44757
|
+
if (objectPropertyChanged && this[objectProperty]) {
|
|
44758
|
+
this[valueProperty] = dateFormatter$2.toISOFormatString(this[objectProperty]);
|
|
44759
|
+
return;
|
|
44760
|
+
}
|
|
44761
|
+
|
|
44762
|
+
const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
|
|
44763
|
+
if (!valuePropertyChanged) {
|
|
44764
|
+
return;
|
|
44765
|
+
}
|
|
44766
|
+
|
|
44767
|
+
// 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)
|
|
44768
|
+
if (
|
|
44769
|
+
changedProperties &&
|
|
44770
|
+
valueProperty === 'value' &&
|
|
44771
|
+
changedProperties.get('value') === undefined &&
|
|
44772
|
+
this[objectProperty] instanceof Date &&
|
|
44773
|
+
this[valueProperty] === dateFormatter$2.toISOFormatString(this[objectProperty])
|
|
44774
|
+
) {
|
|
44775
|
+
return;
|
|
44776
|
+
}
|
|
44777
|
+
|
|
44778
|
+
if (dateFormatter$2.isValidDate(this[valueProperty])) {
|
|
44779
|
+
this.setDateObjectProperty(objectProperty, dateFormatter$2.stringToDateInstance(this[valueProperty]));
|
|
44780
|
+
} else {
|
|
44781
|
+
this.setDateObjectProperty(objectProperty, undefined);
|
|
44782
|
+
}
|
|
44783
|
+
}
|
|
44784
|
+
|
|
44558
44785
|
/**
|
|
44559
44786
|
* Sets up IMasks and logic based on auto-formatting requirements.
|
|
44560
44787
|
* @private
|
|
44561
44788
|
* @returns {void}
|
|
44562
44789
|
*/
|
|
44563
44790
|
configureAutoFormatting() {
|
|
44564
|
-
//
|
|
44565
|
-
//
|
|
44566
|
-
//
|
|
44567
|
-
//
|
|
44791
|
+
// Re-entrancy guard. The patched-setter's synthetic input event (suppressed
|
|
44792
|
+
// by _configuringMask above) could otherwise trigger handleInput →
|
|
44793
|
+
// processCreditCard → configureAutoFormatting before the outer call's
|
|
44794
|
+
// set value has finished its alignCursor pass.
|
|
44568
44795
|
if (this._configuringMask) return;
|
|
44569
44796
|
this._configuringMask = true;
|
|
44570
44797
|
try {
|
|
44571
|
-
// Destroy any prior mask so IMask can attach fresh under the new format.
|
|
44572
|
-
// Null the reference too — if the new maskOptions.mask is falsy (e.g.
|
|
44573
|
-
// type switched from credit-card to text) the IMask() reassignment
|
|
44574
|
-
// below is skipped, and downstream writes at line ~823 would otherwise
|
|
44575
|
-
// route through the destroyed instance.
|
|
44576
44798
|
if (this.maskInstance) {
|
|
44577
44799
|
this.maskInstance.destroy();
|
|
44578
|
-
this.maskInstance = null;
|
|
44579
44800
|
}
|
|
44580
44801
|
|
|
44802
|
+
// Pass new format to util
|
|
44581
44803
|
this.util.updateFormat(this.format);
|
|
44582
44804
|
|
|
44583
44805
|
const maskOptions = this.util.getMaskOptions(this.type, this.format);
|
|
44584
44806
|
|
|
44585
44807
|
if (this.inputElement && maskOptions.mask) {
|
|
44586
|
-
// Capture the current display so it can be re-applied after IMask
|
|
44587
|
-
// attaches. The restore at the bottom goes through maskInstance.value
|
|
44588
|
-
// (not inputElement.value directly) so the mask's internal state and
|
|
44589
|
-
// the input's displayed text stay in lock-step.
|
|
44590
|
-
let existingValue = this.inputElement.value;
|
|
44591
44808
|
|
|
44592
|
-
//
|
|
44593
|
-
//
|
|
44594
|
-
//
|
|
44595
|
-
//
|
|
44809
|
+
// Stash and clear any existing value before IMask init.
|
|
44810
|
+
// IMask's constructor processes the current input value which requires
|
|
44811
|
+
// selection state — clearing first avoids that scenario entirely.
|
|
44812
|
+
// When the format changes (e.g. locale switch) and we have a valid ISO
|
|
44813
|
+
// model value, compute the display string for the NEW format instead of
|
|
44814
|
+
// re-using the old display string, which may be invalid in the new mask.
|
|
44815
|
+
let existingValue = this.inputElement.value;
|
|
44596
44816
|
if (
|
|
44597
44817
|
this.util.isFullDateFormat(this.type, this.format) &&
|
|
44598
44818
|
this.value &&
|
|
44599
|
-
this.
|
|
44819
|
+
dateFormatter$2.isValidDate(this.value) &&
|
|
44820
|
+
this.valueObject instanceof Date &&
|
|
44821
|
+
!Number.isNaN(this.valueObject.getTime()) &&
|
|
44600
44822
|
typeof maskOptions.format === 'function'
|
|
44601
44823
|
) {
|
|
44602
44824
|
existingValue = maskOptions.format(this.valueObject);
|
|
44603
44825
|
}
|
|
44604
44826
|
|
|
44605
|
-
// Clear before IMask attaches so the constructor seeds an empty
|
|
44606
|
-
// internal value. Otherwise IMask reads the stale unmasked string
|
|
44607
|
-
// and emits a spurious 'accept' before the restore below runs.
|
|
44608
44827
|
this.skipNextProgrammaticInputEvent = true;
|
|
44609
44828
|
this.inputElement.value = '';
|
|
44610
44829
|
|
|
44611
44830
|
this.maskInstance = IMask$2(this.inputElement, maskOptions);
|
|
44612
44831
|
|
|
44613
|
-
// Mask fires 'accept' on every value change, including the restore
|
|
44614
|
-
// step below. Skip events fired during configureAutoFormatting so
|
|
44615
|
-
// we don't overwrite a value the parent just pushed.
|
|
44616
44832
|
this.maskInstance.on('accept', () => {
|
|
44833
|
+
// Suppress propagation during configureAutoFormatting's own value-restoration
|
|
44834
|
+
// (line below) — the mask emits 'accept' on every value-set, including ours,
|
|
44835
|
+
// and we don't want to overwrite a value the parent just pushed.
|
|
44617
44836
|
if (this._configuringMask) return;
|
|
44618
44837
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
44619
44838
|
if (this.type === "date") {
|
|
@@ -44621,8 +44840,6 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44621
44840
|
}
|
|
44622
44841
|
});
|
|
44623
44842
|
|
|
44624
|
-
// Mask fires 'complete' on the restore step below for any value that
|
|
44625
|
-
// happens to be a complete match. Same setup-suppression as 'accept'.
|
|
44626
44843
|
this.maskInstance.on('complete', () => {
|
|
44627
44844
|
if (this._configuringMask) return;
|
|
44628
44845
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
@@ -44631,9 +44848,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44631
44848
|
}
|
|
44632
44849
|
});
|
|
44633
44850
|
|
|
44634
|
-
//
|
|
44635
|
-
// the mask reformats it under the new rules and keeps its internal
|
|
44636
|
-
// _value aligned with the input's displayed text.
|
|
44851
|
+
// Restore the stashed value through IMask so it's properly masked
|
|
44637
44852
|
if (existingValue) {
|
|
44638
44853
|
this.maskInstance.value = existingValue;
|
|
44639
44854
|
}
|
|
@@ -44801,6 +45016,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44801
45016
|
*/
|
|
44802
45017
|
reset() {
|
|
44803
45018
|
this.value = undefined;
|
|
45019
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
44804
45020
|
this.validation.reset(this);
|
|
44805
45021
|
}
|
|
44806
45022
|
|
|
@@ -44809,6 +45025,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44809
45025
|
*/
|
|
44810
45026
|
clear() {
|
|
44811
45027
|
this.value = undefined;
|
|
45028
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
44812
45029
|
}
|
|
44813
45030
|
|
|
44814
45031
|
/**
|
|
@@ -44846,7 +45063,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44846
45063
|
*/
|
|
44847
45064
|
get placeholderStr() {
|
|
44848
45065
|
if (!this.placeholder && this.type === 'date') {
|
|
44849
|
-
return this.format
|
|
45066
|
+
return this.format.toUpperCase();
|
|
44850
45067
|
}
|
|
44851
45068
|
return this.placeholder || "";
|
|
44852
45069
|
}
|
|
@@ -45337,7 +45554,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$2 {
|
|
|
45337
45554
|
}
|
|
45338
45555
|
};
|
|
45339
45556
|
|
|
45340
|
-
var formkitVersion$7 = '
|
|
45557
|
+
var formkitVersion$7 = '202606241801';
|
|
45341
45558
|
|
|
45342
45559
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
45343
45560
|
// See LICENSE in the project root for license information.
|
|
@@ -50040,7 +50257,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$2 {
|
|
|
50040
50257
|
}
|
|
50041
50258
|
};
|
|
50042
50259
|
|
|
50043
|
-
var formkitVersion$1$2 = '
|
|
50260
|
+
var formkitVersion$1$2 = '202606241801';
|
|
50044
50261
|
|
|
50045
50262
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
50046
50263
|
// See LICENSE in the project root for license information.
|
|
@@ -54368,7 +54585,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$2 {
|
|
|
54368
54585
|
}
|
|
54369
54586
|
};
|
|
54370
54587
|
|
|
54371
|
-
var formkitVersion$6 = '
|
|
54588
|
+
var formkitVersion$6 = '202606241801';
|
|
54372
54589
|
|
|
54373
54590
|
let AuroElement$1$2 = class AuroElement extends i$2 {
|
|
54374
54591
|
static get properties() {
|
|
@@ -58308,7 +58525,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$2 {
|
|
|
58308
58525
|
}
|
|
58309
58526
|
};
|
|
58310
58527
|
|
|
58311
|
-
var formkitVersion$5 = '
|
|
58528
|
+
var formkitVersion$5 = '202606241801';
|
|
58312
58529
|
|
|
58313
58530
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
58314
58531
|
// See LICENSE in the project root for license information.
|
|
@@ -60058,7 +60275,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$2 {
|
|
|
60058
60275
|
}
|
|
60059
60276
|
};
|
|
60060
60277
|
|
|
60061
|
-
var formkitVersion$4 = '
|
|
60278
|
+
var formkitVersion$4 = '202606241801';
|
|
60062
60279
|
|
|
60063
60280
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
60064
60281
|
// See LICENSE in the project root for license information.
|
|
@@ -61234,8 +61451,6 @@ function navigateArrow$1(component, direction, options = {}) {
|
|
|
61234
61451
|
}
|
|
61235
61452
|
}
|
|
61236
61453
|
|
|
61237
|
-
/* eslint-disable no-underscore-dangle */
|
|
61238
|
-
|
|
61239
61454
|
/**
|
|
61240
61455
|
* Returns the clear button element from the active input's shadow
|
|
61241
61456
|
* DOM, if available.
|
|
@@ -61271,9 +61486,11 @@ function isClearBtnFocused(ctx, clearBtn = getClearBtn(ctx)) {
|
|
|
61271
61486
|
* @param {Object} menu - The menu component.
|
|
61272
61487
|
*/
|
|
61273
61488
|
function reconcileMenuIndex(menu) {
|
|
61489
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
61274
61490
|
if (menu._index < 0 && menu.optionActive && menu.items) {
|
|
61275
61491
|
const idx = menu.items.indexOf(menu.optionActive);
|
|
61276
61492
|
if (idx >= 0) {
|
|
61493
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
61277
61494
|
menu._index = idx;
|
|
61278
61495
|
}
|
|
61279
61496
|
}
|
|
@@ -65273,7 +65490,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$2 {
|
|
|
65273
65490
|
}
|
|
65274
65491
|
};
|
|
65275
65492
|
|
|
65276
|
-
var formkitVersion$2 = '
|
|
65493
|
+
var formkitVersion$2 = '202606241801';
|
|
65277
65494
|
|
|
65278
65495
|
let AuroElement$2$1 = class AuroElement extends i$2 {
|
|
65279
65496
|
static get properties() {
|
|
@@ -76995,7 +77212,6 @@ class AuroInputUtilities {
|
|
|
76995
77212
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
76996
77213
|
|
|
76997
77214
|
if (!(valueObject instanceof Date) || Number.isNaN(valueObject.getTime()) || !maskOptions || typeof maskOptions.format !== 'function') {
|
|
76998
|
-
console.debug('Invalid date object or mask options for formatting', { valueObject, maskOptions }); // eslint-disable-line no-console
|
|
76999
77215
|
return undefined;
|
|
77000
77216
|
}
|
|
77001
77217
|
|
|
@@ -77147,8 +77363,10 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77147
77363
|
this.layout = 'classic';
|
|
77148
77364
|
this.locale = 'en-US';
|
|
77149
77365
|
this.max = undefined;
|
|
77366
|
+
this._maxObject = undefined;
|
|
77150
77367
|
this.maxLength = undefined;
|
|
77151
77368
|
this.min = undefined;
|
|
77369
|
+
this._minObject = undefined;
|
|
77152
77370
|
this.minLength = undefined;
|
|
77153
77371
|
this.required = false;
|
|
77154
77372
|
this.onDark = false;
|
|
@@ -77156,6 +77374,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77156
77374
|
this.size = 'lg';
|
|
77157
77375
|
this.shape = 'classic';
|
|
77158
77376
|
this.value = undefined;
|
|
77377
|
+
this._valueObject = undefined;
|
|
77159
77378
|
|
|
77160
77379
|
this._initializePrivateDefaults();
|
|
77161
77380
|
}
|
|
@@ -77695,7 +77914,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77695
77914
|
* @returns {Date|undefined}
|
|
77696
77915
|
*/
|
|
77697
77916
|
get valueObject() {
|
|
77698
|
-
return this.
|
|
77917
|
+
return this._valueObject || this._computeDateObjectFallback(this.value);
|
|
77699
77918
|
}
|
|
77700
77919
|
|
|
77701
77920
|
/**
|
|
@@ -77703,7 +77922,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77703
77922
|
* @returns {Date|undefined}
|
|
77704
77923
|
*/
|
|
77705
77924
|
get minObject() {
|
|
77706
|
-
return this.
|
|
77925
|
+
return this._minObject || this._computeDateObjectFallback(this.min);
|
|
77707
77926
|
}
|
|
77708
77927
|
|
|
77709
77928
|
/**
|
|
@@ -77711,7 +77930,50 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77711
77930
|
* @returns {Date|undefined}
|
|
77712
77931
|
*/
|
|
77713
77932
|
get maxObject() {
|
|
77714
|
-
return this.
|
|
77933
|
+
return this._maxObject || this._computeDateObjectFallback(this.max);
|
|
77934
|
+
}
|
|
77935
|
+
|
|
77936
|
+
/**
|
|
77937
|
+
* Parses a date string into a Date object when the corresponding `_*Object`
|
|
77938
|
+
* field hasn't been synced yet by `updated()`. Returns undefined when the
|
|
77939
|
+
* input type/format isn't a full date or the string is not a valid date.
|
|
77940
|
+
*
|
|
77941
|
+
* Why this exists: a parent (datepicker) can call `inputN.validate()` from
|
|
77942
|
+
* inside its own `updated()` before this input's `updated()` has run
|
|
77943
|
+
* `syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`
|
|
77944
|
+
* and range checks would otherwise silently no-op (flipping the result to
|
|
77945
|
+
* `valid` or `patternMismatch`).
|
|
77946
|
+
* @private
|
|
77947
|
+
* @param {string|undefined} dateStr - ISO date string from `value`/`min`/`max`.
|
|
77948
|
+
* @returns {Date|undefined}
|
|
77949
|
+
*/
|
|
77950
|
+
_computeDateObjectFallback(dateStr) {
|
|
77951
|
+
if (!dateStr || !this.util || !this.util.isFullDateFormat(this.type, this.format)) {
|
|
77952
|
+
return undefined;
|
|
77953
|
+
}
|
|
77954
|
+
if (!dateFormatter.isValidDate(dateStr)) {
|
|
77955
|
+
return undefined;
|
|
77956
|
+
}
|
|
77957
|
+
return dateFormatter.stringToDateInstance(dateStr);
|
|
77958
|
+
}
|
|
77959
|
+
|
|
77960
|
+
/**
|
|
77961
|
+
* Internal setter for readonly date object properties.
|
|
77962
|
+
* @private
|
|
77963
|
+
* @param {'valueObject'|'minObject'|'maxObject'} propertyName - Public object property name.
|
|
77964
|
+
* @param {Date|undefined} propertyValue - Value to assign.
|
|
77965
|
+
* @returns {void}
|
|
77966
|
+
*/
|
|
77967
|
+
setDateObjectProperty(propertyName, propertyValue) {
|
|
77968
|
+
const internalPropertyName = `_${propertyName}`;
|
|
77969
|
+
const previousValue = this[internalPropertyName];
|
|
77970
|
+
|
|
77971
|
+
if (previousValue === propertyValue) {
|
|
77972
|
+
return;
|
|
77973
|
+
}
|
|
77974
|
+
|
|
77975
|
+
this[internalPropertyName] = propertyValue;
|
|
77976
|
+
this.requestUpdate(propertyName, previousValue);
|
|
77715
77977
|
}
|
|
77716
77978
|
|
|
77717
77979
|
connectedCallback() {
|
|
@@ -77740,6 +78002,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77740
78002
|
format: this.format
|
|
77741
78003
|
});
|
|
77742
78004
|
this.configureDataForType();
|
|
78005
|
+
this.syncDateValues();
|
|
77743
78006
|
}
|
|
77744
78007
|
|
|
77745
78008
|
disconnectedCallback() {
|
|
@@ -77769,6 +78032,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77769
78032
|
this.setCustomHelpTextMessage();
|
|
77770
78033
|
this.configureAutoFormatting();
|
|
77771
78034
|
this.configureDataForType();
|
|
78035
|
+
this.syncDateValues();
|
|
77772
78036
|
}
|
|
77773
78037
|
|
|
77774
78038
|
/**
|
|
@@ -77844,6 +78108,13 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77844
78108
|
|
|
77845
78109
|
if (typeToI18n.includes(this.type)) {
|
|
77846
78110
|
this.setCustomValidityForType = i18n(this.lang, this.type);
|
|
78111
|
+
// COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
|
|
78112
|
+
// (L682) calls configureDataForType, which at L1266-1268 assigns
|
|
78113
|
+
// `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
|
|
78114
|
+
// type=date input whose `format` attribute is unset. That runs before
|
|
78115
|
+
// firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
|
|
78116
|
+
// always false here. Retained as a defensive fallback; the whole function
|
|
78117
|
+
// is @deprecated per AB#1557296 and slated for removal.
|
|
77847
78118
|
} else if (!this.format && this.type === 'date') {
|
|
77848
78119
|
this.setCustomValidityForType = i18n(this.lang, 'dateMMDDYYYY');
|
|
77849
78120
|
} else if (this.dateFormatMap[this.format]) {
|
|
@@ -77905,6 +78176,8 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77905
78176
|
this.configureDataForType();
|
|
77906
78177
|
}
|
|
77907
78178
|
|
|
78179
|
+
this.syncDateValues(changedProperties);
|
|
78180
|
+
|
|
77908
78181
|
if (changedProperties.has('value')) {
|
|
77909
78182
|
if (this.value && this.value.length > 0) {
|
|
77910
78183
|
this.hasValue = true;
|
|
@@ -77926,14 +78199,14 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77926
78199
|
|
|
77927
78200
|
if (formattedValue !== this.inputElement.value) {
|
|
77928
78201
|
this.skipNextProgrammaticInputEvent = true;
|
|
77929
|
-
if (this.maskInstance && this.type
|
|
78202
|
+
if (this.maskInstance && this.type === 'credit-card') {
|
|
77930
78203
|
// Route through the mask so its _value and el.value stay in lock-step
|
|
77931
78204
|
// (set value calls updateControl which writes el.value = displayValue).
|
|
77932
78205
|
// Writing el.value directly leaves the mask thinking displayValue is
|
|
77933
|
-
// stale; _saveSelection on the next focus/click then warns.
|
|
77934
|
-
//
|
|
77935
|
-
//
|
|
77936
|
-
// flip validity from patternMismatch to tooShort.
|
|
78206
|
+
// stale; _saveSelection on the next focus/click then warns. Scoped to
|
|
78207
|
+
// credit-card so date's own formattedValue (raw ISO when calendar-invalid)
|
|
78208
|
+
// isn't re-masked through the mm/dd/yyyy mask, which would truncate it
|
|
78209
|
+
// and flip validity from patternMismatch to tooShort.
|
|
77937
78210
|
this.maskInstance.value = formattedValue || '';
|
|
77938
78211
|
} else if (formattedValue) {
|
|
77939
78212
|
this.inputElement.value = formattedValue;
|
|
@@ -77975,65 +78248,120 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77975
78248
|
}));
|
|
77976
78249
|
}
|
|
77977
78250
|
|
|
78251
|
+
|
|
78252
|
+
/**
|
|
78253
|
+
* Synchronizes the ISO string values and Date object representations for date-related properties.
|
|
78254
|
+
* This keeps the model and display values aligned when either side changes.
|
|
78255
|
+
*
|
|
78256
|
+
* When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
|
|
78257
|
+
* Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
|
|
78258
|
+
* represents a full year/month/day date format.
|
|
78259
|
+
*
|
|
78260
|
+
* @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
|
|
78261
|
+
* @returns {void}
|
|
78262
|
+
* @private
|
|
78263
|
+
*/
|
|
78264
|
+
syncDateValues(changedProperties = undefined) {
|
|
78265
|
+
if (!this.util.isFullDateFormat(this.type, this.format)) {
|
|
78266
|
+
return;
|
|
78267
|
+
}
|
|
78268
|
+
|
|
78269
|
+
this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
|
|
78270
|
+
this.syncSingleDateValue(changedProperties, 'minObject', 'min');
|
|
78271
|
+
this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
|
|
78272
|
+
}
|
|
78273
|
+
|
|
78274
|
+
/**
|
|
78275
|
+
* Synchronizes one date object/string property pair.
|
|
78276
|
+
* @private
|
|
78277
|
+
* @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
|
|
78278
|
+
* @param {string} objectProperty - Date object property name.
|
|
78279
|
+
* @param {string} valueProperty - ISO string property name.
|
|
78280
|
+
* @returns {void}
|
|
78281
|
+
*/
|
|
78282
|
+
syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
|
|
78283
|
+
const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
|
|
78284
|
+
|
|
78285
|
+
// objectProperty wins over valueProperty when both changed
|
|
78286
|
+
if (objectPropertyChanged && this[objectProperty]) {
|
|
78287
|
+
this[valueProperty] = dateFormatter.toISOFormatString(this[objectProperty]);
|
|
78288
|
+
return;
|
|
78289
|
+
}
|
|
78290
|
+
|
|
78291
|
+
const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
|
|
78292
|
+
if (!valuePropertyChanged) {
|
|
78293
|
+
return;
|
|
78294
|
+
}
|
|
78295
|
+
|
|
78296
|
+
// 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)
|
|
78297
|
+
if (
|
|
78298
|
+
changedProperties &&
|
|
78299
|
+
valueProperty === 'value' &&
|
|
78300
|
+
changedProperties.get('value') === undefined &&
|
|
78301
|
+
this[objectProperty] instanceof Date &&
|
|
78302
|
+
this[valueProperty] === dateFormatter.toISOFormatString(this[objectProperty])
|
|
78303
|
+
) {
|
|
78304
|
+
return;
|
|
78305
|
+
}
|
|
78306
|
+
|
|
78307
|
+
if (dateFormatter.isValidDate(this[valueProperty])) {
|
|
78308
|
+
this.setDateObjectProperty(objectProperty, dateFormatter.stringToDateInstance(this[valueProperty]));
|
|
78309
|
+
} else {
|
|
78310
|
+
this.setDateObjectProperty(objectProperty, undefined);
|
|
78311
|
+
}
|
|
78312
|
+
}
|
|
78313
|
+
|
|
77978
78314
|
/**
|
|
77979
78315
|
* Sets up IMasks and logic based on auto-formatting requirements.
|
|
77980
78316
|
* @private
|
|
77981
78317
|
* @returns {void}
|
|
77982
78318
|
*/
|
|
77983
78319
|
configureAutoFormatting() {
|
|
77984
|
-
//
|
|
77985
|
-
//
|
|
77986
|
-
//
|
|
77987
|
-
//
|
|
78320
|
+
// Re-entrancy guard. The patched-setter's synthetic input event (suppressed
|
|
78321
|
+
// by _configuringMask above) could otherwise trigger handleInput →
|
|
78322
|
+
// processCreditCard → configureAutoFormatting before the outer call's
|
|
78323
|
+
// set value has finished its alignCursor pass.
|
|
77988
78324
|
if (this._configuringMask) return;
|
|
77989
78325
|
this._configuringMask = true;
|
|
77990
78326
|
try {
|
|
77991
|
-
// Destroy any prior mask so IMask can attach fresh under the new format.
|
|
77992
|
-
// Null the reference too — if the new maskOptions.mask is falsy (e.g.
|
|
77993
|
-
// type switched from credit-card to text) the IMask() reassignment
|
|
77994
|
-
// below is skipped, and downstream writes at line ~823 would otherwise
|
|
77995
|
-
// route through the destroyed instance.
|
|
77996
78327
|
if (this.maskInstance) {
|
|
77997
78328
|
this.maskInstance.destroy();
|
|
77998
|
-
this.maskInstance = null;
|
|
77999
78329
|
}
|
|
78000
78330
|
|
|
78331
|
+
// Pass new format to util
|
|
78001
78332
|
this.util.updateFormat(this.format);
|
|
78002
78333
|
|
|
78003
78334
|
const maskOptions = this.util.getMaskOptions(this.type, this.format);
|
|
78004
78335
|
|
|
78005
78336
|
if (this.inputElement && maskOptions.mask) {
|
|
78006
|
-
// Capture the current display so it can be re-applied after IMask
|
|
78007
|
-
// attaches. The restore at the bottom goes through maskInstance.value
|
|
78008
|
-
// (not inputElement.value directly) so the mask's internal state and
|
|
78009
|
-
// the input's displayed text stay in lock-step.
|
|
78010
|
-
let existingValue = this.inputElement.value;
|
|
78011
78337
|
|
|
78012
|
-
//
|
|
78013
|
-
//
|
|
78014
|
-
//
|
|
78015
|
-
//
|
|
78338
|
+
// Stash and clear any existing value before IMask init.
|
|
78339
|
+
// IMask's constructor processes the current input value which requires
|
|
78340
|
+
// selection state — clearing first avoids that scenario entirely.
|
|
78341
|
+
// When the format changes (e.g. locale switch) and we have a valid ISO
|
|
78342
|
+
// model value, compute the display string for the NEW format instead of
|
|
78343
|
+
// re-using the old display string, which may be invalid in the new mask.
|
|
78344
|
+
let existingValue = this.inputElement.value;
|
|
78016
78345
|
if (
|
|
78017
78346
|
this.util.isFullDateFormat(this.type, this.format) &&
|
|
78018
78347
|
this.value &&
|
|
78019
|
-
this.
|
|
78348
|
+
dateFormatter.isValidDate(this.value) &&
|
|
78349
|
+
this.valueObject instanceof Date &&
|
|
78350
|
+
!Number.isNaN(this.valueObject.getTime()) &&
|
|
78020
78351
|
typeof maskOptions.format === 'function'
|
|
78021
78352
|
) {
|
|
78022
78353
|
existingValue = maskOptions.format(this.valueObject);
|
|
78023
78354
|
}
|
|
78024
78355
|
|
|
78025
|
-
// Clear before IMask attaches so the constructor seeds an empty
|
|
78026
|
-
// internal value. Otherwise IMask reads the stale unmasked string
|
|
78027
|
-
// and emits a spurious 'accept' before the restore below runs.
|
|
78028
78356
|
this.skipNextProgrammaticInputEvent = true;
|
|
78029
78357
|
this.inputElement.value = '';
|
|
78030
78358
|
|
|
78031
78359
|
this.maskInstance = IMask(this.inputElement, maskOptions);
|
|
78032
78360
|
|
|
78033
|
-
// Mask fires 'accept' on every value change, including the restore
|
|
78034
|
-
// step below. Skip events fired during configureAutoFormatting so
|
|
78035
|
-
// we don't overwrite a value the parent just pushed.
|
|
78036
78361
|
this.maskInstance.on('accept', () => {
|
|
78362
|
+
// Suppress propagation during configureAutoFormatting's own value-restoration
|
|
78363
|
+
// (line below) — the mask emits 'accept' on every value-set, including ours,
|
|
78364
|
+
// and we don't want to overwrite a value the parent just pushed.
|
|
78037
78365
|
if (this._configuringMask) return;
|
|
78038
78366
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
78039
78367
|
if (this.type === "date") {
|
|
@@ -78041,8 +78369,6 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78041
78369
|
}
|
|
78042
78370
|
});
|
|
78043
78371
|
|
|
78044
|
-
// Mask fires 'complete' on the restore step below for any value that
|
|
78045
|
-
// happens to be a complete match. Same setup-suppression as 'accept'.
|
|
78046
78372
|
this.maskInstance.on('complete', () => {
|
|
78047
78373
|
if (this._configuringMask) return;
|
|
78048
78374
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
@@ -78051,9 +78377,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78051
78377
|
}
|
|
78052
78378
|
});
|
|
78053
78379
|
|
|
78054
|
-
//
|
|
78055
|
-
// the mask reformats it under the new rules and keeps its internal
|
|
78056
|
-
// _value aligned with the input's displayed text.
|
|
78380
|
+
// Restore the stashed value through IMask so it's properly masked
|
|
78057
78381
|
if (existingValue) {
|
|
78058
78382
|
this.maskInstance.value = existingValue;
|
|
78059
78383
|
}
|
|
@@ -78221,6 +78545,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78221
78545
|
*/
|
|
78222
78546
|
reset() {
|
|
78223
78547
|
this.value = undefined;
|
|
78548
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
78224
78549
|
this.validation.reset(this);
|
|
78225
78550
|
}
|
|
78226
78551
|
|
|
@@ -78229,6 +78554,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78229
78554
|
*/
|
|
78230
78555
|
clear() {
|
|
78231
78556
|
this.value = undefined;
|
|
78557
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
78232
78558
|
}
|
|
78233
78559
|
|
|
78234
78560
|
/**
|
|
@@ -78266,7 +78592,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78266
78592
|
*/
|
|
78267
78593
|
get placeholderStr() {
|
|
78268
78594
|
if (!this.placeholder && this.type === 'date') {
|
|
78269
|
-
return this.format
|
|
78595
|
+
return this.format.toUpperCase();
|
|
78270
78596
|
}
|
|
78271
78597
|
return this.placeholder || "";
|
|
78272
78598
|
}
|
|
@@ -78757,7 +79083,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$2 {
|
|
|
78757
79083
|
}
|
|
78758
79084
|
};
|
|
78759
79085
|
|
|
78760
|
-
var formkitVersion$1$1 = '
|
|
79086
|
+
var formkitVersion$1$1 = '202606241801';
|
|
78761
79087
|
|
|
78762
79088
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
78763
79089
|
// See LICENSE in the project root for license information.
|
|
@@ -79878,7 +80204,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$2 {
|
|
|
79878
80204
|
}
|
|
79879
80205
|
};
|
|
79880
80206
|
|
|
79881
|
-
var formkitVersion$3 = '
|
|
80207
|
+
var formkitVersion$3 = '202606241801';
|
|
79882
80208
|
|
|
79883
80209
|
var styleCss$1$3 = i$4`.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}`;
|
|
79884
80210
|
|
|
@@ -80865,7 +81191,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
80865
81191
|
if (this.menu) {
|
|
80866
81192
|
this.menu.matchWord = normalizeFilterValue(this.input.value);
|
|
80867
81193
|
}
|
|
80868
|
-
const label = getOptionLabel(this.menu.optionSelected);
|
|
81194
|
+
const label = getOptionLabel(this.menu.optionSelected) || this.menu.currentLabel;
|
|
80869
81195
|
this.updateTriggerTextDisplay(label || this.value);
|
|
80870
81196
|
}
|
|
80871
81197
|
|
|
@@ -80879,9 +81205,40 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
80879
81205
|
// in suggestion mode, do not override input value if no selection has been made and the input currently has focus
|
|
80880
81206
|
const isInputFocusedWithNoSelection = !this.menu.value && (this.input.matches(':focus-within') || (this.inputInBib && this.inputInBib.matches(':focus-within')));
|
|
80881
81207
|
|
|
80882
|
-
|
|
80883
|
-
|
|
80884
|
-
|
|
81208
|
+
if (!this.persistInput && !(this.behavior === 'suggestion' && isInputFocusedWithNoSelection)) {
|
|
81209
|
+
const nextValue = label || this.value;
|
|
81210
|
+
// Only set the flag when there's an actual write to suppress —
|
|
81211
|
+
// syncValuesAndStates re-enters here during typing when both inputs
|
|
81212
|
+
// already match, and a no-op flag flip would make the bib branch's
|
|
81213
|
+
// bail eat legitimate user-input events.
|
|
81214
|
+
const triggerNeedsSync = this.input.value !== nextValue;
|
|
81215
|
+
const bibNeedsSync = Boolean(this.inputInBib && this.inputInBib !== this.input && this.inputInBib.value !== nextValue);
|
|
81216
|
+
if (triggerNeedsSync || bibNeedsSync) {
|
|
81217
|
+
this._syncingDisplayValue = true;
|
|
81218
|
+
if (triggerNeedsSync) {
|
|
81219
|
+
this.input.value = nextValue;
|
|
81220
|
+
}
|
|
81221
|
+
if (bibNeedsSync) {
|
|
81222
|
+
this.inputInBib.value = nextValue;
|
|
81223
|
+
}
|
|
81224
|
+
const pending = [];
|
|
81225
|
+
if (triggerNeedsSync) {
|
|
81226
|
+
pending.push(this.input.updateComplete);
|
|
81227
|
+
}
|
|
81228
|
+
if (bibNeedsSync) {
|
|
81229
|
+
pending.push(this.inputInBib.updateComplete);
|
|
81230
|
+
}
|
|
81231
|
+
Promise.all(pending).then(() => {
|
|
81232
|
+
// imask reasserts otherwise, and handleBlur reverts to its stale value.
|
|
81233
|
+
if (triggerNeedsSync && this.input.maskInstance && typeof this.input.maskInstance.updateValue === 'function') {
|
|
81234
|
+
this.input.maskInstance.updateValue();
|
|
81235
|
+
}
|
|
81236
|
+
if (bibNeedsSync && this.inputInBib && this.inputInBib.maskInstance && typeof this.inputInBib.maskInstance.updateValue === 'function') {
|
|
81237
|
+
this.inputInBib.maskInstance.updateValue();
|
|
81238
|
+
}
|
|
81239
|
+
this._syncingDisplayValue = false;
|
|
81240
|
+
});
|
|
81241
|
+
}
|
|
80885
81242
|
}
|
|
80886
81243
|
|
|
80887
81244
|
// update the displayValue in the trigger if displayValue slot content is present
|
|
@@ -80909,48 +81266,6 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
80909
81266
|
this.requestUpdate();
|
|
80910
81267
|
}
|
|
80911
81268
|
|
|
80912
|
-
/**
|
|
80913
|
-
* Writes nextValue to the trigger input and the bib input when their current
|
|
80914
|
-
* value differs, then re-asserts imask after Lit's update flushes.
|
|
80915
|
-
* @param {string} nextValue - The value to write to both inputs.
|
|
80916
|
-
* @returns {Promise<void> | null} Promise that resolves after the inputs flush,
|
|
80917
|
-
* or null when no sync was needed (so callers can skip post-flush work).
|
|
80918
|
-
* @private
|
|
80919
|
-
*/
|
|
80920
|
-
syncInputValuesAcrossTriggerAndBib(nextValue) {
|
|
80921
|
-
// Only set the flag when there's an actual write to suppress —
|
|
80922
|
-
// syncValuesAndStates re-enters here during typing when both inputs
|
|
80923
|
-
// already match, and a no-op flag flip would make the bib branch's
|
|
80924
|
-
// bail eat legitimate user-input events.
|
|
80925
|
-
const triggerNeedsSync = this.input.value !== nextValue;
|
|
80926
|
-
const bibNeedsSync = this.inputInBib.value !== nextValue;
|
|
80927
|
-
if (!triggerNeedsSync && !bibNeedsSync) {
|
|
80928
|
-
return null;
|
|
80929
|
-
}
|
|
80930
|
-
|
|
80931
|
-
this._syncingDisplayValue = true;
|
|
80932
|
-
|
|
80933
|
-
const pending = [];
|
|
80934
|
-
if (triggerNeedsSync) {
|
|
80935
|
-
this.input.value = nextValue;
|
|
80936
|
-
pending.push(this.input.updateComplete);
|
|
80937
|
-
}
|
|
80938
|
-
if (bibNeedsSync) {
|
|
80939
|
-
this.inputInBib.value = nextValue;
|
|
80940
|
-
pending.push(this.inputInBib.updateComplete);
|
|
80941
|
-
}
|
|
80942
|
-
return Promise.all(pending).then(() => {
|
|
80943
|
-
// imask reasserts otherwise, and handleBlur reverts to its stale value.
|
|
80944
|
-
if (triggerNeedsSync && this.input.maskInstance && typeof this.input.maskInstance.updateValue === 'function') {
|
|
80945
|
-
this.input.maskInstance.updateValue();
|
|
80946
|
-
}
|
|
80947
|
-
if (bibNeedsSync && this.inputInBib && this.inputInBib.maskInstance && typeof this.inputInBib.maskInstance.updateValue === 'function') {
|
|
80948
|
-
this.inputInBib.maskInstance.updateValue();
|
|
80949
|
-
}
|
|
80950
|
-
this._syncingDisplayValue = false;
|
|
80951
|
-
});
|
|
80952
|
-
}
|
|
80953
|
-
|
|
80954
81269
|
/**
|
|
80955
81270
|
* Processes hidden state of all menu options and determines if there are any available options not hidden.
|
|
80956
81271
|
* @private
|
|
@@ -80978,9 +81293,9 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
80978
81293
|
this.syncValuesAndStates();
|
|
80979
81294
|
}
|
|
80980
81295
|
|
|
80981
|
-
// Re-activate when optionActive is
|
|
80982
|
-
//
|
|
80983
|
-
//
|
|
81296
|
+
// Re-activate when optionActive is no longer visible, or when _index has
|
|
81297
|
+
// been reset (e.g. by clearSelection in an async update) so that
|
|
81298
|
+
// makeSelection() can find the correct option.
|
|
80984
81299
|
if (!this.availableOptions.includes(this.menu.optionActive) || this.menu._index < 0) {
|
|
80985
81300
|
this.activateFirstEnabledAvailableOption();
|
|
80986
81301
|
}
|
|
@@ -81114,25 +81429,28 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81114
81429
|
|
|
81115
81430
|
guardTouchPassthrough$1(this.menu);
|
|
81116
81431
|
|
|
81117
|
-
// showModal()
|
|
81118
|
-
//
|
|
81119
|
-
//
|
|
81120
|
-
// validation guard.
|
|
81432
|
+
// The dialog's showModal() steals focus from the trigger.
|
|
81433
|
+
// A single rAF is enough for the dialog DOM to be painted and
|
|
81434
|
+
// focusable, then doubleRaf finalizes the transition.
|
|
81121
81435
|
requestAnimationFrame(() => {
|
|
81122
81436
|
this.setInputFocus();
|
|
81123
81437
|
});
|
|
81124
|
-
|
|
81125
|
-
|
|
81126
|
-
|
|
81127
|
-
// The shared doubleRaf below parks the caret back at end-of-text
|
|
81128
|
-
// after the dropdown layout settles.
|
|
81129
|
-
|
|
81130
|
-
doubleRaf$1(() => {
|
|
81131
|
-
this.setInputFocus();
|
|
81132
|
-
if (this._inFullscreenTransition) {
|
|
81438
|
+
|
|
81439
|
+
doubleRaf$1(() => {
|
|
81440
|
+
this.setInputFocus();
|
|
81133
81441
|
this._inFullscreenTransition = false;
|
|
81134
|
-
}
|
|
81135
|
-
}
|
|
81442
|
+
});
|
|
81443
|
+
} else {
|
|
81444
|
+
// Desktop popover-open: restore the trigger caret to end-of-text.
|
|
81445
|
+
// Clicking the trigger lands on auro-input's floating <label for="…">
|
|
81446
|
+
// overlay; Chrome resets the native input's selection to [0, 0] on
|
|
81447
|
+
// label-focus before any JS runs. setInputFocus()'s non-fullscreen
|
|
81448
|
+
// branch parks the caret at end. doubleRaf lets the dropdown layout
|
|
81449
|
+
// settle first, matching the fullscreen branch timing.
|
|
81450
|
+
doubleRaf$1(() => {
|
|
81451
|
+
this.setInputFocus();
|
|
81452
|
+
});
|
|
81453
|
+
}
|
|
81136
81454
|
}
|
|
81137
81455
|
});
|
|
81138
81456
|
|
|
@@ -81343,7 +81661,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81343
81661
|
if (this.menu.optionSelected) {
|
|
81344
81662
|
const selected = this.menu.optionSelected;
|
|
81345
81663
|
|
|
81346
|
-
if (this.optionSelected !== selected) {
|
|
81664
|
+
if (!this.optionSelected || this.optionSelected !== selected) {
|
|
81347
81665
|
this.optionSelected = selected;
|
|
81348
81666
|
}
|
|
81349
81667
|
|
|
@@ -81356,7 +81674,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81356
81674
|
}
|
|
81357
81675
|
|
|
81358
81676
|
// Update display
|
|
81359
|
-
this.updateTriggerTextDisplay(getOptionLabel(this.optionSelected));
|
|
81677
|
+
this.updateTriggerTextDisplay(getOptionLabel(this.optionSelected) || this.menu.value);
|
|
81360
81678
|
|
|
81361
81679
|
// Update match word for filtering
|
|
81362
81680
|
const trimmedInput = normalizeFilterValue(this.input.value);
|
|
@@ -81372,22 +81690,13 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81372
81690
|
this.hideBib();
|
|
81373
81691
|
}
|
|
81374
81692
|
|
|
81375
|
-
// Move focus to the clear button when the user makes a selection.
|
|
81376
|
-
if (!isEcho && this.menu.value !== undefined) {
|
|
81377
|
-
this.setClearBtnFocus();
|
|
81378
|
-
}
|
|
81379
|
-
|
|
81380
81693
|
// Announce the selection after the dropdown closes so it isn't
|
|
81381
81694
|
// overridden by VoiceOver's "collapsed" announcement from aria-expanded.
|
|
81382
|
-
// Skip when there's no selected value (e.g. menu.clearSelection() from
|
|
81383
|
-
// the unmatched-value path), otherwise VoiceOver reads "undefined".
|
|
81384
81695
|
const selectedValue = this.menu.value;
|
|
81385
|
-
|
|
81386
|
-
|
|
81387
|
-
|
|
81388
|
-
|
|
81389
|
-
}, announcementDelay);
|
|
81390
|
-
}
|
|
81696
|
+
const announcementDelay = 300;
|
|
81697
|
+
setTimeout(() => {
|
|
81698
|
+
announceToScreenReader$1(this._getAnnouncementRoot(), `${selectedValue}, selected`);
|
|
81699
|
+
}, announcementDelay);
|
|
81391
81700
|
}
|
|
81392
81701
|
|
|
81393
81702
|
// Programmatic value syncs leave availableOptions stale because
|
|
@@ -81401,6 +81710,18 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81401
81710
|
this._programmaticFilterRefresh = false;
|
|
81402
81711
|
}, 0);
|
|
81403
81712
|
}
|
|
81713
|
+
|
|
81714
|
+
// base-input skips auto-validate when focus is inside its own shadow,
|
|
81715
|
+
// which it is after setTriggerInputFocus — re-run so prior tooShort
|
|
81716
|
+
// clears. processCreditCard reasserts errorMessage on every render.
|
|
81717
|
+
if (!isEcho && this.menu.optionSelected && this.input.validate) {
|
|
81718
|
+
this.input.updateComplete.then(() => {
|
|
81719
|
+
this.input.validate(true);
|
|
81720
|
+
if (this.input.validity === 'valid') {
|
|
81721
|
+
this.input.errorMessage = '';
|
|
81722
|
+
}
|
|
81723
|
+
});
|
|
81724
|
+
}
|
|
81404
81725
|
});
|
|
81405
81726
|
|
|
81406
81727
|
this.menu.addEventListener('auroMenu-customEventFired', () => {
|
|
@@ -81735,7 +82056,15 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81735
82056
|
this.menu.value = undefined;
|
|
81736
82057
|
this.validation.reset(this);
|
|
81737
82058
|
this.touched = false;
|
|
82059
|
+
// Force validity back to the cleared state. validation.reset() calls
|
|
82060
|
+
// validate() at the end, and (post-credit-card-fix) the trigger input's
|
|
82061
|
+
// residual validity may still be copied into the combobox by the
|
|
82062
|
+
// auroInputElements loop. Explicitly clear here so reset() actually
|
|
82063
|
+
// leaves the component in a "no validity" state.
|
|
81738
82064
|
this.validity = undefined;
|
|
82065
|
+
this.errorMessage = '';
|
|
82066
|
+
this.input.validity = undefined;
|
|
82067
|
+
this.input.errorMessage = '';
|
|
81739
82068
|
}
|
|
81740
82069
|
|
|
81741
82070
|
/**
|
|
@@ -81788,27 +82117,52 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81788
82117
|
this.input.value = this.value;
|
|
81789
82118
|
}
|
|
81790
82119
|
|
|
81791
|
-
// Sync menu.value only when an option actually matches
|
|
81792
|
-
// mode needs setMenuValue to dispatch auroMenu-selectValueFailure (the
|
|
81793
|
-
// listener at line 1206 clears combobox.value, mirroring select's
|
|
81794
|
-
// pattern). Otherwise sync the input display for freeform values.
|
|
82120
|
+
// Sync menu.value only when an option actually matches; otherwise clear it.
|
|
81795
82121
|
if (this.menu.options && this.menu.options.length > 0) {
|
|
81796
|
-
if (this.menu.options.some((opt) => opt.value === this.value)
|
|
82122
|
+
if (this.menu.options.some((opt) => opt.value === this.value)) {
|
|
82123
|
+
this.setMenuValue(this.value);
|
|
82124
|
+
} else if (this.behavior === 'filter') {
|
|
82125
|
+
// In filter mode, freeform values aren't allowed. Push the unmatched
|
|
82126
|
+
// value through setMenuValue so menu dispatches auroMenu-selectValueFailure
|
|
82127
|
+
// and the listener at line 1206 clears combobox.value (mirrors select's
|
|
82128
|
+
// pattern). Bypassing setMenuValue here would skip the failure cascade.
|
|
81797
82129
|
this.setMenuValue(this.value);
|
|
81798
82130
|
} else {
|
|
81799
|
-
|
|
81800
|
-
|
|
81801
|
-
// as menu.optionSelected; a later auroMenu-selectedOption event
|
|
81802
|
-
// would then write its stale .value back into combobox.value.
|
|
81803
|
-
if (this.menu.value || this.menu.optionSelected) {
|
|
81804
|
-
this.menu.clearSelection();
|
|
82131
|
+
if (this.menu.value) {
|
|
82132
|
+
this.menu.value = undefined;
|
|
81805
82133
|
}
|
|
81806
|
-
//
|
|
81807
|
-
//
|
|
81808
|
-
//
|
|
81809
|
-
|
|
81810
|
-
|
|
81811
|
-
|
|
82134
|
+
// Sync the display for programmatic freeform value changes (e.g. the
|
|
82135
|
+
// swap-values pattern). Guard with _syncingDisplayValue so that the
|
|
82136
|
+
// re-entrant input event from base-input.notifyValueChanged() is
|
|
82137
|
+
// ignored by handleInputValueChange. Skip the sync when input already
|
|
82138
|
+
// matches to avoid spurious events during the normal typing path.
|
|
82139
|
+
const nextValue = this.value || '';
|
|
82140
|
+
const triggerNeedsSync = this.input.value !== nextValue;
|
|
82141
|
+
const bibNeedsSync = Boolean(this.inputInBib && this.inputInBib !== this.input && this.inputInBib.value !== nextValue);
|
|
82142
|
+
if (triggerNeedsSync || bibNeedsSync) {
|
|
82143
|
+
this._syncingDisplayValue = true;
|
|
82144
|
+
if (triggerNeedsSync) {
|
|
82145
|
+
this.input.value = nextValue;
|
|
82146
|
+
}
|
|
82147
|
+
if (bibNeedsSync) {
|
|
82148
|
+
this.inputInBib.value = nextValue;
|
|
82149
|
+
}
|
|
82150
|
+
const pending = [];
|
|
82151
|
+
if (triggerNeedsSync) {
|
|
82152
|
+
pending.push(this.input.updateComplete);
|
|
82153
|
+
}
|
|
82154
|
+
if (bibNeedsSync) {
|
|
82155
|
+
pending.push(this.inputInBib.updateComplete);
|
|
82156
|
+
}
|
|
82157
|
+
Promise.all(pending).then(() => {
|
|
82158
|
+
if (triggerNeedsSync && this.input.maskInstance && typeof this.input.maskInstance.updateValue === 'function') {
|
|
82159
|
+
this.input.maskInstance.updateValue();
|
|
82160
|
+
}
|
|
82161
|
+
if (bibNeedsSync && this.inputInBib && this.inputInBib.maskInstance && typeof this.inputInBib.maskInstance.updateValue === 'function') {
|
|
82162
|
+
this.inputInBib.maskInstance.updateValue();
|
|
82163
|
+
}
|
|
82164
|
+
this._syncingDisplayValue = false;
|
|
82165
|
+
// handleInputValueChange bailed on the flag — refresh the filter.
|
|
81812
82166
|
this._programmaticFilterRefresh = true;
|
|
81813
82167
|
this.handleMenuOptions();
|
|
81814
82168
|
setTimeout(() => {
|
|
@@ -88641,7 +88995,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
|
|
|
88641
88995
|
}
|
|
88642
88996
|
};
|
|
88643
88997
|
|
|
88644
|
-
var formkitVersion$1 = '
|
|
88998
|
+
var formkitVersion$1 = '202606241801';
|
|
88645
88999
|
|
|
88646
89000
|
class AuroElement extends i$2 {
|
|
88647
89001
|
static get properties() {
|
|
@@ -90662,7 +91016,7 @@ class AuroHelpText extends i$2 {
|
|
|
90662
91016
|
}
|
|
90663
91017
|
}
|
|
90664
91018
|
|
|
90665
|
-
var formkitVersion = '
|
|
91019
|
+
var formkitVersion = '202606241801';
|
|
90666
91020
|
|
|
90667
91021
|
var styleCss = i$4`.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}`;
|
|
90668
91022
|
|