]> git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/dashboard/frontend/src/app/app.module.ts
import ceph 15.2.10
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / app.module.ts
1 import { APP_BASE_HREF } from '@angular/common';
2 import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
3 import {
4 ErrorHandler,
5 LOCALE_ID,
6 NgModule,
7 TRANSLATIONS,
8 TRANSLATIONS_FORMAT
9 } from '@angular/core';
10 import { BrowserModule } from '@angular/platform-browser';
11 import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
12
13 import { I18n } from '@ngx-translate/i18n-polyfill';
14 import { NgBootstrapFormValidationModule } from 'ng-bootstrap-form-validation';
15
16 import { AccordionModule } from 'ngx-bootstrap/accordion';
17 import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
18 import { TabsModule } from 'ngx-bootstrap/tabs';
19 import { ToastrModule } from 'ngx-toastr';
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';
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
29 import { environment } from '../environments/environment';
30
31 @NgModule({
32 declarations: [AppComponent],
33 imports: [
34 HttpClientModule,
35 BrowserModule,
36 BrowserAnimationsModule,
37 ToastrModule.forRoot({
38 positionClass: 'toast-top-right',
39 preventDuplicates: true,
40 enableHtml: true
41 }),
42 AppRoutingModule,
43 CoreModule,
44 SharedModule,
45 CephModule,
46 AccordionModule.forRoot(),
47 BsDropdownModule.forRoot(),
48 TabsModule.forRoot(),
49 NgBootstrapFormValidationModule.forRoot()
50 ],
51 exports: [SharedModule],
52 providers: [
53 {
54 provide: ErrorHandler,
55 useClass: JsErrorHandler
56 },
57 {
58 provide: HTTP_INTERCEPTORS,
59 useClass: ApiInterceptorService,
60 multi: true
61 },
62 {
63 provide: APP_BASE_HREF,
64 useValue: window['base-href']
65 },
66 {
67 provide: TRANSLATIONS,
68 useFactory: (locale: string) => {
69 locale = locale || environment.default_lang;
70 try {
71 return require(`raw-loader!locale/messages.${locale}.xlf`).default;
72 } catch (error) {
73 return [];
74 }
75 },
76 deps: [LOCALE_ID]
77 },
78 { provide: TRANSLATIONS_FORMAT, useValue: 'xlf' },
79 I18n
80 ],
81 bootstrap: [AppComponent]
82 })
83 export class AppModule {}