import { OnInit } from '@angular/core'; import { FormBuilder, FormGroup, AbstractControl } from '@angular/forms'; import { FormError } from './form-error.interface'; /** * `GenericFormComponent` implements a component to manage generic forms and errors. * * @author Joaquin Volpe * @export * @abstract */ export declare abstract class GenericFormComponent implements OnInit { protected fb: FormBuilder; /** * Current form object. */ form: FormGroup; /** * Flag to maintain if form has been submitted or not. */ submitted: boolean; /** * Creates an instance of GenericFormComponent. * @author Joaquin Volpe * @memberof GenericFormComponent */ constructor(fb: FormBuilder); /** * Implements on init method. * * @author Joaquin Volpe * @memberof GenericFormComponent */ ngOnInit(): void; /** * Handles submit event. * * @author Joaquin Volpe * @memberof GenericFormComponent */ onSubmit(): void; /** * Get current form errors. * * @author Joaquin Volpe * @memberof GenericFormComponent */ formErrors(): FormError[] | undefined; /** * Get current field errors. * * @author Joaquin Volpe * @memberof GenericFormComponent */ fieldErrors(name: string): FormError[] | undefined; /** * Reset field errors. * * @author Joaquin Volpe * @memberof GenericFormComponent */ resetFieldErrors(name: string): void; /** * Create form group and controls. * * @author Joaquin Volpe * @protected * @abstract * @memberof GenericFormComponent */ protected abstract buildForm(): void; /** * Handles submit event if form are valid. * * @author Joaquin Volpe * @protected * @abstract * @memberof GenericFormComponent */ protected abstract submitForm(): void; /** * Handles submit success event. * * @author Joaquin Volpe * @protected * @abstract * @memberof GenericFormComponent */ protected abstract handleSubmitSuccess(response: T): void; /** * Handles submit error event. * * @author Joaquin Volpe * @protected * @memberof GenericFormComponent */ protected handleSubmitError(response: any): void; /** * Get current errors from form control. * * @author Joaquin Volpe * @protected * @memberof GenericFormComponent */ protected getErrors(control: AbstractControl): FormError[] | undefined; /** * Find field control on form object. * * @author Joaquin Volpe * @protected * @memberof GenericFormComponent */ protected findFieldControl(field: string): AbstractControl | null; /** * Parse backend errors. * * @author Joaquin Volpe * @memberof GenericFormComponent */ private fetchFieldErrors(data, field); }