]>
Commit | Line | Data |
---|---|---|
67ed6552 | 1 | import 'focus-visible' |
fc21ef5c | 2 | import { tap } from 'rxjs/operators' |
1d22d251 | 3 | import { environment } from 'src/environments/environment' |
67ed6552 | 4 | import { APP_BASE_HREF, registerLocaleData } from '@angular/common' |
8e08d415 | 5 | import { APP_INITIALIZER, NgModule } from '@angular/core' |
df98563e | 6 | import { BrowserModule } from '@angular/platform-browser' |
1d22d251 | 7 | import { ServiceWorkerModule } from '@angular/service-worker' |
67ed6552 | 8 | import localeOc from '@app/helpers/locales/oc' |
df98563e C |
9 | import { AppRoutingModule } from './app-routing.module' |
10 | import { AppComponent } from './app.component' | |
fc21ef5c | 11 | import { CoreModule, PluginService, ServerService } from './core' |
f0b56fdd | 12 | import { EmptyComponent } from './empty.component' |
5fb2e288 | 13 | import { HeaderComponent, SearchTypeaheadComponent, SuggestionComponent } from './header' |
1942f11d | 14 | import { HighlightPipe } from './header/highlight.pipe' |
1d22d251 | 15 | import { LanguageChooserComponent, MenuComponent, NotificationComponent } from './menu' |
67ed6552 C |
16 | import { ConfirmComponent } from './modal/confirm.component' |
17 | import { CustomModalComponent } from './modal/custom-modal.component' | |
18 | import { InstanceConfigWarningModalComponent } from './modal/instance-config-warning-modal.component' | |
19 | import { QuickSettingsModalComponent } from './modal/quick-settings-modal.component' | |
20 | import { WelcomeModalComponent } from './modal/welcome-modal.component' | |
0f01a8ba | 21 | import { SharedActorImageModule } from './shared/shared-actor-image/shared-actor-image.module' |
67ed6552 C |
22 | import { SharedFormModule } from './shared/shared-forms' |
23 | import { SharedGlobalIconModule } from './shared/shared-icons' | |
24 | import { SharedInstanceModule } from './shared/shared-instance' | |
25 | import { SharedMainModule } from './shared/shared-main' | |
26 | import { SharedUserInterfaceSettingsModule } from './shared/shared-user-settings' | |
2a39506c C |
27 | |
28 | registerLocaleData(localeOc, 'oc') | |
693b1aba | 29 | |
fc21ef5c C |
30 | export function loadConfigFactory (server: ServerService, pluginService: PluginService) { |
31 | return () => { | |
32 | const result = server.loadHTMLConfig() | |
33 | ||
34 | if (result) return result.pipe(tap(() => pluginService.initializePlugins())) | |
35 | ||
36 | return pluginService.initializePlugins() | |
37 | } | |
8e08d415 C |
38 | } |
39 | ||
ab32b0fc C |
40 | @NgModule({ |
41 | bootstrap: [ AppComponent ], | |
67ed6552 | 42 | |
ab32b0fc | 43 | declarations: [ |
b33f657c | 44 | AppComponent, |
f0b56fdd | 45 | EmptyComponent, |
b33f657c C |
46 | |
47 | MenuComponent, | |
8afc19a6 | 48 | LanguageChooserComponent, |
d3217560 | 49 | QuickSettingsModalComponent, |
51a83970 | 50 | NotificationComponent, |
43d0ea7f | 51 | HeaderComponent, |
f409f0c3 | 52 | SearchTypeaheadComponent, |
6af662a5 | 53 | SuggestionComponent, |
1942f11d | 54 | HighlightPipe, |
43d0ea7f | 55 | |
437e8e06 | 56 | CustomModalComponent, |
43d0ea7f | 57 | WelcomeModalComponent, |
67ed6552 C |
58 | InstanceConfigWarningModalComponent, |
59 | ConfirmComponent | |
ab32b0fc | 60 | ], |
67ed6552 | 61 | |
693b1aba | 62 | imports: [ |
ab32b0fc | 63 | BrowserModule, |
1d22d251 | 64 | ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production }), |
23bcf666 | 65 | |
693b1aba | 66 | CoreModule, |
67ed6552 C |
67 | SharedMainModule, |
68 | SharedFormModule, | |
69 | SharedUserInterfaceSettingsModule, | |
70 | SharedGlobalIconModule, | |
71 | SharedInstanceModule, | |
746018f6 | 72 | SharedActorImageModule, |
693b1aba | 73 | |
a9614776 | 74 | AppRoutingModule // Put it after all the module because it has the 404 route |
ab32b0fc | 75 | ], |
361dcebc | 76 | |
989e526a | 77 | providers: [ |
8cc56c7f C |
78 | { |
79 | provide: APP_BASE_HREF, | |
80 | useValue: '/' | |
8e08d415 C |
81 | }, |
82 | { | |
83 | provide: APP_INITIALIZER, | |
84 | useFactory: loadConfigFactory, | |
fc21ef5c | 85 | deps: [ ServerService, PluginService ], |
8e08d415 | 86 | multi: true |
fc21ef5c | 87 | } |
989e526a | 88 | ] |
ab32b0fc | 89 | }) |
63c4db6d | 90 | export class AppModule {} |