tree-shakable services (#661)

* improved services

* context menu service

* update to latest adf-extensions
This commit is contained in:
Denys Vuika
2018-09-23 17:06:52 +01:00
committed by GitHub
parent dedd9b72e9
commit ac0a29e14a
20 changed files with 43 additions and 72 deletions

6
package-lock.json generated
View File

@@ -21,9 +21,9 @@
} }
}, },
"@alfresco/adf-extensions": { "@alfresco/adf-extensions": {
"version": "2.6.0-84da24c02ff43ca583fea52ad521c89467c05618", "version": "2.6.0-018b08cce71a46bebdadb9d1ba3c17617de68005",
"resolved": "https://registry.npmjs.org/@alfresco/adf-extensions/-/adf-extensions-2.6.0-84da24c02ff43ca583fea52ad521c89467c05618.tgz", "resolved": "https://registry.npmjs.org/@alfresco/adf-extensions/-/adf-extensions-2.6.0-018b08cce71a46bebdadb9d1ba3c17617de68005.tgz",
"integrity": "sha512-ySSmh9YWT+d95unBueZrID3DTzkMm9GXGtG4B81X2hossJbT/ix8s8etQQiFGh4Nor0VJW2TfAdApGkmPyvQhg==", "integrity": "sha512-aWT2BaDmBgeWAxK0o6OWpBdcuRszIicor5sdzd0Pr8OBLLDKE0mhdVAZQGF9llxuJc5e9RoOhLA+zmchcGHEdw==",
"requires": { "requires": {
"tslib": "^1.9.0" "tslib": "^1.9.0"
} }

View File

@@ -29,7 +29,7 @@
"dependencies": { "dependencies": {
"@alfresco/adf-content-services": "2.6.0-8fee6e217aae1f2de5ff4634c5cd1e699336fd20", "@alfresco/adf-content-services": "2.6.0-8fee6e217aae1f2de5ff4634c5cd1e699336fd20",
"@alfresco/adf-core": "2.6.0-8fee6e217aae1f2de5ff4634c5cd1e699336fd20", "@alfresco/adf-core": "2.6.0-8fee6e217aae1f2de5ff4634c5cd1e699336fd20",
"@alfresco/adf-extensions": "2.6.0-84da24c02ff43ca583fea52ad521c89467c05618", "@alfresco/adf-extensions": "2.6.0-018b08cce71a46bebdadb9d1ba3c17617de68005",
"@angular/animations": "6.1.7", "@angular/animations": "6.1.7",
"@angular/cdk": "^6.4.7", "@angular/cdk": "^6.4.7",
"@angular/common": "6.1.7", "@angular/common": "6.1.7",

View File

@@ -43,15 +43,9 @@ import { FilesComponent } from './components/files/files.component';
import { LibrariesComponent } from './components/libraries/libraries.component'; import { LibrariesComponent } from './components/libraries/libraries.component';
import { NodeVersionsDialogComponent } from './dialogs/node-versions/node-versions.dialog'; import { NodeVersionsDialogComponent } from './dialogs/node-versions/node-versions.dialog';
import { LibraryDialogComponent } from './dialogs/library/library.dialog'; import { LibraryDialogComponent } from './dialogs/library/library.dialog';
import { ContentManagementService } from './services/content-management.service';
import { NodeActionsService } from './services/node-actions.service';
import { NodePermissionService } from './services/node-permission.service';
import { ProfileResolver } from './services/profile.resolver';
import { ExperimentalGuard } from './services/experimental-guard.service';
import { AppStoreModule } from './store/app-store.module'; import { AppStoreModule } from './store/app-store.module';
import { MaterialModule } from './material.module'; import { MaterialModule } from './material.module';
import { ContentApiService } from './services/content-api.service';
import { AppExtensionsModule } from './extensions.module'; import { AppExtensionsModule } from './extensions.module';
import { CoreExtensionsModule } from './extensions/core.extensions.module'; import { CoreExtensionsModule } from './extensions/core.extensions.module';
import { AppRouteReuseStrategy } from './app.routes.strategy'; import { AppRouteReuseStrategy } from './app.routes.strategy';
@@ -69,7 +63,6 @@ import { AppCurrentUserModule } from './components/current-user/current-user.mod
import { AppSearchInputModule } from './components/search/search-input.module'; import { AppSearchInputModule } from './components/search/search-input.module';
import { AppSearchResultsModule } from './components/search/search-results.module'; import { AppSearchResultsModule } from './components/search/search-results.module';
import { AppLoginModule } from './components/login/login.module'; import { AppLoginModule } from './components/login/login.module';
import { AppAuthGuard } from './guards/auth.guard';
@NgModule({ @NgModule({
imports: [ imports: [
@@ -86,14 +79,14 @@ import { AppAuthGuard } from './guards/auth.guard';
ContentModule.forRoot(), ContentModule.forRoot(),
AppStoreModule, AppStoreModule,
CoreExtensionsModule.forRoot(), CoreExtensionsModule.forRoot(),
ExtensionsModule.forRoot(), ExtensionsModule,
AppExtensionsModule, AppExtensionsModule,
AppLoginModule, AppLoginModule,
AppCommonModule, AppCommonModule,
AppLayoutModule, AppLayoutModule,
AppCurrentUserModule, AppCurrentUserModule,
DirectivesModule, DirectivesModule,
ContextMenuModule.forRoot(), ContextMenuModule,
AppInfoDrawerModule, AppInfoDrawerModule,
AppToolbarModule, AppToolbarModule,
AppSidenavModule, AppSidenavModule,
@@ -119,14 +112,7 @@ import { AppAuthGuard } from './guards/auth.guard';
name: 'app', name: 'app',
source: 'assets' source: 'assets'
} }
}, }
AppAuthGuard,
ContentManagementService,
NodeActionsService,
NodePermissionService,
ProfileResolver,
ExperimentalGuard,
ContentApiService
], ],
entryComponents: [LibraryDialogComponent, NodeVersionsDialogComponent], entryComponents: [LibraryDialogComponent, NodeVersionsDialogComponent],
bootstrap: [AppComponent] bootstrap: [AppComponent]

View File

@@ -23,7 +23,7 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>. * along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/ */
import { NgModule, ModuleWithProviders } from '@angular/core'; import { NgModule } from '@angular/core';
import { import {
MatMenuModule, MatMenuModule,
MatListModule, MatListModule,
@@ -34,7 +34,6 @@ import { CoreModule } from '@alfresco/adf-core';
import { CoreExtensionsModule } from '../../extensions/core.extensions.module'; import { CoreExtensionsModule } from '../../extensions/core.extensions.module';
import { ContextActionsDirective } from './context-menu.directive'; import { ContextActionsDirective } from './context-menu.directive';
import { ContextMenuService } from './context-menu.service';
import { ContextMenuComponent } from './context-menu.component'; import { ContextMenuComponent } from './context-menu.component';
import { ContextMenuItemDirective } from './context-menu-item.directive'; import { ContextMenuItemDirective } from './context-menu-item.directive';
import { ExtensionsModule } from '@alfresco/adf-extensions'; import { ExtensionsModule } from '@alfresco/adf-extensions';
@@ -48,7 +47,7 @@ import { OutsideEventDirective } from './context-menu-outside-event.directive';
MatButtonModule, MatButtonModule,
CoreExtensionsModule.forChild(), CoreExtensionsModule.forChild(),
CoreModule.forChild(), CoreModule.forChild(),
ExtensionsModule.forChild() ExtensionsModule
], ],
declarations: [ declarations: [
ContextActionsDirective, ContextActionsDirective,
@@ -63,17 +62,4 @@ import { OutsideEventDirective } from './context-menu-outside-event.directive';
], ],
entryComponents: [ContextMenuComponent] entryComponents: [ContextMenuComponent]
}) })
export class ContextMenuModule { export class ContextMenuModule {}
static forRoot(): ModuleWithProviders {
return {
ngModule: ContextMenuModule,
providers: [ContextMenuService]
};
}
static forChild(): ModuleWithProviders {
return {
ngModule: ContextMenuModule
};
}
}

View File

@@ -5,7 +5,9 @@ import { ContextMenuOverlayRef } from './context-menu-overlay';
import { ContextMenuComponent } from './context-menu.component'; import { ContextMenuComponent } from './context-menu.component';
import { ContextmenuOverlayConfig } from './interfaces'; import { ContextmenuOverlayConfig } from './interfaces';
@Injectable() @Injectable({
providedIn: 'root'
})
export class ContextMenuService { export class ContextMenuService {
constructor(private injector: Injector, private overlay: Overlay) {} constructor(private injector: Injector, private overlay: Overlay) {}

View File

@@ -55,7 +55,7 @@ const routes: Routes = [
DirectivesModule, DirectivesModule,
AppCommonModule, AppCommonModule,
AppToolbarModule, AppToolbarModule,
ContextMenuModule.forChild(), ContextMenuModule,
AppInfoDrawerModule AppInfoDrawerModule
], ],
declarations: [FavoritesComponent], declarations: [FavoritesComponent],

View File

@@ -52,7 +52,7 @@ export function components() {
CommonModule, CommonModule,
MaterialModule, MaterialModule,
CoreModule.forChild(), CoreModule.forChild(),
ExtensionsModule.forChild(), ExtensionsModule,
ContentMetadataModule, ContentMetadataModule,
VersionManagerModule, VersionManagerModule,
DirectivesModule DirectivesModule

View File

@@ -54,7 +54,7 @@ const routes: Routes = [
DirectivesModule, DirectivesModule,
AppCommonModule, AppCommonModule,
AppToolbarModule, AppToolbarModule,
ContextMenuModule.forChild(), ContextMenuModule,
AppInfoDrawerModule AppInfoDrawerModule
], ],
declarations: [RecentFilesComponent], declarations: [RecentFilesComponent],

View File

@@ -55,7 +55,7 @@ const routes: Routes = [
DirectivesModule, DirectivesModule,
AppCommonModule, AppCommonModule,
AppToolbarModule, AppToolbarModule,
ContextMenuModule.forChild(), ContextMenuModule,
AppInfoDrawerModule AppInfoDrawerModule
], ],
declarations: [SharedFilesComponent], declarations: [SharedFilesComponent],

View File

@@ -48,7 +48,7 @@ export function components() {
} }
@NgModule({ @NgModule({
imports: [CommonModule, CoreModule.forChild(), ExtensionsModule.forChild()], imports: [CommonModule, CoreModule.forChild(), ExtensionsModule],
declarations: components(), declarations: components(),
exports: components(), exports: components(),
entryComponents: components() entryComponents: components()

View File

@@ -54,7 +54,7 @@ const routes: Routes = [
DirectivesModule, DirectivesModule,
AppCommonModule, AppCommonModule,
AppToolbarModule, AppToolbarModule,
ContextMenuModule.forChild() ContextMenuModule
], ],
declarations: [TrashcanComponent], declarations: [TrashcanComponent],
exports: [TrashcanComponent] exports: [TrashcanComponent]

View File

@@ -43,14 +43,14 @@ export function setupExtensions(service: AppExtensionService): Function {
} }
@NgModule({ @NgModule({
imports: [CommonModule, CoreModule.forChild(), ExtensionsModule.forChild()] imports: [CommonModule, CoreModule.forChild(), ExtensionsModule]
}) })
export class CoreExtensionsModule { export class CoreExtensionsModule {
static forRoot(): ModuleWithProviders { static forRoot(): ModuleWithProviders {
return { return {
ngModule: CoreExtensionsModule, ngModule: CoreExtensionsModule,
providers: [ providers: [
AppExtensionService, // AppExtensionService,
{ {
provide: APP_INITIALIZER, provide: APP_INITIALIZER,
useFactory: setupExtensions, useFactory: setupExtensions,

View File

@@ -49,7 +49,9 @@ import {
ProfileState ProfileState
} from '@alfresco/adf-extensions'; } from '@alfresco/adf-extensions';
@Injectable() @Injectable({
providedIn: 'root'
})
export class AppExtensionService implements RuleContext { export class AppExtensionService implements RuleContext {
defaults = { defaults = {
layout: 'app.layout.main', layout: 'app.layout.main',

View File

@@ -31,7 +31,9 @@ import {
AuthGuardEcm AuthGuardEcm
} from '@alfresco/adf-core'; } from '@alfresco/adf-core';
@Injectable() @Injectable({
providedIn: 'root'
})
export class AppAuthGuard extends AuthGuardEcm { export class AppAuthGuard extends AuthGuardEcm {
constructor( constructor(
private _auth: AuthenticationService, private _auth: AuthenticationService,

View File

@@ -43,7 +43,9 @@ import {
FavoriteBody FavoriteBody
} from 'alfresco-js-api'; } from 'alfresco-js-api';
@Injectable() @Injectable({
providedIn: 'root'
})
export class ContentApiService { export class ContentApiService {
constructor( constructor(
private api: AlfrescoApiService, private api: AlfrescoApiService,

View File

@@ -68,7 +68,9 @@ interface RestoredNode {
statusCode?: number; statusCode?: number;
} }
@Injectable() @Injectable({
providedIn: 'root'
})
export class ContentManagementService { export class ContentManagementService {
nodesMoved = new Subject<any>(); nodesMoved = new Subject<any>();
nodesDeleted = new Subject<any>(); nodesDeleted = new Subject<any>();

View File

@@ -46,7 +46,9 @@ import {
import { ContentApiService } from '../services/content-api.service'; import { ContentApiService } from '../services/content-api.service';
import { catchError, map, mergeMap } from 'rxjs/operators'; import { catchError, map, mergeMap } from 'rxjs/operators';
@Injectable() @Injectable({
providedIn: 'root'
})
export class NodeActionsService { export class NodeActionsService {
static SNACK_MESSAGE_DURATION_WITH_UNDO = 10000; static SNACK_MESSAGE_DURATION_WITH_UNDO = 10000;
static SNACK_MESSAGE_DURATION = 3000; static SNACK_MESSAGE_DURATION = 3000;

View File

@@ -26,7 +26,9 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { NodePermissions } from '@alfresco/adf-extensions'; import { NodePermissions } from '@alfresco/adf-extensions';
@Injectable() @Injectable({
providedIn: 'root'
})
export class NodePermissionService implements NodePermissions { export class NodePermissionService implements NodePermissions {
static DEFAULT_OPERATION = 'OR'; static DEFAULT_OPERATION = 'OR';

View File

@@ -32,7 +32,9 @@ import { AppStore } from '../store/states/app.state';
import { SetUserProfileAction } from '../store/actions'; import { SetUserProfileAction } from '../store/actions';
import { ContentApiService } from './content-api.service'; import { ContentApiService } from './content-api.service';
@Injectable() @Injectable({
providedIn: 'root'
})
export class ProfileResolver implements Resolve<Person> { export class ProfileResolver implements Resolve<Person> {
constructor( constructor(
private store: Store<AppStore>, private store: Store<AppStore>,

View File

@@ -55,15 +55,6 @@ import {
DocumentListService DocumentListService
} from '@alfresco/adf-content-services'; } from '@alfresco/adf-content-services';
import { MaterialModule } from '../material.module'; import { MaterialModule } from '../material.module';
import { ContentManagementService } from '../services/content-management.service';
import { NodeActionsService } from '../services/node-actions.service';
import { NodePermissionService } from '../services/node-permission.service';
import { ContentApiService } from '../services/content-api.service';
import { AppExtensionService } from '../extensions/extension.service';
import {
ExtensionLoaderService,
ExtensionService
} from '@alfresco/adf-extensions';
@NgModule({ @NgModule({
imports: [ imports: [
@@ -103,15 +94,7 @@ import {
ThumbnailService, ThumbnailService,
UploadService, UploadService,
CustomResourcesService, CustomResourcesService,
DocumentListService, DocumentListService
ContentManagementService,
NodeActionsService,
NodePermissionService,
ContentApiService,
AppExtensionService,
ExtensionService,
ExtensionLoaderService
] ]
}) })
export class AppTestingModule {} export class AppTestingModule {}