import { CommonModule } from '@angular/common'; import { NgModule, inject } from '@angular/core'; import { ActivatedRouteSnapshot, RouterModule, RouterStateSnapshot, Routes } from '@angular/router'; import { AuthGuard } from '../auth/auth-guard.service'; import { PaymentAccountsResolver } from './payment-accounts-resolver.service'; import { PaymentResolver } from './payment-resolver.service'; import { PaymentComponent } from './payment.component'; const paymentRoutes: Routes = [ { path: '', component: PaymentComponent, canActivate: [ (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => inject(AuthGuard).canActivate(route, state), ], data: { permission: 'journal', }, resolve: { paymentAccounts: () => inject(PaymentAccountsResolver).resolve(), voucher: (route: ActivatedRouteSnapshot) => inject(PaymentResolver).resolve(route), }, runGuardsAndResolvers: 'paramsChange', }, { path: ':id', component: PaymentComponent, canActivate: [ (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => inject(AuthGuard).canActivate(route, state), ], data: { permission: 'journal', }, resolve: { paymentAccounts: () => inject(PaymentAccountsResolver).resolve(), voucher: (route: ActivatedRouteSnapshot) => inject(PaymentResolver).resolve(route), }, runGuardsAndResolvers: 'paramsChange', }, ]; @NgModule({ imports: [CommonModule, RouterModule.forChild(paymentRoutes)], exports: [RouterModule], providers: [PaymentResolver], }) export class PaymentRoutingModule {}