@aurodesignsystem-dev/auro-formkit 0.0.0-pr1508.0 → 0.0.0-pr1509.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/checkbox/demo/customize.min.js +1 -1
- package/components/checkbox/demo/getting-started.min.js +1 -1
- package/components/checkbox/demo/index.min.js +1 -1
- package/components/checkbox/dist/index.js +1 -1
- package/components/checkbox/dist/registered.js +1 -1
- package/components/combobox/demo/customize.min.js +293 -141
- package/components/combobox/demo/getting-started.min.js +293 -141
- package/components/combobox/demo/index.min.js +293 -141
- package/components/combobox/dist/auro-combobox.d.ts +0 -9
- package/components/combobox/dist/index.js +293 -141
- package/components/combobox/dist/registered.js +293 -141
- package/components/counter/demo/customize.min.js +2 -2
- package/components/counter/demo/index.min.js +2 -2
- package/components/counter/dist/index.js +2 -2
- package/components/counter/dist/registered.js +2 -2
- package/components/datepicker/demo/customize.min.js +167 -44
- package/components/datepicker/demo/index.min.js +167 -44
- package/components/datepicker/dist/index.js +167 -44
- package/components/datepicker/dist/registered.js +167 -44
- package/components/dropdown/demo/customize.min.js +1 -1
- package/components/dropdown/demo/getting-started.min.js +1 -1
- package/components/dropdown/demo/index.min.js +1 -1
- package/components/dropdown/dist/index.js +1 -1
- package/components/dropdown/dist/registered.js +1 -1
- package/components/form/demo/customize.min.js +631 -232
- package/components/form/demo/getting-started.min.js +631 -232
- package/components/form/demo/index.min.js +631 -232
- package/components/form/demo/registerDemoDeps.min.js +631 -232
- package/components/input/demo/customize.min.js +165 -41
- package/components/input/demo/getting-started.min.js +165 -41
- package/components/input/demo/index.min.js +165 -41
- package/components/input/dist/base-input.d.ts +49 -1
- package/components/input/dist/index.js +165 -41
- package/components/input/dist/registered.js +165 -41
- package/components/radio/demo/customize.min.js +1 -1
- package/components/radio/demo/getting-started.min.js +1 -1
- package/components/radio/demo/index.min.js +1 -1
- package/components/radio/dist/index.js +1 -1
- package/components/radio/dist/registered.js +1 -1
- package/components/select/demo/customize.min.js +2 -2
- package/components/select/demo/getting-started.min.js +2 -2
- package/components/select/demo/index.min.js +2 -2
- package/components/select/dist/index.js +2 -2
- package/components/select/dist/registered.js +2 -2
- package/custom-elements.json +264 -20
- package/package.json +1 -1
|
@@ -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() {
|
|
@@ -11224,6 +11270,15 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11224
11270
|
this.wrapperElement.addEventListener('click', this.handleClick);
|
|
11225
11271
|
}
|
|
11226
11272
|
|
|
11273
|
+
// add attribute for query selectors when auro-input is registered under a custom name
|
|
11274
|
+
// COVERAGE: the body of this branch is unreachable in WTR — connectedCallback
|
|
11275
|
+
// performs the same `setAttribute('auro-input', '')` earlier (see L665-667),
|
|
11276
|
+
// so by the time firstUpdated runs the attribute is already present and the
|
|
11277
|
+
// `!hasAttribute('auro-input')` guard is false. Retained as a defensive
|
|
11278
|
+
// safety net in case connectedCallback is ever short-circuited.
|
|
11279
|
+
if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
|
|
11280
|
+
this.setAttribute('auro-input', '');
|
|
11281
|
+
}
|
|
11227
11282
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
11228
11283
|
|
|
11229
11284
|
// use validity message override if declared when initializing the component
|
|
@@ -11234,6 +11289,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11234
11289
|
this.setCustomHelpTextMessage();
|
|
11235
11290
|
this.configureAutoFormatting();
|
|
11236
11291
|
this.configureDataForType();
|
|
11292
|
+
this.syncDateValues();
|
|
11237
11293
|
}
|
|
11238
11294
|
|
|
11239
11295
|
/**
|
|
@@ -11309,6 +11365,13 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11309
11365
|
|
|
11310
11366
|
if (typeToI18n.includes(this.type)) {
|
|
11311
11367
|
this.setCustomValidityForType = i18n$3(this.lang, this.type);
|
|
11368
|
+
// COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
|
|
11369
|
+
// (L682) calls configureDataForType, which at L1266-1268 assigns
|
|
11370
|
+
// `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
|
|
11371
|
+
// type=date input whose `format` attribute is unset. That runs before
|
|
11372
|
+
// firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
|
|
11373
|
+
// always false here. Retained as a defensive fallback; the whole function
|
|
11374
|
+
// is @deprecated per AB#1557296 and slated for removal.
|
|
11312
11375
|
} else if (!this.format && this.type === 'date') {
|
|
11313
11376
|
this.setCustomValidityForType = i18n$3(this.lang, 'dateMMDDYYYY');
|
|
11314
11377
|
} else if (this.dateFormatMap[this.format]) {
|
|
@@ -11370,6 +11433,8 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11370
11433
|
this.configureDataForType();
|
|
11371
11434
|
}
|
|
11372
11435
|
|
|
11436
|
+
this.syncDateValues(changedProperties);
|
|
11437
|
+
|
|
11373
11438
|
if (changedProperties.has('value')) {
|
|
11374
11439
|
if (this.value && this.value.length > 0) {
|
|
11375
11440
|
this.hasValue = true;
|
|
@@ -11391,14 +11456,14 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11391
11456
|
|
|
11392
11457
|
if (formattedValue !== this.inputElement.value) {
|
|
11393
11458
|
this.skipNextProgrammaticInputEvent = true;
|
|
11394
|
-
if (this.maskInstance && this.type
|
|
11459
|
+
if (this.maskInstance && this.type === 'credit-card') {
|
|
11395
11460
|
// Route through the mask so its _value and el.value stay in lock-step
|
|
11396
11461
|
// (set value calls updateControl which writes el.value = displayValue).
|
|
11397
11462
|
// 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.
|
|
11463
|
+
// stale; _saveSelection on the next focus/click then warns. Scoped to
|
|
11464
|
+
// credit-card so date's own formattedValue (raw ISO when calendar-invalid)
|
|
11465
|
+
// isn't re-masked through the mm/dd/yyyy mask, which would truncate it
|
|
11466
|
+
// and flip validity from patternMismatch to tooShort.
|
|
11402
11467
|
this.maskInstance.value = formattedValue || '';
|
|
11403
11468
|
} else if (formattedValue) {
|
|
11404
11469
|
this.inputElement.value = formattedValue;
|
|
@@ -11440,65 +11505,120 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11440
11505
|
}));
|
|
11441
11506
|
}
|
|
11442
11507
|
|
|
11508
|
+
|
|
11509
|
+
/**
|
|
11510
|
+
* Synchronizes the ISO string values and Date object representations for date-related properties.
|
|
11511
|
+
* This keeps the model and display values aligned when either side changes.
|
|
11512
|
+
*
|
|
11513
|
+
* When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
|
|
11514
|
+
* Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
|
|
11515
|
+
* represents a full year/month/day date format.
|
|
11516
|
+
*
|
|
11517
|
+
* @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
|
|
11518
|
+
* @returns {void}
|
|
11519
|
+
* @private
|
|
11520
|
+
*/
|
|
11521
|
+
syncDateValues(changedProperties = undefined) {
|
|
11522
|
+
if (!this.util.isFullDateFormat(this.type, this.format)) {
|
|
11523
|
+
return;
|
|
11524
|
+
}
|
|
11525
|
+
|
|
11526
|
+
this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
|
|
11527
|
+
this.syncSingleDateValue(changedProperties, 'minObject', 'min');
|
|
11528
|
+
this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
|
|
11529
|
+
}
|
|
11530
|
+
|
|
11531
|
+
/**
|
|
11532
|
+
* Synchronizes one date object/string property pair.
|
|
11533
|
+
* @private
|
|
11534
|
+
* @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
|
|
11535
|
+
* @param {string} objectProperty - Date object property name.
|
|
11536
|
+
* @param {string} valueProperty - ISO string property name.
|
|
11537
|
+
* @returns {void}
|
|
11538
|
+
*/
|
|
11539
|
+
syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
|
|
11540
|
+
const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
|
|
11541
|
+
|
|
11542
|
+
// objectProperty wins over valueProperty when both changed
|
|
11543
|
+
if (objectPropertyChanged && this[objectProperty]) {
|
|
11544
|
+
this[valueProperty] = dateFormatter$3.toISOFormatString(this[objectProperty]);
|
|
11545
|
+
return;
|
|
11546
|
+
}
|
|
11547
|
+
|
|
11548
|
+
const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
|
|
11549
|
+
if (!valuePropertyChanged) {
|
|
11550
|
+
return;
|
|
11551
|
+
}
|
|
11552
|
+
|
|
11553
|
+
// 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)
|
|
11554
|
+
if (
|
|
11555
|
+
changedProperties &&
|
|
11556
|
+
valueProperty === 'value' &&
|
|
11557
|
+
changedProperties.get('value') === undefined &&
|
|
11558
|
+
this[objectProperty] instanceof Date &&
|
|
11559
|
+
this[valueProperty] === dateFormatter$3.toISOFormatString(this[objectProperty])
|
|
11560
|
+
) {
|
|
11561
|
+
return;
|
|
11562
|
+
}
|
|
11563
|
+
|
|
11564
|
+
if (dateFormatter$3.isValidDate(this[valueProperty])) {
|
|
11565
|
+
this.setDateObjectProperty(objectProperty, dateFormatter$3.stringToDateInstance(this[valueProperty]));
|
|
11566
|
+
} else {
|
|
11567
|
+
this.setDateObjectProperty(objectProperty, undefined);
|
|
11568
|
+
}
|
|
11569
|
+
}
|
|
11570
|
+
|
|
11443
11571
|
/**
|
|
11444
11572
|
* Sets up IMasks and logic based on auto-formatting requirements.
|
|
11445
11573
|
* @private
|
|
11446
11574
|
* @returns {void}
|
|
11447
11575
|
*/
|
|
11448
11576
|
configureAutoFormatting() {
|
|
11449
|
-
//
|
|
11450
|
-
//
|
|
11451
|
-
//
|
|
11452
|
-
//
|
|
11577
|
+
// Re-entrancy guard. The patched-setter's synthetic input event (suppressed
|
|
11578
|
+
// by _configuringMask above) could otherwise trigger handleInput →
|
|
11579
|
+
// processCreditCard → configureAutoFormatting before the outer call's
|
|
11580
|
+
// set value has finished its alignCursor pass.
|
|
11453
11581
|
if (this._configuringMask) return;
|
|
11454
11582
|
this._configuringMask = true;
|
|
11455
11583
|
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
11584
|
if (this.maskInstance) {
|
|
11462
11585
|
this.maskInstance.destroy();
|
|
11463
|
-
this.maskInstance = null;
|
|
11464
11586
|
}
|
|
11465
11587
|
|
|
11588
|
+
// Pass new format to util
|
|
11466
11589
|
this.util.updateFormat(this.format);
|
|
11467
11590
|
|
|
11468
11591
|
const maskOptions = this.util.getMaskOptions(this.type, this.format);
|
|
11469
11592
|
|
|
11470
11593
|
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
11594
|
|
|
11477
|
-
//
|
|
11478
|
-
//
|
|
11479
|
-
//
|
|
11480
|
-
//
|
|
11595
|
+
// Stash and clear any existing value before IMask init.
|
|
11596
|
+
// IMask's constructor processes the current input value which requires
|
|
11597
|
+
// selection state — clearing first avoids that scenario entirely.
|
|
11598
|
+
// When the format changes (e.g. locale switch) and we have a valid ISO
|
|
11599
|
+
// model value, compute the display string for the NEW format instead of
|
|
11600
|
+
// re-using the old display string, which may be invalid in the new mask.
|
|
11601
|
+
let existingValue = this.inputElement.value;
|
|
11481
11602
|
if (
|
|
11482
11603
|
this.util.isFullDateFormat(this.type, this.format) &&
|
|
11483
11604
|
this.value &&
|
|
11484
|
-
this.
|
|
11605
|
+
dateFormatter$3.isValidDate(this.value) &&
|
|
11606
|
+
this.valueObject instanceof Date &&
|
|
11607
|
+
!Number.isNaN(this.valueObject.getTime()) &&
|
|
11485
11608
|
typeof maskOptions.format === 'function'
|
|
11486
11609
|
) {
|
|
11487
11610
|
existingValue = maskOptions.format(this.valueObject);
|
|
11488
11611
|
}
|
|
11489
11612
|
|
|
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
11613
|
this.skipNextProgrammaticInputEvent = true;
|
|
11494
11614
|
this.inputElement.value = '';
|
|
11495
11615
|
|
|
11496
11616
|
this.maskInstance = IMask$3(this.inputElement, maskOptions);
|
|
11497
11617
|
|
|
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
11618
|
this.maskInstance.on('accept', () => {
|
|
11619
|
+
// Suppress propagation during configureAutoFormatting's own value-restoration
|
|
11620
|
+
// (line below) — the mask emits 'accept' on every value-set, including ours,
|
|
11621
|
+
// and we don't want to overwrite a value the parent just pushed.
|
|
11502
11622
|
if (this._configuringMask) return;
|
|
11503
11623
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
11504
11624
|
if (this.type === "date") {
|
|
@@ -11506,8 +11626,6 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11506
11626
|
}
|
|
11507
11627
|
});
|
|
11508
11628
|
|
|
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
11629
|
this.maskInstance.on('complete', () => {
|
|
11512
11630
|
if (this._configuringMask) return;
|
|
11513
11631
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
@@ -11516,9 +11634,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11516
11634
|
}
|
|
11517
11635
|
});
|
|
11518
11636
|
|
|
11519
|
-
//
|
|
11520
|
-
// the mask reformats it under the new rules and keeps its internal
|
|
11521
|
-
// _value aligned with the input's displayed text.
|
|
11637
|
+
// Restore the stashed value through IMask so it's properly masked
|
|
11522
11638
|
if (existingValue) {
|
|
11523
11639
|
this.maskInstance.value = existingValue;
|
|
11524
11640
|
}
|
|
@@ -11686,6 +11802,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11686
11802
|
*/
|
|
11687
11803
|
reset() {
|
|
11688
11804
|
this.value = undefined;
|
|
11805
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
11689
11806
|
this.validation.reset(this);
|
|
11690
11807
|
}
|
|
11691
11808
|
|
|
@@ -11694,6 +11811,7 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11694
11811
|
*/
|
|
11695
11812
|
clear() {
|
|
11696
11813
|
this.value = undefined;
|
|
11814
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
11697
11815
|
}
|
|
11698
11816
|
|
|
11699
11817
|
/**
|
|
@@ -11731,6 +11849,12 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11731
11849
|
*/
|
|
11732
11850
|
get placeholderStr() {
|
|
11733
11851
|
if (!this.placeholder && this.type === 'date') {
|
|
11852
|
+
// COVERAGE: the `'MM/DD/YYYY'` literal fallback is unreachable in WTR.
|
|
11853
|
+
// connectedCallback (L682) calls configureDataForType, which at L1266-1268
|
|
11854
|
+
// assigns `this.format = this.util.getDateMaskFromLocale().toLowerCase()`
|
|
11855
|
+
// when type=date and format is unset. That runs before the first render
|
|
11856
|
+
// reads this getter, so the ternary's truthy arm always wins. Retained
|
|
11857
|
+
// as a defensive fallback for direct getter calls before connection.
|
|
11734
11858
|
return this.format ? this.format.toUpperCase() : 'MM/DD/YYYY';
|
|
11735
11859
|
}
|
|
11736
11860
|
return this.placeholder || "";
|
|
@@ -12222,7 +12346,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$2 {
|
|
|
12222
12346
|
}
|
|
12223
12347
|
};
|
|
12224
12348
|
|
|
12225
|
-
var formkitVersion$8 = '
|
|
12349
|
+
var formkitVersion$8 = '202606232113';
|
|
12226
12350
|
|
|
12227
12351
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
12228
12352
|
// See LICENSE in the project root for license information.
|
|
@@ -23461,7 +23585,6 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
|
|
|
23461
23585
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
23462
23586
|
|
|
23463
23587
|
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
23588
|
return undefined;
|
|
23466
23589
|
}
|
|
23467
23590
|
|
|
@@ -26342,7 +26465,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$2 {
|
|
|
26342
26465
|
}
|
|
26343
26466
|
};
|
|
26344
26467
|
|
|
26345
|
-
var formkitVersion$2$1 = '
|
|
26468
|
+
var formkitVersion$2$1 = '202606232113';
|
|
26346
26469
|
|
|
26347
26470
|
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
26471
|
`,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 +31976,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$2 {
|
|
|
31853
31976
|
}
|
|
31854
31977
|
};
|
|
31855
31978
|
|
|
31856
|
-
var formkitVersion$1$3 = '
|
|
31979
|
+
var formkitVersion$1$3 = '202606232113';
|
|
31857
31980
|
|
|
31858
31981
|
let AuroElement$2$2 = class AuroElement extends i$2 {
|
|
31859
31982
|
static get properties() {
|
|
@@ -43575,7 +43698,6 @@ let AuroInputUtilities$2 = class AuroInputUtilities {
|
|
|
43575
43698
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
43576
43699
|
|
|
43577
43700
|
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
43701
|
return undefined;
|
|
43580
43702
|
}
|
|
43581
43703
|
|
|
@@ -43727,8 +43849,10 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
43727
43849
|
this.layout = 'classic';
|
|
43728
43850
|
this.locale = 'en-US';
|
|
43729
43851
|
this.max = undefined;
|
|
43852
|
+
this._maxObject = undefined;
|
|
43730
43853
|
this.maxLength = undefined;
|
|
43731
43854
|
this.min = undefined;
|
|
43855
|
+
this._minObject = undefined;
|
|
43732
43856
|
this.minLength = undefined;
|
|
43733
43857
|
this.required = false;
|
|
43734
43858
|
this.onDark = false;
|
|
@@ -43736,6 +43860,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
43736
43860
|
this.size = 'lg';
|
|
43737
43861
|
this.shape = 'classic';
|
|
43738
43862
|
this.value = undefined;
|
|
43863
|
+
this._valueObject = undefined;
|
|
43739
43864
|
|
|
43740
43865
|
this._initializePrivateDefaults();
|
|
43741
43866
|
}
|
|
@@ -44275,7 +44400,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44275
44400
|
* @returns {Date|undefined}
|
|
44276
44401
|
*/
|
|
44277
44402
|
get valueObject() {
|
|
44278
|
-
return this.
|
|
44403
|
+
return this._valueObject || this._computeDateObjectFallback(this.value);
|
|
44279
44404
|
}
|
|
44280
44405
|
|
|
44281
44406
|
/**
|
|
@@ -44283,7 +44408,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44283
44408
|
* @returns {Date|undefined}
|
|
44284
44409
|
*/
|
|
44285
44410
|
get minObject() {
|
|
44286
|
-
return this.
|
|
44411
|
+
return this._minObject || this._computeDateObjectFallback(this.min);
|
|
44287
44412
|
}
|
|
44288
44413
|
|
|
44289
44414
|
/**
|
|
@@ -44291,7 +44416,50 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44291
44416
|
* @returns {Date|undefined}
|
|
44292
44417
|
*/
|
|
44293
44418
|
get maxObject() {
|
|
44294
|
-
return this.
|
|
44419
|
+
return this._maxObject || this._computeDateObjectFallback(this.max);
|
|
44420
|
+
}
|
|
44421
|
+
|
|
44422
|
+
/**
|
|
44423
|
+
* Parses a date string into a Date object when the corresponding `_*Object`
|
|
44424
|
+
* field hasn't been synced yet by `updated()`. Returns undefined when the
|
|
44425
|
+
* input type/format isn't a full date or the string is not a valid date.
|
|
44426
|
+
*
|
|
44427
|
+
* Why this exists: a parent (datepicker) can call `inputN.validate()` from
|
|
44428
|
+
* inside its own `updated()` before this input's `updated()` has run
|
|
44429
|
+
* `syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`
|
|
44430
|
+
* and range checks would otherwise silently no-op (flipping the result to
|
|
44431
|
+
* `valid` or `patternMismatch`).
|
|
44432
|
+
* @private
|
|
44433
|
+
* @param {string|undefined} dateStr - ISO date string from `value`/`min`/`max`.
|
|
44434
|
+
* @returns {Date|undefined}
|
|
44435
|
+
*/
|
|
44436
|
+
_computeDateObjectFallback(dateStr) {
|
|
44437
|
+
if (!dateStr || !this.util || !this.util.isFullDateFormat(this.type, this.format)) {
|
|
44438
|
+
return undefined;
|
|
44439
|
+
}
|
|
44440
|
+
if (!dateFormatter$2.isValidDate(dateStr)) {
|
|
44441
|
+
return undefined;
|
|
44442
|
+
}
|
|
44443
|
+
return dateFormatter$2.stringToDateInstance(dateStr);
|
|
44444
|
+
}
|
|
44445
|
+
|
|
44446
|
+
/**
|
|
44447
|
+
* Internal setter for readonly date object properties.
|
|
44448
|
+
* @private
|
|
44449
|
+
* @param {'valueObject'|'minObject'|'maxObject'} propertyName - Public object property name.
|
|
44450
|
+
* @param {Date|undefined} propertyValue - Value to assign.
|
|
44451
|
+
* @returns {void}
|
|
44452
|
+
*/
|
|
44453
|
+
setDateObjectProperty(propertyName, propertyValue) {
|
|
44454
|
+
const internalPropertyName = `_${propertyName}`;
|
|
44455
|
+
const previousValue = this[internalPropertyName];
|
|
44456
|
+
|
|
44457
|
+
if (previousValue === propertyValue) {
|
|
44458
|
+
return;
|
|
44459
|
+
}
|
|
44460
|
+
|
|
44461
|
+
this[internalPropertyName] = propertyValue;
|
|
44462
|
+
this.requestUpdate(propertyName, previousValue);
|
|
44295
44463
|
}
|
|
44296
44464
|
|
|
44297
44465
|
connectedCallback() {
|
|
@@ -44320,6 +44488,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44320
44488
|
format: this.format
|
|
44321
44489
|
});
|
|
44322
44490
|
this.configureDataForType();
|
|
44491
|
+
this.syncDateValues();
|
|
44323
44492
|
}
|
|
44324
44493
|
|
|
44325
44494
|
disconnectedCallback() {
|
|
@@ -44339,6 +44508,15 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44339
44508
|
this.wrapperElement.addEventListener('click', this.handleClick);
|
|
44340
44509
|
}
|
|
44341
44510
|
|
|
44511
|
+
// add attribute for query selectors when auro-input is registered under a custom name
|
|
44512
|
+
// COVERAGE: the body of this branch is unreachable in WTR — connectedCallback
|
|
44513
|
+
// performs the same `setAttribute('auro-input', '')` earlier (see L665-667),
|
|
44514
|
+
// so by the time firstUpdated runs the attribute is already present and the
|
|
44515
|
+
// `!hasAttribute('auro-input')` guard is false. Retained as a defensive
|
|
44516
|
+
// safety net in case connectedCallback is ever short-circuited.
|
|
44517
|
+
if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
|
|
44518
|
+
this.setAttribute('auro-input', '');
|
|
44519
|
+
}
|
|
44342
44520
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
44343
44521
|
|
|
44344
44522
|
// use validity message override if declared when initializing the component
|
|
@@ -44349,6 +44527,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44349
44527
|
this.setCustomHelpTextMessage();
|
|
44350
44528
|
this.configureAutoFormatting();
|
|
44351
44529
|
this.configureDataForType();
|
|
44530
|
+
this.syncDateValues();
|
|
44352
44531
|
}
|
|
44353
44532
|
|
|
44354
44533
|
/**
|
|
@@ -44424,6 +44603,13 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44424
44603
|
|
|
44425
44604
|
if (typeToI18n.includes(this.type)) {
|
|
44426
44605
|
this.setCustomValidityForType = i18n$1(this.lang, this.type);
|
|
44606
|
+
// COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
|
|
44607
|
+
// (L682) calls configureDataForType, which at L1266-1268 assigns
|
|
44608
|
+
// `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
|
|
44609
|
+
// type=date input whose `format` attribute is unset. That runs before
|
|
44610
|
+
// firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
|
|
44611
|
+
// always false here. Retained as a defensive fallback; the whole function
|
|
44612
|
+
// is @deprecated per AB#1557296 and slated for removal.
|
|
44427
44613
|
} else if (!this.format && this.type === 'date') {
|
|
44428
44614
|
this.setCustomValidityForType = i18n$1(this.lang, 'dateMMDDYYYY');
|
|
44429
44615
|
} else if (this.dateFormatMap[this.format]) {
|
|
@@ -44485,6 +44671,8 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44485
44671
|
this.configureDataForType();
|
|
44486
44672
|
}
|
|
44487
44673
|
|
|
44674
|
+
this.syncDateValues(changedProperties);
|
|
44675
|
+
|
|
44488
44676
|
if (changedProperties.has('value')) {
|
|
44489
44677
|
if (this.value && this.value.length > 0) {
|
|
44490
44678
|
this.hasValue = true;
|
|
@@ -44506,14 +44694,14 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44506
44694
|
|
|
44507
44695
|
if (formattedValue !== this.inputElement.value) {
|
|
44508
44696
|
this.skipNextProgrammaticInputEvent = true;
|
|
44509
|
-
if (this.maskInstance && this.type
|
|
44697
|
+
if (this.maskInstance && this.type === 'credit-card') {
|
|
44510
44698
|
// Route through the mask so its _value and el.value stay in lock-step
|
|
44511
44699
|
// (set value calls updateControl which writes el.value = displayValue).
|
|
44512
44700
|
// 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.
|
|
44701
|
+
// stale; _saveSelection on the next focus/click then warns. Scoped to
|
|
44702
|
+
// credit-card so date's own formattedValue (raw ISO when calendar-invalid)
|
|
44703
|
+
// isn't re-masked through the mm/dd/yyyy mask, which would truncate it
|
|
44704
|
+
// and flip validity from patternMismatch to tooShort.
|
|
44517
44705
|
this.maskInstance.value = formattedValue || '';
|
|
44518
44706
|
} else if (formattedValue) {
|
|
44519
44707
|
this.inputElement.value = formattedValue;
|
|
@@ -44555,65 +44743,120 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44555
44743
|
}));
|
|
44556
44744
|
}
|
|
44557
44745
|
|
|
44746
|
+
|
|
44747
|
+
/**
|
|
44748
|
+
* Synchronizes the ISO string values and Date object representations for date-related properties.
|
|
44749
|
+
* This keeps the model and display values aligned when either side changes.
|
|
44750
|
+
*
|
|
44751
|
+
* When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
|
|
44752
|
+
* Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
|
|
44753
|
+
* represents a full year/month/day date format.
|
|
44754
|
+
*
|
|
44755
|
+
* @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
|
|
44756
|
+
* @returns {void}
|
|
44757
|
+
* @private
|
|
44758
|
+
*/
|
|
44759
|
+
syncDateValues(changedProperties = undefined) {
|
|
44760
|
+
if (!this.util.isFullDateFormat(this.type, this.format)) {
|
|
44761
|
+
return;
|
|
44762
|
+
}
|
|
44763
|
+
|
|
44764
|
+
this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
|
|
44765
|
+
this.syncSingleDateValue(changedProperties, 'minObject', 'min');
|
|
44766
|
+
this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
|
|
44767
|
+
}
|
|
44768
|
+
|
|
44769
|
+
/**
|
|
44770
|
+
* Synchronizes one date object/string property pair.
|
|
44771
|
+
* @private
|
|
44772
|
+
* @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
|
|
44773
|
+
* @param {string} objectProperty - Date object property name.
|
|
44774
|
+
* @param {string} valueProperty - ISO string property name.
|
|
44775
|
+
* @returns {void}
|
|
44776
|
+
*/
|
|
44777
|
+
syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
|
|
44778
|
+
const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
|
|
44779
|
+
|
|
44780
|
+
// objectProperty wins over valueProperty when both changed
|
|
44781
|
+
if (objectPropertyChanged && this[objectProperty]) {
|
|
44782
|
+
this[valueProperty] = dateFormatter$2.toISOFormatString(this[objectProperty]);
|
|
44783
|
+
return;
|
|
44784
|
+
}
|
|
44785
|
+
|
|
44786
|
+
const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
|
|
44787
|
+
if (!valuePropertyChanged) {
|
|
44788
|
+
return;
|
|
44789
|
+
}
|
|
44790
|
+
|
|
44791
|
+
// 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)
|
|
44792
|
+
if (
|
|
44793
|
+
changedProperties &&
|
|
44794
|
+
valueProperty === 'value' &&
|
|
44795
|
+
changedProperties.get('value') === undefined &&
|
|
44796
|
+
this[objectProperty] instanceof Date &&
|
|
44797
|
+
this[valueProperty] === dateFormatter$2.toISOFormatString(this[objectProperty])
|
|
44798
|
+
) {
|
|
44799
|
+
return;
|
|
44800
|
+
}
|
|
44801
|
+
|
|
44802
|
+
if (dateFormatter$2.isValidDate(this[valueProperty])) {
|
|
44803
|
+
this.setDateObjectProperty(objectProperty, dateFormatter$2.stringToDateInstance(this[valueProperty]));
|
|
44804
|
+
} else {
|
|
44805
|
+
this.setDateObjectProperty(objectProperty, undefined);
|
|
44806
|
+
}
|
|
44807
|
+
}
|
|
44808
|
+
|
|
44558
44809
|
/**
|
|
44559
44810
|
* Sets up IMasks and logic based on auto-formatting requirements.
|
|
44560
44811
|
* @private
|
|
44561
44812
|
* @returns {void}
|
|
44562
44813
|
*/
|
|
44563
44814
|
configureAutoFormatting() {
|
|
44564
|
-
//
|
|
44565
|
-
//
|
|
44566
|
-
//
|
|
44567
|
-
//
|
|
44815
|
+
// Re-entrancy guard. The patched-setter's synthetic input event (suppressed
|
|
44816
|
+
// by _configuringMask above) could otherwise trigger handleInput →
|
|
44817
|
+
// processCreditCard → configureAutoFormatting before the outer call's
|
|
44818
|
+
// set value has finished its alignCursor pass.
|
|
44568
44819
|
if (this._configuringMask) return;
|
|
44569
44820
|
this._configuringMask = true;
|
|
44570
44821
|
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
44822
|
if (this.maskInstance) {
|
|
44577
44823
|
this.maskInstance.destroy();
|
|
44578
|
-
this.maskInstance = null;
|
|
44579
44824
|
}
|
|
44580
44825
|
|
|
44826
|
+
// Pass new format to util
|
|
44581
44827
|
this.util.updateFormat(this.format);
|
|
44582
44828
|
|
|
44583
44829
|
const maskOptions = this.util.getMaskOptions(this.type, this.format);
|
|
44584
44830
|
|
|
44585
44831
|
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
44832
|
|
|
44592
|
-
//
|
|
44593
|
-
//
|
|
44594
|
-
//
|
|
44595
|
-
//
|
|
44833
|
+
// Stash and clear any existing value before IMask init.
|
|
44834
|
+
// IMask's constructor processes the current input value which requires
|
|
44835
|
+
// selection state — clearing first avoids that scenario entirely.
|
|
44836
|
+
// When the format changes (e.g. locale switch) and we have a valid ISO
|
|
44837
|
+
// model value, compute the display string for the NEW format instead of
|
|
44838
|
+
// re-using the old display string, which may be invalid in the new mask.
|
|
44839
|
+
let existingValue = this.inputElement.value;
|
|
44596
44840
|
if (
|
|
44597
44841
|
this.util.isFullDateFormat(this.type, this.format) &&
|
|
44598
44842
|
this.value &&
|
|
44599
|
-
this.
|
|
44843
|
+
dateFormatter$2.isValidDate(this.value) &&
|
|
44844
|
+
this.valueObject instanceof Date &&
|
|
44845
|
+
!Number.isNaN(this.valueObject.getTime()) &&
|
|
44600
44846
|
typeof maskOptions.format === 'function'
|
|
44601
44847
|
) {
|
|
44602
44848
|
existingValue = maskOptions.format(this.valueObject);
|
|
44603
44849
|
}
|
|
44604
44850
|
|
|
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
44851
|
this.skipNextProgrammaticInputEvent = true;
|
|
44609
44852
|
this.inputElement.value = '';
|
|
44610
44853
|
|
|
44611
44854
|
this.maskInstance = IMask$2(this.inputElement, maskOptions);
|
|
44612
44855
|
|
|
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
44856
|
this.maskInstance.on('accept', () => {
|
|
44857
|
+
// Suppress propagation during configureAutoFormatting's own value-restoration
|
|
44858
|
+
// (line below) — the mask emits 'accept' on every value-set, including ours,
|
|
44859
|
+
// and we don't want to overwrite a value the parent just pushed.
|
|
44617
44860
|
if (this._configuringMask) return;
|
|
44618
44861
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
44619
44862
|
if (this.type === "date") {
|
|
@@ -44621,8 +44864,6 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44621
44864
|
}
|
|
44622
44865
|
});
|
|
44623
44866
|
|
|
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
44867
|
this.maskInstance.on('complete', () => {
|
|
44627
44868
|
if (this._configuringMask) return;
|
|
44628
44869
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
@@ -44631,9 +44872,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44631
44872
|
}
|
|
44632
44873
|
});
|
|
44633
44874
|
|
|
44634
|
-
//
|
|
44635
|
-
// the mask reformats it under the new rules and keeps its internal
|
|
44636
|
-
// _value aligned with the input's displayed text.
|
|
44875
|
+
// Restore the stashed value through IMask so it's properly masked
|
|
44637
44876
|
if (existingValue) {
|
|
44638
44877
|
this.maskInstance.value = existingValue;
|
|
44639
44878
|
}
|
|
@@ -44801,6 +45040,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44801
45040
|
*/
|
|
44802
45041
|
reset() {
|
|
44803
45042
|
this.value = undefined;
|
|
45043
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
44804
45044
|
this.validation.reset(this);
|
|
44805
45045
|
}
|
|
44806
45046
|
|
|
@@ -44809,6 +45049,7 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44809
45049
|
*/
|
|
44810
45050
|
clear() {
|
|
44811
45051
|
this.value = undefined;
|
|
45052
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
44812
45053
|
}
|
|
44813
45054
|
|
|
44814
45055
|
/**
|
|
@@ -44846,6 +45087,12 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44846
45087
|
*/
|
|
44847
45088
|
get placeholderStr() {
|
|
44848
45089
|
if (!this.placeholder && this.type === 'date') {
|
|
45090
|
+
// COVERAGE: the `'MM/DD/YYYY'` literal fallback is unreachable in WTR.
|
|
45091
|
+
// connectedCallback (L682) calls configureDataForType, which at L1266-1268
|
|
45092
|
+
// assigns `this.format = this.util.getDateMaskFromLocale().toLowerCase()`
|
|
45093
|
+
// when type=date and format is unset. That runs before the first render
|
|
45094
|
+
// reads this getter, so the ternary's truthy arm always wins. Retained
|
|
45095
|
+
// as a defensive fallback for direct getter calls before connection.
|
|
44849
45096
|
return this.format ? this.format.toUpperCase() : 'MM/DD/YYYY';
|
|
44850
45097
|
}
|
|
44851
45098
|
return this.placeholder || "";
|
|
@@ -45337,7 +45584,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$2 {
|
|
|
45337
45584
|
}
|
|
45338
45585
|
};
|
|
45339
45586
|
|
|
45340
|
-
var formkitVersion$7 = '
|
|
45587
|
+
var formkitVersion$7 = '202606232113';
|
|
45341
45588
|
|
|
45342
45589
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
45343
45590
|
// See LICENSE in the project root for license information.
|
|
@@ -50040,7 +50287,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$2 {
|
|
|
50040
50287
|
}
|
|
50041
50288
|
};
|
|
50042
50289
|
|
|
50043
|
-
var formkitVersion$1$2 = '
|
|
50290
|
+
var formkitVersion$1$2 = '202606232113';
|
|
50044
50291
|
|
|
50045
50292
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
50046
50293
|
// See LICENSE in the project root for license information.
|
|
@@ -54368,7 +54615,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$2 {
|
|
|
54368
54615
|
}
|
|
54369
54616
|
};
|
|
54370
54617
|
|
|
54371
|
-
var formkitVersion$6 = '
|
|
54618
|
+
var formkitVersion$6 = '202606232113';
|
|
54372
54619
|
|
|
54373
54620
|
let AuroElement$1$2 = class AuroElement extends i$2 {
|
|
54374
54621
|
static get properties() {
|
|
@@ -58308,7 +58555,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$2 {
|
|
|
58308
58555
|
}
|
|
58309
58556
|
};
|
|
58310
58557
|
|
|
58311
|
-
var formkitVersion$5 = '
|
|
58558
|
+
var formkitVersion$5 = '202606232113';
|
|
58312
58559
|
|
|
58313
58560
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
58314
58561
|
// See LICENSE in the project root for license information.
|
|
@@ -60058,7 +60305,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$2 {
|
|
|
60058
60305
|
}
|
|
60059
60306
|
};
|
|
60060
60307
|
|
|
60061
|
-
var formkitVersion$4 = '
|
|
60308
|
+
var formkitVersion$4 = '202606232113';
|
|
60062
60309
|
|
|
60063
60310
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
60064
60311
|
// See LICENSE in the project root for license information.
|
|
@@ -61234,8 +61481,6 @@ function navigateArrow$1(component, direction, options = {}) {
|
|
|
61234
61481
|
}
|
|
61235
61482
|
}
|
|
61236
61483
|
|
|
61237
|
-
/* eslint-disable no-underscore-dangle */
|
|
61238
|
-
|
|
61239
61484
|
/**
|
|
61240
61485
|
* Returns the clear button element from the active input's shadow
|
|
61241
61486
|
* DOM, if available.
|
|
@@ -61271,9 +61516,11 @@ function isClearBtnFocused(ctx, clearBtn = getClearBtn(ctx)) {
|
|
|
61271
61516
|
* @param {Object} menu - The menu component.
|
|
61272
61517
|
*/
|
|
61273
61518
|
function reconcileMenuIndex(menu) {
|
|
61519
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
61274
61520
|
if (menu._index < 0 && menu.optionActive && menu.items) {
|
|
61275
61521
|
const idx = menu.items.indexOf(menu.optionActive);
|
|
61276
61522
|
if (idx >= 0) {
|
|
61523
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
61277
61524
|
menu._index = idx;
|
|
61278
61525
|
}
|
|
61279
61526
|
}
|
|
@@ -65273,7 +65520,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$2 {
|
|
|
65273
65520
|
}
|
|
65274
65521
|
};
|
|
65275
65522
|
|
|
65276
|
-
var formkitVersion$2 = '
|
|
65523
|
+
var formkitVersion$2 = '202606232113';
|
|
65277
65524
|
|
|
65278
65525
|
let AuroElement$2$1 = class AuroElement extends i$2 {
|
|
65279
65526
|
static get properties() {
|
|
@@ -76995,7 +77242,6 @@ class AuroInputUtilities {
|
|
|
76995
77242
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
76996
77243
|
|
|
76997
77244
|
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
77245
|
return undefined;
|
|
77000
77246
|
}
|
|
77001
77247
|
|
|
@@ -77147,8 +77393,10 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77147
77393
|
this.layout = 'classic';
|
|
77148
77394
|
this.locale = 'en-US';
|
|
77149
77395
|
this.max = undefined;
|
|
77396
|
+
this._maxObject = undefined;
|
|
77150
77397
|
this.maxLength = undefined;
|
|
77151
77398
|
this.min = undefined;
|
|
77399
|
+
this._minObject = undefined;
|
|
77152
77400
|
this.minLength = undefined;
|
|
77153
77401
|
this.required = false;
|
|
77154
77402
|
this.onDark = false;
|
|
@@ -77156,6 +77404,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77156
77404
|
this.size = 'lg';
|
|
77157
77405
|
this.shape = 'classic';
|
|
77158
77406
|
this.value = undefined;
|
|
77407
|
+
this._valueObject = undefined;
|
|
77159
77408
|
|
|
77160
77409
|
this._initializePrivateDefaults();
|
|
77161
77410
|
}
|
|
@@ -77695,7 +77944,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77695
77944
|
* @returns {Date|undefined}
|
|
77696
77945
|
*/
|
|
77697
77946
|
get valueObject() {
|
|
77698
|
-
return this.
|
|
77947
|
+
return this._valueObject || this._computeDateObjectFallback(this.value);
|
|
77699
77948
|
}
|
|
77700
77949
|
|
|
77701
77950
|
/**
|
|
@@ -77703,7 +77952,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77703
77952
|
* @returns {Date|undefined}
|
|
77704
77953
|
*/
|
|
77705
77954
|
get minObject() {
|
|
77706
|
-
return this.
|
|
77955
|
+
return this._minObject || this._computeDateObjectFallback(this.min);
|
|
77707
77956
|
}
|
|
77708
77957
|
|
|
77709
77958
|
/**
|
|
@@ -77711,7 +77960,50 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77711
77960
|
* @returns {Date|undefined}
|
|
77712
77961
|
*/
|
|
77713
77962
|
get maxObject() {
|
|
77714
|
-
return this.
|
|
77963
|
+
return this._maxObject || this._computeDateObjectFallback(this.max);
|
|
77964
|
+
}
|
|
77965
|
+
|
|
77966
|
+
/**
|
|
77967
|
+
* Parses a date string into a Date object when the corresponding `_*Object`
|
|
77968
|
+
* field hasn't been synced yet by `updated()`. Returns undefined when the
|
|
77969
|
+
* input type/format isn't a full date or the string is not a valid date.
|
|
77970
|
+
*
|
|
77971
|
+
* Why this exists: a parent (datepicker) can call `inputN.validate()` from
|
|
77972
|
+
* inside its own `updated()` before this input's `updated()` has run
|
|
77973
|
+
* `syncDateValues()` — so `_valueObject`/`_maxObject` are still `undefined`
|
|
77974
|
+
* and range checks would otherwise silently no-op (flipping the result to
|
|
77975
|
+
* `valid` or `patternMismatch`).
|
|
77976
|
+
* @private
|
|
77977
|
+
* @param {string|undefined} dateStr - ISO date string from `value`/`min`/`max`.
|
|
77978
|
+
* @returns {Date|undefined}
|
|
77979
|
+
*/
|
|
77980
|
+
_computeDateObjectFallback(dateStr) {
|
|
77981
|
+
if (!dateStr || !this.util || !this.util.isFullDateFormat(this.type, this.format)) {
|
|
77982
|
+
return undefined;
|
|
77983
|
+
}
|
|
77984
|
+
if (!dateFormatter.isValidDate(dateStr)) {
|
|
77985
|
+
return undefined;
|
|
77986
|
+
}
|
|
77987
|
+
return dateFormatter.stringToDateInstance(dateStr);
|
|
77988
|
+
}
|
|
77989
|
+
|
|
77990
|
+
/**
|
|
77991
|
+
* Internal setter for readonly date object properties.
|
|
77992
|
+
* @private
|
|
77993
|
+
* @param {'valueObject'|'minObject'|'maxObject'} propertyName - Public object property name.
|
|
77994
|
+
* @param {Date|undefined} propertyValue - Value to assign.
|
|
77995
|
+
* @returns {void}
|
|
77996
|
+
*/
|
|
77997
|
+
setDateObjectProperty(propertyName, propertyValue) {
|
|
77998
|
+
const internalPropertyName = `_${propertyName}`;
|
|
77999
|
+
const previousValue = this[internalPropertyName];
|
|
78000
|
+
|
|
78001
|
+
if (previousValue === propertyValue) {
|
|
78002
|
+
return;
|
|
78003
|
+
}
|
|
78004
|
+
|
|
78005
|
+
this[internalPropertyName] = propertyValue;
|
|
78006
|
+
this.requestUpdate(propertyName, previousValue);
|
|
77715
78007
|
}
|
|
77716
78008
|
|
|
77717
78009
|
connectedCallback() {
|
|
@@ -77740,6 +78032,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77740
78032
|
format: this.format
|
|
77741
78033
|
});
|
|
77742
78034
|
this.configureDataForType();
|
|
78035
|
+
this.syncDateValues();
|
|
77743
78036
|
}
|
|
77744
78037
|
|
|
77745
78038
|
disconnectedCallback() {
|
|
@@ -77759,6 +78052,15 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77759
78052
|
this.wrapperElement.addEventListener('click', this.handleClick);
|
|
77760
78053
|
}
|
|
77761
78054
|
|
|
78055
|
+
// add attribute for query selectors when auro-input is registered under a custom name
|
|
78056
|
+
// COVERAGE: the body of this branch is unreachable in WTR — connectedCallback
|
|
78057
|
+
// performs the same `setAttribute('auro-input', '')` earlier (see L665-667),
|
|
78058
|
+
// so by the time firstUpdated runs the attribute is already present and the
|
|
78059
|
+
// `!hasAttribute('auro-input')` guard is false. Retained as a defensive
|
|
78060
|
+
// safety net in case connectedCallback is ever short-circuited.
|
|
78061
|
+
if (this.tagName.toLowerCase() !== 'auro-input' && !this.hasAttribute('auro-input')) {
|
|
78062
|
+
this.setAttribute('auro-input', '');
|
|
78063
|
+
}
|
|
77762
78064
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
77763
78065
|
|
|
77764
78066
|
// use validity message override if declared when initializing the component
|
|
@@ -77769,6 +78071,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77769
78071
|
this.setCustomHelpTextMessage();
|
|
77770
78072
|
this.configureAutoFormatting();
|
|
77771
78073
|
this.configureDataForType();
|
|
78074
|
+
this.syncDateValues();
|
|
77772
78075
|
}
|
|
77773
78076
|
|
|
77774
78077
|
/**
|
|
@@ -77844,6 +78147,13 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77844
78147
|
|
|
77845
78148
|
if (typeToI18n.includes(this.type)) {
|
|
77846
78149
|
this.setCustomValidityForType = i18n(this.lang, this.type);
|
|
78150
|
+
// COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
|
|
78151
|
+
// (L682) calls configureDataForType, which at L1266-1268 assigns
|
|
78152
|
+
// `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
|
|
78153
|
+
// type=date input whose `format` attribute is unset. That runs before
|
|
78154
|
+
// firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
|
|
78155
|
+
// always false here. Retained as a defensive fallback; the whole function
|
|
78156
|
+
// is @deprecated per AB#1557296 and slated for removal.
|
|
77847
78157
|
} else if (!this.format && this.type === 'date') {
|
|
77848
78158
|
this.setCustomValidityForType = i18n(this.lang, 'dateMMDDYYYY');
|
|
77849
78159
|
} else if (this.dateFormatMap[this.format]) {
|
|
@@ -77905,6 +78215,8 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77905
78215
|
this.configureDataForType();
|
|
77906
78216
|
}
|
|
77907
78217
|
|
|
78218
|
+
this.syncDateValues(changedProperties);
|
|
78219
|
+
|
|
77908
78220
|
if (changedProperties.has('value')) {
|
|
77909
78221
|
if (this.value && this.value.length > 0) {
|
|
77910
78222
|
this.hasValue = true;
|
|
@@ -77926,14 +78238,14 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77926
78238
|
|
|
77927
78239
|
if (formattedValue !== this.inputElement.value) {
|
|
77928
78240
|
this.skipNextProgrammaticInputEvent = true;
|
|
77929
|
-
if (this.maskInstance && this.type
|
|
78241
|
+
if (this.maskInstance && this.type === 'credit-card') {
|
|
77930
78242
|
// Route through the mask so its _value and el.value stay in lock-step
|
|
77931
78243
|
// (set value calls updateControl which writes el.value = displayValue).
|
|
77932
78244
|
// 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.
|
|
78245
|
+
// stale; _saveSelection on the next focus/click then warns. Scoped to
|
|
78246
|
+
// credit-card so date's own formattedValue (raw ISO when calendar-invalid)
|
|
78247
|
+
// isn't re-masked through the mm/dd/yyyy mask, which would truncate it
|
|
78248
|
+
// and flip validity from patternMismatch to tooShort.
|
|
77937
78249
|
this.maskInstance.value = formattedValue || '';
|
|
77938
78250
|
} else if (formattedValue) {
|
|
77939
78251
|
this.inputElement.value = formattedValue;
|
|
@@ -77975,65 +78287,120 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77975
78287
|
}));
|
|
77976
78288
|
}
|
|
77977
78289
|
|
|
78290
|
+
|
|
78291
|
+
/**
|
|
78292
|
+
* Synchronizes the ISO string values and Date object representations for date-related properties.
|
|
78293
|
+
* This keeps the model and display values aligned when either side changes.
|
|
78294
|
+
*
|
|
78295
|
+
* When a full date format is in use, this method updates `value`, `min`, and `max` from their corresponding
|
|
78296
|
+
* Date objects or vice versa, based on which properties have changed. It only runs when the current configuration
|
|
78297
|
+
* represents a full year/month/day date format.
|
|
78298
|
+
*
|
|
78299
|
+
* @param {Map<string, unknown>|undefined} [changedProperties=undefined] - Optional map of changed properties used to limit which values are synchronized.
|
|
78300
|
+
* @returns {void}
|
|
78301
|
+
* @private
|
|
78302
|
+
*/
|
|
78303
|
+
syncDateValues(changedProperties = undefined) {
|
|
78304
|
+
if (!this.util.isFullDateFormat(this.type, this.format)) {
|
|
78305
|
+
return;
|
|
78306
|
+
}
|
|
78307
|
+
|
|
78308
|
+
this.syncSingleDateValue(changedProperties, 'valueObject', 'value');
|
|
78309
|
+
this.syncSingleDateValue(changedProperties, 'minObject', 'min');
|
|
78310
|
+
this.syncSingleDateValue(changedProperties, 'maxObject', 'max');
|
|
78311
|
+
}
|
|
78312
|
+
|
|
78313
|
+
/**
|
|
78314
|
+
* Synchronizes one date object/string property pair.
|
|
78315
|
+
* @private
|
|
78316
|
+
* @param {Map<string, unknown>|undefined} changedProperties - Map of changed properties from Lit.
|
|
78317
|
+
* @param {string} objectProperty - Date object property name.
|
|
78318
|
+
* @param {string} valueProperty - ISO string property name.
|
|
78319
|
+
* @returns {void}
|
|
78320
|
+
*/
|
|
78321
|
+
syncSingleDateValue(changedProperties, objectProperty, valueProperty) {
|
|
78322
|
+
const objectPropertyChanged = !changedProperties || changedProperties.has(objectProperty);
|
|
78323
|
+
|
|
78324
|
+
// objectProperty wins over valueProperty when both changed
|
|
78325
|
+
if (objectPropertyChanged && this[objectProperty]) {
|
|
78326
|
+
this[valueProperty] = dateFormatter.toISOFormatString(this[objectProperty]);
|
|
78327
|
+
return;
|
|
78328
|
+
}
|
|
78329
|
+
|
|
78330
|
+
const valuePropertyChanged = !changedProperties || changedProperties.has(valueProperty);
|
|
78331
|
+
if (!valuePropertyChanged) {
|
|
78332
|
+
return;
|
|
78333
|
+
}
|
|
78334
|
+
|
|
78335
|
+
// 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)
|
|
78336
|
+
if (
|
|
78337
|
+
changedProperties &&
|
|
78338
|
+
valueProperty === 'value' &&
|
|
78339
|
+
changedProperties.get('value') === undefined &&
|
|
78340
|
+
this[objectProperty] instanceof Date &&
|
|
78341
|
+
this[valueProperty] === dateFormatter.toISOFormatString(this[objectProperty])
|
|
78342
|
+
) {
|
|
78343
|
+
return;
|
|
78344
|
+
}
|
|
78345
|
+
|
|
78346
|
+
if (dateFormatter.isValidDate(this[valueProperty])) {
|
|
78347
|
+
this.setDateObjectProperty(objectProperty, dateFormatter.stringToDateInstance(this[valueProperty]));
|
|
78348
|
+
} else {
|
|
78349
|
+
this.setDateObjectProperty(objectProperty, undefined);
|
|
78350
|
+
}
|
|
78351
|
+
}
|
|
78352
|
+
|
|
77978
78353
|
/**
|
|
77979
78354
|
* Sets up IMasks and logic based on auto-formatting requirements.
|
|
77980
78355
|
* @private
|
|
77981
78356
|
* @returns {void}
|
|
77982
78357
|
*/
|
|
77983
78358
|
configureAutoFormatting() {
|
|
77984
|
-
//
|
|
77985
|
-
//
|
|
77986
|
-
//
|
|
77987
|
-
//
|
|
78359
|
+
// Re-entrancy guard. The patched-setter's synthetic input event (suppressed
|
|
78360
|
+
// by _configuringMask above) could otherwise trigger handleInput →
|
|
78361
|
+
// processCreditCard → configureAutoFormatting before the outer call's
|
|
78362
|
+
// set value has finished its alignCursor pass.
|
|
77988
78363
|
if (this._configuringMask) return;
|
|
77989
78364
|
this._configuringMask = true;
|
|
77990
78365
|
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
78366
|
if (this.maskInstance) {
|
|
77997
78367
|
this.maskInstance.destroy();
|
|
77998
|
-
this.maskInstance = null;
|
|
77999
78368
|
}
|
|
78000
78369
|
|
|
78370
|
+
// Pass new format to util
|
|
78001
78371
|
this.util.updateFormat(this.format);
|
|
78002
78372
|
|
|
78003
78373
|
const maskOptions = this.util.getMaskOptions(this.type, this.format);
|
|
78004
78374
|
|
|
78005
78375
|
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
78376
|
|
|
78012
|
-
//
|
|
78013
|
-
//
|
|
78014
|
-
//
|
|
78015
|
-
//
|
|
78377
|
+
// Stash and clear any existing value before IMask init.
|
|
78378
|
+
// IMask's constructor processes the current input value which requires
|
|
78379
|
+
// selection state — clearing first avoids that scenario entirely.
|
|
78380
|
+
// When the format changes (e.g. locale switch) and we have a valid ISO
|
|
78381
|
+
// model value, compute the display string for the NEW format instead of
|
|
78382
|
+
// re-using the old display string, which may be invalid in the new mask.
|
|
78383
|
+
let existingValue = this.inputElement.value;
|
|
78016
78384
|
if (
|
|
78017
78385
|
this.util.isFullDateFormat(this.type, this.format) &&
|
|
78018
78386
|
this.value &&
|
|
78019
|
-
this.
|
|
78387
|
+
dateFormatter.isValidDate(this.value) &&
|
|
78388
|
+
this.valueObject instanceof Date &&
|
|
78389
|
+
!Number.isNaN(this.valueObject.getTime()) &&
|
|
78020
78390
|
typeof maskOptions.format === 'function'
|
|
78021
78391
|
) {
|
|
78022
78392
|
existingValue = maskOptions.format(this.valueObject);
|
|
78023
78393
|
}
|
|
78024
78394
|
|
|
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
78395
|
this.skipNextProgrammaticInputEvent = true;
|
|
78029
78396
|
this.inputElement.value = '';
|
|
78030
78397
|
|
|
78031
78398
|
this.maskInstance = IMask(this.inputElement, maskOptions);
|
|
78032
78399
|
|
|
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
78400
|
this.maskInstance.on('accept', () => {
|
|
78401
|
+
// Suppress propagation during configureAutoFormatting's own value-restoration
|
|
78402
|
+
// (line below) — the mask emits 'accept' on every value-set, including ours,
|
|
78403
|
+
// and we don't want to overwrite a value the parent just pushed.
|
|
78037
78404
|
if (this._configuringMask) return;
|
|
78038
78405
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
78039
78406
|
if (this.type === "date") {
|
|
@@ -78041,8 +78408,6 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78041
78408
|
}
|
|
78042
78409
|
});
|
|
78043
78410
|
|
|
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
78411
|
this.maskInstance.on('complete', () => {
|
|
78047
78412
|
if (this._configuringMask) return;
|
|
78048
78413
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
@@ -78051,9 +78416,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78051
78416
|
}
|
|
78052
78417
|
});
|
|
78053
78418
|
|
|
78054
|
-
//
|
|
78055
|
-
// the mask reformats it under the new rules and keeps its internal
|
|
78056
|
-
// _value aligned with the input's displayed text.
|
|
78419
|
+
// Restore the stashed value through IMask so it's properly masked
|
|
78057
78420
|
if (existingValue) {
|
|
78058
78421
|
this.maskInstance.value = existingValue;
|
|
78059
78422
|
}
|
|
@@ -78221,6 +78584,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78221
78584
|
*/
|
|
78222
78585
|
reset() {
|
|
78223
78586
|
this.value = undefined;
|
|
78587
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
78224
78588
|
this.validation.reset(this);
|
|
78225
78589
|
}
|
|
78226
78590
|
|
|
@@ -78229,6 +78593,7 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78229
78593
|
*/
|
|
78230
78594
|
clear() {
|
|
78231
78595
|
this.value = undefined;
|
|
78596
|
+
this.setDateObjectProperty('valueObject', undefined);
|
|
78232
78597
|
}
|
|
78233
78598
|
|
|
78234
78599
|
/**
|
|
@@ -78266,6 +78631,12 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78266
78631
|
*/
|
|
78267
78632
|
get placeholderStr() {
|
|
78268
78633
|
if (!this.placeholder && this.type === 'date') {
|
|
78634
|
+
// COVERAGE: the `'MM/DD/YYYY'` literal fallback is unreachable in WTR.
|
|
78635
|
+
// connectedCallback (L682) calls configureDataForType, which at L1266-1268
|
|
78636
|
+
// assigns `this.format = this.util.getDateMaskFromLocale().toLowerCase()`
|
|
78637
|
+
// when type=date and format is unset. That runs before the first render
|
|
78638
|
+
// reads this getter, so the ternary's truthy arm always wins. Retained
|
|
78639
|
+
// as a defensive fallback for direct getter calls before connection.
|
|
78269
78640
|
return this.format ? this.format.toUpperCase() : 'MM/DD/YYYY';
|
|
78270
78641
|
}
|
|
78271
78642
|
return this.placeholder || "";
|
|
@@ -78757,7 +79128,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$2 {
|
|
|
78757
79128
|
}
|
|
78758
79129
|
};
|
|
78759
79130
|
|
|
78760
|
-
var formkitVersion$1$1 = '
|
|
79131
|
+
var formkitVersion$1$1 = '202606232113';
|
|
78761
79132
|
|
|
78762
79133
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
78763
79134
|
// See LICENSE in the project root for license information.
|
|
@@ -79878,7 +80249,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$2 {
|
|
|
79878
80249
|
}
|
|
79879
80250
|
};
|
|
79880
80251
|
|
|
79881
|
-
var formkitVersion$3 = '
|
|
80252
|
+
var formkitVersion$3 = '202606232113';
|
|
79882
80253
|
|
|
79883
80254
|
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
80255
|
|
|
@@ -80865,7 +81236,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
80865
81236
|
if (this.menu) {
|
|
80866
81237
|
this.menu.matchWord = normalizeFilterValue(this.input.value);
|
|
80867
81238
|
}
|
|
80868
|
-
const label = getOptionLabel(this.menu.optionSelected);
|
|
81239
|
+
const label = getOptionLabel(this.menu.optionSelected) || this.menu.currentLabel;
|
|
80869
81240
|
this.updateTriggerTextDisplay(label || this.value);
|
|
80870
81241
|
}
|
|
80871
81242
|
|
|
@@ -80879,9 +81250,40 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
80879
81250
|
// in suggestion mode, do not override input value if no selection has been made and the input currently has focus
|
|
80880
81251
|
const isInputFocusedWithNoSelection = !this.menu.value && (this.input.matches(':focus-within') || (this.inputInBib && this.inputInBib.matches(':focus-within')));
|
|
80881
81252
|
|
|
80882
|
-
|
|
80883
|
-
|
|
80884
|
-
|
|
81253
|
+
if (!this.persistInput && !(this.behavior === 'suggestion' && isInputFocusedWithNoSelection)) {
|
|
81254
|
+
const nextValue = label || this.value;
|
|
81255
|
+
// Only set the flag when there's an actual write to suppress —
|
|
81256
|
+
// syncValuesAndStates re-enters here during typing when both inputs
|
|
81257
|
+
// already match, and a no-op flag flip would make the bib branch's
|
|
81258
|
+
// bail eat legitimate user-input events.
|
|
81259
|
+
const triggerNeedsSync = this.input.value !== nextValue;
|
|
81260
|
+
const bibNeedsSync = Boolean(this.inputInBib && this.inputInBib !== this.input && this.inputInBib.value !== nextValue);
|
|
81261
|
+
if (triggerNeedsSync || bibNeedsSync) {
|
|
81262
|
+
this._syncingDisplayValue = true;
|
|
81263
|
+
if (triggerNeedsSync) {
|
|
81264
|
+
this.input.value = nextValue;
|
|
81265
|
+
}
|
|
81266
|
+
if (bibNeedsSync) {
|
|
81267
|
+
this.inputInBib.value = nextValue;
|
|
81268
|
+
}
|
|
81269
|
+
const pending = [];
|
|
81270
|
+
if (triggerNeedsSync) {
|
|
81271
|
+
pending.push(this.input.updateComplete);
|
|
81272
|
+
}
|
|
81273
|
+
if (bibNeedsSync) {
|
|
81274
|
+
pending.push(this.inputInBib.updateComplete);
|
|
81275
|
+
}
|
|
81276
|
+
Promise.all(pending).then(() => {
|
|
81277
|
+
// imask reasserts otherwise, and handleBlur reverts to its stale value.
|
|
81278
|
+
if (triggerNeedsSync && this.input.maskInstance && typeof this.input.maskInstance.updateValue === 'function') {
|
|
81279
|
+
this.input.maskInstance.updateValue();
|
|
81280
|
+
}
|
|
81281
|
+
if (bibNeedsSync && this.inputInBib && this.inputInBib.maskInstance && typeof this.inputInBib.maskInstance.updateValue === 'function') {
|
|
81282
|
+
this.inputInBib.maskInstance.updateValue();
|
|
81283
|
+
}
|
|
81284
|
+
this._syncingDisplayValue = false;
|
|
81285
|
+
});
|
|
81286
|
+
}
|
|
80885
81287
|
}
|
|
80886
81288
|
|
|
80887
81289
|
// update the displayValue in the trigger if displayValue slot content is present
|
|
@@ -80909,48 +81311,6 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
80909
81311
|
this.requestUpdate();
|
|
80910
81312
|
}
|
|
80911
81313
|
|
|
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
81314
|
/**
|
|
80955
81315
|
* Processes hidden state of all menu options and determines if there are any available options not hidden.
|
|
80956
81316
|
* @private
|
|
@@ -80978,9 +81338,9 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
80978
81338
|
this.syncValuesAndStates();
|
|
80979
81339
|
}
|
|
80980
81340
|
|
|
80981
|
-
// Re-activate when optionActive is
|
|
80982
|
-
//
|
|
80983
|
-
//
|
|
81341
|
+
// Re-activate when optionActive is no longer visible, or when _index has
|
|
81342
|
+
// been reset (e.g. by clearSelection in an async update) so that
|
|
81343
|
+
// makeSelection() can find the correct option.
|
|
80984
81344
|
if (!this.availableOptions.includes(this.menu.optionActive) || this.menu._index < 0) {
|
|
80985
81345
|
this.activateFirstEnabledAvailableOption();
|
|
80986
81346
|
}
|
|
@@ -81114,25 +81474,28 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81114
81474
|
|
|
81115
81475
|
guardTouchPassthrough$1(this.menu);
|
|
81116
81476
|
|
|
81117
|
-
// showModal()
|
|
81118
|
-
//
|
|
81119
|
-
//
|
|
81120
|
-
// validation guard.
|
|
81477
|
+
// The dialog's showModal() steals focus from the trigger.
|
|
81478
|
+
// A single rAF is enough for the dialog DOM to be painted and
|
|
81479
|
+
// focusable, then doubleRaf finalizes the transition.
|
|
81121
81480
|
requestAnimationFrame(() => {
|
|
81122
81481
|
this.setInputFocus();
|
|
81123
81482
|
});
|
|
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) {
|
|
81483
|
+
|
|
81484
|
+
doubleRaf$1(() => {
|
|
81485
|
+
this.setInputFocus();
|
|
81133
81486
|
this._inFullscreenTransition = false;
|
|
81134
|
-
}
|
|
81135
|
-
}
|
|
81487
|
+
});
|
|
81488
|
+
} else {
|
|
81489
|
+
// Desktop popover-open: restore the trigger caret to end-of-text.
|
|
81490
|
+
// Clicking the trigger lands on auro-input's floating <label for="…">
|
|
81491
|
+
// overlay; Chrome resets the native input's selection to [0, 0] on
|
|
81492
|
+
// label-focus before any JS runs. setInputFocus()'s non-fullscreen
|
|
81493
|
+
// branch parks the caret at end. doubleRaf lets the dropdown layout
|
|
81494
|
+
// settle first, matching the fullscreen branch timing.
|
|
81495
|
+
doubleRaf$1(() => {
|
|
81496
|
+
this.setInputFocus();
|
|
81497
|
+
});
|
|
81498
|
+
}
|
|
81136
81499
|
}
|
|
81137
81500
|
});
|
|
81138
81501
|
|
|
@@ -81343,7 +81706,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81343
81706
|
if (this.menu.optionSelected) {
|
|
81344
81707
|
const selected = this.menu.optionSelected;
|
|
81345
81708
|
|
|
81346
|
-
if (this.optionSelected !== selected) {
|
|
81709
|
+
if (!this.optionSelected || this.optionSelected !== selected) {
|
|
81347
81710
|
this.optionSelected = selected;
|
|
81348
81711
|
}
|
|
81349
81712
|
|
|
@@ -81356,7 +81719,7 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81356
81719
|
}
|
|
81357
81720
|
|
|
81358
81721
|
// Update display
|
|
81359
|
-
this.updateTriggerTextDisplay(getOptionLabel(this.optionSelected));
|
|
81722
|
+
this.updateTriggerTextDisplay(getOptionLabel(this.optionSelected) || this.menu.value);
|
|
81360
81723
|
|
|
81361
81724
|
// Update match word for filtering
|
|
81362
81725
|
const trimmedInput = normalizeFilterValue(this.input.value);
|
|
@@ -81372,22 +81735,13 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81372
81735
|
this.hideBib();
|
|
81373
81736
|
}
|
|
81374
81737
|
|
|
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
81738
|
// Announce the selection after the dropdown closes so it isn't
|
|
81381
81739
|
// 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
81740
|
const selectedValue = this.menu.value;
|
|
81385
|
-
|
|
81386
|
-
|
|
81387
|
-
|
|
81388
|
-
|
|
81389
|
-
}, announcementDelay);
|
|
81390
|
-
}
|
|
81741
|
+
const announcementDelay = 300;
|
|
81742
|
+
setTimeout(() => {
|
|
81743
|
+
announceToScreenReader$1(this._getAnnouncementRoot(), `${selectedValue}, selected`);
|
|
81744
|
+
}, announcementDelay);
|
|
81391
81745
|
}
|
|
81392
81746
|
|
|
81393
81747
|
// Programmatic value syncs leave availableOptions stale because
|
|
@@ -81401,6 +81755,18 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81401
81755
|
this._programmaticFilterRefresh = false;
|
|
81402
81756
|
}, 0);
|
|
81403
81757
|
}
|
|
81758
|
+
|
|
81759
|
+
// base-input skips auto-validate when focus is inside its own shadow,
|
|
81760
|
+
// which it is after setTriggerInputFocus — re-run so prior tooShort
|
|
81761
|
+
// clears. processCreditCard reasserts errorMessage on every render.
|
|
81762
|
+
if (!isEcho && this.menu.optionSelected && this.input.validate) {
|
|
81763
|
+
this.input.updateComplete.then(() => {
|
|
81764
|
+
this.input.validate(true);
|
|
81765
|
+
if (this.input.validity === 'valid') {
|
|
81766
|
+
this.input.errorMessage = '';
|
|
81767
|
+
}
|
|
81768
|
+
});
|
|
81769
|
+
}
|
|
81404
81770
|
});
|
|
81405
81771
|
|
|
81406
81772
|
this.menu.addEventListener('auroMenu-customEventFired', () => {
|
|
@@ -81735,7 +82101,15 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81735
82101
|
this.menu.value = undefined;
|
|
81736
82102
|
this.validation.reset(this);
|
|
81737
82103
|
this.touched = false;
|
|
82104
|
+
// Force validity back to the cleared state. validation.reset() calls
|
|
82105
|
+
// validate() at the end, and (post-credit-card-fix) the trigger input's
|
|
82106
|
+
// residual validity may still be copied into the combobox by the
|
|
82107
|
+
// auroInputElements loop. Explicitly clear here so reset() actually
|
|
82108
|
+
// leaves the component in a "no validity" state.
|
|
81738
82109
|
this.validity = undefined;
|
|
82110
|
+
this.errorMessage = '';
|
|
82111
|
+
this.input.validity = undefined;
|
|
82112
|
+
this.input.errorMessage = '';
|
|
81739
82113
|
}
|
|
81740
82114
|
|
|
81741
82115
|
/**
|
|
@@ -81788,27 +82162,52 @@ class AuroCombobox extends AuroElement$3 {
|
|
|
81788
82162
|
this.input.value = this.value;
|
|
81789
82163
|
}
|
|
81790
82164
|
|
|
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.
|
|
82165
|
+
// Sync menu.value only when an option actually matches; otherwise clear it.
|
|
81795
82166
|
if (this.menu.options && this.menu.options.length > 0) {
|
|
81796
|
-
if (this.menu.options.some((opt) => opt.value === this.value)
|
|
82167
|
+
if (this.menu.options.some((opt) => opt.value === this.value)) {
|
|
82168
|
+
this.setMenuValue(this.value);
|
|
82169
|
+
} else if (this.behavior === 'filter') {
|
|
82170
|
+
// In filter mode, freeform values aren't allowed. Push the unmatched
|
|
82171
|
+
// value through setMenuValue so menu dispatches auroMenu-selectValueFailure
|
|
82172
|
+
// and the listener at line 1206 clears combobox.value (mirrors select's
|
|
82173
|
+
// pattern). Bypassing setMenuValue here would skip the failure cascade.
|
|
81797
82174
|
this.setMenuValue(this.value);
|
|
81798
82175
|
} 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();
|
|
82176
|
+
if (this.menu.value) {
|
|
82177
|
+
this.menu.value = undefined;
|
|
81805
82178
|
}
|
|
81806
|
-
//
|
|
81807
|
-
//
|
|
81808
|
-
//
|
|
81809
|
-
|
|
81810
|
-
|
|
81811
|
-
|
|
82179
|
+
// Sync the display for programmatic freeform value changes (e.g. the
|
|
82180
|
+
// swap-values pattern). Guard with _syncingDisplayValue so that the
|
|
82181
|
+
// re-entrant input event from base-input.notifyValueChanged() is
|
|
82182
|
+
// ignored by handleInputValueChange. Skip the sync when input already
|
|
82183
|
+
// matches to avoid spurious events during the normal typing path.
|
|
82184
|
+
const nextValue = this.value || '';
|
|
82185
|
+
const triggerNeedsSync = this.input.value !== nextValue;
|
|
82186
|
+
const bibNeedsSync = Boolean(this.inputInBib && this.inputInBib !== this.input && this.inputInBib.value !== nextValue);
|
|
82187
|
+
if (triggerNeedsSync || bibNeedsSync) {
|
|
82188
|
+
this._syncingDisplayValue = true;
|
|
82189
|
+
if (triggerNeedsSync) {
|
|
82190
|
+
this.input.value = nextValue;
|
|
82191
|
+
}
|
|
82192
|
+
if (bibNeedsSync) {
|
|
82193
|
+
this.inputInBib.value = nextValue;
|
|
82194
|
+
}
|
|
82195
|
+
const pending = [];
|
|
82196
|
+
if (triggerNeedsSync) {
|
|
82197
|
+
pending.push(this.input.updateComplete);
|
|
82198
|
+
}
|
|
82199
|
+
if (bibNeedsSync) {
|
|
82200
|
+
pending.push(this.inputInBib.updateComplete);
|
|
82201
|
+
}
|
|
82202
|
+
Promise.all(pending).then(() => {
|
|
82203
|
+
if (triggerNeedsSync && this.input.maskInstance && typeof this.input.maskInstance.updateValue === 'function') {
|
|
82204
|
+
this.input.maskInstance.updateValue();
|
|
82205
|
+
}
|
|
82206
|
+
if (bibNeedsSync && this.inputInBib && this.inputInBib.maskInstance && typeof this.inputInBib.maskInstance.updateValue === 'function') {
|
|
82207
|
+
this.inputInBib.maskInstance.updateValue();
|
|
82208
|
+
}
|
|
82209
|
+
this._syncingDisplayValue = false;
|
|
82210
|
+
// handleInputValueChange bailed on the flag — refresh the filter.
|
|
81812
82211
|
this._programmaticFilterRefresh = true;
|
|
81813
82212
|
this.handleMenuOptions();
|
|
81814
82213
|
setTimeout(() => {
|
|
@@ -88641,7 +89040,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
|
|
|
88641
89040
|
}
|
|
88642
89041
|
};
|
|
88643
89042
|
|
|
88644
|
-
var formkitVersion$1 = '
|
|
89043
|
+
var formkitVersion$1 = '202606232113';
|
|
88645
89044
|
|
|
88646
89045
|
class AuroElement extends i$2 {
|
|
88647
89046
|
static get properties() {
|
|
@@ -90662,7 +91061,7 @@ class AuroHelpText extends i$2 {
|
|
|
90662
91061
|
}
|
|
90663
91062
|
}
|
|
90664
91063
|
|
|
90665
|
-
var formkitVersion = '
|
|
91064
|
+
var formkitVersion = '202606232113';
|
|
90666
91065
|
|
|
90667
91066
|
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
91067
|
|