mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2025-07-31 17:38:28 +00:00
[ACA-1608] lazy loading support for Viewer and About screens (#526)
* move viewer and directives to separate modules * lazy loading for Viewer and About screens * lazy loading support for extensions module
This commit is contained in:
@@ -23,10 +23,9 @@
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { NgModule } from '@angular/core';
|
||||
import { NgModule, ModuleWithProviders, APP_INITIALIZER } from '@angular/core';
|
||||
import { AuthGuardEcm, CoreModule } from '@alfresco/adf-core';
|
||||
import { ExtensionService } from './extension.service';
|
||||
import { AboutComponent } from '../components/about/about.component';
|
||||
import { LayoutComponent } from '../components/layout/layout.component';
|
||||
import { ToolbarActionComponent } from './components/toolbar-action/toolbar-action.component';
|
||||
import { CommonModule } from '@angular/common';
|
||||
@@ -38,30 +37,58 @@ import {
|
||||
hasFileSelected,
|
||||
canDownloadSelection
|
||||
} from './evaluators/app.evaluators';
|
||||
import { TrashcanComponent } from '../components/trashcan/trashcan.component';
|
||||
|
||||
function setupExtensions(extensions: ExtensionService): Function {
|
||||
return () =>
|
||||
new Promise(resolve => {
|
||||
extensions
|
||||
.setComponent('app.layout.main', LayoutComponent)
|
||||
.setComponent('app.components.trashcan', TrashcanComponent)
|
||||
.setAuthGuard('app.auth', AuthGuardEcm)
|
||||
|
||||
.setEvaluator('core.every', every)
|
||||
.setEvaluator('core.some', some)
|
||||
.setEvaluator('app.selection.canDownload', canDownloadSelection)
|
||||
.setEvaluator('app.selection.file', hasFileSelected)
|
||||
.setEvaluator('app.selection.folder', hasFolderSelected)
|
||||
.setEvaluator(
|
||||
'app.selection.folder.canUpdate',
|
||||
canUpdateSelectedFolder
|
||||
)
|
||||
.setEvaluator(
|
||||
'app.navigation.folder.canCreate',
|
||||
canCreateFolder
|
||||
);
|
||||
|
||||
resolve(true);
|
||||
});
|
||||
}
|
||||
|
||||
@NgModule({
|
||||
imports: [CommonModule, CoreModule.forChild()],
|
||||
declarations: [ToolbarActionComponent],
|
||||
exports: [ToolbarActionComponent],
|
||||
entryComponents: [AboutComponent],
|
||||
providers: [ExtensionService]
|
||||
exports: [ToolbarActionComponent]
|
||||
})
|
||||
export class CoreExtensionsModule {
|
||||
constructor(extensions: ExtensionService) {
|
||||
extensions
|
||||
.setComponent('app.layout.main', LayoutComponent)
|
||||
.setComponent('app.components.about', AboutComponent)
|
||||
.setAuthGuard('app.auth', AuthGuardEcm)
|
||||
static forRoot(): ModuleWithProviders {
|
||||
return {
|
||||
ngModule: CoreExtensionsModule,
|
||||
providers: [
|
||||
ExtensionService,
|
||||
{
|
||||
provide: APP_INITIALIZER,
|
||||
useFactory: setupExtensions,
|
||||
deps: [ExtensionService],
|
||||
multi: true
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
|
||||
.setEvaluator('core.every', every)
|
||||
.setEvaluator('core.some', some)
|
||||
.setEvaluator('app.selection.canDownload', canDownloadSelection)
|
||||
.setEvaluator('app.selection.file', hasFileSelected)
|
||||
.setEvaluator('app.selection.folder', hasFolderSelected)
|
||||
.setEvaluator(
|
||||
'app.selection.folder.canUpdate',
|
||||
canUpdateSelectedFolder
|
||||
)
|
||||
.setEvaluator('app.navigation.folder.canCreate', canCreateFolder);
|
||||
static forChild(): ModuleWithProviders {
|
||||
return {
|
||||
ngModule: CoreExtensionsModule
|
||||
};
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user