@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.
Files changed (60) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/components/checkbox/README.md +1 -1
  3. package/components/checkbox/demo/api.md +1 -0
  4. package/components/checkbox/demo/api.min.js +34 -5
  5. package/components/checkbox/demo/index.min.js +34 -5
  6. package/components/checkbox/demo/readme.md +1 -1
  7. package/components/checkbox/dist/auro-checkbox-group.d.ts +7 -0
  8. package/components/checkbox/dist/auro-checkbox.d.ts +6 -0
  9. package/components/checkbox/dist/index.js +34 -5
  10. package/components/checkbox/dist/registered.js +34 -5
  11. package/components/combobox/README.md +1 -1
  12. package/components/combobox/demo/api.min.js +77 -57
  13. package/components/combobox/demo/index.min.js +77 -57
  14. package/components/combobox/demo/readme.md +1 -1
  15. package/components/combobox/dist/auro-combobox.d.ts +2 -10
  16. package/components/combobox/dist/index.js +77 -57
  17. package/components/combobox/dist/registered.js +77 -57
  18. package/components/counter/README.md +1 -1
  19. package/components/counter/demo/api.min.js +12 -5
  20. package/components/counter/demo/index.min.js +12 -5
  21. package/components/counter/demo/readme.md +1 -1
  22. package/components/counter/dist/index.js +12 -5
  23. package/components/counter/dist/registered.js +12 -5
  24. package/components/datepicker/README.md +1 -1
  25. package/components/datepicker/demo/api.min.js +54 -34
  26. package/components/datepicker/demo/index.min.js +54 -34
  27. package/components/datepicker/demo/readme.md +1 -1
  28. package/components/datepicker/dist/auro-datepicker.d.ts +8 -0
  29. package/components/datepicker/dist/index.js +54 -34
  30. package/components/datepicker/dist/registered.js +54 -34
  31. package/components/dropdown/README.md +1 -1
  32. package/components/dropdown/demo/readme.md +1 -1
  33. package/components/form/README.md +1 -1
  34. package/components/form/demo/readme.md +1 -1
  35. package/components/input/README.md +1 -1
  36. package/components/input/demo/api.min.js +26 -14
  37. package/components/input/demo/index.min.js +26 -14
  38. package/components/input/demo/readme.md +1 -1
  39. package/components/input/dist/base-input.d.ts +8 -0
  40. package/components/input/dist/index.js +26 -14
  41. package/components/input/dist/registered.js +26 -14
  42. package/components/menu/README.md +1 -1
  43. package/components/menu/demo/readme.md +1 -1
  44. package/components/radio/README.md +1 -1
  45. package/components/radio/demo/api.md +1 -0
  46. package/components/radio/demo/api.min.js +33 -9
  47. package/components/radio/demo/index.min.js +33 -9
  48. package/components/radio/demo/readme.md +1 -1
  49. package/components/radio/dist/auro-radio-group.d.ts +8 -0
  50. package/components/radio/dist/auro-radio.d.ts +5 -0
  51. package/components/radio/dist/index.js +33 -9
  52. package/components/radio/dist/registered.js +33 -9
  53. package/components/select/README.md +1 -1
  54. package/components/select/demo/api.min.js +25 -15
  55. package/components/select/demo/index.min.js +25 -15
  56. package/components/select/demo/readme.md +1 -1
  57. package/components/select/dist/auro-select.d.ts +8 -0
  58. package/components/select/dist/index.js +25 -15
  59. package/components/select/dist/registered.js +25 -15
  60. 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.length < elem.lengthForType) {
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
- const validationShouldRun = force || (!elem.contains(document.activeElement) && elem.value !== undefined) || elem.validateOnInput;
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 = undefined;
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.length < elem.lengthForType) {
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
- const validationShouldRun = force || (!elem.contains(document.activeElement) && elem.value !== undefined) || elem.validateOnInput;
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 = undefined;
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.inputList[0].value !== undefined) {
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].value !== undefined) {
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.8/auro-datepicker/+esm"></script>
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.length < elem.lengthForType) {
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
- const validationShouldRun = force || (!elem.contains(document.activeElement) && elem.value !== undefined) || elem.validateOnInput;
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 = undefined;
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.length < elem.lengthForType) {
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
- const validationShouldRun = force || (!elem.contains(document.activeElement) && elem.value !== undefined) || elem.validateOnInput;
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 = undefined;
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.inputList[0].value !== undefined) {
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].value !== undefined) {
23688
+ if (this.inputList[1] && this.inputList[1].touched) {
23669
23689
  this.validation.validate(this.inputList[1]);
23670
23690
  }
23671
23691
  }