forked from DSpace/dspace-angular
-
Notifications
You must be signed in to change notification settings - Fork 34
Expand file tree
/
Copy pathcris-layout.module.ts
More file actions
197 lines (192 loc) · 8.05 KB
/
cris-layout.module.ts
File metadata and controls
197 lines (192 loc) · 8.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { NgbAccordionModule } from '@ng-bootstrap/ng-bootstrap';
import { SharedModule } from '../shared/shared.module';
import { MetricsModule } from './../shared/metric/metrics.module';
import { CrisLayoutLoaderDirective } from './directives/cris-layout-loader.directive';
import { CrisLayoutComponent } from './cris-layout.component';
import { CrisLayoutLeadingComponent } from './cris-layout-leading/cris-layout-leading.component';
import { CrisLayoutLoaderComponent } from './cris-layout-loader/cris-layout-loader.component';
import { CrisLayoutMatrixComponent } from './cris-layout-matrix/cris-layout-matrix.component';
import { CrisLayoutVerticalComponent } from './cris-layout-loader/cris-layout-vertical/cris-layout-vertical.component';
import {
CrisLayoutSidebarComponent
} from './cris-layout-loader/cris-layout-vertical/cris-layout-sidebar/cris-layout-sidebar.component';
import {
CrisLayoutHorizontalComponent
} from './cris-layout-loader/cris-layout-horizontal/cris-layout-horizontal.component';
import {
CrisLayoutNavbarComponent
} from './cris-layout-loader/cris-layout-horizontal/cris-layout-navbar/cris-layout-navbar.component';
import {
CrisLayoutSidebarItemComponent
} from './cris-layout-loader/shared/sidebar-item/cris-layout-sidebar-item.component';
import {
CrisLayoutBoxContainerComponent
} from './cris-layout-matrix/cris-layout-box-container/cris-layout-box-container.component';
import { RowComponent } from './cris-layout-matrix/cris-layout-box-container/boxes/metadata/row/row.component';
import {
CrisLayoutMetadataBoxComponent
} from './cris-layout-matrix/cris-layout-box-container/boxes/metadata/cris-layout-metadata-box.component';
import {
TextComponent
} from './cris-layout-matrix/cris-layout-box-container/boxes/metadata/rendering-types/text/text.component';
import {
HeadingComponent
} from './cris-layout-matrix/cris-layout-box-container/boxes/metadata/rendering-types/heading/heading.component';
import {
CrisLayoutRelationBoxComponent
} from './cris-layout-matrix/cris-layout-box-container/boxes/relation/cris-layout-relation-box.component';
import { MyDSpacePageModule } from '../my-dspace-page/my-dspace-page.module';
import {
LongtextComponent
} from './cris-layout-matrix/cris-layout-box-container/boxes/metadata/rendering-types/longtext/longtext.component';
import {
DateComponent
} from './cris-layout-matrix/cris-layout-box-container/boxes/metadata/rendering-types/date/date.component';
import { DsDatePipe } from './pipes/ds-date.pipe';
import {
LinkComponent
} from './cris-layout-matrix/cris-layout-box-container/boxes/metadata/rendering-types/link/link.component';
import {
IdentifierComponent
} from './cris-layout-matrix/cris-layout-box-container/boxes/metadata/rendering-types/identifier/identifier.component';
import {
CrisrefComponent
} from './cris-layout-matrix/cris-layout-box-container/boxes/metadata/rendering-types/crisref/crisref.component';
import {
ThumbnailComponent
} from './cris-layout-matrix/cris-layout-box-container/boxes/metadata/rendering-types/thumbnail/thumbnail.component';
import {
AttachmentComponent
} from './cris-layout-matrix/cris-layout-box-container/boxes/metadata/rendering-types/attachment/attachment.component';
import {
CrisLayoutMetricsBoxComponent
} from './cris-layout-matrix/cris-layout-box-container/boxes/metrics/cris-layout-metrics-box.component';
import {
CrisLayoutIIIFViewerBoxComponent
} from './cris-layout-matrix/cris-layout-box-container/boxes/iiif-viewer/cris-layout-iiif-viewer-box.component';
import {
MetricRowComponent
} from './cris-layout-matrix/cris-layout-box-container/boxes/metrics/metric-row/metric-row.component';
import { ContextMenuModule } from '../shared/context-menu/context-menu.module';
import {
TableComponent
} from './cris-layout-matrix/cris-layout-box-container/boxes/metadata/rendering-types/metadataGroup/table/table.component';
import {
InlineComponent
} from './cris-layout-matrix/cris-layout-box-container/boxes/metadata/rendering-types/metadataGroup/inline/inline.component';
import {
OrcidComponent
} from './cris-layout-matrix/cris-layout-box-container/boxes/metadata/rendering-types/orcid/orcid.component';
import {
ValuepairComponent
} from './cris-layout-matrix/cris-layout-box-container/boxes/metadata/rendering-types/valuepair/valuepair.component';
import {
TagComponent
} from './cris-layout-matrix/cris-layout-box-container/boxes/metadata/rendering-types/tag/tag.component';
import {
MetadataContainerComponent
} from './cris-layout-matrix/cris-layout-box-container/boxes/metadata/row/metadata-container/metadata-container.component';
import {
MetadataRenderComponent
} from './cris-layout-matrix/cris-layout-box-container/boxes/metadata/row/metadata-container/metadata-render/metadata-render.component';
import { MiradorViewerModule } from '../item-page/mirador-viewer/mirador-viewer.module';
import { ComcolModule } from '../shared/comcol/comcol.module';
import { SearchModule } from '../shared/search/search.module';
import {
AdvancedAttachmentComponent
} from './cris-layout-matrix/cris-layout-box-container/boxes/metadata/rendering-types/advanced-attachment/advanced-attachment.component';
import {
BitstreamAttachmentComponent
} from './cris-layout-matrix/cris-layout-box-container/boxes/metadata/rendering-types/advanced-attachment/bitstream-attachment/bitstream-attachment.component';
import {
AttachmentRenderComponent
} from './cris-layout-matrix/cris-layout-box-container/boxes/metadata/rendering-types/advanced-attachment/bitstream-attachment/attachment-render/attachment-render.component';
import {
AttachmentRenderingModule
} from './cris-layout-matrix/cris-layout-box-container/boxes/metadata/rendering-types/advanced-attachment/bitstream-attachment/attachment-render/attachment-rendering.module';
import { FormModule } from '../shared/form/form.module';
import { CrisLayoutCollectionBoxComponent } from './cris-layout-matrix/cris-layout-box-container/boxes/cris-layout-collection-box/cris-layout-collection-box.component';
import { ResultsBackButtonModule } from '../shared/results-back-button/results-back-button.module';
const ENTRY_COMPONENTS = [
// put only entry components that use custom decorator
CrisLayoutVerticalComponent,
CrisLayoutHorizontalComponent,
CrisLayoutMetadataBoxComponent,
CrisLayoutCollectionBoxComponent,
TextComponent,
HeadingComponent,
CrisLayoutRelationBoxComponent,
CrisLayoutIIIFViewerBoxComponent,
LongtextComponent,
DateComponent,
LinkComponent,
IdentifierComponent,
CrisrefComponent,
ThumbnailComponent,
AttachmentComponent,
CrisLayoutMetricsBoxComponent,
TableComponent,
InlineComponent,
OrcidComponent,
ValuepairComponent,
TagComponent,
AdvancedAttachmentComponent
];
@NgModule({
declarations: [
...ENTRY_COMPONENTS,
CrisLayoutLoaderDirective,
CrisLayoutComponent,
CrisLayoutLeadingComponent,
CrisLayoutLoaderComponent,
CrisLayoutMatrixComponent,
CrisLayoutSidebarComponent,
CrisLayoutNavbarComponent,
CrisLayoutSidebarItemComponent,
CrisLayoutBoxContainerComponent,
MetricRowComponent,
TableComponent,
InlineComponent,
OrcidComponent,
ValuepairComponent,
TagComponent,
DsDatePipe,
RowComponent,
MetadataContainerComponent,
MetadataRenderComponent,
BitstreamAttachmentComponent,
AttachmentRenderComponent,
],
imports: [
CommonModule,
SharedModule,
SearchModule.withEntryComponents(),
MyDSpacePageModule,
ContextMenuModule.withEntryComponents(),
NgbAccordionModule,
ComcolModule,
MiradorViewerModule,
MetricsModule,
AttachmentRenderingModule,
FormModule,
ResultsBackButtonModule
],
exports: [
CrisLayoutComponent,
CrisrefComponent,
]
})
export class CrisLayoutModule {
/**
* NOTE: this method allows to resolve issue with components that using a custom decorator
* which are not loaded during CSR otherwise
*/
static withEntryComponents() {
return {
ngModule: CrisLayoutModule,
providers: ENTRY_COMPONENTS.map((component) => ({ provide: component }))
};
}
}