@aurodesignsystem-dev/auro-formkit 0.0.0-pr1532.0 → 0.0.0-pr1533.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 +118 -50
- package/components/combobox/demo/getting-started.min.js +118 -50
- package/components/combobox/demo/index.min.js +118 -50
- package/components/combobox/dist/auro-combobox.d.ts +10 -0
- package/components/combobox/dist/index.js +118 -50
- package/components/combobox/dist/registered.js +118 -50
- 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/accessibility.md +17 -8
- package/components/datepicker/demo/api.md +1 -1
- package/components/datepicker/demo/customize.min.js +229 -72
- package/components/datepicker/demo/index.min.js +229 -72
- package/components/datepicker/demo/keyboard-behavior.md +3 -3
- package/components/datepicker/demo/voiceover.md +4 -4
- package/components/datepicker/demo/why-datepicker.md +2 -2
- package/components/datepicker/dist/auro-calendar-cell.d.ts +11 -0
- package/components/datepicker/dist/auro-calendar.d.ts +26 -2
- package/components/datepicker/dist/auro-datepicker.d.ts +9 -1
- package/components/datepicker/dist/index.js +229 -72
- package/components/datepicker/dist/registered.js +229 -72
- 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 +408 -172
- package/components/form/demo/getting-started.min.js +408 -172
- package/components/form/demo/index.min.js +408 -172
- package/components/form/demo/registerDemoDeps.min.js +408 -172
- package/components/input/demo/customize.min.js +56 -45
- package/components/input/demo/getting-started.min.js +56 -45
- package/components/input/demo/index.min.js +56 -45
- package/components/input/dist/base-input.d.ts +20 -4
- package/components/input/dist/index.js +56 -45
- package/components/input/dist/registered.js +56 -45
- 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 +1664 -1566
- package/package.json +1 -1
|
@@ -10657,14 +10657,16 @@ class BaseInput extends AuroElement {
|
|
|
10657
10657
|
this.label = 'Input label is undefined';
|
|
10658
10658
|
this.layout = 'classic';
|
|
10659
10659
|
this.locale = 'en-US';
|
|
10660
|
+
this._format = undefined;
|
|
10661
|
+
|
|
10662
|
+
/** @private */
|
|
10663
|
+
this._userSetFormat = false;
|
|
10660
10664
|
this.max = undefined;
|
|
10661
10665
|
this.maxLength = undefined;
|
|
10662
10666
|
this.min = undefined;
|
|
10663
10667
|
this.minLength = undefined;
|
|
10664
10668
|
this.noValidate = false;
|
|
10665
10669
|
this.onDark = false;
|
|
10666
|
-
// Raw values returned from the input mask before model normalization.
|
|
10667
|
-
this._rawMaskValue = undefined;
|
|
10668
10670
|
this.required = false;
|
|
10669
10671
|
this.setCustomValidityForType = undefined;
|
|
10670
10672
|
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
@@ -10822,7 +10824,8 @@ class BaseInput extends AuroElement {
|
|
|
10822
10824
|
*/
|
|
10823
10825
|
format: {
|
|
10824
10826
|
type: String,
|
|
10825
|
-
reflect: true
|
|
10827
|
+
reflect: true,
|
|
10828
|
+
noAccessor: true
|
|
10826
10829
|
},
|
|
10827
10830
|
|
|
10828
10831
|
/**
|
|
@@ -11160,6 +11163,34 @@ class BaseInput extends AuroElement {
|
|
|
11160
11163
|
return this.max && dateFormatter.isValidDate(this.max) ? dateFormatter.stringToDateInstance(this.max) : undefined;
|
|
11161
11164
|
}
|
|
11162
11165
|
|
|
11166
|
+
get format() {
|
|
11167
|
+
return this._format;
|
|
11168
|
+
}
|
|
11169
|
+
|
|
11170
|
+
/**
|
|
11171
|
+
* Overrides LitElement's generated accessor so we can track whether the
|
|
11172
|
+
* consumer explicitly set `format`. Locale-derived updates use
|
|
11173
|
+
* `_setFormatFromLocale` instead, which skips this flag.
|
|
11174
|
+
*/
|
|
11175
|
+
set format(value) {
|
|
11176
|
+
const oldValue = this._format;
|
|
11177
|
+
this._format = value ? value.toLowerCase() : value;
|
|
11178
|
+
this._userSetFormat = Boolean(value);
|
|
11179
|
+
this.requestUpdate('format', oldValue);
|
|
11180
|
+
}
|
|
11181
|
+
|
|
11182
|
+
/**
|
|
11183
|
+
* Sets format without marking it as user-set. Used by locale auto-derive
|
|
11184
|
+
* so that a subsequent locale change can still update the format.
|
|
11185
|
+
* @private
|
|
11186
|
+
* @param {string} value
|
|
11187
|
+
*/
|
|
11188
|
+
_setFormatFromLocale(value) {
|
|
11189
|
+
const oldValue = this._format;
|
|
11190
|
+
this._format = value ? value.toLowerCase() : value;
|
|
11191
|
+
this.requestUpdate('format', oldValue);
|
|
11192
|
+
}
|
|
11193
|
+
|
|
11163
11194
|
connectedCallback() {
|
|
11164
11195
|
super.connectedCallback();
|
|
11165
11196
|
|
|
@@ -11207,15 +11238,6 @@ class BaseInput extends AuroElement {
|
|
|
11207
11238
|
|
|
11208
11239
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
11209
11240
|
|
|
11210
|
-
// Normalize the format token to lowercase so case-mixed values supplied
|
|
11211
|
-
// via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
|
|
11212
|
-
// lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
|
|
11213
|
-
// format silently misses the map and leaves `setCustomValidityForType`
|
|
11214
|
-
// unset.
|
|
11215
|
-
if (this.format) {
|
|
11216
|
-
this.format = this.format.toLowerCase();
|
|
11217
|
-
}
|
|
11218
|
-
|
|
11219
11241
|
// use validity message override if declared when initializing the component
|
|
11220
11242
|
if (this.hasAttribute('setCustomValidity')) {
|
|
11221
11243
|
this.ValidityMessageOverride = this.setCustomValidity;
|
|
@@ -11322,12 +11344,10 @@ class BaseInput extends AuroElement {
|
|
|
11322
11344
|
updated(changedProperties) {
|
|
11323
11345
|
super.updated(changedProperties);
|
|
11324
11346
|
|
|
11325
|
-
// When locale changes
|
|
11326
|
-
// Only runs if the current format is still the previous locale's default (not user-overridden).
|
|
11347
|
+
// When locale changes, auto-derive format unless the consumer explicitly set one.
|
|
11327
11348
|
if (changedProperties.has('locale') && !changedProperties.has('format') && this.type === 'date') {
|
|
11328
|
-
|
|
11329
|
-
|
|
11330
|
-
this.format = getDateFormatFromLocale(this.locale);
|
|
11349
|
+
if (!this._userSetFormat) {
|
|
11350
|
+
this._setFormatFromLocale(getDateFormatFromLocale(this.locale));
|
|
11331
11351
|
}
|
|
11332
11352
|
}
|
|
11333
11353
|
|
|
@@ -11498,9 +11518,6 @@ class BaseInput extends AuroElement {
|
|
|
11498
11518
|
this.maskInstance.on('accept', () => {
|
|
11499
11519
|
if (this._configuringMask) return;
|
|
11500
11520
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
11501
|
-
if (this.type === "date") {
|
|
11502
|
-
this._rawMaskValue = this.maskInstance.value;
|
|
11503
|
-
}
|
|
11504
11521
|
});
|
|
11505
11522
|
|
|
11506
11523
|
// Mask fires 'complete' on the restore step below for any value that
|
|
@@ -11508,9 +11525,6 @@ class BaseInput extends AuroElement {
|
|
|
11508
11525
|
this.maskInstance.on('complete', () => {
|
|
11509
11526
|
if (this._configuringMask) return;
|
|
11510
11527
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
11511
|
-
if (this.type === "date") {
|
|
11512
|
-
this._rawMaskValue = this.maskInstance.value;
|
|
11513
|
-
}
|
|
11514
11528
|
});
|
|
11515
11529
|
|
|
11516
11530
|
// Write existingValue through the mask (not the input directly) so
|
|
@@ -11531,14 +11545,17 @@ class BaseInput extends AuroElement {
|
|
|
11531
11545
|
* @returns {void}
|
|
11532
11546
|
*/
|
|
11533
11547
|
notifyValueChanged() {
|
|
11534
|
-
|
|
11535
|
-
|
|
11536
|
-
|
|
11548
|
+
// This echoes Lit's reactive value update (and handleClickClear's
|
|
11549
|
+
// programmatic clear) — it is NOT a fresh user-input event. Mark it
|
|
11550
|
+
// `isProgrammatic` so consumers (e.g. auro-combobox) can distinguish
|
|
11551
|
+
// it from genuine user typing and skip clobbering their own
|
|
11552
|
+
// programmatic state during init-time renders.
|
|
11553
|
+
const inputEvent = new Event('input', {
|
|
11537
11554
|
bubbles: true,
|
|
11538
11555
|
composed: true,
|
|
11539
11556
|
});
|
|
11557
|
+
inputEvent.isProgrammatic = true;
|
|
11540
11558
|
|
|
11541
|
-
// Dispatched event to alert outside shadow DOM context of event firing.
|
|
11542
11559
|
this.dispatchEvent(inputEvent);
|
|
11543
11560
|
}
|
|
11544
11561
|
|
|
@@ -11747,8 +11764,7 @@ class BaseInput extends AuroElement {
|
|
|
11747
11764
|
|
|
11748
11765
|
// Set default date format if type=date and no format is defined
|
|
11749
11766
|
if (this.type === "date" && !this.format) {
|
|
11750
|
-
|
|
11751
|
-
this.format = this.util.getDateMaskFromLocale().toLowerCase();
|
|
11767
|
+
this._setFormatFromLocale(this.util.getDateMaskFromLocale().toLowerCase());
|
|
11752
11768
|
this.util.updateFormat(this.format);
|
|
11753
11769
|
}
|
|
11754
11770
|
}
|
|
@@ -11777,7 +11793,7 @@ class BaseInput extends AuroElement {
|
|
|
11777
11793
|
const creditCard = this.matchInputValueToCreditCard();
|
|
11778
11794
|
const previousFormat = this.format;
|
|
11779
11795
|
|
|
11780
|
-
this.
|
|
11796
|
+
this._setFormatFromLocale(creditCard.maskFormat);
|
|
11781
11797
|
|
|
11782
11798
|
this.maxLength = creditCard.formatLength;
|
|
11783
11799
|
this.minLength = creditCard.formatMinLength;
|
|
@@ -12251,7 +12267,7 @@ class AuroHelpText extends i$3 {
|
|
|
12251
12267
|
}
|
|
12252
12268
|
}
|
|
12253
12269
|
|
|
12254
|
-
var formkitVersion = '
|
|
12270
|
+
var formkitVersion = '202607061903';
|
|
12255
12271
|
|
|
12256
12272
|
/**
|
|
12257
12273
|
* @license
|
|
@@ -12549,20 +12565,15 @@ class AuroInput extends BaseInput {
|
|
|
12549
12565
|
* @returns {void}
|
|
12550
12566
|
*/
|
|
12551
12567
|
checkDisplayValueSlotChange() {
|
|
12552
|
-
|
|
12553
|
-
|
|
12554
|
-
//
|
|
12555
|
-
|
|
12556
|
-
|
|
12557
|
-
|
|
12558
|
-
|
|
12559
|
-
|
|
12560
|
-
|
|
12561
|
-
if (nodes.length > 0) {
|
|
12562
|
-
hasContent = true;
|
|
12563
|
-
}
|
|
12564
|
-
|
|
12565
|
-
this.hasDisplayValueContent = hasContent;
|
|
12568
|
+
// flatten:true resolves through auro-combobox's forwarding slot
|
|
12569
|
+
// (<slot name="displayValue" slot="displayValue">) so a clone appended
|
|
12570
|
+
// directly to auro-input's light DOM alongside the forwarder still
|
|
12571
|
+
// counts as content. The prior nodes[0].tagName === 'SLOT' recursion
|
|
12572
|
+
// discarded any siblings past the forwarder.
|
|
12573
|
+
const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
|
|
12574
|
+
const nodes = slot.assignedNodes({ flatten: true });
|
|
12575
|
+
|
|
12576
|
+
this.hasDisplayValueContent = nodes.length > 0;
|
|
12566
12577
|
}
|
|
12567
12578
|
|
|
12568
12579
|
firstUpdated() {
|
|
@@ -10657,14 +10657,16 @@ class BaseInput extends AuroElement {
|
|
|
10657
10657
|
this.label = 'Input label is undefined';
|
|
10658
10658
|
this.layout = 'classic';
|
|
10659
10659
|
this.locale = 'en-US';
|
|
10660
|
+
this._format = undefined;
|
|
10661
|
+
|
|
10662
|
+
/** @private */
|
|
10663
|
+
this._userSetFormat = false;
|
|
10660
10664
|
this.max = undefined;
|
|
10661
10665
|
this.maxLength = undefined;
|
|
10662
10666
|
this.min = undefined;
|
|
10663
10667
|
this.minLength = undefined;
|
|
10664
10668
|
this.noValidate = false;
|
|
10665
10669
|
this.onDark = false;
|
|
10666
|
-
// Raw values returned from the input mask before model normalization.
|
|
10667
|
-
this._rawMaskValue = undefined;
|
|
10668
10670
|
this.required = false;
|
|
10669
10671
|
this.setCustomValidityForType = undefined;
|
|
10670
10672
|
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
@@ -10822,7 +10824,8 @@ class BaseInput extends AuroElement {
|
|
|
10822
10824
|
*/
|
|
10823
10825
|
format: {
|
|
10824
10826
|
type: String,
|
|
10825
|
-
reflect: true
|
|
10827
|
+
reflect: true,
|
|
10828
|
+
noAccessor: true
|
|
10826
10829
|
},
|
|
10827
10830
|
|
|
10828
10831
|
/**
|
|
@@ -11160,6 +11163,34 @@ class BaseInput extends AuroElement {
|
|
|
11160
11163
|
return this.max && dateFormatter.isValidDate(this.max) ? dateFormatter.stringToDateInstance(this.max) : undefined;
|
|
11161
11164
|
}
|
|
11162
11165
|
|
|
11166
|
+
get format() {
|
|
11167
|
+
return this._format;
|
|
11168
|
+
}
|
|
11169
|
+
|
|
11170
|
+
/**
|
|
11171
|
+
* Overrides LitElement's generated accessor so we can track whether the
|
|
11172
|
+
* consumer explicitly set `format`. Locale-derived updates use
|
|
11173
|
+
* `_setFormatFromLocale` instead, which skips this flag.
|
|
11174
|
+
*/
|
|
11175
|
+
set format(value) {
|
|
11176
|
+
const oldValue = this._format;
|
|
11177
|
+
this._format = value ? value.toLowerCase() : value;
|
|
11178
|
+
this._userSetFormat = Boolean(value);
|
|
11179
|
+
this.requestUpdate('format', oldValue);
|
|
11180
|
+
}
|
|
11181
|
+
|
|
11182
|
+
/**
|
|
11183
|
+
* Sets format without marking it as user-set. Used by locale auto-derive
|
|
11184
|
+
* so that a subsequent locale change can still update the format.
|
|
11185
|
+
* @private
|
|
11186
|
+
* @param {string} value
|
|
11187
|
+
*/
|
|
11188
|
+
_setFormatFromLocale(value) {
|
|
11189
|
+
const oldValue = this._format;
|
|
11190
|
+
this._format = value ? value.toLowerCase() : value;
|
|
11191
|
+
this.requestUpdate('format', oldValue);
|
|
11192
|
+
}
|
|
11193
|
+
|
|
11163
11194
|
connectedCallback() {
|
|
11164
11195
|
super.connectedCallback();
|
|
11165
11196
|
|
|
@@ -11207,15 +11238,6 @@ class BaseInput extends AuroElement {
|
|
|
11207
11238
|
|
|
11208
11239
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
11209
11240
|
|
|
11210
|
-
// Normalize the format token to lowercase so case-mixed values supplied
|
|
11211
|
-
// via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
|
|
11212
|
-
// lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
|
|
11213
|
-
// format silently misses the map and leaves `setCustomValidityForType`
|
|
11214
|
-
// unset.
|
|
11215
|
-
if (this.format) {
|
|
11216
|
-
this.format = this.format.toLowerCase();
|
|
11217
|
-
}
|
|
11218
|
-
|
|
11219
11241
|
// use validity message override if declared when initializing the component
|
|
11220
11242
|
if (this.hasAttribute('setCustomValidity')) {
|
|
11221
11243
|
this.ValidityMessageOverride = this.setCustomValidity;
|
|
@@ -11322,12 +11344,10 @@ class BaseInput extends AuroElement {
|
|
|
11322
11344
|
updated(changedProperties) {
|
|
11323
11345
|
super.updated(changedProperties);
|
|
11324
11346
|
|
|
11325
|
-
// When locale changes
|
|
11326
|
-
// Only runs if the current format is still the previous locale's default (not user-overridden).
|
|
11347
|
+
// When locale changes, auto-derive format unless the consumer explicitly set one.
|
|
11327
11348
|
if (changedProperties.has('locale') && !changedProperties.has('format') && this.type === 'date') {
|
|
11328
|
-
|
|
11329
|
-
|
|
11330
|
-
this.format = getDateFormatFromLocale(this.locale);
|
|
11349
|
+
if (!this._userSetFormat) {
|
|
11350
|
+
this._setFormatFromLocale(getDateFormatFromLocale(this.locale));
|
|
11331
11351
|
}
|
|
11332
11352
|
}
|
|
11333
11353
|
|
|
@@ -11498,9 +11518,6 @@ class BaseInput extends AuroElement {
|
|
|
11498
11518
|
this.maskInstance.on('accept', () => {
|
|
11499
11519
|
if (this._configuringMask) return;
|
|
11500
11520
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
11501
|
-
if (this.type === "date") {
|
|
11502
|
-
this._rawMaskValue = this.maskInstance.value;
|
|
11503
|
-
}
|
|
11504
11521
|
});
|
|
11505
11522
|
|
|
11506
11523
|
// Mask fires 'complete' on the restore step below for any value that
|
|
@@ -11508,9 +11525,6 @@ class BaseInput extends AuroElement {
|
|
|
11508
11525
|
this.maskInstance.on('complete', () => {
|
|
11509
11526
|
if (this._configuringMask) return;
|
|
11510
11527
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
11511
|
-
if (this.type === "date") {
|
|
11512
|
-
this._rawMaskValue = this.maskInstance.value;
|
|
11513
|
-
}
|
|
11514
11528
|
});
|
|
11515
11529
|
|
|
11516
11530
|
// Write existingValue through the mask (not the input directly) so
|
|
@@ -11531,14 +11545,17 @@ class BaseInput extends AuroElement {
|
|
|
11531
11545
|
* @returns {void}
|
|
11532
11546
|
*/
|
|
11533
11547
|
notifyValueChanged() {
|
|
11534
|
-
|
|
11535
|
-
|
|
11536
|
-
|
|
11548
|
+
// This echoes Lit's reactive value update (and handleClickClear's
|
|
11549
|
+
// programmatic clear) — it is NOT a fresh user-input event. Mark it
|
|
11550
|
+
// `isProgrammatic` so consumers (e.g. auro-combobox) can distinguish
|
|
11551
|
+
// it from genuine user typing and skip clobbering their own
|
|
11552
|
+
// programmatic state during init-time renders.
|
|
11553
|
+
const inputEvent = new Event('input', {
|
|
11537
11554
|
bubbles: true,
|
|
11538
11555
|
composed: true,
|
|
11539
11556
|
});
|
|
11557
|
+
inputEvent.isProgrammatic = true;
|
|
11540
11558
|
|
|
11541
|
-
// Dispatched event to alert outside shadow DOM context of event firing.
|
|
11542
11559
|
this.dispatchEvent(inputEvent);
|
|
11543
11560
|
}
|
|
11544
11561
|
|
|
@@ -11747,8 +11764,7 @@ class BaseInput extends AuroElement {
|
|
|
11747
11764
|
|
|
11748
11765
|
// Set default date format if type=date and no format is defined
|
|
11749
11766
|
if (this.type === "date" && !this.format) {
|
|
11750
|
-
|
|
11751
|
-
this.format = this.util.getDateMaskFromLocale().toLowerCase();
|
|
11767
|
+
this._setFormatFromLocale(this.util.getDateMaskFromLocale().toLowerCase());
|
|
11752
11768
|
this.util.updateFormat(this.format);
|
|
11753
11769
|
}
|
|
11754
11770
|
}
|
|
@@ -11777,7 +11793,7 @@ class BaseInput extends AuroElement {
|
|
|
11777
11793
|
const creditCard = this.matchInputValueToCreditCard();
|
|
11778
11794
|
const previousFormat = this.format;
|
|
11779
11795
|
|
|
11780
|
-
this.
|
|
11796
|
+
this._setFormatFromLocale(creditCard.maskFormat);
|
|
11781
11797
|
|
|
11782
11798
|
this.maxLength = creditCard.formatLength;
|
|
11783
11799
|
this.minLength = creditCard.formatMinLength;
|
|
@@ -12251,7 +12267,7 @@ class AuroHelpText extends i$3 {
|
|
|
12251
12267
|
}
|
|
12252
12268
|
}
|
|
12253
12269
|
|
|
12254
|
-
var formkitVersion = '
|
|
12270
|
+
var formkitVersion = '202607061903';
|
|
12255
12271
|
|
|
12256
12272
|
/**
|
|
12257
12273
|
* @license
|
|
@@ -12549,20 +12565,15 @@ class AuroInput extends BaseInput {
|
|
|
12549
12565
|
* @returns {void}
|
|
12550
12566
|
*/
|
|
12551
12567
|
checkDisplayValueSlotChange() {
|
|
12552
|
-
|
|
12553
|
-
|
|
12554
|
-
//
|
|
12555
|
-
|
|
12556
|
-
|
|
12557
|
-
|
|
12558
|
-
|
|
12559
|
-
|
|
12560
|
-
|
|
12561
|
-
if (nodes.length > 0) {
|
|
12562
|
-
hasContent = true;
|
|
12563
|
-
}
|
|
12564
|
-
|
|
12565
|
-
this.hasDisplayValueContent = hasContent;
|
|
12568
|
+
// flatten:true resolves through auro-combobox's forwarding slot
|
|
12569
|
+
// (<slot name="displayValue" slot="displayValue">) so a clone appended
|
|
12570
|
+
// directly to auro-input's light DOM alongside the forwarder still
|
|
12571
|
+
// counts as content. The prior nodes[0].tagName === 'SLOT' recursion
|
|
12572
|
+
// discarded any siblings past the forwarder.
|
|
12573
|
+
const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
|
|
12574
|
+
const nodes = slot.assignedNodes({ flatten: true });
|
|
12575
|
+
|
|
12576
|
+
this.hasDisplayValueContent = nodes.length > 0;
|
|
12566
12577
|
}
|
|
12567
12578
|
|
|
12568
12579
|
firstUpdated() {
|
|
@@ -10657,14 +10657,16 @@ class BaseInput extends AuroElement {
|
|
|
10657
10657
|
this.label = 'Input label is undefined';
|
|
10658
10658
|
this.layout = 'classic';
|
|
10659
10659
|
this.locale = 'en-US';
|
|
10660
|
+
this._format = undefined;
|
|
10661
|
+
|
|
10662
|
+
/** @private */
|
|
10663
|
+
this._userSetFormat = false;
|
|
10660
10664
|
this.max = undefined;
|
|
10661
10665
|
this.maxLength = undefined;
|
|
10662
10666
|
this.min = undefined;
|
|
10663
10667
|
this.minLength = undefined;
|
|
10664
10668
|
this.noValidate = false;
|
|
10665
10669
|
this.onDark = false;
|
|
10666
|
-
// Raw values returned from the input mask before model normalization.
|
|
10667
|
-
this._rawMaskValue = undefined;
|
|
10668
10670
|
this.required = false;
|
|
10669
10671
|
this.setCustomValidityForType = undefined;
|
|
10670
10672
|
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
@@ -10822,7 +10824,8 @@ class BaseInput extends AuroElement {
|
|
|
10822
10824
|
*/
|
|
10823
10825
|
format: {
|
|
10824
10826
|
type: String,
|
|
10825
|
-
reflect: true
|
|
10827
|
+
reflect: true,
|
|
10828
|
+
noAccessor: true
|
|
10826
10829
|
},
|
|
10827
10830
|
|
|
10828
10831
|
/**
|
|
@@ -11160,6 +11163,34 @@ class BaseInput extends AuroElement {
|
|
|
11160
11163
|
return this.max && dateFormatter.isValidDate(this.max) ? dateFormatter.stringToDateInstance(this.max) : undefined;
|
|
11161
11164
|
}
|
|
11162
11165
|
|
|
11166
|
+
get format() {
|
|
11167
|
+
return this._format;
|
|
11168
|
+
}
|
|
11169
|
+
|
|
11170
|
+
/**
|
|
11171
|
+
* Overrides LitElement's generated accessor so we can track whether the
|
|
11172
|
+
* consumer explicitly set `format`. Locale-derived updates use
|
|
11173
|
+
* `_setFormatFromLocale` instead, which skips this flag.
|
|
11174
|
+
*/
|
|
11175
|
+
set format(value) {
|
|
11176
|
+
const oldValue = this._format;
|
|
11177
|
+
this._format = value ? value.toLowerCase() : value;
|
|
11178
|
+
this._userSetFormat = Boolean(value);
|
|
11179
|
+
this.requestUpdate('format', oldValue);
|
|
11180
|
+
}
|
|
11181
|
+
|
|
11182
|
+
/**
|
|
11183
|
+
* Sets format without marking it as user-set. Used by locale auto-derive
|
|
11184
|
+
* so that a subsequent locale change can still update the format.
|
|
11185
|
+
* @private
|
|
11186
|
+
* @param {string} value
|
|
11187
|
+
*/
|
|
11188
|
+
_setFormatFromLocale(value) {
|
|
11189
|
+
const oldValue = this._format;
|
|
11190
|
+
this._format = value ? value.toLowerCase() : value;
|
|
11191
|
+
this.requestUpdate('format', oldValue);
|
|
11192
|
+
}
|
|
11193
|
+
|
|
11163
11194
|
connectedCallback() {
|
|
11164
11195
|
super.connectedCallback();
|
|
11165
11196
|
|
|
@@ -11207,15 +11238,6 @@ class BaseInput extends AuroElement {
|
|
|
11207
11238
|
|
|
11208
11239
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
11209
11240
|
|
|
11210
|
-
// Normalize the format token to lowercase so case-mixed values supplied
|
|
11211
|
-
// via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
|
|
11212
|
-
// lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
|
|
11213
|
-
// format silently misses the map and leaves `setCustomValidityForType`
|
|
11214
|
-
// unset.
|
|
11215
|
-
if (this.format) {
|
|
11216
|
-
this.format = this.format.toLowerCase();
|
|
11217
|
-
}
|
|
11218
|
-
|
|
11219
11241
|
// use validity message override if declared when initializing the component
|
|
11220
11242
|
if (this.hasAttribute('setCustomValidity')) {
|
|
11221
11243
|
this.ValidityMessageOverride = this.setCustomValidity;
|
|
@@ -11322,12 +11344,10 @@ class BaseInput extends AuroElement {
|
|
|
11322
11344
|
updated(changedProperties) {
|
|
11323
11345
|
super.updated(changedProperties);
|
|
11324
11346
|
|
|
11325
|
-
// When locale changes
|
|
11326
|
-
// Only runs if the current format is still the previous locale's default (not user-overridden).
|
|
11347
|
+
// When locale changes, auto-derive format unless the consumer explicitly set one.
|
|
11327
11348
|
if (changedProperties.has('locale') && !changedProperties.has('format') && this.type === 'date') {
|
|
11328
|
-
|
|
11329
|
-
|
|
11330
|
-
this.format = getDateFormatFromLocale(this.locale);
|
|
11349
|
+
if (!this._userSetFormat) {
|
|
11350
|
+
this._setFormatFromLocale(getDateFormatFromLocale(this.locale));
|
|
11331
11351
|
}
|
|
11332
11352
|
}
|
|
11333
11353
|
|
|
@@ -11498,9 +11518,6 @@ class BaseInput extends AuroElement {
|
|
|
11498
11518
|
this.maskInstance.on('accept', () => {
|
|
11499
11519
|
if (this._configuringMask) return;
|
|
11500
11520
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
11501
|
-
if (this.type === "date") {
|
|
11502
|
-
this._rawMaskValue = this.maskInstance.value;
|
|
11503
|
-
}
|
|
11504
11521
|
});
|
|
11505
11522
|
|
|
11506
11523
|
// Mask fires 'complete' on the restore step below for any value that
|
|
@@ -11508,9 +11525,6 @@ class BaseInput extends AuroElement {
|
|
|
11508
11525
|
this.maskInstance.on('complete', () => {
|
|
11509
11526
|
if (this._configuringMask) return;
|
|
11510
11527
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
11511
|
-
if (this.type === "date") {
|
|
11512
|
-
this._rawMaskValue = this.maskInstance.value;
|
|
11513
|
-
}
|
|
11514
11528
|
});
|
|
11515
11529
|
|
|
11516
11530
|
// Write existingValue through the mask (not the input directly) so
|
|
@@ -11531,14 +11545,17 @@ class BaseInput extends AuroElement {
|
|
|
11531
11545
|
* @returns {void}
|
|
11532
11546
|
*/
|
|
11533
11547
|
notifyValueChanged() {
|
|
11534
|
-
|
|
11535
|
-
|
|
11536
|
-
|
|
11548
|
+
// This echoes Lit's reactive value update (and handleClickClear's
|
|
11549
|
+
// programmatic clear) — it is NOT a fresh user-input event. Mark it
|
|
11550
|
+
// `isProgrammatic` so consumers (e.g. auro-combobox) can distinguish
|
|
11551
|
+
// it from genuine user typing and skip clobbering their own
|
|
11552
|
+
// programmatic state during init-time renders.
|
|
11553
|
+
const inputEvent = new Event('input', {
|
|
11537
11554
|
bubbles: true,
|
|
11538
11555
|
composed: true,
|
|
11539
11556
|
});
|
|
11557
|
+
inputEvent.isProgrammatic = true;
|
|
11540
11558
|
|
|
11541
|
-
// Dispatched event to alert outside shadow DOM context of event firing.
|
|
11542
11559
|
this.dispatchEvent(inputEvent);
|
|
11543
11560
|
}
|
|
11544
11561
|
|
|
@@ -11747,8 +11764,7 @@ class BaseInput extends AuroElement {
|
|
|
11747
11764
|
|
|
11748
11765
|
// Set default date format if type=date and no format is defined
|
|
11749
11766
|
if (this.type === "date" && !this.format) {
|
|
11750
|
-
|
|
11751
|
-
this.format = this.util.getDateMaskFromLocale().toLowerCase();
|
|
11767
|
+
this._setFormatFromLocale(this.util.getDateMaskFromLocale().toLowerCase());
|
|
11752
11768
|
this.util.updateFormat(this.format);
|
|
11753
11769
|
}
|
|
11754
11770
|
}
|
|
@@ -11777,7 +11793,7 @@ class BaseInput extends AuroElement {
|
|
|
11777
11793
|
const creditCard = this.matchInputValueToCreditCard();
|
|
11778
11794
|
const previousFormat = this.format;
|
|
11779
11795
|
|
|
11780
|
-
this.
|
|
11796
|
+
this._setFormatFromLocale(creditCard.maskFormat);
|
|
11781
11797
|
|
|
11782
11798
|
this.maxLength = creditCard.formatLength;
|
|
11783
11799
|
this.minLength = creditCard.formatMinLength;
|
|
@@ -12251,7 +12267,7 @@ class AuroHelpText extends i$3 {
|
|
|
12251
12267
|
}
|
|
12252
12268
|
}
|
|
12253
12269
|
|
|
12254
|
-
var formkitVersion = '
|
|
12270
|
+
var formkitVersion = '202607061903';
|
|
12255
12271
|
|
|
12256
12272
|
/**
|
|
12257
12273
|
* @license
|
|
@@ -12549,20 +12565,15 @@ class AuroInput extends BaseInput {
|
|
|
12549
12565
|
* @returns {void}
|
|
12550
12566
|
*/
|
|
12551
12567
|
checkDisplayValueSlotChange() {
|
|
12552
|
-
|
|
12553
|
-
|
|
12554
|
-
//
|
|
12555
|
-
|
|
12556
|
-
|
|
12557
|
-
|
|
12558
|
-
|
|
12559
|
-
|
|
12560
|
-
|
|
12561
|
-
if (nodes.length > 0) {
|
|
12562
|
-
hasContent = true;
|
|
12563
|
-
}
|
|
12564
|
-
|
|
12565
|
-
this.hasDisplayValueContent = hasContent;
|
|
12568
|
+
// flatten:true resolves through auro-combobox's forwarding slot
|
|
12569
|
+
// (<slot name="displayValue" slot="displayValue">) so a clone appended
|
|
12570
|
+
// directly to auro-input's light DOM alongside the forwarder still
|
|
12571
|
+
// counts as content. The prior nodes[0].tagName === 'SLOT' recursion
|
|
12572
|
+
// discarded any siblings past the forwarder.
|
|
12573
|
+
const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
|
|
12574
|
+
const nodes = slot.assignedNodes({ flatten: true });
|
|
12575
|
+
|
|
12576
|
+
this.hasDisplayValueContent = nodes.length > 0;
|
|
12566
12577
|
}
|
|
12567
12578
|
|
|
12568
12579
|
firstUpdated() {
|
|
@@ -115,6 +115,7 @@ export default class BaseInput extends AuroElement {
|
|
|
115
115
|
format: {
|
|
116
116
|
type: StringConstructor;
|
|
117
117
|
reflect: boolean;
|
|
118
|
+
noAccessor: boolean;
|
|
118
119
|
};
|
|
119
120
|
/**
|
|
120
121
|
* Flag to indicate if the input currently has focus.
|
|
@@ -406,13 +407,15 @@ export default class BaseInput extends AuroElement {
|
|
|
406
407
|
/** @private */
|
|
407
408
|
private label;
|
|
408
409
|
locale: string;
|
|
410
|
+
_format: any;
|
|
411
|
+
/** @private */
|
|
412
|
+
private _userSetFormat;
|
|
409
413
|
max: any;
|
|
410
414
|
maxLength: any;
|
|
411
415
|
min: any;
|
|
412
416
|
minLength: any;
|
|
413
417
|
noValidate: boolean;
|
|
414
418
|
onDark: boolean;
|
|
415
|
-
_rawMaskValue: string | undefined;
|
|
416
419
|
required: boolean;
|
|
417
420
|
setCustomValidityForType: string | undefined;
|
|
418
421
|
/** @private */
|
|
@@ -430,7 +433,7 @@ export default class BaseInput extends AuroElement {
|
|
|
430
433
|
private validation;
|
|
431
434
|
/** @private */
|
|
432
435
|
private validationCCLength;
|
|
433
|
-
value:
|
|
436
|
+
value: string | undefined;
|
|
434
437
|
/**
|
|
435
438
|
* Read-only Date object representation of `value` for full date formats.
|
|
436
439
|
* @returns {Date|undefined}
|
|
@@ -446,12 +449,25 @@ export default class BaseInput extends AuroElement {
|
|
|
446
449
|
* @returns {Date|undefined}
|
|
447
450
|
*/
|
|
448
451
|
get maxObject(): Date | undefined;
|
|
452
|
+
/**
|
|
453
|
+
* Overrides LitElement's generated accessor so we can track whether the
|
|
454
|
+
* consumer explicitly set `format`. Locale-derived updates use
|
|
455
|
+
* `_setFormatFromLocale` instead, which skips this flag.
|
|
456
|
+
*/
|
|
457
|
+
set format(value: any);
|
|
458
|
+
get format(): any;
|
|
459
|
+
/**
|
|
460
|
+
* Sets format without marking it as user-set. Used by locale auto-derive
|
|
461
|
+
* so that a subsequent locale change can still update the format.
|
|
462
|
+
* @private
|
|
463
|
+
* @param {string} value
|
|
464
|
+
*/
|
|
465
|
+
private _setFormatFromLocale;
|
|
449
466
|
firstUpdated(): void;
|
|
450
467
|
wrapperElement: Element | null | undefined;
|
|
451
468
|
inputElement: HTMLInputElement | null | undefined;
|
|
452
469
|
labelElement: HTMLLabelElement | null | undefined;
|
|
453
470
|
inputId: string | undefined;
|
|
454
|
-
format: any;
|
|
455
471
|
ValidityMessageOverride: any;
|
|
456
472
|
/**
|
|
457
473
|
* Patches the input element to dispatch an 'input' event whenever its value is set programmatically.
|
|
@@ -487,7 +503,7 @@ export default class BaseInput extends AuroElement {
|
|
|
487
503
|
*/
|
|
488
504
|
private configureAutoFormatting;
|
|
489
505
|
_configuringMask: boolean | undefined;
|
|
490
|
-
maskInstance: import("imask").InputMask<
|
|
506
|
+
maskInstance: import("imask").InputMask<object> | null | undefined;
|
|
491
507
|
/**
|
|
492
508
|
* Sends event notifying that the input has changed it's value.
|
|
493
509
|
* @private
|