import { Injectable } from '@angular/core'; import { Resolve } from '@angular/router'; import { BudgetSourceOptionsResolver } from '@core/resolvers/budget-source-options.resolver'; import { FormsResolver } from '@features/configure-forms/resolvers/forms.resolver'; import { EmployeeSSOFieldsService } from '@features/employee-sso-fields/employee-sso-fields.service'; import { StandardProductConfigurationService } from '@features/platform-admin/standard-product-configuration/standard-product-configuration.service'; import { AllActiveManagerProgramsResolver } from '@features/programs/resolvers/all-active-manager-programs.resolver'; import { ReferenceFieldsResolver } from '@features/reference-fields/reference-fields.resolver'; import { SystemTagsResolver } from '@features/system-tags/resolvers/system-tags.resolver'; import { WorkflowResolver } from '@features/workflow/resolvers/workflow.resolver'; import { AdHocReportingDefinitions } from '../services/ad-hoc-reporting-definitions.service'; @Injectable({ providedIn: 'root' }) export class AdHocReportingResolver implements Resolve { constructor ( private employeeSSOFieldsService: EmployeeSSOFieldsService, private allActiveManagerProgramsResolver: AllActiveManagerProgramsResolver, private workflowResolver: WorkflowResolver, private referenceFieldsResolver: ReferenceFieldsResolver, private adHocReportingDefinitions: AdHocReportingDefinitions, private budgetSourceOptionsResolver: BudgetSourceOptionsResolver, private formsResolver: FormsResolver, private standardProductService: StandardProductConfigurationService, private systemTagsResolver: SystemTagsResolver ) { } async resolve () { await Promise.all([ this.employeeSSOFieldsService.setEmployeeSSOFields(), this.allActiveManagerProgramsResolver.resolve(), this.workflowResolver.resolve(), this.referenceFieldsResolver.resolve(), this.budgetSourceOptionsResolver.resolve(), this.standardProductService.setStandardReportTemplates(), this.formsResolver.resolve(), this.systemTagsResolver.resolve() ]); this.adHocReportingDefinitions.setApplicantColumnsForReporting(); } }