import { NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; import { ConfirmNavigationGuard } from '@core/guards/confirm-navigation.guard'; import { ApplicationViewResolver } from '@core/resolvers/application-view.resolver'; import { LocaleResolver } from '@core/resolvers/locale.resolver'; import { GCCoreModule } from '@core/_core.module'; import { BudgetResolver } from '@features/budgets/resolvers/budget.resolver'; import { FormsResolver } from '@features/configure-forms/resolvers/forms.resolver'; import { DocumentTemplatesResolver } from '@features/document-templates/resolvers/document-templates.resolver'; import { EmployeeSSOFieldsResolver } from '@features/employee-sso-fields/resolvers/employee-sso-fields.resolver'; import { FundingSourceResolver } from '@features/funding-sources/resolvers/funding-source.resolver'; import { InKindResolver } from '@features/in-kind/resolvers/in-kind.resolver'; import { AllProgramsResolver } from '@features/programs/resolvers/all-programs.resolver'; import { ReferenceFieldsResolver } from '@features/reference-fields/reference-fields.resolver'; import { EmailResolver } from '@features/system-emails/resolvers/email.resolver'; import { EntityTagsResolver } from '@features/system-tags/resolvers/entity-tags.resolver'; import { SystemTagsResolver } from '@features/system-tags/resolvers/system-tags.resolver'; import { SystemTags } from '@features/system-tags/typings/system-tags.typing'; import { ActivityTabComponent } from './activity-tab/activity-tab.component'; import { ApplicationAttachmentsTabComponent } from './application-attachments/application-attachments-tab/application-attachments-tab.component'; import { ApplicationViewPageComponent } from './application-view-page/application-view-page.component'; import { ApplicationViewModule } from './application-view.module'; import { AwardsTabComponent } from './awards-tab/awards-tab.component'; import { CommunicationsTabComponent } from './communications-tab/communications-tab.component'; import { FormsTabComponent } from './forms-tab/forms-tab.component'; @NgModule({ imports: [ GCCoreModule, ApplicationViewModule, RouterModule.forChild([{ path: '', component: ApplicationViewPageComponent, resolve: { application: ApplicationViewResolver, locale: LocaleResolver, programs: AllProgramsResolver, budgets: BudgetResolver, tags: EntityTagsResolver, forms: FormsResolver, ssoFields: EmployeeSSOFieldsResolver, fields: ReferenceFieldsResolver, inKind: InKindResolver, systemTags: SystemTagsResolver }, data: { tagType: SystemTags.Buckets.Application, namespace: ['APPLY', 'MANAGE', 'FORMS', 'BUDGET'], isNomination: false, pageName: 'Application View' }, children: [{ path: 'form/:formId', component: FormsTabComponent, data: { pageName: 'Application View - Form' }, canDeactivate: [ ConfirmNavigationGuard ] }, { path: 'awards', component: AwardsTabComponent, resolve: { locale: LocaleResolver, sources: FundingSourceResolver }, data: { namespace: ['AWARDS'], pageName: 'Application View - Award' } }, { path: 'communications', children: [{ path: '', redirectTo: '0' }, { path: ':id', component: CommunicationsTabComponent }], data: { pageName: 'Application View - Communications' } }, { path: 'activity', component: ActivityTabComponent, data: { pageName: 'Application View - Activity' }, resolve: { sources: FundingSourceResolver } }, { path: 'attachments', component: ApplicationAttachmentsTabComponent, resolve: { templates: DocumentTemplatesResolver, emails: EmailResolver }, data: { pageName: 'Application View - Attachments' } }, { path: '', pathMatch: 'full', redirectTo: 'form/no-form' }] }, { path: 'nonprofit', loadChildren: () => import('@features/nonprofit/nonprofit-routing.module').then(m => m.NonprofitRoutingModule) }, { path: 'applicant-profile', loadChildren: () => import('@features/applicant/applicant-routing.module').then(m => m.ApplicantRoutingModule) }]) ] }) export class ApplicationViewRoutingModule { }