import { Injectable } from '@angular/core'; import { Resolve } from '@angular/router'; import { BudgetResolver } from '@features/budgets/resolvers/budget.resolver'; import { InKindResolver } from '@features/in-kind/resolvers/in-kind.resolver'; import { AllActiveManagerProgramsResolver } from '@features/programs/resolvers/all-active-manager-programs.resolver'; import { CycleBudgetsMapResolver } from '@features/programs/resolvers/cycle-budgets-map.resolver'; import { ReferenceFieldsResolver } from '@features/reference-fields/reference-fields.resolver'; import { MyWorkflowManagerRolesResolver } from '@features/workflow/resolvers/my-workflow-manager-roles.resolver'; import { WorkflowResolver } from '@features/workflow/resolvers/workflow.resolver'; @Injectable({ providedIn: 'root' }) export class ApplicationManagerResolver implements Resolve { constructor ( private referenceFieldsResolver: ReferenceFieldsResolver, private inKindResolver: InKindResolver, private cycleBudgetsMapResolver: CycleBudgetsMapResolver, private budgetsResolver: BudgetResolver, private myWorkflowManagerRolesResolver: MyWorkflowManagerRolesResolver, private workflowResolver: WorkflowResolver, private activeManagerProgramsResolver: AllActiveManagerProgramsResolver ) { } async resolve () { await Promise.all([ this.referenceFieldsResolver.resolve(), this.inKindResolver.resolve(), this.cycleBudgetsMapResolver.resolve(), this.budgetsResolver.resolve(), this.activeManagerProgramsResolver.resolve(), this.myWorkflowManagerRolesResolver.resolve(), this.workflowResolver.resolve() ]); } }