import { HttpClient, HttpClientModule } from '@angular/common/http'; import { NgModule } from '@angular/core'; import { ReactiveFormsModule } from '@angular/forms'; import { BrowserModule } from '@angular/platform-browser'; import { RouteReuseStrategy } from '@angular/router'; import player from 'lottie-web'; import { LottieModule } from 'ngx-lottie'; import { IonicModule, IonicRouteStrategy } from '@ionic/angular'; import { FormlyModule } from '@ngx-formly/core'; import { FormlyIonicModule } from '@ngx-formly/ionic'; import { TranslateLoader, TranslateModule } from '@ngx-translate/core'; import { TranslateHttpLoader } from '@ngx-translate/http-loader'; import { SharedModule } from '@shared/shared.module'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { CoreModule } from './core/core.module'; export function LanguageLoader(http: HttpClient) { return new TranslateHttpLoader(http, 'assets/i18n/', '.json'); } // Note we need a separate function as it's required // by the AOT compiler. export function playerFactory() { return player; } @NgModule({ declarations: [ AppComponent, ], imports: [ BrowserModule, IonicModule.forRoot(), AppRoutingModule, HttpClientModule, TranslateModule.forRoot({ loader: { provide: TranslateLoader, useFactory: (LanguageLoader), deps: [HttpClient], } }), CoreModule, SharedModule, LottieModule.forRoot({ player: playerFactory }), ReactiveFormsModule, FormlyModule.forRoot(), FormlyIonicModule ], providers: [ { provide: RouteReuseStrategy, useClass: IonicRouteStrategy } ], bootstrap: [AppComponent] }) export class AppModule { }