mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ADF-2064] Lazy loading support (#2811)
* remove BrowserAnimationsModule dependency * improve test shim * update test shim * test shim updates * example of lazy-loaded datatable * local and global i18n demo for lazy modules * lazy loading support for CoreModule providers * test shim updates * update test shim * support global i18n for lazy modules * cleanup lazy loading example * update card view after rebase * backwards compatibility * cleanup files * fix code after rebase
This commit is contained in:
committed by
Eugenio Romano
parent
49456b3fcd
commit
0d93c65fd7
@@ -17,15 +17,12 @@
|
||||
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { HttpClient, HttpClientModule } from '@angular/common/http';
|
||||
import { NgModule } from '@angular/core';
|
||||
import { NgModule, ModuleWithProviders } from '@angular/core';
|
||||
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
|
||||
|
||||
import { TRANSLATION_PROVIDER, TranslationService } from './services/translation.service';
|
||||
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
|
||||
import { TranslateStore } from '@ngx-translate/core/src/translate.store';
|
||||
|
||||
import { MaterialModule } from './material.module';
|
||||
|
||||
import { AppConfigModule } from './app-config/app-config.module';
|
||||
import { CardViewModule } from './card-view/card-view.module';
|
||||
import { CollapsableModule } from './collapsable/collapsable.module';
|
||||
@@ -45,16 +42,47 @@ import { SideBarActionModule } from './sidebar/sidebar-action.module';
|
||||
|
||||
import { DirectiveModule } from './directives/directive.module';
|
||||
import { PipeModule } from './pipes/pipe.module';
|
||||
import { ServiceModule } from './services/service.module';
|
||||
|
||||
import { AlfrescoApiService } from './services/alfresco-api.service';
|
||||
import { AppsProcessService } from './services/apps-process.service';
|
||||
import { AuthGuardBpm } from './services/auth-guard-bpm.service';
|
||||
import { AuthGuardEcm } from './services/auth-guard-ecm.service';
|
||||
import { AuthGuard } from './services/auth-guard.service';
|
||||
import { AuthenticationService } from './services/authentication.service';
|
||||
import { CardItemTypeService } from './card-view/services/card-item-types.service';
|
||||
import { CardViewUpdateService } from './card-view/services/card-view-update.service';
|
||||
import { CommentProcessService } from './services/comment-process.service';
|
||||
import { ContentService } from './services/content.service';
|
||||
import { CookieService } from './services/cookie.service';
|
||||
import { DeletedNodesApiService } from './services/deleted-nodes-api.service';
|
||||
import { DiscoveryApiService } from './services/discovery-api.service';
|
||||
import { FavoritesApiService } from './services/favorites-api.service';
|
||||
import { HighlightTransformService } from './services/highlight-transform.service';
|
||||
import { LogService } from './services/log.service';
|
||||
import { NodesApiService } from './services/nodes-api.service';
|
||||
import { NotificationService } from './services/notification.service';
|
||||
import { PageTitleService } from './services/page-title.service';
|
||||
import { PeopleContentService } from './services/people-content.service';
|
||||
import { PeopleProcessService } from './services/people-process.service';
|
||||
import { RenditionsService } from './services/renditions.service';
|
||||
import { SearchService } from './services/search.service';
|
||||
import { SettingsService } from './services/settings.service';
|
||||
import { SharedLinksApiService } from './services/shared-links-api.service';
|
||||
import { SitesService } from './services/sites.service';
|
||||
import { StorageService } from './services/storage.service';
|
||||
import { ThumbnailService } from './services/thumbnail.service';
|
||||
import { TranslateLoaderService } from './services/translate-loader.service';
|
||||
import { TRANSLATION_PROVIDER, TranslationService } from './services/translation.service';
|
||||
import { UploadService } from './services/upload.service';
|
||||
import { UserPreferencesService } from './services/user-preferences.service';
|
||||
import { SearchConfigurationService } from './services/search-configuration.service';
|
||||
|
||||
export function createTranslateLoader(http: HttpClient, logService: LogService) {
|
||||
return new TranslateLoaderService(http, logService);
|
||||
}
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
export function modules() {
|
||||
return [
|
||||
ViewerModule,
|
||||
SideBarActionModule,
|
||||
PipeModule,
|
||||
@@ -63,7 +91,6 @@ export function createTranslateLoader(http: HttpClient, logService: LogService)
|
||||
FormsModule,
|
||||
ReactiveFormsModule,
|
||||
HttpClientModule,
|
||||
BrowserAnimationsModule,
|
||||
HostSettingsModule,
|
||||
UserInfoModule,
|
||||
MaterialModule,
|
||||
@@ -73,8 +100,75 @@ export function createTranslateLoader(http: HttpClient, logService: LogService)
|
||||
ContextMenuModule,
|
||||
CardViewModule,
|
||||
CollapsableModule,
|
||||
ServiceModule,
|
||||
FormModule,
|
||||
LoginModule,
|
||||
LanguageMenuModule,
|
||||
InfoDrawerModule,
|
||||
DataColumnModule,
|
||||
DataTableModule
|
||||
];
|
||||
}
|
||||
|
||||
export function providers() {
|
||||
return [
|
||||
AuthenticationService,
|
||||
AlfrescoApiService,
|
||||
SettingsService,
|
||||
ContentService,
|
||||
AuthGuard,
|
||||
AuthGuardEcm,
|
||||
AuthGuardBpm,
|
||||
AppsProcessService,
|
||||
PageTitleService,
|
||||
StorageService,
|
||||
CookieService,
|
||||
RenditionsService,
|
||||
NotificationService,
|
||||
LogService,
|
||||
TranslationService,
|
||||
TranslateLoaderService,
|
||||
ThumbnailService,
|
||||
UploadService,
|
||||
CardItemTypeService,
|
||||
CardViewUpdateService,
|
||||
UserPreferencesService,
|
||||
HighlightTransformService,
|
||||
DeletedNodesApiService,
|
||||
FavoritesApiService,
|
||||
NodesApiService,
|
||||
PeopleContentService,
|
||||
PeopleProcessService,
|
||||
SearchService,
|
||||
SharedLinksApiService,
|
||||
SitesService,
|
||||
DiscoveryApiService,
|
||||
CommentProcessService,
|
||||
SearchConfigurationService
|
||||
];
|
||||
}
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
...modules(),
|
||||
TranslateModule.forChild({
|
||||
loader: {
|
||||
provide: TranslateLoader,
|
||||
useFactory: (createTranslateLoader),
|
||||
deps: [HttpClient, LogService]
|
||||
}
|
||||
})
|
||||
],
|
||||
exports: [
|
||||
...modules(),
|
||||
TranslateModule
|
||||
]
|
||||
})
|
||||
export class CoreModuleLazy {
|
||||
}
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
...modules(),
|
||||
TranslateModule.forRoot({
|
||||
loader: {
|
||||
provide: TranslateLoader,
|
||||
@@ -83,6 +177,10 @@ export function createTranslateLoader(http: HttpClient, logService: LogService)
|
||||
}
|
||||
})
|
||||
],
|
||||
exports: [
|
||||
...modules(),
|
||||
TranslateModule
|
||||
],
|
||||
providers: [
|
||||
{
|
||||
provide: TRANSLATION_PROVIDER,
|
||||
@@ -92,35 +190,31 @@ export function createTranslateLoader(http: HttpClient, logService: LogService)
|
||||
source: 'assets/adf-core'
|
||||
}
|
||||
},
|
||||
TranslationService
|
||||
],
|
||||
exports: [
|
||||
AppConfigModule,
|
||||
BrowserAnimationsModule,
|
||||
CommonModule,
|
||||
FormsModule,
|
||||
ReactiveFormsModule,
|
||||
TranslateModule,
|
||||
ContextMenuModule,
|
||||
CardViewModule,
|
||||
CollapsableModule,
|
||||
PaginationModule,
|
||||
ToolbarModule,
|
||||
LoginModule,
|
||||
UserInfoModule,
|
||||
LanguageMenuModule,
|
||||
InfoDrawerModule,
|
||||
DataColumnModule,
|
||||
DataTableModule,
|
||||
HostSettingsModule,
|
||||
ServiceModule,
|
||||
ViewerModule,
|
||||
SideBarActionModule,
|
||||
PipeModule,
|
||||
DirectiveModule,
|
||||
FormModule,
|
||||
MaterialModule
|
||||
...providers()
|
||||
]
|
||||
})
|
||||
export class CoreModule {
|
||||
static forRoot(): ModuleWithProviders {
|
||||
return {
|
||||
ngModule: CoreModule,
|
||||
providers: [
|
||||
{
|
||||
provide: TRANSLATION_PROVIDER,
|
||||
multi: true,
|
||||
useValue: {
|
||||
name: 'adf-core',
|
||||
source: 'assets/adf-core'
|
||||
}
|
||||
},
|
||||
TranslateStore,
|
||||
...providers()
|
||||
]
|
||||
};
|
||||
}
|
||||
|
||||
static forChild(): ModuleWithProviders {
|
||||
return {
|
||||
ngModule: CoreModuleLazy
|
||||
};
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user