common-ui/src/lib/form/base-form.component.ts
2022-07-21 13:48:51 +03:00

24 lines
557 B
TypeScript

import { Directive } from '@angular/core';
import { UntypedFormGroup } from '@angular/forms';
import { hasFormChanged } from '../utils';
@Directive()
export abstract class BaseFormComponent {
form!: UntypedFormGroup;
initialFormValue!: Record<string, string>;
get changed(): boolean {
return hasFormChanged(this.form, this.initialFormValue);
}
get valid(): boolean {
return this.form?.valid;
}
get disabled(): boolean {
return !this.valid || !this.changed;
}
abstract save(): Promise<any>;
}