import { APP_INITIALIZER, NgModule } from '@angular/core'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { BrowserModule } from '@angular/platform-browser'; import { MAT_DATE_LOCALE } from '@angular/material'; import { HttpClientModule } from '@angular/common/http'; import { L10nConfig, StorageStrategy, TranslationModule } from 'angular-l10n'; import { initRemoteLocalization, LOCALIZATION_PARAMS, POD_APP_PARAMS, PodRemoteLocalizationConfig } from '@monsantoit/pod-ui-commons-lib'; import { AppComponent } from './app.component'; import { environment } from '../environments/environment'; import { AppRoutingModule } from './app-routing.module'; import { HomeComponent } from './home/home.component'; import { MessageService, PodUiUtilsLibModule, MessagesSnackBarComponent, MessagesDialogComponent } from '@monsantoit/pod-ui-utils-lib'; const l10nConfig: L10nConfig = { locale: { storage: StorageStrategy.Disabled }, translation: { caching: true, composedKeySeparator: '*' } }; const localeConfig = localStorage.getItem('_locale') || 'en-US'; @NgModule({ declarations: [AppComponent, HomeComponent], imports: [ BrowserModule, BrowserAnimationsModule, HttpClientModule, BrowserAnimationsModule, TranslationModule.forRoot(l10nConfig), AppRoutingModule, PodUiUtilsLibModule ], providers: [ PodRemoteLocalizationConfig, { provide: LOCALIZATION_PARAMS, useValue: { url: environment.endPointConfig['pod-translations-url'], apps: ['pod-commons-ui', 'pod-service-fee'], locale: localeConfig } }, { provide: APP_INITIALIZER, useFactory: initRemoteLocalization, deps: [PodRemoteLocalizationConfig, LOCALIZATION_PARAMS], multi: true }, { provide: POD_APP_PARAMS, useValue: { environment: environment } }, { provide: MAT_DATE_LOCALE, useValue: localeConfig }, MessageService ], bootstrap: [AppComponent], exports: [BrowserModule], entryComponents: [MessagesSnackBarComponent, MessagesDialogComponent] }) export class AppModule {}