diff --git a/angular/projects/catalyst-demo/src/app/app.component.html b/angular/projects/catalyst-demo/src/app/app.component.html index 09b8c419..d3aaf221 100644 --- a/angular/projects/catalyst-demo/src/app/app.component.html +++ b/angular/projects/catalyst-demo/src/app/app.component.html @@ -25,11 +25,26 @@

Form Components

[connector]="countryConnector" [clearable]="true" > + + + + + + + diff --git a/angular/projects/catalyst-demo/src/app/app.component.ts b/angular/projects/catalyst-demo/src/app/app.component.ts index 8d395ed5..0067fed9 100644 --- a/angular/projects/catalyst-demo/src/app/app.component.ts +++ b/angular/projects/catalyst-demo/src/app/app.component.ts @@ -28,7 +28,8 @@ export class AppComponent implements OnInit { test: new FormControl('test', [Validators.pattern('a+'), Validators.required, Validators.minLength(3)]), relatedInput: new FormControl(null, [this.equalTo('test')]), option: new FormControl(null, [Validators.required]), - date: new FormControl(null, [Validators.required]) + date: new FormControl(null, [Validators.required]), + datepickerDisabled: new FormControl(true) }); countryConnector = countryConnector; @@ -148,6 +149,20 @@ export class AppComponent implements OnInit { this.form.controls.test.valueChanges.subscribe(() => { this.form.controls.relatedInput.updateValueAndValidity(); }); + if (this.form.controls.datepickerDisabled.value) { + this.form.controls.date.disable(); + } else { + this.form.controls.date.enable(); + } + } + + onCheckboxChange(event: Event) { + const checkbox = event.target as HTMLInputElement; + if (checkbox.checked) { + this.form.controls.date.disable(); + } else { + this.form.controls.date.enable(); + } } equalTo(controlName: string) { diff --git a/core/src/components/cat-datepicker/cat-datepicker.tsx b/core/src/components/cat-datepicker/cat-datepicker.tsx index b72e11c8..642b4c11 100644 --- a/core/src/components/cat-datepicker/cat-datepicker.tsx +++ b/core/src/components/cat-datepicker/cat-datepicker.tsx @@ -199,7 +199,10 @@ export class CatDatepickerFlat { // has been updated. this.pickr?.destroy(); this.pickr = undefined; - setTimeout(() => (this.pickr = this.initDatepicker(this.input))); + setTimeout(() => { + this.input ? (this.input.disabled = this.disabled) : null; + this.pickr = this.initDatepicker(this.input); + }); } componentDidLoad() { @@ -297,7 +300,7 @@ export class CatDatepickerFlat { } private initDatepicker(input?: HTMLInputElement): flatpickr.Instance | undefined { - if (this.disabled || this.readonly || !input) { + if (!input) { return; }