import { HttpClient, HttpClientModule } from '@angular/common/http'; import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { RouterModule } from '@angular/router'; import { TranslateLoader, TranslateModule } from '@ngx-translate/core'; import { TranslateHttpLoader } from '@ngx-translate/http-loader'; import { IdlePreload, IdlePreloadModule } from 'angular-idle-preload'; import { AppComponent } from '../../app/app.component'; import { AppModule } from '../../app/app.module'; import { DSpaceBrowserTransferStateModule } from '../transfer-state/dspace-browser-transfer-state.module'; import { DSpaceTransferState } from '../transfer-state/dspace-transfer-state.service'; export function createTranslateLoader(http: HttpClient) { return new TranslateHttpLoader(http, 'assets/i18n/', '.json'); } @NgModule({ bootstrap: [AppComponent], imports: [ BrowserModule.withServerTransition({ appId: 'dspace-angular' }), HttpClientModule, // forRoot ensures the providers are only created once IdlePreloadModule.forRoot(), RouterModule.forRoot([], { // enableTracing: true, useHash: false, preloadingStrategy: IdlePreload }), BrowserAnimationsModule, DSpaceBrowserTransferStateModule, TranslateModule.forRoot({ loader: { provide: TranslateLoader, useFactory: (createTranslateLoader), deps: [HttpClient] } }), AppModule ], }) export class BrowserAppModule { constructor( private transferState: DSpaceTransferState, ) { this.transferState.transfer(); } }