import { NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; import { LocaleResolver } from '@core/resolvers/locale.resolver'; import { WorkflowFormEmailTemplateMapResolver } from '@core/resolvers/workflow-form-email-template-map.resolver'; import { GCCoreModule } from '@core/_core.module'; import { CharityBucketsResolver } from '@features/charity-buckets/charity-buckets.resolver'; import { FormsResolver } from '@features/configure-forms/resolvers/forms.resolver'; import { DocumentTemplatesResolver } from '@features/document-templates/resolvers/document-templates.resolver'; import { FundingSourceResolver } from '@features/funding-sources/resolvers/funding-source.resolver'; import { ReferenceFieldsResolver } from '@features/reference-fields/reference-fields.resolver'; import { EmailResolver } from '@features/system-emails/resolvers/email.resolver'; import { WorkflowResolver } from '@features/workflow/resolvers/workflow.resolver'; import { BaseProgramsPageComponent } from './base-programs-page/base-programs-page.component'; import { ProgramAutomationTableComponent } from './program-automation/program-automation-table/program-automation-table.component'; import { ProgramAutomationResolver } from './program-automation/resolvers/program-automation.resolver'; import { ProgramTabsComponent } from './program-tabs/program-tabs.component'; import { ProgramsPageWrapperComponent } from './programs-page-wrapper/progams-page-wrapper.component'; import { ProgramsModule } from './programs.module'; import { AllProgramsResolver } from './resolvers/all-programs.resolver'; import { CreateEditProgramResolver } from './resolvers/create-edit-program.resolver'; import { TranslateAutomationPageComponent } from './translation/translate-automation-page/translate-automation-page.component'; import { TranslateProgramsPageComponent } from './translation/translate-programs-page/translate-programs-page.component'; @NgModule({ imports: [ GCCoreModule, ProgramsModule, RouterModule.forChild([{ path: '', component: ProgramsPageWrapperComponent, resolve: { locales: LocaleResolver }, data: { namespace: ['PROGRAM'], pageName: 'Grant Programs' }, children: [{ path: 'all', component: BaseProgramsPageComponent, data: { breadcrumbLabel: 'Grant Programs', breadcrumb: true, pageName: 'Grant Programs' } }, { path: 'automation', component: ProgramAutomationTableComponent, resolve: { forms: FormsResolver }, data: { breadcrumbLabel: 'Program Automation', breadcrumb: true, pageName: 'Program Automation' } }, { path: '', pathMatch: 'exact', redirectTo: 'all' }] }, { path: '', children: [{ path: 'program/:id', component: ProgramTabsComponent, resolve: { forms: FormsResolver, workflows: WorkflowResolver, program: CreateEditProgramResolver, charityBuckets: CharityBucketsResolver, locales: LocaleResolver, emails: EmailResolver, fundingSources: FundingSourceResolver, documentTemplates: DocumentTemplatesResolver, refFields: ReferenceFieldsResolver, emailTemplateMap: WorkflowFormEmailTemplateMapResolver }, data: { breadcrumbLabel: 'Program Detail', breadcrumb: true, namespace: ['PROGRAM', 'BUDGET'], noReuse: true, pageName: 'Grant Program - Program Detail' } }] }, { path: 'translate-details', component: TranslateProgramsPageComponent, resolve: { programs: AllProgramsResolver }, data: { breadcrumb: true, breadcrumbLabel: 'Translation', namespace: ['PROGRAM'], pageName: 'Grant Program - Translation' } }, { path: 'translate-automation', component: TranslateAutomationPageComponent, resolve: { automation: ProgramAutomationResolver }, data: { breadcrumb: true, breadcrumbLabel: 'Translation', namespace: ['PROGRAM'], pageName: 'Grant Program Automation - Translation' } }]) ] }) export class ProgramsRoutingModule { }