@carefirst/library 4.5.0 → 4.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -32,18 +32,24 @@ export class FormInputStringDateComponent {
32
32
  if (!this.dateTextInput)
33
33
  return;
34
34
  let newValue = event.detail.value.slice(0, 10).replace(/[^\d]/g, '');
35
+ if (newValue.length !== 8) {
36
+ this.customErrorMessage = 'This given date length is not valid';
37
+ }
35
38
  newValue = newValue.replace(/^(\d{4})(\d{2})(\d{1,2})/, '$1-$2-$3').replace(/^(\d{4})(\d{1,2})/, '$1-$2') + '';
36
- if (this.control)
37
- this.control.setValue(newValue);
38
- else
39
- this.dateTextInput.value = newValue;
40
- this.valueChange.emit(newValue);
41
39
  if (!dayjs(new Date(newValue)).isValid()) {
42
40
  this.customErrorMessage = 'This given date is not valid';
43
41
  }
44
42
  if ((this.minDate && dayjs(new Date(newValue)).isBefore(this.minDate)) || (this.maxDate && dayjs(new Date(newValue)).isAfter(this.maxDate))) {
45
43
  this.customErrorMessage = 'The given date is not within the valid parameters';
46
44
  }
45
+ if (this.control) {
46
+ this.control.setValue(newValue);
47
+ this.control.setErrors(this.customErrorMessage ? { errorMessage: this.customErrorMessage } : null);
48
+ }
49
+ else {
50
+ this.dateTextInput.value = newValue;
51
+ this.valueChange.emit(this.customErrorMessage ? undefined : newValue);
52
+ }
47
53
  }
48
54
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: FormInputStringDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
49
55
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: FormInputStringDateComponent, selector: "cf-form-input-string-date", inputs: { label: "label", minDate: "minDate", maxDate: "maxDate", labelPlacement: "labelPlacement", placeholder: "placeholder", noClearButton: "noClearButton", control: "control", customErrorMessage: "customErrorMessage", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "dateTextInput", first: true, predicate: ["dateTextInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- ngModel -->\n<ion-input\n #dateTextInput\n *ngIf=\"!control\"\n [ngClass]=\"{ error: !!customErrorMessage }\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n [placeholder]=\"placeholder\"\n fill=\"outline\"\n [clearInput]=\"!inputClear\"\n mode=\"md\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n (ionInput)=\"formatDate($event)\"\n [value]=\"value\"></ion-input>\n<!-- Form Control -->\n<ion-input\n #dateTextInput\n *ngIf=\"control\"\n [ngClass]=\"{ error: !!customErrorMessage }\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n [placeholder]=\"placeholder\"\n fill=\"outline\"\n [clearInput]=\"!inputClear\"\n mode=\"md\"\n [formControl]=\"control\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n (ionInput)=\"formatDate($event)\">\n</ion-input>\n<cf-form-validation *ngIf=\"control || customErrorMessage\" [customErrorMessage]=\"customErrorMessage\" [control]=\"control || null\"></cf-form-validation>\n", styles: ["::ng-deep ion-input.error .label-text{color:var(--cf-app-system-color-error)}ion-input{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;color:var(--cf-app-text-color-default);text-align:start;--border-radius: 8px !important;--highlight-color-focused: var(--cf-app-color-primary);--highlight-color-invalid: var(--cf-app-system-color-error);--highlight-color-valid: var(--cf-app-color-primary)}ion-input.error{--border-color: var(--cf-app-system-color-error);--highlight-color-focused: var(--cf-app-system-color-error);--highlight-color-valid: var(--cf-app-system-color-error)}\n"], dependencies: [{ kind: "component", type: i1.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "directive", type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.FormValidationComponent, selector: "cf-form-validation", inputs: ["control", "customErrorMessage"] }] });
@@ -75,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
75
81
  }], valueChange: [{
76
82
  type: Output
77
83
  }] } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbnB1dC1zdHJpbmctZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1pbnB1dC1zdHJpbmctZGF0ZS9mb3JtLWlucHV0LXN0cmluZy1kYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWlucHV0LXN0cmluZy1kYXRlL2Zvcm0taW5wdXQtc3RyaW5nLWRhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcUJBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBc0MsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRzFCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7O0FBTzlELE1BQU0sT0FBTyw0QkFBNEI7SUFDWCxhQUFhLENBQVk7SUFDNUMsS0FBSyxDQUFVO0lBQ2YsT0FBTyxDQUE0QjtJQUNuQyxPQUFPLENBQTRCO0lBQ25DLGNBQWMsQ0FBMkM7SUFDekQsV0FBVyxHQUFZLFlBQVksQ0FBQztJQUNwQyxhQUFhLENBQWdDO0lBQzdDLE9BQU8sQ0FBc0I7SUFDN0Isa0JBQWtCLEdBQWtCLElBQUksQ0FBQztJQUd6QyxLQUFLLENBQXFCO0lBQ3pCLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztJQUc5RCxtQkFBbUIsQ0FBNkI7SUFDaEQsVUFBVSxHQUFHLEtBQUssQ0FBQztJQU9uQixXQUFXLENBQUMsT0FBc0I7UUFFaEMsSUFBSSxDQUFDLG1CQUFtQjtZQUN0QixtQkFBbUIsQ0FDakIsT0FBTyxFQUNQLGdCQUFnQixFQUNoQixPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxFQUM5QixJQUFJLENBQUMsbUJBQW1CLENBQ3pCLElBQUksVUFBVSxDQUFDO1FBRWxCLElBQUksQ0FBQyxVQUFVLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQU9ELFVBQVUsQ0FBQyxLQUFrQjtRQUUzQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYTtZQUFFLE9BQU87UUFFaEMsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXJFLFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLDBCQUEwQixFQUFFLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFL0csSUFBSSxJQUFJLENBQUMsT0FBTztZQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDOztZQUM3QyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7UUFDekMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLDhCQUE4QixDQUFDO1FBQzNELENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzVJLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxtREFBbUQsQ0FBQztRQUNoRixDQUFDO0lBQ0gsQ0FBQzt1R0E3RFUsNEJBQTRCOzJGQUE1Qiw0QkFBNEIsK2RDbkN6Qyx1OEJBZ0NBOzsyRkRHYSw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0UsMkJBQTJCOzhCQUtULGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFDakIsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2FyZWZpcnN0IExpYnJhcnkgRm9ybSBJbnB1dFxuICpcbiAqIEBmaWxlICAgICAgICAgIGZvcm0taW5wdXQtc3RyaW5nLWRhdGUuY29tcG9uZW50XG4gKiBAZGVzY3JpcHRpb24gICBDb250YWlucyBhbGwgdGhlIGxvZ2ljIGZvciBnZW5lcmF0aW5nIGEgQ2FyZUZpcnN0IEZvcm0gSW5wdXQgU3RyaW5nIERhdGUgRmllbGRcbiAqIEBhdXRob3IgICAgICAgIEFudG9uIGRlIFN3YXJkdFxuICogQHNpbmNlICAgICAgICAgMjAyNCAtIDExIC0gMjZcbiAqIEB1c2FnZSAgICAgICAgIDxjZi1mb3JtLWlucHV0LXN0cmluZy1kYXRlXG4gKiAgICAgICAgICAgICAgICAgIGxhYmVsPVwiTGFiZWwgTmFtZVwiXG4gKiAgICAgICAgICAgICAgICAgICVsYWJlbFBsYWNlbWVudCVcbiAqICAgICAgICAgICAgICAgICAgJW5vQ2xlYXJCdXR0b24lXG4gKiAgICAgICAgICAgICAgICAgICVtaW5EYXRlJVxuICogICAgICAgICAgICAgICAgICAlbWF4RGF0ZSVcbiAqICAgICAgICAgICAgICAgICAgJVsodmFsdWUpXT1cInR3b1dheUNvbXNcIiVcbiAqICAgICAgICAgICAgICAgICAgJSh2YWx1ZUNoYW5nZSk9XCJjdXJyZW50VmFsdWVFdmVudFwiJVxuICogICAgICAgICAgICAgICAgICAlW2NvbnRyb2xdJT1cImZvcm1OYW1lLmNvbnRyb2xzLmNvbnRyb2xOYW1lXCJcbiAqICAgICAgICAgICAgICAgICAgJVtjdXN0b21FcnJvck1lc3NhZ2VdJT1cImVycm9yTWVzc2FnZVwiXG4gKiAgICAgICAgICAgICAgICA+PC9jZi1mb3JtLWlucHV0LXN0cmluZy1kYXRlPlxuICogICAgICAgICAgICAgICAgZGlzYWJsZSBpbnB1dCBieSBkaXNhYmxpbmcgdGhlIGZvcm0gY29udHJvbFxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgdHlwZSBPbkNoYW5nZXMsIHR5cGUgU2ltcGxlQ2hhbmdlcywgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcbmltcG9ydCB0eXBlIHsgSW9uSW5wdXQgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG4vLy0tLSBVdGlsc1xuaW1wb3J0IHsgY2hlY2tUcnV0aEF0dHJpYnV0ZSwgdmFsaWRhdGVTdHJpbmdWYWx1ZSB9IGZyb20gJy4uLy4uL3V0aWxzL2F0dHJpYnV0ZS51dGlsJztcbi8vLS0tIEludGVyZmFjZXNcbmltcG9ydCB7IGlucHV0c0MgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2ludGVybmFsLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NmLWZvcm0taW5wdXQtc3RyaW5nLWRhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1pbnB1dC1zdHJpbmctZGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9mb3JtLWlucHV0LXN0cmluZy1kYXRlLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUlucHV0U3RyaW5nRGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBWaWV3Q2hpbGQoJ2RhdGVUZXh0SW5wdXQnKSBkYXRlVGV4dElucHV0PzogSW9uSW5wdXQ7XG4gIEBJbnB1dCgpIGxhYmVsITogc3RyaW5nO1xuICBASW5wdXQoKSBtaW5EYXRlOiBzdHJpbmcgfCBEYXRlIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBtYXhEYXRlOiBzdHJpbmcgfCBEYXRlIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBsYWJlbFBsYWNlbWVudD86ICh0eXBlb2YgaW5wdXRzQy5sYWJlbFBsYWNlbWVudClbbnVtYmVyXTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBzdHJpbmcgPSAnWVlZWS1NTS1ERCc7XG4gIEBJbnB1dCgpIG5vQ2xlYXJCdXR0b24/OiBib29sZWFuIHwgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBjb250cm9sPzogRm9ybUNvbnRyb2wgfCBudWxsO1xuICBASW5wdXQoKSBjdXN0b21FcnJvck1lc3NhZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIC8vLS0tIG5nTW9kZWxcbiAgQElucHV0KCkgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx0eXBlb2YgdGhpcy52YWx1ZT4oKTtcblxuICAvLy0tLSBMb2NhbCB2YXJpYWJsZXNcbiAgaW5wdXRMYWJlbFBsYWNlbWVudDogdHlwZW9mIHRoaXMubGFiZWxQbGFjZW1lbnQ7XG4gIGlucHV0Q2xlYXIgPSBmYWxzZTtcblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIG5nT25DaGFuZ2VzXG4gICAqIEBkZXNjcmlwdGlvbiAgIERldGVjdCBjaGFuZ2VzIHRvIGlucHV0IHZhbHVlc1xuICAgKiBAcGFyYW0gICAgICAgICB7U2ltcGxlQ2hhbmdlc30gY2hhbmdlc1xuICAgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vLS0tIExhYmVsIFBsYWNlbWVudFxuICAgIHRoaXMuaW5wdXRMYWJlbFBsYWNlbWVudCA9XG4gICAgICB2YWxpZGF0ZVN0cmluZ1ZhbHVlPCh0eXBlb2YgaW5wdXRzQy5sYWJlbFBsYWNlbWVudClbbnVtYmVyXT4oXG4gICAgICAgIGNoYW5nZXMsXG4gICAgICAgICdsYWJlbFBsYWNlbWVudCcsXG4gICAgICAgIGlucHV0c0MubGFiZWxQbGFjZW1lbnQuc2xpY2UoKSxcbiAgICAgICAgdGhpcy5pbnB1dExhYmVsUGxhY2VtZW50XG4gICAgICApIHx8ICdmbG9hdGluZyc7XG4gICAgLy8tLS0gQ2xlYXIgQnV0dG9uXG4gICAgdGhpcy5pbnB1dENsZWFyID0gY2hlY2tUcnV0aEF0dHJpYnV0ZShjaGFuZ2VzLCAnbm9DbGVhckJ1dHRvbicsIHRoaXMuaW5wdXRDbGVhcik7XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIGZvcm1hdERhdGVcbiAgICogQGRlc2NyaXB0aW9uICAgRm9ybWF0IHRoZSBkYXRlIHdpdGggaHlwaGVuc1xuICAgKiBAcGFyYW0gICAgICAgICB7Q3VzdG9tRXZlbnR9IGV2ZW50XG4gICAqL1xuICBmb3JtYXREYXRlKGV2ZW50OiBDdXN0b21FdmVudCk6IHZvaWQge1xuICAgIC8vLS0tIENsZWFyIGVycm9yIG1lc3NhZ2VzXG4gICAgdGhpcy5jdXN0b21FcnJvck1lc3NhZ2UgPSBudWxsO1xuICAgIGlmICghdGhpcy5kYXRlVGV4dElucHV0KSByZXR1cm47XG4gICAgLy8tLS0gUmVtb3ZlIGFsbCBub24gbnVtZXJpYyBjaGFyYWN0ZXJzXG4gICAgbGV0IG5ld1ZhbHVlID0gZXZlbnQuZGV0YWlsLnZhbHVlLnNsaWNlKDAsIDEwKS5yZXBsYWNlKC9bXlxcZF0vZywgJycpO1xuICAgIC8vLS0tIEFkZCBcIi1cIiB0byBmb3JtYXQgc3RyaW5nIGludG8gKFlZWVktTU0tRCBhbmQgWVlZWS1NTS1ERCkgT1IgKFlZWVktTSBhbmQgWVlZWS1NTSlcbiAgICBuZXdWYWx1ZSA9IG5ld1ZhbHVlLnJlcGxhY2UoL14oXFxkezR9KShcXGR7Mn0pKFxcZHsxLDJ9KS8sICckMS0kMi0kMycpLnJlcGxhY2UoL14oXFxkezR9KShcXGR7MSwyfSkvLCAnJDEtJDInKSArICcnO1xuICAgIC8vLS0tIFNldCBuZXcgdmFsdWVcbiAgICBpZiAodGhpcy5jb250cm9sKSB0aGlzLmNvbnRyb2wuc2V0VmFsdWUobmV3VmFsdWUpO1xuICAgIGVsc2UgdGhpcy5kYXRlVGV4dElucHV0LnZhbHVlID0gbmV3VmFsdWU7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KG5ld1ZhbHVlKTtcbiAgICAvLy0tLSBDaGVjayBkYXRlIGZvciBlcnJvcnNcbiAgICBpZiAoIWRheWpzKG5ldyBEYXRlKG5ld1ZhbHVlKSkuaXNWYWxpZCgpKSB7XG4gICAgICB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZSA9ICdUaGlzIGdpdmVuIGRhdGUgaXMgbm90IHZhbGlkJztcbiAgICB9XG4gICAgaWYgKCh0aGlzLm1pbkRhdGUgJiYgZGF5anMobmV3IERhdGUobmV3VmFsdWUpKS5pc0JlZm9yZSh0aGlzLm1pbkRhdGUpKSB8fCAodGhpcy5tYXhEYXRlICYmIGRheWpzKG5ldyBEYXRlKG5ld1ZhbHVlKSkuaXNBZnRlcih0aGlzLm1heERhdGUpKSkge1xuICAgICAgdGhpcy5jdXN0b21FcnJvck1lc3NhZ2UgPSAnVGhlIGdpdmVuIGRhdGUgaXMgbm90IHdpdGhpbiB0aGUgdmFsaWQgcGFyYW1ldGVycyc7XG4gICAgfVxuICB9XG59XG4iLCI8IS0tIG5nTW9kZWwgLS0+XG48aW9uLWlucHV0XG4gICNkYXRlVGV4dElucHV0XG4gICpuZ0lmPVwiIWNvbnRyb2xcIlxuICBbbmdDbGFzc109XCJ7IGVycm9yOiAhIWN1c3RvbUVycm9yTWVzc2FnZSB9XCJcbiAgW2xhYmVsXT1cImxhYmVsXCJcbiAgW2xhYmVsUGxhY2VtZW50XT1cImlucHV0TGFiZWxQbGFjZW1lbnRcIlxuICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICBmaWxsPVwib3V0bGluZVwiXG4gIFtjbGVhcklucHV0XT1cIiFpbnB1dENsZWFyXCJcbiAgbW9kZT1cIm1kXCJcbiAgW21pbl09XCJtaW5EYXRlXCJcbiAgW21heF09XCJtYXhEYXRlXCJcbiAgKGlvbklucHV0KT1cImZvcm1hdERhdGUoJGV2ZW50KVwiXG4gIFt2YWx1ZV09XCJ2YWx1ZVwiPjwvaW9uLWlucHV0PlxuPCEtLSBGb3JtIENvbnRyb2wgLS0+XG48aW9uLWlucHV0XG4gICNkYXRlVGV4dElucHV0XG4gICpuZ0lmPVwiY29udHJvbFwiXG4gIFtuZ0NsYXNzXT1cInsgZXJyb3I6ICEhY3VzdG9tRXJyb3JNZXNzYWdlIH1cIlxuICBbbGFiZWxdPVwibGFiZWxcIlxuICBbbGFiZWxQbGFjZW1lbnRdPVwiaW5wdXRMYWJlbFBsYWNlbWVudFwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIGZpbGw9XCJvdXRsaW5lXCJcbiAgW2NsZWFySW5wdXRdPVwiIWlucHV0Q2xlYXJcIlxuICBtb2RlPVwibWRcIlxuICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gIFttaW5dPVwibWluRGF0ZVwiXG4gIFttYXhdPVwibWF4RGF0ZVwiXG4gIChpb25JbnB1dCk9XCJmb3JtYXREYXRlKCRldmVudClcIj5cbjwvaW9uLWlucHV0PlxuPGNmLWZvcm0tdmFsaWRhdGlvbiAqbmdJZj1cImNvbnRyb2wgfHwgY3VzdG9tRXJyb3JNZXNzYWdlXCIgW2N1c3RvbUVycm9yTWVzc2FnZV09XCJjdXN0b21FcnJvck1lc3NhZ2VcIiBbY29udHJvbF09XCJjb250cm9sIHx8IG51bGxcIj48L2NmLWZvcm0tdmFsaWRhdGlvbj5cbiJdfQ==
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbnB1dC1zdHJpbmctZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1pbnB1dC1zdHJpbmctZGF0ZS9mb3JtLWlucHV0LXN0cmluZy1kYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWlucHV0LXN0cmluZy1kYXRlL2Zvcm0taW5wdXQtc3RyaW5nLWRhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcUJBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBc0MsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRzFCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7O0FBTzlELE1BQU0sT0FBTyw0QkFBNEI7SUFDWCxhQUFhLENBQVk7SUFDNUMsS0FBSyxDQUFVO0lBQ2YsT0FBTyxDQUE0QjtJQUNuQyxPQUFPLENBQTRCO0lBQ25DLGNBQWMsQ0FBMkM7SUFDekQsV0FBVyxHQUFZLFlBQVksQ0FBQztJQUNwQyxhQUFhLENBQWdDO0lBQzdDLE9BQU8sQ0FBc0I7SUFDN0Isa0JBQWtCLEdBQWtCLElBQUksQ0FBQztJQUd6QyxLQUFLLENBQXFCO0lBQ3pCLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztJQUc5RCxtQkFBbUIsQ0FBNkI7SUFDaEQs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LEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDYXJlZmlyc3QgTGlicmFyeSBGb3JtIElucHV0XG4gKlxuICogQGZpbGUgICAgICAgICAgZm9ybS1pbnB1dC1zdHJpbmctZGF0ZS5jb21wb25lbnRcbiAqIEBkZXNjcmlwdGlvbiAgIENvbnRhaW5zIGFsbCB0aGUgbG9naWMgZm9yIGdlbmVyYXRpbmcgYSBDYXJlRmlyc3QgRm9ybSBJbnB1dCBTdHJpbmcgRGF0ZSBGaWVsZFxuICogQGF1dGhvciAgICAgICAgQW50b24gZGUgU3dhcmR0XG4gKiBAc2luY2UgICAgICAgICAyMDI0IC0gMTEgLSAyNlxuICogQHVzYWdlICAgICAgICAgPGNmLWZvcm0taW5wdXQtc3RyaW5nLWRhdGVcbiAqICAgICAgICAgICAgICAgICAgbGFiZWw9XCJMYWJlbCBOYW1lXCJcbiAqICAgICAgICAgICAgICAgICAgJWxhYmVsUGxhY2VtZW50JVxuICogICAgICAgICAgICAgICAgICAlbm9DbGVhckJ1dHRvbiVcbiAqICAgICAgICAgICAgICAgICAgJW1pbkRhdGUlXG4gKiAgICAgICAgICAgICAgICAgICVtYXhEYXRlJVxuICogICAgICAgICAgICAgICAgICAlWyh2YWx1ZSldPVwidHdvV2F5Q29tc1wiJVxuICogICAgICAgICAgICAgICAgICAlKHZhbHVlQ2hhbmdlKT1cImN1cnJlbnRWYWx1ZUV2ZW50XCIlXG4gKiAgICAgICAgICAgICAgICAgICVbY29udHJvbF0lPVwiZm9ybU5hbWUuY29udHJvbHMuY29udHJvbE5hbWVcIlxuICogICAgICAgICAgICAgICAgICAlW2N1c3RvbUVycm9yTWVzc2FnZV0lPVwiZXJyb3JNZXNzYWdlXCJcbiAqICAgICAgICAgICAgICAgID48L2NmLWZvcm0taW5wdXQtc3RyaW5nLWRhdGU+XG4gKiAgICAgICAgICAgICAgICBkaXNhYmxlIGlucHV0IGJ5IGRpc2FibGluZyB0aGUgZm9ybSBjb250cm9sXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCB0eXBlIE9uQ2hhbmdlcywgdHlwZSBTaW1wbGVDaGFuZ2VzLCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IHR5cGUgeyBJb25JbnB1dCB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbi8vLS0tIFV0aWxzXG5pbXBvcnQgeyBjaGVja1RydXRoQXR0cmlidXRlLCB2YWxpZGF0ZVN0cmluZ1ZhbHVlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXR0cmlidXRlLnV0aWwnO1xuLy8tLS0gSW50ZXJmYWNlc1xuaW1wb3J0IHsgaW5wdXRzQyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaW50ZXJuYWwuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2YtZm9ybS1pbnB1dC1zdHJpbmctZGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWlucHV0LXN0cmluZy1kYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2Zvcm0taW5wdXQtc3RyaW5nLWRhdGUuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtSW5wdXRTdHJpbmdEYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQFZpZXdDaGlsZCgnZGF0ZVRleHRJbnB1dCcpIGRhdGVUZXh0SW5wdXQ/OiBJb25JbnB1dDtcbiAgQElucHV0KCkgbGFiZWwhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG1pbkRhdGU6IHN0cmluZyB8IERhdGUgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIG1heERhdGU6IHN0cmluZyB8IERhdGUgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGxhYmVsUGxhY2VtZW50PzogKHR5cGVvZiBpbnB1dHNDLmxhYmVsUGxhY2VtZW50KVtudW1iZXJdO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZyA9ICdZWVlZLU1NLUREJztcbiAgQElucHV0KCkgbm9DbGVhckJ1dHRvbj86IGJvb2xlYW4gfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGNvbnRyb2w/OiBGb3JtQ29udHJvbCB8IG51bGw7XG4gIEBJbnB1dCgpIGN1c3RvbUVycm9yTWVzc2FnZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgLy8tLS0gbmdNb2RlbFxuICBASW5wdXQoKSB2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHR5cGVvZiB0aGlzLnZhbHVlPigpO1xuXG4gIC8vLS0tIExvY2FsIHZhcmlhYmxlc1xuICBpbnB1dExhYmVsUGxhY2VtZW50OiB0eXBlb2YgdGhpcy5sYWJlbFBsYWNlbWVudDtcbiAgaW5wdXRDbGVhciA9IGZhbHNlO1xuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgbmdPbkNoYW5nZXNcbiAgICogQGRlc2NyaXB0aW9uICAgRGV0ZWN0IGNoYW5nZXMgdG8gaW5wdXQgdmFsdWVzXG4gICAqIEBwYXJhbSAgICAgICAgIHtTaW1wbGVDaGFuZ2VzfSBjaGFuZ2VzXG4gICAqL1xuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8tLS0gTGFiZWwgUGxhY2VtZW50XG4gICAgdGhpcy5pbnB1dExhYmVsUGxhY2VtZW50ID1cbiAgICAgIHZhbGlkYXRlU3RyaW5nVmFsdWU8KHR5cGVvZiBpbnB1dHNDLmxhYmVsUGxhY2VtZW50KVtudW1iZXJdPihcbiAgICAgICAgY2hhbmdlcyxcbiAgICAgICAgJ2xhYmVsUGxhY2VtZW50JyxcbiAgICAgICAgaW5wdXRzQy5sYWJlbFBsYWNlbWVudC5zbGljZSgpLFxuICAgICAgICB0aGlzLmlucHV0TGFiZWxQbGFjZW1lbnRcbiAgICAgICkgfHwgJ2Zsb2F0aW5nJztcbiAgICAvLy0tLSBDbGVhciBCdXR0b25cbiAgICB0aGlzLmlucHV0Q2xlYXIgPSBjaGVja1RydXRoQXR0cmlidXRlKGNoYW5nZXMsICdub0NsZWFyQnV0dG9uJywgdGhpcy5pbnB1dENsZWFyKTtcbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgZm9ybWF0RGF0ZVxuICAgKiBAZGVzY3JpcHRpb24gICBGb3JtYXQgdGhlIGRhdGUgd2l0aCBoeXBoZW5zXG4gICAqIEBwYXJhbSAgICAgICAgIHtDdXN0b21FdmVudH0gZXZlbnRcbiAgICovXG4gIGZvcm1hdERhdGUoZXZlbnQ6IEN1c3RvbUV2ZW50KTogdm9pZCB7XG4gICAgLy8tLS0gQ2xlYXIgZXJyb3IgbWVzc2FnZXNcbiAgICB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgaWYgKCF0aGlzLmRhdGVUZXh0SW5wdXQpIHJldHVybjtcbiAgICAvLy0tLSBSZW1vdmUgYWxsIG5vbiBudW1lcmljIGNoYXJhY3RlcnNcbiAgICBsZXQgbmV3VmFsdWUgPSBldmVudC5kZXRhaWwudmFsdWUuc2xpY2UoMCwgMTApLnJlcGxhY2UoL1teXFxkXS9nLCAnJyk7XG4gICAgLy8tLS0gQ2hlY2sgZGF0ZSBsZW5ndGhcbiAgICBpZiAobmV3VmFsdWUubGVuZ3RoICE9PSA4KSB7XG4gICAgICB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZSA9ICdUaGlzIGdpdmVuIGRhdGUgbGVuZ3RoIGlzIG5vdCB2YWxpZCc7XG4gICAgfVxuICAgIC8vLS0tIEFkZCBcIi1cIiB0byBmb3JtYXQgc3RyaW5nIGludG8gKFlZWVktTU0tRCBhbmQgWVlZWS1NTS1ERCkgT1IgKFlZWVktTSBhbmQgWVlZWS1NTSlcbiAgICBuZXdWYWx1ZSA9IG5ld1ZhbHVlLnJlcGxhY2UoL14oXFxkezR9KShcXGR7Mn0pKFxcZHsxLDJ9KS8sICckMS0kMi0kMycpLnJlcGxhY2UoL14oXFxkezR9KShcXGR7MSwyfSkvLCAnJDEtJDInKSArICcnO1xuICAgIC8vLS0tIENoZWNrIGRhdGUgZm9yIGVycm9yc1xuICAgIGlmICghZGF5anMobmV3IERhdGUobmV3VmFsdWUpKS5pc1ZhbGlkKCkpIHtcbiAgICAgIHRoaXMuY3VzdG9tRXJyb3JNZXNzYWdlID0gJ1RoaXMgZ2l2ZW4gZGF0ZSBpcyBub3QgdmFsaWQnO1xuICAgIH1cbiAgICBpZiAoKHRoaXMubWluRGF0ZSAmJiBkYXlqcyhuZXcgRGF0ZShuZXdWYWx1ZSkpLmlzQmVmb3JlKHRoaXMubWluRGF0ZSkpIHx8ICh0aGlzLm1heERhdGUgJiYgZGF5anMobmV3IERhdGUobmV3VmFsdWUpKS5pc0FmdGVyKHRoaXMubWF4RGF0ZSkpKSB7XG4gICAgICB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZSA9ICdUaGUgZ2l2ZW4gZGF0ZSBpcyBub3Qgd2l0aGluIHRoZSB2YWxpZCBwYXJhbWV0ZXJzJztcbiAgICB9XG4gICAgLy8tLS0gU2V0IG5ldyB2YWx1ZVxuICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShuZXdWYWx1ZSk7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0RXJyb3JzKHRoaXMuY3VzdG9tRXJyb3JNZXNzYWdlID8geyBlcnJvck1lc3NhZ2U6IHRoaXMuY3VzdG9tRXJyb3JNZXNzYWdlIH0gOiBudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRlVGV4dElucHV0LnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy5jdXN0b21FcnJvck1lc3NhZ2UgPyB1bmRlZmluZWQgOiBuZXdWYWx1ZSk7XG4gICAgfVxuICB9XG59XG4iLCI8IS0tIG5nTW9kZWwgLS0+XG48aW9uLWlucHV0XG4gICNkYXRlVGV4dElucHV0XG4gICpuZ0lmPVwiIWNvbnRyb2xcIlxuICBbbmdDbGFzc109XCJ7IGVycm9yOiAhIWN1c3RvbUVycm9yTWVzc2FnZSB9XCJcbiAgW2xhYmVsXT1cImxhYmVsXCJcbiAgW2xhYmVsUGxhY2VtZW50XT1cImlucHV0TGFiZWxQbGFjZW1lbnRcIlxuICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICBmaWxsPVwib3V0bGluZVwiXG4gIFtjbGVhcklucHV0XT1cIiFpbnB1dENsZWFyXCJcbiAgbW9kZT1cIm1kXCJcbiAgW21pbl09XCJtaW5EYXRlXCJcbiAgW21heF09XCJtYXhEYXRlXCJcbiAgKGlvbklucHV0KT1cImZvcm1hdERhdGUoJGV2ZW50KVwiXG4gIFt2YWx1ZV09XCJ2YWx1ZVwiPjwvaW9uLWlucHV0PlxuPCEtLSBGb3JtIENvbnRyb2wgLS0+XG48aW9uLWlucHV0XG4gICNkYXRlVGV4dElucHV0XG4gICpuZ0lmPVwiY29udHJvbFwiXG4gIFtuZ0NsYXNzXT1cInsgZXJyb3I6ICEhY3VzdG9tRXJyb3JNZXNzYWdlIH1cIlxuICBbbGFiZWxdPVwibGFiZWxcIlxuICBbbGFiZWxQbGFjZW1lbnRdPVwiaW5wdXRMYWJlbFBsYWNlbWVudFwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIGZpbGw9XCJvdXRsaW5lXCJcbiAgW2NsZWFySW5wdXRdPVwiIWlucHV0Q2xlYXJcIlxuICBtb2RlPVwibWRcIlxuICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gIFttaW5dPVwibWluRGF0ZVwiXG4gIFttYXhdPVwibWF4RGF0ZVwiXG4gIChpb25JbnB1dCk9XCJmb3JtYXREYXRlKCRldmVudClcIj5cbjwvaW9uLWlucHV0PlxuPGNmLWZvcm0tdmFsaWRhdGlvbiAqbmdJZj1cImNvbnRyb2wgfHwgY3VzdG9tRXJyb3JNZXNzYWdlXCIgW2N1c3RvbUVycm9yTWVzc2FnZV09XCJjdXN0b21FcnJvck1lc3NhZ2VcIiBbY29udHJvbF09XCJjb250cm9sIHx8IG51bGxcIj48L2NmLWZvcm0tdmFsaWRhdGlvbj5cbiJdfQ==
@@ -1220,18 +1220,24 @@ class FormInputStringDateComponent {
1220
1220
  if (!this.dateTextInput)
1221
1221
  return;
1222
1222
  let newValue = event.detail.value.slice(0, 10).replace(/[^\d]/g, '');
1223
+ if (newValue.length !== 8) {
1224
+ this.customErrorMessage = 'This given date length is not valid';
1225
+ }
1223
1226
  newValue = newValue.replace(/^(\d{4})(\d{2})(\d{1,2})/, '$1-$2-$3').replace(/^(\d{4})(\d{1,2})/, '$1-$2') + '';
1224
- if (this.control)
1225
- this.control.setValue(newValue);
1226
- else
1227
- this.dateTextInput.value = newValue;
1228
- this.valueChange.emit(newValue);
1229
1227
  if (!dayjs(new Date(newValue)).isValid()) {
1230
1228
  this.customErrorMessage = 'This given date is not valid';
1231
1229
  }
1232
1230
  if ((this.minDate && dayjs(new Date(newValue)).isBefore(this.minDate)) || (this.maxDate && dayjs(new Date(newValue)).isAfter(this.maxDate))) {
1233
1231
  this.customErrorMessage = 'The given date is not within the valid parameters';
1234
1232
  }
1233
+ if (this.control) {
1234
+ this.control.setValue(newValue);
1235
+ this.control.setErrors(this.customErrorMessage ? { errorMessage: this.customErrorMessage } : null);
1236
+ }
1237
+ else {
1238
+ this.dateTextInput.value = newValue;
1239
+ this.valueChange.emit(this.customErrorMessage ? undefined : newValue);
1240
+ }
1235
1241
  }
1236
1242
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: FormInputStringDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1237
1243
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: FormInputStringDateComponent, selector: "cf-form-input-string-date", inputs: { label: "label", minDate: "minDate", maxDate: "maxDate", labelPlacement: "labelPlacement", placeholder: "placeholder", noClearButton: "noClearButton", control: "control", customErrorMessage: "customErrorMessage", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "dateTextInput", first: true, predicate: ["dateTextInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- ngModel -->\n<ion-input\n #dateTextInput\n *ngIf=\"!control\"\n [ngClass]=\"{ error: !!customErrorMessage }\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n [placeholder]=\"placeholder\"\n fill=\"outline\"\n [clearInput]=\"!inputClear\"\n mode=\"md\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n (ionInput)=\"formatDate($event)\"\n [value]=\"value\"></ion-input>\n<!-- Form Control -->\n<ion-input\n #dateTextInput\n *ngIf=\"control\"\n [ngClass]=\"{ error: !!customErrorMessage }\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n [placeholder]=\"placeholder\"\n fill=\"outline\"\n [clearInput]=\"!inputClear\"\n mode=\"md\"\n [formControl]=\"control\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n (ionInput)=\"formatDate($event)\">\n</ion-input>\n<cf-form-validation *ngIf=\"control || customErrorMessage\" [customErrorMessage]=\"customErrorMessage\" [control]=\"control || null\"></cf-form-validation>\n", styles: ["::ng-deep ion-input.error .label-text{color:var(--cf-app-system-color-error)}ion-input{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;color:var(--cf-app-text-color-default);text-align:start;--border-radius: 8px !important;--highlight-color-focused: var(--cf-app-color-primary);--highlight-color-invalid: var(--cf-app-system-color-error);--highlight-color-valid: var(--cf-app-color-primary)}ion-input.error{--border-color: var(--cf-app-system-color-error);--highlight-color-focused: var(--cf-app-system-color-error);--highlight-color-valid: var(--cf-app-system-color-error)}\n"], dependencies: [{ kind: "component", type: i1.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "directive", type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FormValidationComponent, selector: "cf-form-validation", inputs: ["control", "customErrorMessage"] }] });