Skip to content

Commit 19a6ae8

Browse files
authored
Merge pull request DSpace#1975 from atmire/w2p-96252_Reduce-main-bundle-size_Reorganize-shared-module
Reorganize shared module to reduce main bundle size
2 parents ee6ab3e + 2ffd732 commit 19a6ae8

65 files changed

Lines changed: 275 additions & 263 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/app/access-control/access-control.module.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,16 @@ import { MembersListComponent } from './group-registry/group-form/members-list/m
1010
import { SubgroupsListComponent } from './group-registry/group-form/subgroup-list/subgroups-list.component';
1111
import { GroupsRegistryComponent } from './group-registry/groups-registry.component';
1212
import { FormModule } from '../shared/form/form.module';
13+
import { DYNAMIC_ERROR_MESSAGES_MATCHER, DynamicErrorMessagesMatcher } from '@ng-dynamic-forms/core';
14+
import { AbstractControl } from '@angular/forms';
15+
16+
/**
17+
* Condition for displaying error messages on email form field
18+
*/
19+
export const ValidateEmailErrorStateMatcher: DynamicErrorMessagesMatcher =
20+
(control: AbstractControl, model: any, hasFocus: boolean) => {
21+
return (control.touched && !hasFocus) || (control.errors?.emailTaken && hasFocus);
22+
};
1323

1424
@NgModule({
1525
imports: [
@@ -26,6 +36,12 @@ import { FormModule } from '../shared/form/form.module';
2636
GroupFormComponent,
2737
SubgroupsListComponent,
2838
MembersListComponent
39+
],
40+
providers: [
41+
{
42+
provide: DYNAMIC_ERROR_MESSAGES_MATCHER,
43+
useValue: ValidateEmailErrorStateMatcher
44+
},
2945
]
3046
})
3147
/**

src/app/admin/admin.module.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { AdminSearchModule } from './admin-search-page/admin-search.module';
1010
import { AdminSidebarSectionComponent } from './admin-sidebar/admin-sidebar-section/admin-sidebar-section.component';
1111
import { ExpandableAdminSidebarSectionComponent } from './admin-sidebar/expandable-admin-sidebar-section/expandable-admin-sidebar-section.component';
1212
import { BatchImportPageComponent } from './admin-import-batch-page/batch-import-page.component';
13+
import { UploadModule } from '../shared/upload/upload.module';
1314

1415
const ENTRY_COMPONENTS = [
1516
// put only entry components that use custom decorator
@@ -25,7 +26,8 @@ const ENTRY_COMPONENTS = [
2526
AccessControlModule,
2627
AdminSearchModule.withEntryComponents(),
2728
AdminWorkflowModuleModule.withEntryComponents(),
28-
SharedModule
29+
SharedModule,
30+
UploadModule,
2931
],
3032
declarations: [
3133
AdminCurationTasksComponent,

src/app/app.module.ts

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
import { APP_BASE_HREF, CommonModule, DOCUMENT } from '@angular/common';
22
import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
33
import { NgModule } from '@angular/core';
4-
import { AbstractControl } from '@angular/forms';
54
import { BrowserModule } from '@angular/platform-browser';
65

76
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
87
import { EffectsModule } from '@ngrx/effects';
98
import { RouterStateSerializer, StoreRouterConnectingModule } from '@ngrx/router-store';
109
import { MetaReducer, StoreModule, USER_PROVIDED_META_REDUCERS } from '@ngrx/store';
11-
import { DYNAMIC_ERROR_MESSAGES_MATCHER, DYNAMIC_MATCHER_PROVIDERS, DynamicErrorMessagesMatcher } from '@ng-dynamic-forms/core';
1210
import { TranslateModule } from '@ngx-translate/core';
1311
import { ScrollToModule } from '@nicky-lenaers/ngx-scroll-to';
1412
import { AppRoutingModule } from './app-routing.module';
@@ -28,7 +26,6 @@ import { XsrfInterceptor } from './core/xsrf/xsrf.interceptor';
2826
import { LogInterceptor } from './core/log/log.interceptor';
2927
import { EagerThemesModule } from '../themes/eager-themes.module';
3028
import { APP_CONFIG, AppConfig } from '../config/app-config.interface';
31-
import { NgxMaskModule } from 'ngx-mask';
3229
import { StoreDevModules } from '../config/store/devtools';
3330
import { RootModule } from './root.module';
3431

@@ -46,14 +43,6 @@ export function getMetaReducers(appConfig: AppConfig): MetaReducer<AppState>[] {
4643
return appConfig.debug ? [...appMetaReducers, ...debugMetaReducers] : appMetaReducers;
4744
}
4845

49-
/**
50-
* Condition for displaying error messages on email form field
51-
*/
52-
export const ValidateEmailErrorStateMatcher: DynamicErrorMessagesMatcher =
53-
(control: AbstractControl, model: any, hasFocus: boolean) => {
54-
return (control.touched && !hasFocus) || (control.errors?.emailTaken && hasFocus);
55-
};
56-
5746
const IMPORTS = [
5847
CommonModule,
5948
SharedModule,
@@ -64,7 +53,6 @@ const IMPORTS = [
6453
ScrollToModule.forRoot(),
6554
NgbModule,
6655
TranslateModule.forRoot(),
67-
NgxMaskModule.forRoot(),
6856
EffectsModule.forRoot(appEffects),
6957
StoreModule.forRoot(appReducers, storeModuleConfig),
7058
StoreRouterConnectingModule.forRoot(),
@@ -113,11 +101,6 @@ const PROVIDERS = [
113101
useClass: LogInterceptor,
114102
multi: true
115103
},
116-
{
117-
provide: DYNAMIC_ERROR_MESSAGES_MATCHER,
118-
useValue: ValidateEmailErrorStateMatcher
119-
},
120-
...DYNAMIC_MATCHER_PROVIDERS,
121104
];
122105

123106
const DECLARATIONS = [

src/app/collection-page/collection-page.module.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import { ComcolModule } from '../shared/comcol/comcol.module';
2525
StatisticsModule.forRoot(),
2626
EditItemPageModule,
2727
CollectionFormModule,
28-
ComcolModule
28+
ComcolModule,
2929
],
3030
declarations: [
3131
CollectionPageComponent,
@@ -38,7 +38,7 @@ import { ComcolModule } from '../shared/comcol/comcol.module';
3838
],
3939
providers: [
4040
SearchService,
41-
]
41+
],
4242
})
4343
export class CollectionPageModule {
4444

src/app/collection-page/edit-collection-page/edit-collection-page.module.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import { ComcolModule } from '../../shared/comcol/comcol.module';
2525
CollectionFormModule,
2626
ResourcePoliciesModule,
2727
FormModule,
28-
ComcolModule
28+
ComcolModule,
2929
],
3030
declarations: [
3131
EditCollectionPageComponent,

src/app/community-page/community-page.module.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ const DECLARATIONS = [CommunityPageComponent,
3636
CommunityPageRoutingModule,
3737
StatisticsModule.forRoot(),
3838
CommunityFormModule,
39-
ComcolModule
39+
ComcolModule,
4040
],
4141
declarations: [
4242
...DECLARATIONS

src/app/community-page/edit-community-page/edit-community-page.module.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import { ComcolModule } from '../../shared/comcol/comcol.module';
2121
EditCommunityPageRoutingModule,
2222
CommunityFormModule,
2323
ComcolModule,
24-
ResourcePoliciesModule
24+
ResourcePoliciesModule,
2525
],
2626
declarations: [
2727
EditCommunityPageComponent,

src/app/core/core.module.ts

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,12 @@ import { CommonModule } from '@angular/common';
22
import { HttpClient } from '@angular/common/http';
33
import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';
44

5-
import { DynamicFormLayoutService, DynamicFormService, DynamicFormValidationService } from '@ng-dynamic-forms/core';
65
import { EffectsModule } from '@ngrx/effects';
76

87
import { Action, StoreConfig, StoreModule } from '@ngrx/store';
98
import { MyDSpaceGuard } from '../my-dspace-page/my-dspace.guard';
109

1110
import { isNotEmpty } from '../shared/empty.util';
12-
import { FormBuilderService } from '../shared/form/builder/form-builder.service';
13-
import { FormService } from '../shared/form/form.service';
1411
import { HostWindowService } from '../shared/host-window.service';
1512
import { MenuService } from '../shared/menu/menu.service';
1613
import { EndpointMockingRestService } from '../shared/mocks/dspace-rest/endpoint-mocking-rest.service';
@@ -24,8 +21,6 @@ import { SelectableListService } from '../shared/object-list/selectable-list/sel
2421
import { ObjectSelectService } from '../shared/object-select/object-select.service';
2522
import { PaginationComponentOptions } from '../shared/pagination/pagination-component-options.model';
2623
import { SidebarService } from '../shared/sidebar/sidebar.service';
27-
import { UploaderService } from '../shared/uploader/uploader.service';
28-
import { SectionFormOperationsService } from '../submission/sections/form/section-form-operations.service';
2924
import { AuthenticatedGuard } from './auth/authenticated.guard';
3025
import { AuthStatus } from './auth/models/auth-status.model';
3126
import { BrowseService } from './browse/browse.service';
@@ -137,9 +132,6 @@ import {
137132
import { Registration } from './shared/registration.model';
138133
import { MetadataSchemaDataService } from './data/metadata-schema-data.service';
139134
import { MetadataFieldDataService } from './data/metadata-field-data.service';
140-
import {
141-
DsDynamicTypeBindRelationService
142-
} from '../shared/form/builder/ds-dynamic-form-ui/ds-dynamic-type-bind-relation.service';
143135
import { TokenResponseParsingService } from './auth/token-response-parsing.service';
144136
import { SubmissionCcLicenseDataService } from './submission/submission-cc-license-data.service';
145137
import { SubmissionCcLicence } from './submission/models/submission-cc-license.model';
@@ -149,7 +141,6 @@ import { VocabularyEntry } from './submission/vocabularies/models/vocabulary-ent
149141
import { Vocabulary } from './submission/vocabularies/models/vocabulary.model';
150142
import { VocabularyEntryDetail } from './submission/vocabularies/models/vocabulary-entry-detail.model';
151143
import { VocabularyService } from './submission/vocabularies/vocabulary.service';
152-
import { VocabularyTreeviewService } from '../shared/vocabulary-treeview/vocabulary-treeview.service';
153144
import { ConfigurationDataService } from './data/configuration-data.service';
154145
import { ConfigurationProperty } from './shared/configuration-property.model';
155146
import { ReloadGuard } from './reload/reload.guard';
@@ -210,12 +201,6 @@ const PROVIDERS = [
210201
DSOResponseParsingService,
211202
{ provide: MOCK_RESPONSE_MAP, useValue: mockResponseMap },
212203
{ provide: DspaceRestService, useFactory: restServiceFactory, deps: [MOCK_RESPONSE_MAP, HttpClient] },
213-
DynamicFormLayoutService,
214-
DynamicFormService,
215-
DynamicFormValidationService,
216-
FormBuilderService,
217-
SectionFormOperationsService,
218-
FormService,
219204
EPersonDataService,
220205
LinkHeadService,
221206
HALEndpointService,
@@ -244,12 +229,10 @@ const PROVIDERS = [
244229
SubmissionResponseParsingService,
245230
SubmissionJsonPatchOperationsService,
246231
JsonPatchOperationsBuilder,
247-
UploaderService,
248232
UUIDService,
249233
NotificationsService,
250234
WorkspaceitemDataService,
251235
WorkflowItemDataService,
252-
UploaderService,
253236
DSpaceObjectDataService,
254237
ConfigurationDataService,
255238
DSOChangeAnalyzer,
@@ -266,7 +249,6 @@ const PROVIDERS = [
266249
ClaimedTaskDataService,
267250
PoolTaskDataService,
268251
BitstreamDataService,
269-
DsDynamicTypeBindRelationService,
270252
EntityTypeDataService,
271253
ContentSourceResponseParsingService,
272254
ItemTemplateDataService,
@@ -302,7 +284,6 @@ const PROVIDERS = [
302284
VocabularyService,
303285
VocabularyDataService,
304286
VocabularyEntryDetailsDataService,
305-
VocabularyTreeviewService,
306287
SequenceService,
307288
GroupDataService,
308289
FeedbackDataService,

src/app/shared/uploader/uploader.service.ts renamed to src/app/core/drag.service.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,17 @@
1+
/**
2+
* The contents of this file are subject to the license and copyright
3+
* detailed in the LICENSE and NOTICE files at the root of the source
4+
* tree and available online at
5+
*
6+
* http://www.dspace.org/license/
7+
*/
8+
19
import { Injectable } from '@angular/core';
210

3-
@Injectable()
4-
export class UploaderService {
11+
@Injectable({
12+
providedIn: 'root'
13+
})
14+
export class DragService {
515
private _overrideDragOverPage = false;
616

717
public overrideDragOverPage() {

src/app/item-page/bitstreams/upload/upload-bitstream.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { RemoteData } from '../../../core/data/remote-data';
44
import { Item } from '../../../core/shared/item.model';
55
import { map, take, switchMap } from 'rxjs/operators';
66
import { ActivatedRoute, Router } from '@angular/router';
7-
import { UploaderOptions } from '../../../shared/uploader/uploader-options.model';
7+
import { UploaderOptions } from '../../../shared/upload/uploader/uploader-options.model';
88
import { hasValue, isEmpty, isNotEmpty } from '../../../shared/empty.util';
99
import { ItemDataService } from '../../../core/data/item-data.service';
1010
import { AuthService } from '../../../core/auth/auth.service';
@@ -14,7 +14,7 @@ import { PaginatedList } from '../../../core/data/paginated-list.model';
1414
import { Bundle } from '../../../core/shared/bundle.model';
1515
import { BundleDataService } from '../../../core/data/bundle-data.service';
1616
import { getFirstSucceededRemoteDataPayload, getFirstCompletedRemoteData } from '../../../core/shared/operators';
17-
import { UploaderComponent } from '../../../shared/uploader/uploader.component';
17+
import { UploaderComponent } from '../../../shared/upload/uploader/uploader.component';
1818
import { RequestService } from '../../../core/data/request.service';
1919
import { getBitstreamModuleRoute } from '../../../app-routing-paths';
2020
import { getEntityEditRoute } from '../../item-page-routing-paths';

0 commit comments

Comments
 (0)