resilient/src/main/webapp/app/app.config.ts

64 lines
2.3 KiB
TypeScript

import { ApplicationConfig, LOCALE_ID, importProvidersFrom, inject } from '@angular/core';
import { BrowserModule, Title } from '@angular/platform-browser';
import {
Router,
RouterFeatures,
TitleStrategy,
provideRouter,
withComponentInputBinding,
withDebugTracing,
withNavigationErrorHandler,
NavigationError,
} from '@angular/router';
import { ServiceWorkerModule } from '@angular/service-worker';
import { HttpClientModule } from '@angular/common/http';
import { NgbDateAdapter } from '@ng-bootstrap/ng-bootstrap';
import { DEBUG_INFO_ENABLED } from 'app/app.constants';
import './config/dayjs';
import { TranslationModule } from 'app/shared/language/translation.module';
import { httpInterceptorProviders } from './core/interceptor';
import routes from './app.routes';
// jhipster-needle-angular-add-module-import JHipster will add new module here
import { NgbDateDayjsAdapter } from './config/datepicker-adapter';
import { AppPageTitleStrategy } from './app-page-title-strategy';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
const routerFeatures: Array<RouterFeatures> = [
withComponentInputBinding(),
withNavigationErrorHandler((e: NavigationError) => {
const router = inject(Router);
if (e.error.status === 403) {
router.navigate(['/accessdenied']);
} else if (e.error.status === 404) {
router.navigate(['/404']);
} else if (e.error.status === 401) {
router.navigate(['/login']);
} else {
router.navigate(['/error']);
}
}),
];
if (DEBUG_INFO_ENABLED) {
routerFeatures.push(withDebugTracing());
}
export const appConfig: ApplicationConfig = {
providers: [
provideRouter(routes, ...routerFeatures),
importProvidersFrom(BrowserModule),
importProvidersFrom(BrowserAnimationsModule),
// Set this to true to enable service worker (PWA)
importProvidersFrom(ServiceWorkerModule.register('ngsw-worker.js', { enabled: false })),
importProvidersFrom(TranslationModule),
importProvidersFrom(HttpClientModule),
Title,
{ provide: LOCALE_ID, useValue: 'pt-PT' },
{ provide: NgbDateAdapter, useClass: NgbDateDayjsAdapter },
httpInterceptorProviders,
{ provide: TitleStrategy, useClass: AppPageTitleStrategy },
// jhipster-needle-angular-add-module JHipster will add new module here
],
};