@aurodesignsystem/auro-formkit 3.3.0-beta.2 → 3.3.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/CHANGELOG.md +23 -0
- package/components/checkbox/README.md +1 -1
- package/components/checkbox/demo/api.md +1 -0
- package/components/checkbox/demo/api.min.js +34 -5
- package/components/checkbox/demo/index.min.js +34 -5
- package/components/checkbox/demo/readme.md +1 -1
- package/components/checkbox/dist/auro-checkbox-group.d.ts +7 -0
- package/components/checkbox/dist/auro-checkbox.d.ts +6 -0
- package/components/checkbox/dist/index.js +34 -5
- package/components/checkbox/dist/registered.js +34 -5
- package/components/combobox/README.md +1 -1
- package/components/combobox/demo/api.min.js +77 -57
- package/components/combobox/demo/index.min.js +77 -57
- package/components/combobox/demo/readme.md +1 -1
- package/components/combobox/dist/auro-combobox.d.ts +2 -10
- package/components/combobox/dist/index.js +77 -57
- package/components/combobox/dist/registered.js +77 -57
- package/components/counter/README.md +1 -1
- package/components/counter/demo/api.min.js +12 -5
- package/components/counter/demo/index.min.js +12 -5
- package/components/counter/demo/readme.md +1 -1
- package/components/counter/dist/index.js +12 -5
- package/components/counter/dist/registered.js +12 -5
- package/components/datepicker/README.md +1 -1
- package/components/datepicker/demo/api.min.js +54 -34
- package/components/datepicker/demo/index.min.js +54 -34
- package/components/datepicker/demo/readme.md +1 -1
- package/components/datepicker/dist/auro-datepicker.d.ts +8 -0
- package/components/datepicker/dist/index.js +54 -34
- package/components/datepicker/dist/registered.js +54 -34
- package/components/dropdown/README.md +1 -1
- package/components/dropdown/demo/readme.md +1 -1
- package/components/form/README.md +1 -1
- package/components/form/demo/readme.md +1 -1
- package/components/input/README.md +1 -1
- package/components/input/demo/api.min.js +26 -14
- package/components/input/demo/index.min.js +26 -14
- package/components/input/demo/readme.md +1 -1
- package/components/input/dist/base-input.d.ts +8 -0
- package/components/input/dist/index.js +26 -14
- package/components/input/dist/registered.js +26 -14
- package/components/menu/README.md +1 -1
- package/components/menu/demo/readme.md +1 -1
- package/components/radio/README.md +1 -1
- package/components/radio/demo/api.md +1 -0
- package/components/radio/demo/api.min.js +33 -9
- package/components/radio/demo/index.min.js +33 -9
- package/components/radio/demo/readme.md +1 -1
- package/components/radio/dist/auro-radio-group.d.ts +8 -0
- package/components/radio/dist/auro-radio.d.ts +5 -0
- package/components/radio/dist/index.js +33 -9
- package/components/radio/dist/registered.js +33 -9
- package/components/select/README.md +1 -1
- package/components/select/demo/api.min.js +25 -15
- package/components/select/demo/index.min.js +25 -15
- package/components/select/demo/readme.md +1 -1
- package/components/select/dist/auro-select.d.ts +8 -0
- package/components/select/dist/index.js +25 -15
- package/components/select/dist/registered.js +25 -15
- package/package.json +1 -1
|
@@ -528,6 +528,7 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
528
528
|
reset(elem) {
|
|
529
529
|
elem.validity = undefined;
|
|
530
530
|
elem.value = undefined;
|
|
531
|
+
elem.touched = false;
|
|
531
532
|
|
|
532
533
|
// Resets the second value of the datepicker in range state
|
|
533
534
|
if (elem.valueEnd) {
|
|
@@ -665,7 +666,7 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
665
666
|
} else if (elem.type === 'date' && elem.value?.length > 0) {
|
|
666
667
|
|
|
667
668
|
// Guard Clause: if the value is too short
|
|
668
|
-
if (elem.value
|
|
669
|
+
if (elem.value?.length < elem.lengthForType) {
|
|
669
670
|
|
|
670
671
|
elem.validity = 'tooShort';
|
|
671
672
|
elem.errorMessage = elem.setCustomValidityForType || elem.setCustomValidity || '';
|
|
@@ -735,11 +736,17 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
735
736
|
this.getAuroInputs(elem);
|
|
736
737
|
|
|
737
738
|
// Validate only if noValidate is not true and the input does not have focus
|
|
738
|
-
|
|
739
|
+
let validationShouldRun =
|
|
740
|
+
force ||
|
|
741
|
+
(!elem.contains(document.activeElement) &&
|
|
742
|
+
(elem.touched ||
|
|
743
|
+
(!elem.touched && typeof elem.value !== "undefined"))) ||
|
|
744
|
+
elem.validateOnInput;
|
|
739
745
|
|
|
740
746
|
if (elem.hasAttribute('error')) {
|
|
741
747
|
elem.validity = 'customError';
|
|
742
748
|
elem.errorMessage = elem.setCustomValidityCustomError || elem.error || elem.setCustomValidity || '';
|
|
749
|
+
validationShouldRun = false;
|
|
743
750
|
} else if (validationShouldRun) {
|
|
744
751
|
elem.validity = 'valid';
|
|
745
752
|
elem.errorMessage = '';
|
|
@@ -760,7 +767,7 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
760
767
|
}
|
|
761
768
|
}
|
|
762
769
|
|
|
763
|
-
if (!hasValue && elem.required) {
|
|
770
|
+
if (!hasValue && elem.required && elem.touched) {
|
|
764
771
|
elem.validity = 'valueMissing';
|
|
765
772
|
elem.errorMessage = elem.setCustomValidityValueMissing || elem.setCustomValidity || '';
|
|
766
773
|
} else if (this.runtimeUtils.elementMatch(elem, 'auro-input')) {
|
|
@@ -771,7 +778,7 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
771
778
|
}
|
|
772
779
|
}
|
|
773
780
|
|
|
774
|
-
if (this.auroInputElements?.length > 0) {
|
|
781
|
+
if (this.auroInputElements?.length > 0 && elem.validity !== "valueMissing") {
|
|
775
782
|
elem.validity = this.auroInputElements[0].validity;
|
|
776
783
|
elem.errorMessage = this.auroInputElements[0].errorMessage;
|
|
777
784
|
|
|
@@ -850,7 +857,7 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
850
857
|
}
|
|
851
858
|
}
|
|
852
859
|
} else {
|
|
853
|
-
elem.errorMessage =
|
|
860
|
+
elem.errorMessage = '';
|
|
854
861
|
}
|
|
855
862
|
}
|
|
856
863
|
};
|
|
@@ -20499,6 +20506,7 @@ class AuroFormValidation {
|
|
|
20499
20506
|
reset(elem) {
|
|
20500
20507
|
elem.validity = undefined;
|
|
20501
20508
|
elem.value = undefined;
|
|
20509
|
+
elem.touched = false;
|
|
20502
20510
|
|
|
20503
20511
|
// Resets the second value of the datepicker in range state
|
|
20504
20512
|
if (elem.valueEnd) {
|
|
@@ -20636,7 +20644,7 @@ class AuroFormValidation {
|
|
|
20636
20644
|
} else if (elem.type === 'date' && elem.value?.length > 0) {
|
|
20637
20645
|
|
|
20638
20646
|
// Guard Clause: if the value is too short
|
|
20639
|
-
if (elem.value
|
|
20647
|
+
if (elem.value?.length < elem.lengthForType) {
|
|
20640
20648
|
|
|
20641
20649
|
elem.validity = 'tooShort';
|
|
20642
20650
|
elem.errorMessage = elem.setCustomValidityForType || elem.setCustomValidity || '';
|
|
@@ -20706,11 +20714,17 @@ class AuroFormValidation {
|
|
|
20706
20714
|
this.getAuroInputs(elem);
|
|
20707
20715
|
|
|
20708
20716
|
// Validate only if noValidate is not true and the input does not have focus
|
|
20709
|
-
|
|
20717
|
+
let validationShouldRun =
|
|
20718
|
+
force ||
|
|
20719
|
+
(!elem.contains(document.activeElement) &&
|
|
20720
|
+
(elem.touched ||
|
|
20721
|
+
(!elem.touched && typeof elem.value !== "undefined"))) ||
|
|
20722
|
+
elem.validateOnInput;
|
|
20710
20723
|
|
|
20711
20724
|
if (elem.hasAttribute('error')) {
|
|
20712
20725
|
elem.validity = 'customError';
|
|
20713
20726
|
elem.errorMessage = elem.setCustomValidityCustomError || elem.error || elem.setCustomValidity || '';
|
|
20727
|
+
validationShouldRun = false;
|
|
20714
20728
|
} else if (validationShouldRun) {
|
|
20715
20729
|
elem.validity = 'valid';
|
|
20716
20730
|
elem.errorMessage = '';
|
|
@@ -20731,7 +20745,7 @@ class AuroFormValidation {
|
|
|
20731
20745
|
}
|
|
20732
20746
|
}
|
|
20733
20747
|
|
|
20734
|
-
if (!hasValue && elem.required) {
|
|
20748
|
+
if (!hasValue && elem.required && elem.touched) {
|
|
20735
20749
|
elem.validity = 'valueMissing';
|
|
20736
20750
|
elem.errorMessage = elem.setCustomValidityValueMissing || elem.setCustomValidity || '';
|
|
20737
20751
|
} else if (this.runtimeUtils.elementMatch(elem, 'auro-input')) {
|
|
@@ -20742,7 +20756,7 @@ class AuroFormValidation {
|
|
|
20742
20756
|
}
|
|
20743
20757
|
}
|
|
20744
20758
|
|
|
20745
|
-
if (this.auroInputElements?.length > 0) {
|
|
20759
|
+
if (this.auroInputElements?.length > 0 && elem.validity !== "valueMissing") {
|
|
20746
20760
|
elem.validity = this.auroInputElements[0].validity;
|
|
20747
20761
|
elem.errorMessage = this.auroInputElements[0].errorMessage;
|
|
20748
20762
|
|
|
@@ -20821,7 +20835,7 @@ class AuroFormValidation {
|
|
|
20821
20835
|
}
|
|
20822
20836
|
}
|
|
20823
20837
|
} else {
|
|
20824
|
-
elem.errorMessage =
|
|
20838
|
+
elem.errorMessage = '';
|
|
20825
20839
|
}
|
|
20826
20840
|
}
|
|
20827
20841
|
}
|
|
@@ -20872,6 +20886,7 @@ class BaseInput extends i$2 {
|
|
|
20872
20886
|
* @returns {void}
|
|
20873
20887
|
*/
|
|
20874
20888
|
privateDefaults() {
|
|
20889
|
+
this.touched = false;
|
|
20875
20890
|
this.util = new AuroInputUtilities();
|
|
20876
20891
|
this.validation = new AuroFormValidation();
|
|
20877
20892
|
this.inputIconName = undefined;
|
|
@@ -21233,6 +21248,18 @@ class BaseInput extends i$2 {
|
|
|
21233
21248
|
validity: {
|
|
21234
21249
|
type: String,
|
|
21235
21250
|
reflect: true
|
|
21251
|
+
},
|
|
21252
|
+
|
|
21253
|
+
/**
|
|
21254
|
+
* Indicates whether the input is in a dirty state (has been interacted with).
|
|
21255
|
+
* @type {boolean}
|
|
21256
|
+
* @default false
|
|
21257
|
+
* @private
|
|
21258
|
+
*/
|
|
21259
|
+
touched: {
|
|
21260
|
+
type: Boolean,
|
|
21261
|
+
reflect: true,
|
|
21262
|
+
attribute: false
|
|
21236
21263
|
}
|
|
21237
21264
|
};
|
|
21238
21265
|
}
|
|
@@ -21519,15 +21546,7 @@ class BaseInput extends i$2 {
|
|
|
21519
21546
|
*/
|
|
21520
21547
|
handleFocusin() {
|
|
21521
21548
|
|
|
21522
|
-
|
|
21523
|
-
* The input is considered to be in it's initial state based on
|
|
21524
|
-
* if this.value === undefined. The first time we interact with the
|
|
21525
|
-
* input manually, by applying focusin, we need to flag the
|
|
21526
|
-
* input as no longer in the initial state.
|
|
21527
|
-
*/
|
|
21528
|
-
if (this.value === undefined) {
|
|
21529
|
-
this.value = '';
|
|
21530
|
-
}
|
|
21549
|
+
this.touched = true;
|
|
21531
21550
|
}
|
|
21532
21551
|
|
|
21533
21552
|
/**
|
|
@@ -23102,6 +23121,7 @@ class AuroDatePicker extends i$2 {
|
|
|
23102
23121
|
this.calendarRenderUtil.updateCentralDate(this, new Date());
|
|
23103
23122
|
}
|
|
23104
23123
|
|
|
23124
|
+
this.touched = false;
|
|
23105
23125
|
this.disabled = false;
|
|
23106
23126
|
this.required = false;
|
|
23107
23127
|
this.onDark = false;
|
|
@@ -23433,6 +23453,18 @@ class AuroDatePicker extends i$2 {
|
|
|
23433
23453
|
*/
|
|
23434
23454
|
valueEnd: {
|
|
23435
23455
|
type: String
|
|
23456
|
+
},
|
|
23457
|
+
|
|
23458
|
+
/**
|
|
23459
|
+
* Indicates whether the datepicker is in a dirty state (has been interacted with).
|
|
23460
|
+
* @type {boolean}
|
|
23461
|
+
* @default false
|
|
23462
|
+
* @private
|
|
23463
|
+
*/
|
|
23464
|
+
touched: {
|
|
23465
|
+
type: Boolean,
|
|
23466
|
+
reflect: true,
|
|
23467
|
+
attribute: false
|
|
23436
23468
|
}
|
|
23437
23469
|
};
|
|
23438
23470
|
}
|
|
@@ -23709,27 +23741,15 @@ class AuroDatePicker extends i$2 {
|
|
|
23709
23741
|
configureDatepicker() {
|
|
23710
23742
|
this.addEventListener('focusin', () => {
|
|
23711
23743
|
|
|
23712
|
-
|
|
23713
|
-
* The datepicker is considered to be in it's initial state based on
|
|
23714
|
-
* if this.value === undefined. The first time we interact with the
|
|
23715
|
-
* datepicker manually, by applying focusin, we need to flag the
|
|
23716
|
-
* datepicker as no longer in the initial state.
|
|
23717
|
-
*/
|
|
23718
|
-
if (this.value === undefined) {
|
|
23719
|
-
this.value = '';
|
|
23720
|
-
}
|
|
23721
|
-
|
|
23722
|
-
if (this.valueEnd === undefined) {
|
|
23723
|
-
this.valueEnd = '';
|
|
23724
|
-
}
|
|
23744
|
+
this.touched = true;
|
|
23725
23745
|
});
|
|
23726
23746
|
|
|
23727
23747
|
this.addEventListener('focusout', (evt) => {
|
|
23728
|
-
if (!this.noValidate && !evt.detail.expanded && this.
|
|
23748
|
+
if (!this.noValidate && !evt.detail.expanded && this.touched) {
|
|
23729
23749
|
if (!this.contains(document.activeElement)) {
|
|
23730
23750
|
this.validation.validate(this.inputList[0]);
|
|
23731
23751
|
|
|
23732
|
-
if (this.inputList[1] && this.inputList[1].
|
|
23752
|
+
if (this.inputList[1] && this.inputList[1].touched) {
|
|
23733
23753
|
this.validation.validate(this.inputList[1]);
|
|
23734
23754
|
}
|
|
23735
23755
|
}
|
|
@@ -104,7 +104,7 @@ The use of any Auro custom element has a dependency on the [Auro Design Tokens](
|
|
|
104
104
|
In cases where the project is not able to process JS assets, there are pre-processed assets available for use. Legacy browsers such as IE11 are no longer supported.
|
|
105
105
|
|
|
106
106
|
```html
|
|
107
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-formkit@3.2
|
|
107
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-formkit@3.3.0-beta.2/auro-datepicker/+esm"></script>
|
|
108
108
|
```
|
|
109
109
|
<!-- AURO-GENERATED-CONTENT:END -->
|
|
110
110
|
|
|
@@ -237,6 +237,13 @@ export class AuroDatePicker extends LitElement {
|
|
|
237
237
|
valueEnd: {
|
|
238
238
|
type: StringConstructor;
|
|
239
239
|
};
|
|
240
|
+
/**
|
|
241
|
+
* Indicates whether the datepicker is in a dirty state (has been interacted with).
|
|
242
|
+
* @type {boolean}
|
|
243
|
+
* @default false
|
|
244
|
+
* @private
|
|
245
|
+
*/
|
|
246
|
+
touched: boolean;
|
|
240
247
|
};
|
|
241
248
|
static get styles(): import("lit").CSSResult[];
|
|
242
249
|
/**
|
|
@@ -257,6 +264,7 @@ export class AuroDatePicker extends LitElement {
|
|
|
257
264
|
*/
|
|
258
265
|
private calendarRenderUtil;
|
|
259
266
|
formattedStartDate: boolean;
|
|
267
|
+
touched: boolean;
|
|
260
268
|
disabled: boolean;
|
|
261
269
|
required: boolean;
|
|
262
270
|
onDark: boolean;
|
|
@@ -502,6 +502,7 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
502
502
|
reset(elem) {
|
|
503
503
|
elem.validity = undefined;
|
|
504
504
|
elem.value = undefined;
|
|
505
|
+
elem.touched = false;
|
|
505
506
|
|
|
506
507
|
// Resets the second value of the datepicker in range state
|
|
507
508
|
if (elem.valueEnd) {
|
|
@@ -639,7 +640,7 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
639
640
|
} else if (elem.type === 'date' && elem.value?.length > 0) {
|
|
640
641
|
|
|
641
642
|
// Guard Clause: if the value is too short
|
|
642
|
-
if (elem.value
|
|
643
|
+
if (elem.value?.length < elem.lengthForType) {
|
|
643
644
|
|
|
644
645
|
elem.validity = 'tooShort';
|
|
645
646
|
elem.errorMessage = elem.setCustomValidityForType || elem.setCustomValidity || '';
|
|
@@ -709,11 +710,17 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
709
710
|
this.getAuroInputs(elem);
|
|
710
711
|
|
|
711
712
|
// Validate only if noValidate is not true and the input does not have focus
|
|
712
|
-
|
|
713
|
+
let validationShouldRun =
|
|
714
|
+
force ||
|
|
715
|
+
(!elem.contains(document.activeElement) &&
|
|
716
|
+
(elem.touched ||
|
|
717
|
+
(!elem.touched && typeof elem.value !== "undefined"))) ||
|
|
718
|
+
elem.validateOnInput;
|
|
713
719
|
|
|
714
720
|
if (elem.hasAttribute('error')) {
|
|
715
721
|
elem.validity = 'customError';
|
|
716
722
|
elem.errorMessage = elem.setCustomValidityCustomError || elem.error || elem.setCustomValidity || '';
|
|
723
|
+
validationShouldRun = false;
|
|
717
724
|
} else if (validationShouldRun) {
|
|
718
725
|
elem.validity = 'valid';
|
|
719
726
|
elem.errorMessage = '';
|
|
@@ -734,7 +741,7 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
734
741
|
}
|
|
735
742
|
}
|
|
736
743
|
|
|
737
|
-
if (!hasValue && elem.required) {
|
|
744
|
+
if (!hasValue && elem.required && elem.touched) {
|
|
738
745
|
elem.validity = 'valueMissing';
|
|
739
746
|
elem.errorMessage = elem.setCustomValidityValueMissing || elem.setCustomValidity || '';
|
|
740
747
|
} else if (this.runtimeUtils.elementMatch(elem, 'auro-input')) {
|
|
@@ -745,7 +752,7 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
745
752
|
}
|
|
746
753
|
}
|
|
747
754
|
|
|
748
|
-
if (this.auroInputElements?.length > 0) {
|
|
755
|
+
if (this.auroInputElements?.length > 0 && elem.validity !== "valueMissing") {
|
|
749
756
|
elem.validity = this.auroInputElements[0].validity;
|
|
750
757
|
elem.errorMessage = this.auroInputElements[0].errorMessage;
|
|
751
758
|
|
|
@@ -824,7 +831,7 @@ let AuroFormValidation$1 = class AuroFormValidation {
|
|
|
824
831
|
}
|
|
825
832
|
}
|
|
826
833
|
} else {
|
|
827
|
-
elem.errorMessage =
|
|
834
|
+
elem.errorMessage = '';
|
|
828
835
|
}
|
|
829
836
|
}
|
|
830
837
|
};
|
|
@@ -20435,6 +20442,7 @@ class AuroFormValidation {
|
|
|
20435
20442
|
reset(elem) {
|
|
20436
20443
|
elem.validity = undefined;
|
|
20437
20444
|
elem.value = undefined;
|
|
20445
|
+
elem.touched = false;
|
|
20438
20446
|
|
|
20439
20447
|
// Resets the second value of the datepicker in range state
|
|
20440
20448
|
if (elem.valueEnd) {
|
|
@@ -20572,7 +20580,7 @@ class AuroFormValidation {
|
|
|
20572
20580
|
} else if (elem.type === 'date' && elem.value?.length > 0) {
|
|
20573
20581
|
|
|
20574
20582
|
// Guard Clause: if the value is too short
|
|
20575
|
-
if (elem.value
|
|
20583
|
+
if (elem.value?.length < elem.lengthForType) {
|
|
20576
20584
|
|
|
20577
20585
|
elem.validity = 'tooShort';
|
|
20578
20586
|
elem.errorMessage = elem.setCustomValidityForType || elem.setCustomValidity || '';
|
|
@@ -20642,11 +20650,17 @@ class AuroFormValidation {
|
|
|
20642
20650
|
this.getAuroInputs(elem);
|
|
20643
20651
|
|
|
20644
20652
|
// Validate only if noValidate is not true and the input does not have focus
|
|
20645
|
-
|
|
20653
|
+
let validationShouldRun =
|
|
20654
|
+
force ||
|
|
20655
|
+
(!elem.contains(document.activeElement) &&
|
|
20656
|
+
(elem.touched ||
|
|
20657
|
+
(!elem.touched && typeof elem.value !== "undefined"))) ||
|
|
20658
|
+
elem.validateOnInput;
|
|
20646
20659
|
|
|
20647
20660
|
if (elem.hasAttribute('error')) {
|
|
20648
20661
|
elem.validity = 'customError';
|
|
20649
20662
|
elem.errorMessage = elem.setCustomValidityCustomError || elem.error || elem.setCustomValidity || '';
|
|
20663
|
+
validationShouldRun = false;
|
|
20650
20664
|
} else if (validationShouldRun) {
|
|
20651
20665
|
elem.validity = 'valid';
|
|
20652
20666
|
elem.errorMessage = '';
|
|
@@ -20667,7 +20681,7 @@ class AuroFormValidation {
|
|
|
20667
20681
|
}
|
|
20668
20682
|
}
|
|
20669
20683
|
|
|
20670
|
-
if (!hasValue && elem.required) {
|
|
20684
|
+
if (!hasValue && elem.required && elem.touched) {
|
|
20671
20685
|
elem.validity = 'valueMissing';
|
|
20672
20686
|
elem.errorMessage = elem.setCustomValidityValueMissing || elem.setCustomValidity || '';
|
|
20673
20687
|
} else if (this.runtimeUtils.elementMatch(elem, 'auro-input')) {
|
|
@@ -20678,7 +20692,7 @@ class AuroFormValidation {
|
|
|
20678
20692
|
}
|
|
20679
20693
|
}
|
|
20680
20694
|
|
|
20681
|
-
if (this.auroInputElements?.length > 0) {
|
|
20695
|
+
if (this.auroInputElements?.length > 0 && elem.validity !== "valueMissing") {
|
|
20682
20696
|
elem.validity = this.auroInputElements[0].validity;
|
|
20683
20697
|
elem.errorMessage = this.auroInputElements[0].errorMessage;
|
|
20684
20698
|
|
|
@@ -20757,7 +20771,7 @@ class AuroFormValidation {
|
|
|
20757
20771
|
}
|
|
20758
20772
|
}
|
|
20759
20773
|
} else {
|
|
20760
|
-
elem.errorMessage =
|
|
20774
|
+
elem.errorMessage = '';
|
|
20761
20775
|
}
|
|
20762
20776
|
}
|
|
20763
20777
|
}
|
|
@@ -20808,6 +20822,7 @@ class BaseInput extends LitElement {
|
|
|
20808
20822
|
* @returns {void}
|
|
20809
20823
|
*/
|
|
20810
20824
|
privateDefaults() {
|
|
20825
|
+
this.touched = false;
|
|
20811
20826
|
this.util = new AuroInputUtilities();
|
|
20812
20827
|
this.validation = new AuroFormValidation();
|
|
20813
20828
|
this.inputIconName = undefined;
|
|
@@ -21169,6 +21184,18 @@ class BaseInput extends LitElement {
|
|
|
21169
21184
|
validity: {
|
|
21170
21185
|
type: String,
|
|
21171
21186
|
reflect: true
|
|
21187
|
+
},
|
|
21188
|
+
|
|
21189
|
+
/**
|
|
21190
|
+
* Indicates whether the input is in a dirty state (has been interacted with).
|
|
21191
|
+
* @type {boolean}
|
|
21192
|
+
* @default false
|
|
21193
|
+
* @private
|
|
21194
|
+
*/
|
|
21195
|
+
touched: {
|
|
21196
|
+
type: Boolean,
|
|
21197
|
+
reflect: true,
|
|
21198
|
+
attribute: false
|
|
21172
21199
|
}
|
|
21173
21200
|
};
|
|
21174
21201
|
}
|
|
@@ -21455,15 +21482,7 @@ class BaseInput extends LitElement {
|
|
|
21455
21482
|
*/
|
|
21456
21483
|
handleFocusin() {
|
|
21457
21484
|
|
|
21458
|
-
|
|
21459
|
-
* The input is considered to be in it's initial state based on
|
|
21460
|
-
* if this.value === undefined. The first time we interact with the
|
|
21461
|
-
* input manually, by applying focusin, we need to flag the
|
|
21462
|
-
* input as no longer in the initial state.
|
|
21463
|
-
*/
|
|
21464
|
-
if (this.value === undefined) {
|
|
21465
|
-
this.value = '';
|
|
21466
|
-
}
|
|
21485
|
+
this.touched = true;
|
|
21467
21486
|
}
|
|
21468
21487
|
|
|
21469
21488
|
/**
|
|
@@ -23038,6 +23057,7 @@ class AuroDatePicker extends LitElement {
|
|
|
23038
23057
|
this.calendarRenderUtil.updateCentralDate(this, new Date());
|
|
23039
23058
|
}
|
|
23040
23059
|
|
|
23060
|
+
this.touched = false;
|
|
23041
23061
|
this.disabled = false;
|
|
23042
23062
|
this.required = false;
|
|
23043
23063
|
this.onDark = false;
|
|
@@ -23369,6 +23389,18 @@ class AuroDatePicker extends LitElement {
|
|
|
23369
23389
|
*/
|
|
23370
23390
|
valueEnd: {
|
|
23371
23391
|
type: String
|
|
23392
|
+
},
|
|
23393
|
+
|
|
23394
|
+
/**
|
|
23395
|
+
* Indicates whether the datepicker is in a dirty state (has been interacted with).
|
|
23396
|
+
* @type {boolean}
|
|
23397
|
+
* @default false
|
|
23398
|
+
* @private
|
|
23399
|
+
*/
|
|
23400
|
+
touched: {
|
|
23401
|
+
type: Boolean,
|
|
23402
|
+
reflect: true,
|
|
23403
|
+
attribute: false
|
|
23372
23404
|
}
|
|
23373
23405
|
};
|
|
23374
23406
|
}
|
|
@@ -23645,27 +23677,15 @@ class AuroDatePicker extends LitElement {
|
|
|
23645
23677
|
configureDatepicker() {
|
|
23646
23678
|
this.addEventListener('focusin', () => {
|
|
23647
23679
|
|
|
23648
|
-
|
|
23649
|
-
* The datepicker is considered to be in it's initial state based on
|
|
23650
|
-
* if this.value === undefined. The first time we interact with the
|
|
23651
|
-
* datepicker manually, by applying focusin, we need to flag the
|
|
23652
|
-
* datepicker as no longer in the initial state.
|
|
23653
|
-
*/
|
|
23654
|
-
if (this.value === undefined) {
|
|
23655
|
-
this.value = '';
|
|
23656
|
-
}
|
|
23657
|
-
|
|
23658
|
-
if (this.valueEnd === undefined) {
|
|
23659
|
-
this.valueEnd = '';
|
|
23660
|
-
}
|
|
23680
|
+
this.touched = true;
|
|
23661
23681
|
});
|
|
23662
23682
|
|
|
23663
23683
|
this.addEventListener('focusout', (evt) => {
|
|
23664
|
-
if (!this.noValidate && !evt.detail.expanded && this.
|
|
23684
|
+
if (!this.noValidate && !evt.detail.expanded && this.touched) {
|
|
23665
23685
|
if (!this.contains(document.activeElement)) {
|
|
23666
23686
|
this.validation.validate(this.inputList[0]);
|
|
23667
23687
|
|
|
23668
|
-
if (this.inputList[1] && this.inputList[1].
|
|
23688
|
+
if (this.inputList[1] && this.inputList[1].touched) {
|
|
23669
23689
|
this.validation.validate(this.inputList[1]);
|
|
23670
23690
|
}
|
|
23671
23691
|
}
|