You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

app.module.ts 2.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import {BrowserModule, Title} from '@angular/platform-browser';
  2. import { NgModule } from '@angular/core';
  3. import { AppComponent } from './app.component';
  4. import {AppRoutingModule} from './app-routing.module';
  5. import {HttpClient, HttpClientModule} from '@angular/common/http';
  6. import {VpnStatusComponent} from './views/vpn-status-component/vpn-status.component';
  7. import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
  8. import {
  9. MatButtonModule,
  10. MatCheckboxModule,
  11. MatIconModule,
  12. MatListModule,
  13. MatSidenavModule,
  14. MatToolbarModule
  15. } from '@angular/material';
  16. import {MatProgressBarModule} from '@angular/material/progress-bar';
  17. import {MatExpansionModule} from '@angular/material/expansion';
  18. import {MatTableModule} from '@angular/material/table';
  19. import {MatSelectModule} from '@angular/material/select';
  20. import {TranslateLoader, TranslateModule, TranslateService} from '@ngx-translate/core';
  21. import {TranslateHttpLoader} from '@ngx-translate/http-loader';
  22. import {FlexLayoutModule} from '@angular/flex-layout';
  23. import {CgBusyModule} from 'angular-busy2';
  24. import {StatusLedDirective} from './directives/status-led.directive';
  25. import {VpnStatusUpdated, UiStateUpdated, DnsStatusUpdated} from './services/app-state.service';
  26. import {StoreModule} from '@ngrx/store';
  27. import {DnsStatusComponent} from './views/dns-status-component/dns-status.component';
  28. export function HttpLoaderFactory(http: HttpClient) {
  29. return new TranslateHttpLoader(http, './assets/languages/');
  30. }
  31. @NgModule({
  32. declarations: [
  33. AppComponent,
  34. VpnStatusComponent,
  35. DnsStatusComponent,
  36. StatusLedDirective
  37. ],
  38. imports: [
  39. BrowserModule,
  40. AppRoutingModule,
  41. HttpClientModule,
  42. BrowserAnimationsModule,
  43. MatButtonModule,
  44. MatCheckboxModule,
  45. MatToolbarModule,
  46. MatSidenavModule,
  47. MatIconModule,
  48. MatListModule,
  49. MatProgressBarModule,
  50. MatExpansionModule,
  51. MatTableModule,
  52. MatSelectModule,
  53. TranslateModule.forRoot({
  54. loader: {
  55. provide: TranslateLoader,
  56. useFactory: HttpLoaderFactory,
  57. deps: [HttpClient]
  58. }
  59. }),
  60. FlexLayoutModule,
  61. CgBusyModule,
  62. StoreModule.forRoot({
  63. uiState: UiStateUpdated.uiStateVMReducer,
  64. vpnStatus: VpnStatusUpdated.vpnStatusReducer,
  65. vpnStatusVM: VpnStatusUpdated.vpnStatusVMReducer,
  66. dnsStatus: DnsStatusUpdated.dnsStatusReducer,
  67. dnsStatusVM: DnsStatusUpdated.dnsStatusVMReducer,
  68. dnsStatusPerServerVM: DnsStatusUpdated.dnsStatusPerServerVMReducer
  69. })
  70. ],
  71. providers: [Title],
  72. bootstrap: [AppComponent]
  73. })
  74. export class AppModule {
  75. constructor(translate: TranslateService) {
  76. // this language will be used as a fallback when a translation isn't found in the current language
  77. translate.setDefaultLang('en');
  78. // the lang to use, if the lang isn't available, it will use the current loader to get them
  79. translate.use('en');
  80. }
  81. }