import { OverlayModule } from '@angular/cdk/overlay'; import { HttpClient, HttpClientModule } from '@angular/common/http'; import { LOCALE_ID, NgModule } from '@angular/core'; import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core'; import { MatMomentDateModule, MAT_MOMENT_DATE_FORMATS } from '@angular/material-moment-adapter'; import { BrowserModule, Title } from '@angular/platform-browser'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { TranslateLoader, TranslateModule } from '@ngx-translate/core'; import { TranslateHttpLoader } from '@ngx-translate/http-loader'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { MomentUtcDateAdapter } from './common/date/moment-utc-date-adapter'; import { CommonHttpModule } from './common/http/common-http.module'; import { CommonUiModule } from './common/ui/common-ui.module'; import { CoreServiceModule } from './core/core-service.module'; import { CultureService } from './core/services/culture/culture-service'; import { NotificationModule } from './library/notification/notification.module'; import { BreadcrumbModule } from './ui/misc/breadcrumb/breadcrumb.module'; import { HelpContentModule } from './ui/misc/help-content/help-content.module'; import { NavigationModule } from './ui/misc/navigation/navigation.module'; import { LoginModule } from './ui/auth/login/login.module'; import { ReactiveFormsModule, FormsModule } from '@angular/forms'; import { DatasetCreateWizardModule } from './ui/dataset-create-wizard/dataset-create-wizard.module'; import { NavbarModule } from './ui/navbar/navbar.module'; import { SidebarModule } from './ui/sidebar/sidebar.module'; // AoT requires an exported function for factories export function HttpLoaderFactory(http: HttpClient) { return new TranslateHttpLoader(http, 'assets/i18n/', '.json'); } @NgModule({ imports: [ BrowserModule, BrowserAnimationsModule, CoreServiceModule.forRoot(), AppRoutingModule, CommonUiModule, TranslateModule.forRoot({ loader: { provide: TranslateLoader, useFactory: HttpLoaderFactory, deps: [HttpClient] } }), HttpClientModule, OverlayModule, CommonHttpModule, MatMomentDateModule, LoginModule, //Ui NotificationModule, NavigationModule, BreadcrumbModule, HelpContentModule, ReactiveFormsModule, FormsModule, DatasetCreateWizardModule, NavbarModule, SidebarModule ], declarations: [ AppComponent ], providers: [ { provide: MAT_DATE_LOCALE, deps: [CultureService], useFactory: (cultureService) => cultureService.getCurrentCulture().name }, { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS }, { provide: DateAdapter, useClass: MomentUtcDateAdapter }, { provide: LOCALE_ID, deps: [CultureService], useFactory: (cultureService) => cultureService.getCurrentCulture().name }, Title ], bootstrap: [AppComponent] }) export class AppModule { }