import { NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; import { BatchStatusResolver } from '@core/resolvers/batch-status.resolver'; import { BudgetSourceOptionsResolver } from '@core/resolvers/budget-source-options.resolver'; import { LocaleResolver } from '@core/resolvers/locale.resolver'; import { APConfigResolver } from '@features/ap-config/ap-config.resolver'; import { AllAudiencesResolver } from '@features/audience/resolvers/all-audiences.resolver'; import { InKindResolver } from '@features/in-kind/resolvers/in-kind.resolver'; import { ManagePaymentsComponent } from '@features/payment-processing/manage-payments/manage-payments.component'; import { PaymentProcessingPageComponent } from '@features/payment-processing/payment-processing-page/payment-processing-page.component'; import { PaymentProcessingModule } from '@features/payment-processing/payment-processing.module'; import { PaymentsPageComponent } from '@features/payment-processing/payments-page/payments-page.component'; import { SchedulePageComponent } from '@features/payment-processing/schedule-page/schedule-page.component'; import { AllActiveManagerProgramsResolver } from '@features/programs/resolvers/all-active-manager-programs.resolver'; import { AllProgramsResolver } from '@features/programs/resolvers/all-programs.resolver'; import { BasicSFTPCredentialsResolver } from '@features/sftp/resolvers/basic-sftp-credentials.resolver'; import { SystemTagsResolver } from '@features/system-tags/resolvers/system-tags.resolver'; import { WorkflowResolver } from '@features/workflow/resolvers/workflow.resolver'; import { DisbursementReportPageComponent } from './disbursement-report-page/disbursement-report-page.component'; import { InKindPaymentsPageComponent } from './in-kind-payments-page/in-kind-payments-page.component'; import { InKindPaymentStatsResolver } from './resolvers/in-kind-payment-stats.resolver'; import { PaymentProcessingResolver } from './resolvers/payment-processing-resolver'; @NgModule({ imports: [ PaymentProcessingModule, RouterModule.forChild([{ path: '', component: PaymentProcessingPageComponent, resolve: { locales: LocaleResolver, batchStatus: BatchStatusResolver, budgetSource: BudgetSourceOptionsResolver, processing: PaymentProcessingResolver, inKind: InKindResolver, apConfig: APConfigResolver, allAudiences: AllAudiencesResolver, allSftp: BasicSFTPCredentialsResolver, programs: AllActiveManagerProgramsResolver, workflows: WorkflowResolver, tags: SystemTagsResolver }, data: { namespace: ['MANAGE'], pageName: 'Payment Processing' }, children: [{ path: 'available', component: SchedulePageComponent, data: { breadcrumbLabel: 'Payment Processing', breadcrumb: true, pageName: 'Payment Processing - Avaliable Tab' } }, { path: 'batches', component: SchedulePageComponent, data: { breadcrumbLabel: 'Payment Processing', breadcrumb: true, pageName: 'Payment Processing - Batches Tab' } }, { path: 'manage-available/:processor', component: ManagePaymentsComponent, data: { breadcrumb: true, breadcrumbLabel: 'Manage Available', pageName: 'Payment Processing - Manage Payments' }, children: [{ path: 'included', data: { breadcrumb: true, breadcrumbLabel: 'Manage Available', pageName: 'Payment Processing - Manage Payments (Included)' } }, { path: 'excluded', data: { breadcrumb: true, breadcrumbLabel: 'Manage Available', pageName: 'Payment Processing - Manage Payments (Excluded)' } }] }, { path: 'manage-batch/:id', component: ManagePaymentsComponent, data: { breadcrumb: true, breadcrumbLabel: 'Manage Batch', pageName: 'Payment Processing - Manage Batch' }, children: [{ path: 'included', data: { breadcrumb: true, breadcrumbLabel: 'Manage Batch', pageName: 'Payment Processing - Manage Batch (Included)' } }, { path: 'excluded', data: { breadcrumb: true, breadcrumbLabel: 'Manage Batch', pageName: 'Payment Processing - Manage Batch (Excluded)' } }] }, { path: 'payments', component: PaymentsPageComponent, data: { breadcrumbLabel: 'Payment Processing', breadcrumb: true, pageName: 'Payment Processing - Cash Payments Tab' } }, { path: 'in-kind-payments', component: InKindPaymentsPageComponent, resolve: { stats: InKindPaymentStatsResolver }, children: [{ path: 'pending', data: { breadcrumb: true, breadcrumbLabel: 'Pending', pageName: 'Payment Processing - In-Kind Payments Tab (Pending)' } }, { path: 'fulfilled', data: { breadcrumb: true, breadcrumbLabel: 'Fulfilled', pageName: 'Payment Processing - In-Kind Payments Tab (Fulfilled)' } }] }, { path: 'disbursement-report', component: DisbursementReportPageComponent, resolve: { allPrograms: AllProgramsResolver }, data: { breadcrumb: true, breadcrumbLabel: 'Disbursement Report', pageName: 'Payment Processing - Disbursement Report Tab' } }, { path: '', pathMatch: 'full', redirectTo: 'available' }] }, { 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 PaymentProcessingRoutingModule { }