1 import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
8 } from '@angular/core';
9 import { BrowserModule } from '@angular/platform-browser';
10 import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
12 import { JwtModule } from '@auth0/angular-jwt';
13 import { I18n } from '@ngx-translate/i18n-polyfill';
14 import { BlockUIModule } from 'ng-block-ui';
15 import { AccordionModule } from 'ngx-bootstrap/accordion';
16 import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
17 import { TabsModule } from 'ngx-bootstrap/tabs';
18 import { ToastrModule } from 'ngx-toastr';
20 import { AppRoutingModule } from './app-routing.module';
21 import { AppComponent } from './app.component';
22 import { CephModule } from './ceph/ceph.module';
23 import { CoreModule } from './core/core.module';
24 import { ApiInterceptorService } from './shared/services/api-interceptor.service';
25 import { JsErrorHandler } from './shared/services/js-error-handler.service';
26 import { SharedModule } from './shared/shared.module';
28 import { environment } from '../environments/environment';
30 export function jwtTokenGetter() {
31 return localStorage.getItem('access_token');
35 declarations: [AppComponent],
38 BlockUIModule.forRoot(),
40 BrowserAnimationsModule,
41 ToastrModule.forRoot({
42 positionClass: 'toast-top-right',
43 preventDuplicates: true,
50 AccordionModule.forRoot(),
51 BsDropdownModule.forRoot(),
55 tokenGetter: jwtTokenGetter
59 exports: [SharedModule],
62 provide: ErrorHandler,
63 useClass: JsErrorHandler
66 provide: HTTP_INTERCEPTORS,
67 useClass: ApiInterceptorService,
71 provide: TRANSLATIONS,
72 useFactory: (locale) => {
73 locale = locale || environment.default_lang;
75 return require(`raw-loader!locale/messages.${locale}.xlf`);
82 { provide: TRANSLATIONS_FORMAT, useValue: 'xlf' },
85 bootstrap: [AppComponent]
87 export class AppModule {}