import { NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; import { ConfirmNavigationGuard } from '@core/guards/confirm-navigation.guard'; import { LocaleResolver } from '@core/resolvers/locale.resolver'; import { EditApplicationResolver } from '@features/application-manager/resolvers/edit-application.resolver'; import { ApplicationViewModule } from '@features/application-view/application-view.module'; import { AwardsTabComponent } from '@features/application-view/awards-tab/awards-tab.component'; import { FormsTabComponent } from '@features/application-view/forms-tab/forms-tab.component'; import { BudgetResolver } from '@features/budgets/resolvers/budget.resolver'; import { FormsResolver } from '@features/configure-forms/resolvers/forms.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 { AllActiveManagerProgramsResolver } from '@features/programs/resolvers/all-active-manager-programs.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 { SystemTags } from '@features/system-tags/typings/system-tags.typing'; import { WorkflowResolver } from '@features/workflow/resolvers/workflow.resolver'; import { EditApplicationWrapperComponent } from '../application-view/edit-application-wrapper/edit-application-wrapper.component'; @NgModule({ imports: [ ApplicationViewModule, RouterModule.forChild([{ path: '', component: EditApplicationWrapperComponent, resolve: { application: EditApplicationResolver, locale: LocaleResolver, emails: EmailResolver, ssoFields: EmployeeSSOFieldsResolver, programs: AllProgramsResolver, budgets: BudgetResolver, tags: EntityTagsResolver, fundingSources: FundingSourceResolver, forms: FormsResolver, fields: ReferenceFieldsResolver, inKind: InKindResolver, workflows: WorkflowResolver, activeManagerPrograms: AllActiveManagerProgramsResolver }, data: { tagType: SystemTags.Buckets.Application, namespace: ['APPLY', 'MANAGE', 'FORMS', 'BUDGET'], breadcrumbLabel: 'Edit', breadcrumb: true, pageName: 'Manager - Edit Application' }, children: [{ path: 'form/:formId', component: FormsTabComponent, data: { isEdit: true, breadcrumbLabel: 'Edit', breadcrumb: true, pageName: 'Manager - Edit Application, Edit Form' }, canDeactivate: [ ConfirmNavigationGuard ] }, { path: 'awards', component: AwardsTabComponent, resolve: { locale: LocaleResolver, budgets: BudgetResolver }, data: { isEdit: true, namespace: ['AWARDS'], breadcrumbLabel: 'Edit', breadcrumb: true, pageName: 'Manager - Edit Application, Edit Awards' } }, { 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 OfflineGrantsRoutingModule { }