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;
}