import { NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; import { BudgetSourceOptionsResolver } from '@core/resolvers/budget-source-options.resolver'; import { TranslationsViewResolver } from '@core/resolvers/translations-view.resolver'; import { BudgetAssignmentHistoryPageComponent } from '@features/budget-assignments/budget-assignment-history-page/budget-assignment-history-page.component'; import { BudgetAssignmentPageComponent } from '@features/budget-assignments/budget-assignment-page/budget-assignment-page.component'; import { BudgetAssignmentsModule } from '@features/budget-assignments/budget-assignments.module'; import { ManageBudgetAssignmentPageComponent } from '@features/budget-assignments/manage-budget-assignment-page/manage-budget-assignment-page.component'; import { FormsResolver } from '@features/configure-forms/resolvers/forms.resolver'; import { CustomDataTablesResolver } from '@features/custom-data-tables/resolvers/custom-data-tables.resolver'; import { EmployeeSSOFieldsConfigurationResolver } from '@features/employee-sso-fields/resolvers/employee-sso-fields-configuration.resolver'; import { BudgetFundingSourceResolver } from '@features/funding-sources/resolvers/budget-funding-source.resolver'; import { FundingSourceResolver } from '@features/funding-sources/resolvers/funding-source.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 { WorkflowAutomationFactoriesResolver } from '@features/workflow-automation/resolvers/workflow-automation-factories.resolver'; import { WorkflowResolver } from '@features/workflow/resolvers/workflow.resolver'; import { BudgetAssignmentDetailResolver } from '../budget-assignments/budget-assignment-detail.resolver'; import { BudgetAuditTrailTabComponent } from './budget-audit-trail-tab/budget-audit-trail-tab.component'; import { BudgetFundingSourcesTabComponent } from './budget-funding-sources-tab/budget-funding-sources-tab.component'; import { BudgetsPageComponent } from './budgets-page/budgets-page.component'; import { BudgetsWrapperComponent } from './budgets-wrapper/budgets-wrapper.component'; import { BudgetsModule } from './budgets.module'; import { NewEditBudgetsPageComponent } from './new-edit-budgets-page/new-edit-budgets-page.component'; import { EditBudgetResolver } from './resolvers/edit-budget.resolver'; @NgModule({ imports: [ BudgetAssignmentsModule, BudgetsModule, RouterModule.forChild([{ path: '', component: BudgetsWrapperComponent, resolve: { fundingSources: BudgetFundingSourceResolver }, data: { namespace: ['BUDGETS'], breadcrumb: true, breadcrumbLabel: 'Budgets' }, children: [{ path: 'open', component: BudgetsPageComponent, data: { breadcrumbLabel: 'Open Budgets', breadcrumb: true, pageName: 'Open Budgets Tab' } }, { path: 'closed', component: BudgetsPageComponent, data: { breadcrumbLabel: 'Closed Budgets', breadcrumb: true, pageName: 'Closed Budgets Tab' } }, { path: '', pathMatch: 'exact', redirectTo: 'open' }, { path: '', resolve: { workflow: WorkflowResolver, forms: FormsResolver, programs: AllProgramsResolver, myPrograms: AllActiveManagerProgramsResolver, customColumnConfig: EmployeeSSOFieldsConfigurationResolver, dataTables: CustomDataTablesResolver, referenceFields: ReferenceFieldsResolver, factories: WorkflowAutomationFactoriesResolver, budgetOptions: BudgetSourceOptionsResolver, translations: TranslationsViewResolver }, children: [{ path: 'assignments', component: BudgetAssignmentPageComponent, data: { breadcrumbLabel: 'Budget Assignments', breadcrumb: true, pageName: 'Budget Assignments Tab' } }, { path: 'assignment-history', component: BudgetAssignmentHistoryPageComponent, data: { breadcrumbLabel: 'Assignment History', breadcrumb: true, pageName: 'Assignment History Tab' } }] }] }, { path: 'assignments/:id', component: ManageBudgetAssignmentPageComponent, resolve: { workflow: WorkflowResolver, forms: FormsResolver, programs: AllProgramsResolver, myPrograms: AllActiveManagerProgramsResolver, customColumnConfig: EmployeeSSOFieldsConfigurationResolver, dataTables: CustomDataTablesResolver, referenceFields: ReferenceFieldsResolver, factories: WorkflowAutomationFactoriesResolver, budgetOptions: BudgetSourceOptionsResolver, detail: BudgetAssignmentDetailResolver }, data: { breadcrumbLabel: 'Budget Assignment', breadcrumb: true } }, { path: ':id', component: NewEditBudgetsPageComponent, resolve: { budget: EditBudgetResolver, budgets: BudgetFundingSourceResolver, sources: FundingSourceResolver }, children: [{ path: 'funding-sources', component: BudgetFundingSourcesTabComponent, data: { breadcrumbLabel: 'Budget Detail', breadcrumb: true, pageName: 'Funding Sources Tab' } }, { path: 'audit-trail', component: BudgetAuditTrailTabComponent, data: { breadcrumbLabel: 'Budget Detail', breadcrumb: true, pageName: 'Audit Trail Tab' } }], data: { breadcrumbLabel: 'Budget Detail', breadcrumb: true } }, { path: '', pathMatch: 'full', redirectTo: 'open' }]) ]}) export class BudgetsRoutingModule { }