Files
flights_web/ClientApp/src/app/app.module.ts
T

117 lines
3.3 KiB
TypeScript

import { NgModule, ErrorHandler, LOCALE_ID } from '@angular/core';
import {
HttpClient,
HttpClientModule,
HTTP_INTERCEPTORS,
} from '@angular/common/http';
import { registerLocaleData } from '@angular/common';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { FormsModule } from '@angular/forms';
import {
TranslateModule,
TranslateLoader,
TranslateService,
} from '@ngx-translate/core';
import { AppRoutingModule } from '@app/app-routing.module';
import { AppComponent } from '@app/app.component';
import { ErrorHandlerProvider } from '@shared/providers';
import {
AppInsightService,
appInsightsProvider,
baseHrefProvider,
LocalizationService,
settingsProvider,
windowProvider,
} from '@shared/services';
import { TranslateHttpLoaderFactory } from '@shared/factories';
import { SharedModule } from '@shared';
import { FlightsModule } from '@modules/flights.module';
import localeRu from '@angular/common/locales/ru';
import localeEn from '@angular/common/locales/en';
import localeEs from '@angular/common/locales/es';
import localeFr from '@angular/common/locales/fr';
import localeIt from '@angular/common/locales/it';
import localeJa from '@angular/common/locales/ja';
import localeKo from '@angular/common/locales/ko';
import localeZh from '@angular/common/locales/zh';
import localeDe from '@angular/common/locales/de';
import { ScrollingModule } from '@angular/cdk/scrolling';
import { LayoutModule } from '@angular/cdk/layout';
import { AppInterceptor } from '@shared/interceptor/app.interceptor';
import { MomentModule } from 'ngx-moment';
registerLocaleData(localeRu);
registerLocaleData(localeZh);
registerLocaleData(localeEn);
registerLocaleData(localeEs);
registerLocaleData(localeFr);
registerLocaleData(localeIt);
registerLocaleData(localeJa);
registerLocaleData(localeKo);
registerLocaleData(localeDe);
@NgModule({
declarations: [AppComponent],
imports: [
BrowserModule,
//BrowserModule.withServerTransition({ appId: 'serverApp' }),
BrowserAnimationsModule,
AppRoutingModule,
FormsModule,
SharedModule,
FlightsModule,
HttpClientModule,
ScrollingModule,
LayoutModule,
MomentModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: TranslateHttpLoaderFactory,
deps: [HttpClient],
},
}),
],
providers: [
baseHrefProvider,
{
provide: LOCALE_ID,
deps: [LocalizationService],
useFactory: (locale: LocalizationService) => locale.Language,
},
{
provide: ErrorHandler,
useClass: ErrorHandlerProvider,
},
{
provide: HTTP_INTERCEPTORS,
useClass: AppInterceptor,
multi: true,
},
appInsightsProvider,
windowProvider,
settingsProvider,
],
bootstrap: [AppComponent],
})
export class AppModule {
constructor(
appInsights: AppInsightService,
translate: TranslateService,
locale: LocalizationService,
) {
appInsights.configure();
locale.init(translate);
}
}