Files
monorepo/LCU.WebApps.External.OnlineLoanApp/src/app/app-routing.module.ts
T
2026-03-25 11:54:22 -05:00

126 lines
4.7 KiB
TypeScript

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { LoanWizardComponent } from './loan-wizard/loan-wizard.component';
import { SelectLoanComponent } from './select-loan/select-loan.component';
import { AppUnavailableComponent } from './shared/app-unavailable/app-unavailable-page.component';
import { DealershipPortalComponent } from './shared/dealership-portal/dealership-portal-page.component';
import { ConfigurationResolver } from './shared/configuration/configuration.resolver';
import { ConfigurationService } from './shared/configuration/configuration.service';
import { TimeoutLandingPageComponent } from './shared/timeout/timeout-landing-page.component';
import { AppTimeoutGuard } from './shared/guards/app-timeout.guard';
import { ccRoutes } from './loan-wizard/wizards/credit-card/credit-card-routing.module';
import { eqRoutes } from './loan-wizard/wizards/equity/equity-routing.module';
import { veRoutes } from './loan-wizard/wizards/vehicle/vehicle-routing.module';
import { slRoutes } from './loan-wizard/wizards/signature/signature-routing.module';
import { SelectCreditCardComponent } from './select-loan/credit-card/select-credit-card.component';
import { SelectLoanOutletComponent } from './select-loan/outlet/select-loan-outlet.component';
import { SelectHomeEquityComponent } from './select-loan/home/select-home-equity.component';
import { SelectVehicleComponent } from './select-loan/vehicle/select-vehicle.component';
import { SelectSubVehicleComponent } from './select-loan/vehicle/sub-vehicle/select-sub-vehicle.component';
import { MemberLoginComponent } from './member/member-login/member-login.component';
import { MemberOutletComponent } from './member/member-outlet/member-outlet.component';
import { AuthenticationGuard } from 'microsoft-adal-angular6';
import { AdminRoleGuard } from './shared/guards/admin-role.guard';
import { environment } from 'src/environments/environment';
import { TestRoleGuard } from './shared/guards/test-role.guard';
import { MemberLoginGuard } from './shared/guards/member-login.guard';
import { MemberVerificationComponent } from './member/member-verification/member-verification.component';
import { MemberVerificationGuard } from './shared/guards/member-verification-guard';
import { MemberCoreResolver } from './member/member-core.resolver';
import { AppDownComponent } from './shared/app-down/app-down-page.component';
export const routes: Routes = [
{
path: 'select-loan',
component: SelectLoanOutletComponent,
resolve: {UiSettings: ConfigurationResolver},
canActivate:
environment.testGuard ? [AuthenticationGuard, TestRoleGuard, MemberVerificationGuard] : [MemberVerificationGuard],
children: [
{
path: '',
component: SelectLoanComponent
},
{
path: 'credit-card',
component: SelectCreditCardComponent
},
{
path: 'home-equity',
component: SelectHomeEquityComponent,
},
{
path: 'vehicle',
component: SelectVehicleComponent,
},
{
path: 'sub-vehicle',
component: SelectSubVehicleComponent,
}
]
},
{
path: 'member',
component: MemberOutletComponent,
canActivate: environment.testGuard ? [AuthenticationGuard] : [],
children: [
{
path: '',
component: MemberLoginComponent
},
{
path: 'verification',
component: MemberVerificationComponent
},
]
},
{
path: 'admin',
canActivate: [AuthenticationGuard, AdminRoleGuard],
loadChildren: './admin/admin.module#AdminModule'
},
{
path: 'timeout',
component: TimeoutLandingPageComponent,
canDeactivate: [AppTimeoutGuard]
},
{
path: 'error',
component: AppUnavailableComponent
},
{
path: 'dealership-portal',
resolve: {UiSettings: ConfigurationResolver},
component: DealershipPortalComponent
},
{
path: 'down',
component: AppDownComponent
},
{
path: 'loan-wizard',
component: LoanWizardComponent,
resolve: {UiSettings: ConfigurationResolver},
canActivate: [ MemberLoginGuard ],
canActivateChild:
environment.testGuard ? [AuthenticationGuard, TestRoleGuard, MemberVerificationGuard] : [MemberVerificationGuard],
children: [
ccRoutes,
eqRoutes,
veRoutes,
slRoutes,
{path: '', redirectTo: '/select-loan', pathMatch: 'prefix'},
]
},
{path: '', redirectTo: '/select-loan', pathMatch: 'full'},
{path: '**', redirectTo: '/select-loan'},
];
@NgModule({
imports: [RouterModule.forRoot(routes, {useHash: false, enableTracing: false})],
exports: [RouterModule],
providers: [ConfigurationService, ConfigurationResolver, MemberCoreResolver]
})
export class AppRoutingModule {}