Files
paperless-ngx/src-ui/src/app/app.module.ts
T

317 lines
15 KiB
TypeScript
Raw Normal View History

2022-03-11 10:53:32 -08:00
import { BrowserModule } from '@angular/platform-browser'
2022-05-07 00:41:35 -07:00
import { APP_INITIALIZER, NgModule } from '@angular/core'
2022-03-11 10:53:32 -08:00
import { AppRoutingModule } from './app-routing.module'
import { AppComponent } from './app.component'
import {
NgbDateAdapter,
NgbDateParserFormatter,
NgbModule,
} from '@ng-bootstrap/ng-bootstrap'
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http'
import { DocumentListComponent } from './components/document-list/document-list.component'
import { DocumentDetailComponent } from './components/document-detail/document-detail.component'
import { DashboardComponent } from './components/dashboard/dashboard.component'
import { TagListComponent } from './components/manage/tag-list/tag-list.component'
import { DocumentTypeListComponent } from './components/manage/document-type-list/document-type-list.component'
2022-03-22 22:01:46 -07:00
import { CorrespondentListComponent } from './components/manage/correspondent-list/correspondent-list.component'
import { LogsComponent } from './components/admin/logs/logs.component'
import { SettingsComponent } from './components/admin/settings/settings.component'
2022-03-11 10:53:32 -08:00
import { FormsModule, ReactiveFormsModule } from '@angular/forms'
import { DatePipe, registerLocaleData } from '@angular/common'
import { NotFoundComponent } from './components/not-found/not-found.component'
import { ConfirmDialogComponent } from './components/common/confirm-dialog/confirm-dialog.component'
2022-03-22 22:01:46 -07:00
import { CorrespondentEditDialogComponent } from './components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component'
import { TagEditDialogComponent } from './components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component'
import { DocumentTypeEditDialogComponent } from './components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component'
2022-03-11 10:53:32 -08:00
import { TagComponent } from './components/common/tag/tag.component'
2022-12-15 22:48:16 -08:00
import { ClearableBadgeComponent } from './components/common/clearable-badge/clearable-badge.component'
2022-03-11 10:53:32 -08:00
import { PageHeaderComponent } from './components/common/page-header/page-header.component'
import { AppFrameComponent } from './components/app-frame/app-frame.component'
import { ToastsComponent } from './components/common/toasts/toasts.component'
import { FilterEditorComponent } from './components/document-list/filter-editor/filter-editor.component'
import { FilterableDropdownComponent } from './components/common/filterable-dropdown/filterable-dropdown.component'
import { ToggleableDropdownButtonComponent } from './components/common/filterable-dropdown/toggleable-dropdown-button/toggleable-dropdown-button.component'
import { DateDropdownComponent } from './components/common/date-dropdown/date-dropdown.component'
import { DocumentCardLargeComponent } from './components/document-list/document-card-large/document-card-large.component'
import { DocumentCardSmallComponent } from './components/document-list/document-card-small/document-card-small.component'
import { BulkEditorComponent } from './components/document-list/bulk-editor/bulk-editor.component'
import { NgxFileDropModule } from 'ngx-file-drop'
import { TextComponent } from './components/common/input/text/text.component'
import { SelectComponent } from './components/common/input/select/select.component'
import { CheckComponent } from './components/common/input/check/check.component'
import { UrlComponent } from './components/common/input/url/url.component'
2022-12-05 01:25:11 -08:00
import { PasswordComponent } from './components/common/input/password/password.component'
2022-03-11 10:53:32 -08:00
import { SaveViewConfigDialogComponent } from './components/document-list/save-view-config-dialog/save-view-config-dialog.component'
import { TagsComponent } from './components/common/input/tags/tags.component'
2022-11-11 18:33:04 +00:00
import { IfPermissionsDirective } from './directives/if-permissions.directive'
2022-03-11 10:53:32 -08:00
import { SortableDirective } from './directives/sortable.directive'
import { CookieService } from 'ngx-cookie-service'
import { CsrfInterceptor } from './interceptors/csrf.interceptor'
import { SavedViewWidgetComponent } from './components/dashboard/widgets/saved-view-widget/saved-view-widget.component'
import { StatisticsWidgetComponent } from './components/dashboard/widgets/statistics-widget/statistics-widget.component'
import { UploadFileWidgetComponent } from './components/dashboard/widgets/upload-file-widget/upload-file-widget.component'
import { WidgetFrameComponent } from './components/dashboard/widgets/widget-frame/widget-frame.component'
import { WelcomeWidgetComponent } from './components/dashboard/widgets/welcome-widget/welcome-widget.component'
import { YesNoPipe } from './pipes/yes-no.pipe'
import { FileSizePipe } from './pipes/file-size.pipe'
import { FilterPipe } from './pipes/filter.pipe'
import { DocumentTitlePipe } from './pipes/document-title.pipe'
import { MetadataCollapseComponent } from './components/document-detail/metadata-collapse/metadata-collapse.component'
import { SelectDialogComponent } from './components/common/select-dialog/select-dialog.component'
import { NgSelectModule } from '@ng-select/ng-select'
import { NumberComponent } from './components/common/input/number/number.component'
2022-03-22 22:01:46 -07:00
import { SafeUrlPipe } from './pipes/safeurl.pipe'
import { SafeHtmlPipe } from './pipes/safehtml.pipe'
2022-03-11 10:53:32 -08:00
import { CustomDatePipe } from './pipes/custom-date.pipe'
import { DateComponent } from './components/common/input/date/date.component'
2022-05-16 00:29:49 -07:00
import { ISODateAdapter } from './utils/ngb-iso-date-adapter'
2022-03-11 10:53:32 -08:00
import { LocalizedDateParserFormatter } from './utils/ngb-date-parser-formatter'
import { ApiVersionInterceptor } from './interceptors/api-version.interceptor'
import { ColorSliderModule } from 'ngx-color/slider'
import { ColorComponent } from './components/common/input/color/color.component'
import { DocumentAsnComponent } from './components/document-asn/document-asn.component'
2023-03-17 16:36:08 -07:00
import { DocumentNotesComponent } from './components/document-notes/document-notes.component'
import { PermissionsGuard } from './guards/permissions.guard'
import { DirtyDocGuard } from './guards/dirty-doc.guard'
2022-10-29 23:14:33 -07:00
import { DirtySavedViewGuard } from './guards/dirty-saved-view.guard'
2022-09-21 21:44:15 -07:00
import { StoragePathListComponent } from './components/manage/storage-path-list/storage-path-list.component'
import { StoragePathEditDialogComponent } from './components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component'
import { SettingsService } from './services/settings.service'
import { TasksComponent } from './components/admin/tasks/tasks.component'
2022-09-21 21:44:15 -07:00
import { TourNgBootstrapModule } from 'ngx-ui-tour-ng-bootstrap'
2022-11-13 07:23:33 -08:00
import { UserEditDialogComponent } from './components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component'
import { GroupEditDialogComponent } from './components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component'
import { PermissionsSelectComponent } from './components/common/permissions-select/permissions-select.component'
2022-12-05 01:25:11 -08:00
import { MailAccountEditDialogComponent } from './components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component'
import { MailRuleEditDialogComponent } from './components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component'
2022-12-14 00:10:27 -08:00
import { PermissionsUserComponent } from './components/common/input/permissions/permissions-user/permissions-user.component'
import { PermissionsGroupComponent } from './components/common/input/permissions/permissions-group/permissions-group.component'
import { IfOwnerDirective } from './directives/if-owner.directive'
import { IfObjectPermissionsDirective } from './directives/if-object-permissions.directive'
2023-05-02 20:41:41 -07:00
import { PermissionsDialogComponent } from './components/common/permissions-dialog/permissions-dialog.component'
import { PermissionsFormComponent } from './components/common/input/permissions/permissions-form/permissions-form.component'
import { PermissionsFilterDropdownComponent } from './components/common/permissions-filter-dropdown/permissions-filter-dropdown.component'
import { UsernamePipe } from './pipes/username.pipe'
2023-08-08 23:59:13 -07:00
import { LogoComponent } from './components/common/logo/logo.component'
2023-08-12 08:31:42 -07:00
import { IsNumberPipe } from './pipes/is-number.pipe'
2023-09-14 13:32:43 -07:00
import { ShareLinksDropdownComponent } from './components/common/share-links-dropdown/share-links-dropdown.component'
2024-01-03 00:19:19 -08:00
import { WorkflowsComponent } from './components/manage/workflows/workflows.component'
import { WorkflowEditDialogComponent } from './components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component'
import { MailComponent } from './components/manage/mail/mail.component'
import { UsersAndGroupsComponent } from './components/admin/users-groups/users-groups.component'
import { DragDropModule } from '@angular/cdk/drag-drop'
import { FileDropComponent } from './components/file-drop/file-drop.component'
import { CustomFieldsComponent } from './components/manage/custom-fields/custom-fields.component'
import { CustomFieldEditDialogComponent } from './components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component'
import { CustomFieldsDropdownComponent } from './components/common/custom-fields-dropdown/custom-fields-dropdown.component'
2023-12-02 08:26:42 -08:00
import { ProfileEditDialogComponent } from './components/common/profile-edit-dialog/profile-edit-dialog.component'
import { PdfViewerComponent } from './components/common/pdf-viewer/pdf-viewer.component'
import { DocumentLinkComponent } from './components/common/input/document-link/document-link.component'
import { PreviewPopupComponent } from './components/common/preview-popup/preview-popup.component'
import { SwitchComponent } from './components/common/input/switch/switch.component'
2024-01-03 00:19:19 -08:00
import { ConfigComponent } from './components/admin/config/config.component'
2024-01-13 11:57:25 -08:00
import { FileComponent } from './components/common/input/file/file.component'
2021-02-28 12:40:25 +01:00
2023-08-29 07:04:19 -07:00
import localeAf from '@angular/common/locales/af'
2023-01-02 10:07:18 +02:00
import localeAr from '@angular/common/locales/ar'
2022-03-31 19:42:08 -07:00
import localeBe from '@angular/common/locales/be'
2023-11-01 06:49:52 -07:00
import localeBg from '@angular/common/locales/bg'
2023-04-22 09:30:24 -07:00
import localeCa from '@angular/common/locales/ca'
2022-03-11 10:53:32 -08:00
import localeCs from '@angular/common/locales/cs'
import localeDa from '@angular/common/locales/da'
import localeDe from '@angular/common/locales/de'
2023-08-29 07:04:19 -07:00
import localeEl from '@angular/common/locales/el'
2022-03-11 10:53:32 -08:00
import localeEnGb from '@angular/common/locales/en-GB'
import localeEs from '@angular/common/locales/es'
2023-04-27 10:12:35 -07:00
import localeFi from '@angular/common/locales/fi'
2022-03-11 10:53:32 -08:00
import localeFr from '@angular/common/locales/fr'
2023-11-12 16:39:17 -08:00
import localeHu from '@angular/common/locales/hu'
2022-03-11 10:53:32 -08:00
import localeIt from '@angular/common/locales/it'
import localeLb from '@angular/common/locales/lb'
import localeNl from '@angular/common/locales/nl'
2023-08-29 07:04:19 -07:00
import localeNo from '@angular/common/locales/no'
2022-03-11 10:53:32 -08:00
import localePl from '@angular/common/locales/pl'
import localePt from '@angular/common/locales/pt'
import localeRo from '@angular/common/locales/ro'
import localeRu from '@angular/common/locales/ru'
2023-06-30 20:01:17 -07:00
import localeSk from '@angular/common/locales/sk'
2022-03-13 09:13:25 -07:00
import localeSl from '@angular/common/locales/sl'
2022-03-22 22:26:59 -07:00
import localeSr from '@angular/common/locales/sr'
2022-03-13 09:13:25 -07:00
import localeSv from '@angular/common/locales/sv'
2022-03-26 13:52:15 -07:00
import localeTr from '@angular/common/locales/tr'
2023-08-06 08:05:39 -07:00
import localeUk from '@angular/common/locales/uk'
2022-03-10 10:00:20 -08:00
import localeZh from '@angular/common/locales/zh'
2023-08-29 07:04:19 -07:00
registerLocaleData(localeAf)
2023-01-02 10:07:18 +02:00
registerLocaleData(localeAr)
2022-03-31 19:42:08 -07:00
registerLocaleData(localeBe)
2023-11-01 06:49:52 -07:00
registerLocaleData(localeBg)
2023-04-22 09:30:24 -07:00
registerLocaleData(localeCa)
2022-02-19 23:26:21 -08:00
registerLocaleData(localeCs)
registerLocaleData(localeDa)
registerLocaleData(localeDe)
2023-08-29 07:04:19 -07:00
registerLocaleData(localeEl)
2022-02-19 23:26:21 -08:00
registerLocaleData(localeEnGb)
registerLocaleData(localeEs)
2023-04-27 10:12:35 -07:00
registerLocaleData(localeFi)
registerLocaleData(localeFr)
2023-11-12 16:39:17 -08:00
registerLocaleData(localeHu)
2022-02-19 23:26:21 -08:00
registerLocaleData(localeIt)
registerLocaleData(localeLb)
registerLocaleData(localeNl)
2023-08-29 07:04:19 -07:00
registerLocaleData(localeNo)
2022-02-19 23:26:21 -08:00
registerLocaleData(localePl)
2022-03-11 10:53:32 -08:00
registerLocaleData(localePt, 'pt-BR')
registerLocaleData(localePt, 'pt-PT')
2021-02-28 12:40:25 +01:00
registerLocaleData(localeRo)
2021-03-07 10:07:42 +01:00
registerLocaleData(localeRu)
2023-06-30 20:01:17 -07:00
registerLocaleData(localeSk)
2022-03-13 09:13:25 -07:00
registerLocaleData(localeSl)
2022-03-22 22:26:59 -07:00
registerLocaleData(localeSr)
2021-05-04 17:01:39 +02:00
registerLocaleData(localeSv)
2022-03-26 13:52:15 -07:00
registerLocaleData(localeTr)
2023-08-06 08:05:39 -07:00
registerLocaleData(localeUk)
2022-03-10 10:00:20 -08:00
registerLocaleData(localeZh)
2020-10-27 01:10:18 +01:00
2022-05-07 00:41:35 -07:00
function initializeApp(settings: SettingsService) {
return () => {
return settings.initializeSettings()
}
}
2020-10-27 01:10:18 +01:00
@NgModule({
declarations: [
AppComponent,
DocumentListComponent,
DocumentDetailComponent,
DashboardComponent,
TagListComponent,
DocumentTypeListComponent,
2022-03-22 22:01:46 -07:00
CorrespondentListComponent,
StoragePathListComponent,
2020-10-27 01:10:18 +01:00
LogsComponent,
SettingsComponent,
NotFoundComponent,
CorrespondentEditDialogComponent,
ConfirmDialogComponent,
2020-10-27 01:10:18 +01:00
TagEditDialogComponent,
DocumentTypeEditDialogComponent,
StoragePathEditDialogComponent,
2020-10-27 01:10:18 +01:00
TagComponent,
2022-12-15 22:48:16 -08:00
ClearableBadgeComponent,
2020-10-27 01:10:18 +01:00
PageHeaderComponent,
AppFrameComponent,
ToastsComponent,
FilterEditorComponent,
FilterableDropdownComponent,
2020-12-19 22:31:14 -08:00
ToggleableDropdownButtonComponent,
DateDropdownComponent,
2020-10-27 01:10:18 +01:00
DocumentCardLargeComponent,
2020-10-28 18:02:30 +01:00
DocumentCardSmallComponent,
2020-12-14 23:14:19 -08:00
BulkEditorComponent,
2020-10-28 18:02:30 +01:00
TextComponent,
SelectComponent,
2020-10-30 22:46:43 +01:00
CheckComponent,
UrlComponent,
2022-12-05 01:25:11 -08:00
PasswordComponent,
2020-11-04 13:10:23 +01:00
SaveViewConfigDialogComponent,
2020-11-08 16:58:06 +01:00
TagsComponent,
2022-11-11 18:33:04 +00:00
IfPermissionsDirective,
2020-11-22 22:35:39 +01:00
SortableDirective,
SavedViewWidgetComponent,
StatisticsWidgetComponent,
UploadFileWidgetComponent,
2020-12-06 01:25:12 +01:00
WidgetFrameComponent,
2020-12-07 23:42:18 +01:00
WelcomeWidgetComponent,
2020-12-08 16:09:47 +01:00
YesNoPipe,
FileSizePipe,
2020-12-13 11:29:12 -08:00
FilterPipe,
2020-12-11 20:14:48 +01:00
DocumentTitlePipe,
2020-12-13 15:13:43 +01:00
MetadataCollapseComponent,
SelectDialogComponent,
NumberComponent,
2022-03-22 22:01:46 -07:00
SafeUrlPipe,
SafeHtmlPipe,
CustomDatePipe,
DateComponent,
2021-03-30 19:07:29 +02:00
ColorComponent,
2022-03-11 10:53:32 -08:00
DocumentAsnComponent,
2023-03-17 16:36:08 -07:00
DocumentNotesComponent,
2022-05-23 00:32:39 -07:00
TasksComponent,
2022-11-13 07:23:33 -08:00
UserEditDialogComponent,
GroupEditDialogComponent,
PermissionsSelectComponent,
2022-12-05 01:25:11 -08:00
MailAccountEditDialogComponent,
MailRuleEditDialogComponent,
PermissionsUserComponent,
PermissionsGroupComponent,
IfOwnerDirective,
IfObjectPermissionsDirective,
2022-12-08 02:03:50 -08:00
PermissionsDialogComponent,
2022-12-09 10:04:39 -08:00
PermissionsFormComponent,
2023-05-02 20:41:41 -07:00
PermissionsFilterDropdownComponent,
UsernamePipe,
2023-08-08 23:59:13 -07:00
LogoComponent,
2023-08-12 08:31:42 -07:00
IsNumberPipe,
2023-09-14 13:32:43 -07:00
ShareLinksDropdownComponent,
2024-01-03 00:19:19 -08:00
WorkflowsComponent,
WorkflowEditDialogComponent,
MailComponent,
UsersAndGroupsComponent,
FileDropComponent,
CustomFieldsComponent,
CustomFieldEditDialogComponent,
CustomFieldsDropdownComponent,
2023-12-02 08:26:42 -08:00
ProfileEditDialogComponent,
PdfViewerComponent,
DocumentLinkComponent,
PreviewPopupComponent,
SwitchComponent,
2024-01-03 00:19:19 -08:00
ConfigComponent,
2024-01-13 11:57:25 -08:00
FileComponent,
2020-10-27 01:10:18 +01:00
],
imports: [
BrowserModule,
AppRoutingModule,
NgbModule,
HttpClientModule,
FormsModule,
2020-10-27 17:35:10 +01:00
ReactiveFormsModule,
2020-11-02 01:26:21 +01:00
NgxFileDropModule,
NgSelectModule,
2022-03-11 10:53:32 -08:00
ColorSliderModule,
TourNgBootstrapModule,
DragDropModule,
2020-10-27 01:10:18 +01:00
],
providers: [
2022-05-07 00:41:35 -07:00
{
provide: APP_INITIALIZER,
useFactory: initializeApp,
deps: [SettingsService],
multi: true,
},
2020-11-11 20:19:57 +01:00
DatePipe,
2022-03-11 10:53:32 -08:00
CookieService,
{
2020-11-11 20:19:57 +01:00
provide: HTTP_INTERCEPTORS,
useClass: CsrfInterceptor,
2022-03-11 10:53:32 -08:00
multi: true,
},
{
2021-02-24 22:27:43 +01:00
provide: HTTP_INTERCEPTORS,
useClass: ApiVersionInterceptor,
2022-03-11 10:53:32 -08:00
multi: true,
},
2020-12-18 14:55:21 -08:00
FilterPipe,
DocumentTitlePipe,
2022-05-16 00:29:49 -07:00
{ provide: NgbDateAdapter, useClass: ISODateAdapter },
2022-03-11 10:53:32 -08:00
{ provide: NgbDateParserFormatter, useClass: LocalizedDateParserFormatter },
PermissionsGuard,
DirtyDocGuard,
2022-10-29 23:14:33 -07:00
DirtySavedViewGuard,
2023-05-02 20:41:41 -07:00
UsernamePipe,
2020-10-27 01:10:18 +01:00
],
2022-03-11 10:53:32 -08:00
bootstrap: [AppComponent],
2020-10-27 01:10:18 +01:00
})
2022-03-11 10:53:32 -08:00
export class AppModule {}