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 { CostCentreListResolver } from '../cost-centre/cost-centre-list-resolver.service'; import { PeriodDetailComponent } from './period-detail/period-detail.component'; import { PeriodListComponent } from './period-list/period-list.component'; import { PeriodListResolver } from './period-list-resolver.service'; import { PeriodResolver } from './period-resolver.service'; const periodRoutes: Routes = [ { path: '', component: PeriodListComponent, canActivate: [ (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => inject(AuthGuard).canActivate(route, state), ], data: { permission: 'Recipes', }, resolve: { list: () => inject(PeriodListResolver).resolve(), }, }, { path: 'new', component: PeriodDetailComponent, canActivate: [ (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => inject(AuthGuard).canActivate(route, state), ], data: { permission: 'Recipes', }, resolve: { item: (route: ActivatedRouteSnapshot) => inject(PeriodResolver).resolve(route), costCentres: () => inject(CostCentreListResolver).resolve(), }, }, { path: ':id', component: PeriodDetailComponent, canActivate: [ (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => inject(AuthGuard).canActivate(route, state), ], data: { permission: 'Recipes', }, resolve: { item: (route: ActivatedRouteSnapshot) => inject(PeriodResolver).resolve(route), costCentres: () => inject(CostCentreListResolver).resolve(), }, }, ]; @NgModule({ imports: [CommonModule, RouterModule.forChild(periodRoutes)], exports: [RouterModule], providers: [PeriodListResolver, PeriodResolver], }) export class PeriodRoutingModule {}