]>
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' | |
15825ef1 | 11 | import { CoreModule, PluginService, RedirectService, 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' | |
8f581725 C |
20 | import { AdminWelcomeModalComponent } from './modal/admin-welcome-modal.component' |
21 | import { AccountSetupWarningModalComponent } from './modal/account-setup-warning-modal.component' | |
0f01a8ba | 22 | import { SharedActorImageModule } from './shared/shared-actor-image/shared-actor-image.module' |
67ed6552 C |
23 | import { SharedFormModule } from './shared/shared-forms' |
24 | import { SharedGlobalIconModule } from './shared/shared-icons' | |
25 | import { SharedInstanceModule } from './shared/shared-instance' | |
26 | import { SharedMainModule } from './shared/shared-main' | |
27 | import { SharedUserInterfaceSettingsModule } from './shared/shared-user-settings' | |
2a39506c C |
28 | |
29 | registerLocaleData(localeOc, 'oc') | |
693b1aba | 30 | |
15825ef1 C |
31 | export function loadConfigFactory (server: ServerService, pluginService: PluginService, redirectService: RedirectService) { |
32 | const initializeServices = () => { | |
33 | redirectService.init() | |
34 | pluginService.initializePlugins() | |
35 | } | |
36 | ||
fc21ef5c C |
37 | return () => { |
38 | const result = server.loadHTMLConfig() | |
15825ef1 | 39 | if (result) return result.pipe(tap(() => initializeServices())) |
fc21ef5c | 40 | |
15825ef1 | 41 | initializeServices() |
fc21ef5c | 42 | } |
8e08d415 C |
43 | } |
44 | ||
ab32b0fc C |
45 | @NgModule({ |
46 | bootstrap: [ AppComponent ], | |
67ed6552 | 47 | |
ab32b0fc | 48 | declarations: [ |
b33f657c | 49 | AppComponent, |
f0b56fdd | 50 | EmptyComponent, |
b33f657c C |
51 | |
52 | MenuComponent, | |
8afc19a6 | 53 | LanguageChooserComponent, |
d3217560 | 54 | QuickSettingsModalComponent, |
51a83970 | 55 | NotificationComponent, |
43d0ea7f | 56 | HeaderComponent, |
f409f0c3 | 57 | SearchTypeaheadComponent, |
6af662a5 | 58 | SuggestionComponent, |
1942f11d | 59 | HighlightPipe, |
43d0ea7f | 60 | |
8f581725 | 61 | AccountSetupWarningModalComponent, |
437e8e06 | 62 | CustomModalComponent, |
8f581725 | 63 | AdminWelcomeModalComponent, |
67ed6552 C |
64 | InstanceConfigWarningModalComponent, |
65 | ConfirmComponent | |
ab32b0fc | 66 | ], |
67ed6552 | 67 | |
693b1aba | 68 | imports: [ |
ab32b0fc | 69 | BrowserModule, |
1d22d251 | 70 | ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production }), |
23bcf666 | 71 | |
693b1aba | 72 | CoreModule, |
67ed6552 C |
73 | SharedMainModule, |
74 | SharedFormModule, | |
75 | SharedUserInterfaceSettingsModule, | |
76 | SharedGlobalIconModule, | |
77 | SharedInstanceModule, | |
746018f6 | 78 | SharedActorImageModule, |
693b1aba | 79 | |
a9614776 | 80 | AppRoutingModule // Put it after all the module because it has the 404 route |
ab32b0fc | 81 | ], |
361dcebc | 82 | |
989e526a | 83 | providers: [ |
8cc56c7f C |
84 | { |
85 | provide: APP_BASE_HREF, | |
86 | useValue: '/' | |
8e08d415 C |
87 | }, |
88 | { | |
89 | provide: APP_INITIALIZER, | |
90 | useFactory: loadConfigFactory, | |
15825ef1 | 91 | deps: [ ServerService, PluginService, RedirectService ], |
8e08d415 | 92 | multi: true |
fc21ef5c | 93 | } |
989e526a | 94 | ] |
ab32b0fc | 95 | }) |
63c4db6d | 96 | export class AppModule {} |