import { UntypedFormGroup, ValidationErrors } from "@angular/forms"; import { FormGroupControls, FormValidationErrorsService as FormValidationErrorsAbstraction, AllValidationErrors, } from "../abstractions/form-validation-errors.service"; export class FormValidationErrorsService implements FormValidationErrorsAbstraction { getFormValidationErrors(controls: FormGroupControls): AllValidationErrors[] { let errors: AllValidationErrors[] = []; Object.keys(controls).forEach((key) => { const control = controls[key]; if (control instanceof UntypedFormGroup) { errors = errors.concat(this.getFormValidationErrors(control.controls)); } const controlErrors: ValidationErrors = controls[key].errors; if (controlErrors !== null) { Object.keys(controlErrors).forEach((keyError) => { errors.push({ controlName: key, errorName: keyError, }); }); } }); return errors; } }