Commits
Giuseppe Digilio authored c6cdb992131
1 - | import { |
2 - | CommonModule, |
3 - | NgOptimizedImage, |
4 - | } from '@angular/common'; |
5 - | import { NgModule } from '@angular/core'; |
6 - | import { |
7 - | NgbAccordionModule, |
8 - | NgbCollapseModule, |
9 - | NgbModalModule, |
10 - | } from '@ng-bootstrap/ng-bootstrap'; |
11 - | import { EffectsModule } from '@ngrx/effects'; |
12 - | import { |
13 - | Action, |
14 - | StoreConfig, |
15 - | StoreModule, |
16 - | } from '@ngrx/store'; |
17 - | |
18 - | import { LdnServicesService } from '../admin/admin-ldn-services/ldn-services-data/ldn-services-data.service'; |
19 - | import { storeModuleConfig } from '../app.reducer'; |
20 - | import { SubmissionAccessesConfigDataService } from '../core/config/submission-accesses-config-data.service'; |
21 - | import { SubmissionUploadsConfigDataService } from '../core/config/submission-uploads-config-data.service'; |
22 - | import { SubmissionEditComponent } from './edit/submission-edit.component'; |
23 - | import { ThemedSubmissionEditComponent } from './edit/themed-submission-edit.component'; |
24 - | import { SubmissionFormCollectionComponent } from './form/collection/submission-form-collection.component'; |
25 - | import { SubmissionFormFooterComponent } from './form/footer/submission-form-footer.component'; |
26 - | import { SubmissionFormSectionAddComponent } from './form/section-add/submission-form-section-add.component'; |
27 - | import { SubmissionFormComponent } from './form/submission-form.component'; |
28 - | import { SubmissionUploadFilesComponent } from './form/submission-upload-files/submission-upload-files.component'; |
29 - | import { SubmissionImportExternalCollectionComponent } from './import-external/import-external-collection/submission-import-external-collection.component'; |
30 - | import { SubmissionImportExternalPreviewComponent } from './import-external/import-external-preview/submission-import-external-preview.component'; |
31 - | import { SubmissionImportExternalSearchbarComponent } from './import-external/import-external-searchbar/submission-import-external-searchbar.component'; |
32 - | import { SubmissionImportExternalComponent } from './import-external/submission-import-external.component'; |
33 - | import { ThemedSubmissionImportExternalComponent } from './import-external/themed-submission-import-external.component'; |
34 - | import { SubmissionSectionAccessesComponent } from './sections/accesses/section-accesses.component'; |
35 - | import { SectionAccessesService } from './sections/accesses/section-accesses.service'; |
36 - | import { SubmissionSectionCcLicensesComponent } from './sections/cc-license/submission-section-cc-licenses.component'; |
37 - | import { SubmissionSectionContainerComponent } from './sections/container/section-container.component'; |
38 - | import { SubmissionSectionDuplicatesComponent } from './sections/duplicates/section-duplicates.component'; |
39 - | import { SubmissionSectionFormComponent } from './sections/form/section-form.component'; |
40 - | import { SectionFormOperationsService } from './sections/form/section-form-operations.service'; |
41 - | import { SubmissionSectionIdentifiersComponent } from './sections/identifiers/section-identifiers.component'; |
42 - | import { SubmissionSectionLicenseComponent } from './sections/license/section-license.component'; |
43 - | import { CoarNotifyConfigDataService } from './sections/section-coar-notify/coar-notify-config-data.service'; |
44 - | import { SubmissionSectionCoarNotifyComponent } from './sections/section-coar-notify/section-coar-notify.component'; |
45 - | import { SectionsDirective } from './sections/sections.directive'; |
46 - | import { SectionsService } from './sections/sections.service'; |
47 - | import { ContentAccordionComponent } from './sections/sherpa-policies/content-accordion/content-accordion.component'; |
48 - | import { MetadataInformationComponent } from './sections/sherpa-policies/metadata-information/metadata-information.component'; |
49 - | import { PublicationInformationComponent } from './sections/sherpa-policies/publication-information/publication-information.component'; |
50 - | import { PublisherPolicyComponent } from './sections/sherpa-policies/publisher-policy/publisher-policy.component'; |
51 - | import { SubmissionSectionSherpaPoliciesComponent } from './sections/sherpa-policies/section-sherpa-policies.component'; |
52 - | import { SubmissionSectionUploadAccessConditionsComponent } from './sections/upload/accessConditions/submission-section-upload-access-conditions.component'; |
53 - | import { SubmissionSectionUploadFileEditComponent } from './sections/upload/file/edit/section-upload-file-edit.component'; |
54 - | import { SubmissionSectionUploadFileComponent } from './sections/upload/file/section-upload-file.component'; |
55 - | import { ThemedSubmissionSectionUploadFileComponent } from './sections/upload/file/themed-section-upload-file.component'; |
56 - | import { SubmissionSectionUploadFileViewComponent } from './sections/upload/file/view/section-upload-file-view.component'; |
57 - | import { SubmissionSectionUploadComponent } from './sections/upload/section-upload.component'; |
58 - | import { SectionUploadService } from './sections/upload/section-upload.service'; |
59 - | import { submissionEffects } from './submission.effects'; |
60 - | import { |
61 - | submissionReducers, |
62 - | SubmissionState, |
63 - | } from './submission.reducers'; |
64 - | import { SubmissionSubmitComponent } from './submit/submission-submit.component'; |
65 - | import { ThemedSubmissionSubmitComponent } from './submit/themed-submission-submit.component'; |
66 - | |
67 - | const ENTRY_COMPONENTS = [ |
68 - | // put only entry components that use custom decorator |
69 - | SubmissionSectionUploadComponent, |
70 - | SubmissionSectionFormComponent, |
71 - | SubmissionSectionLicenseComponent, |
72 - | SubmissionSectionCcLicensesComponent, |
73 - | SubmissionSectionAccessesComponent, |
74 - | SubmissionSectionSherpaPoliciesComponent, |
75 - | SubmissionSectionCoarNotifyComponent, |
76 - | SubmissionSectionDuplicatesComponent, |
77 - | ]; |
78 - | |
79 - | const DECLARATIONS = [ |
80 - | ENTRY_COMPONENTS, |
81 - | SectionsDirective, |
82 - | SubmissionEditComponent, |
83 - | ThemedSubmissionEditComponent, |
84 - | SubmissionFormSectionAddComponent, |
85 - | SubmissionFormCollectionComponent, |
86 - | SubmissionFormComponent, |
87 - | SubmissionFormFooterComponent, |
88 - | SubmissionSubmitComponent, |
89 - | ThemedSubmissionSubmitComponent, |
90 - | SubmissionUploadFilesComponent, |
91 - | SubmissionSectionContainerComponent, |
92 - | SubmissionSectionUploadAccessConditionsComponent, |
93 - | SubmissionSectionUploadFileComponent, |
94 - | SubmissionSectionUploadFileEditComponent, |
95 - | SubmissionSectionUploadFileViewComponent, |
96 - | SubmissionSectionIdentifiersComponent, |
97 - | SubmissionSectionDuplicatesComponent, |
98 - | SubmissionImportExternalComponent, |
99 - | ThemedSubmissionImportExternalComponent, |
100 - | SubmissionImportExternalSearchbarComponent, |
101 - | SubmissionImportExternalPreviewComponent, |
102 - | SubmissionImportExternalCollectionComponent, |
103 - | ContentAccordionComponent, |
104 - | PublisherPolicyComponent, |
105 - | PublicationInformationComponent, |
106 - | MetadataInformationComponent, |
107 - | ThemedSubmissionSectionUploadFileComponent, |
108 - | ]; |
109 - | |
110 - | @NgModule({ |
111 - | imports: [ |
112 - | CommonModule, |
113 - | StoreModule.forFeature('submission', submissionReducers, storeModuleConfig as StoreConfig<SubmissionState, Action>), |
114 - | EffectsModule.forFeature(), |
115 - | EffectsModule.forFeature(submissionEffects), |
116 - | NgbModalModule, |
117 - | NgbCollapseModule, |
118 - | NgbAccordionModule, |
119 - | NgOptimizedImage, |
120 - | DECLARATIONS, |
121 - | ], |
122 - | exports: [ |
123 - | DECLARATIONS, |
124 - | ], |
125 - | providers: [ |
126 - | SectionUploadService, |
127 - | SectionsService, |
128 - | SubmissionUploadsConfigDataService, |
129 - | SubmissionAccessesConfigDataService, |
130 - | SectionAccessesService, |
131 - | SectionFormOperationsService, |
132 - | CoarNotifyConfigDataService, |
133 - | LdnServicesService, |
134 - | ], |
135 - | }) |
136 - | |
137 - | /** |
138 - | * This module handles all components that are necessary for the submission process |
139 - | */ |
140 - | export class SubmissionModule { |
141 - | /** |
142 - | * NOTE: this method allows to resolve issue with components that using a custom decorator |
143 - | * which are not loaded during SSR otherwise |
144 - | */ |
145 - | static withEntryComponents() { |
146 - | return { |
147 - | ngModule: SubmissionModule, |
148 - | providers: ENTRY_COMPONENTS.map((component) => ({ provide: component })), |
149 - | }; |
150 - | } |
151 - | } |