import { Injectable } from '@angular/core'; import { Resolve } from '@angular/router'; import { CustomDataTablesResolver } from '@features/custom-data-tables/resolvers/custom-data-tables.resolver'; import { EmployeeSSOFieldsResolver } from '@features/employee-sso-fields/resolvers/employee-sso-fields.resolver'; import { ExternalAPIResolver } from '@features/external-api/external-api.resolver'; import { InKindResolver } from '@features/in-kind/resolvers/in-kind.resolver'; import { ReferenceFieldsResolver } from '@features/reference-fields/reference-fields.resolver'; import { FormsResolver } from './forms.resolver'; import { StandardFormTemplatesResolver } from './standard-form-templates.resolver'; @Injectable({ providedIn: 'root' }) export class ViewFormResolver implements Resolve { constructor ( private externalAPIResolver: ExternalAPIResolver, private formsResolver: FormsResolver, private inKindResolver: InKindResolver, private customDataTablesResolver: CustomDataTablesResolver, private referenceFieldsResolver: ReferenceFieldsResolver, private employeeSSOFieldsResolver: EmployeeSSOFieldsResolver, private standardFormTemplatesResolver: StandardFormTemplatesResolver ) { } async resolve () { await Promise.all([ this.externalAPIResolver.resolve(), this.formsResolver.resolve(), this.inKindResolver.resolve(), this.customDataTablesResolver.resolve(), this.referenceFieldsResolver.resolve(), this.employeeSSOFieldsResolver.resolve(), this.standardFormTemplatesResolver.resolve() ]); } }