]>
Commit | Line | Data |
---|---|---|
e306af50 | 1 | import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http'; |
eafe8130 TL |
2 | import { |
3 | ErrorHandler, | |
4 | LOCALE_ID, | |
5 | NgModule, | |
6 | TRANSLATIONS, | |
7 | TRANSLATIONS_FORMAT | |
8 | } from '@angular/core'; | |
11fdf7f2 TL |
9 | import { BrowserModule } from '@angular/platform-browser'; |
10 | import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; | |
11 | ||
12 | import { JwtModule } from '@auth0/angular-jwt'; | |
13 | import { I18n } from '@ngx-translate/i18n-polyfill'; | |
9f95a23c TL |
14 | import { NgBootstrapFormValidationModule } from 'ng-bootstrap-form-validation'; |
15 | ||
11fdf7f2 TL |
16 | import { AccordionModule } from 'ngx-bootstrap/accordion'; |
17 | import { BsDropdownModule } from 'ngx-bootstrap/dropdown'; | |
18 | import { TabsModule } from 'ngx-bootstrap/tabs'; | |
494da23a | 19 | import { ToastrModule } from 'ngx-toastr'; |
11fdf7f2 TL |
20 | |
21 | import { AppRoutingModule } from './app-routing.module'; | |
22 | import { AppComponent } from './app.component'; | |
23 | import { CephModule } from './ceph/ceph.module'; | |
24 | import { CoreModule } from './core/core.module'; | |
11fdf7f2 TL |
25 | import { ApiInterceptorService } from './shared/services/api-interceptor.service'; |
26 | import { JsErrorHandler } from './shared/services/js-error-handler.service'; | |
27 | import { SharedModule } from './shared/shared.module'; | |
28 | ||
eafe8130 TL |
29 | import { environment } from '../environments/environment'; |
30 | ||
11fdf7f2 TL |
31 | export function jwtTokenGetter() { |
32 | return localStorage.getItem('access_token'); | |
33 | } | |
34 | ||
11fdf7f2 TL |
35 | @NgModule({ |
36 | declarations: [AppComponent], | |
37 | imports: [ | |
38 | HttpClientModule, | |
11fdf7f2 TL |
39 | BrowserModule, |
40 | BrowserAnimationsModule, | |
494da23a TL |
41 | ToastrModule.forRoot({ |
42 | positionClass: 'toast-top-right', | |
43 | preventDuplicates: true, | |
44 | enableHtml: true | |
45 | }), | |
11fdf7f2 TL |
46 | AppRoutingModule, |
47 | CoreModule, | |
48 | SharedModule, | |
49 | CephModule, | |
50 | AccordionModule.forRoot(), | |
51 | BsDropdownModule.forRoot(), | |
52 | TabsModule.forRoot(), | |
53 | JwtModule.forRoot({ | |
54 | config: { | |
55 | tokenGetter: jwtTokenGetter | |
56 | } | |
9f95a23c TL |
57 | }), |
58 | NgBootstrapFormValidationModule.forRoot() | |
11fdf7f2 TL |
59 | ], |
60 | exports: [SharedModule], | |
61 | providers: [ | |
62 | { | |
63 | provide: ErrorHandler, | |
64 | useClass: JsErrorHandler | |
65 | }, | |
66 | { | |
67 | provide: HTTP_INTERCEPTORS, | |
68 | useClass: ApiInterceptorService, | |
69 | multi: true | |
70 | }, | |
eafe8130 TL |
71 | { |
72 | provide: TRANSLATIONS, | |
9f95a23c | 73 | useFactory: (locale: string) => { |
eafe8130 TL |
74 | locale = locale || environment.default_lang; |
75 | try { | |
9f95a23c | 76 | return require(`raw-loader!locale/messages.${locale}.xlf`).default; |
eafe8130 TL |
77 | } catch (error) { |
78 | return []; | |
79 | } | |
80 | }, | |
81 | deps: [LOCALE_ID] | |
82 | }, | |
83 | { provide: TRANSLATIONS_FORMAT, useValue: 'xlf' }, | |
11fdf7f2 TL |
84 | I18n |
85 | ], | |
86 | bootstrap: [AppComponent] | |
87 | }) | |
88 | export class AppModule {} |