From 10244f45acd3223d67f01b3dccfa10a971780266 Mon Sep 17 00:00:00 2001 From: Darya Blavanovich <166367848+DaryaBalvanovich@users.noreply.github.com> Date: Mon, 29 Apr 2024 08:55:18 +0200 Subject: [PATCH] [ACS-7577] [ADF] Remove Folder Directives from Content Services lib (#9582) * ACS-7577 remove create and edit folder directive [ci:force] * Revert "ACS-7577 remove create and edit folder directive [ci:force]" This reverts commit a0055aa496d1c6ee64118035acb36b55ab59716b. * ACS-7577 move edit and create folder directives to demo-shell [ci:force] * ACS-7577 remove public-api and fix readme file [ci:force] * ACS-7577 remove edit directive [ci:force] * ACS-7577 update e2e tests [ci:force] * ACS-7577 update e2e tests [ci:force] * ACS-7577 update e2e tests [ci:force] * ACS-7577 revert e2e tests [ci:force] * ACS-7577 revert e2e tests and create button [ci:force] * ACS-7577 refactor e2e test [ci:force] --------- Co-authored-by: DaryaBalvanovich <darya.balvanovich1@hyland.com> --- demo-shell/src/app/app.module.ts | 4 +- .../app/components/files/files.component.html | 13 --- .../app/components/files/files.component.ts | 11 -- .../folder-create.directive.md | 2 +- .../folder-create.directive.spec.ts | 4 +- .../folder-create.directive.ts | 12 +- .../folder-directive.module.ts | 16 +-- .../src/app}/folder-directive/index.ts | 4 +- docs/README.md | 2 - .../directives/folder-edit.directive.md | 48 -------- .../document-list-pagination.e2e.ts | 3 - .../src/lib/content.module.ts | 3 - .../folder-edit.directive.spec.ts | 110 ------------------ .../folder-directive/folder-edit.directive.ts | 92 --------------- .../src/lib/folder-directive/public-api.ts | 21 ---- lib/content-services/src/public-api.ts | 1 - 16 files changed, 16 insertions(+), 330 deletions(-) rename {docs/content-services/directives => demo-shell/src/app/folder-directive}/folder-create.directive.md (98%) rename {lib/content-services/src/lib => demo-shell/src/app}/folder-directive/folder-create.directive.spec.ts (96%) rename {lib/content-services/src/lib => demo-shell/src/app}/folder-directive/folder-create.directive.ts (88%) rename {lib/content-services/src/lib => demo-shell/src/app}/folder-directive/folder-directive.module.ts (75%) rename {lib/content-services/src/lib => demo-shell/src/app}/folder-directive/index.ts (88%) delete mode 100644 docs/content-services/directives/folder-edit.directive.md delete mode 100644 lib/content-services/src/lib/folder-directive/folder-edit.directive.spec.ts delete mode 100644 lib/content-services/src/lib/folder-directive/folder-edit.directive.ts delete mode 100644 lib/content-services/src/lib/folder-directive/public-api.ts diff --git a/demo-shell/src/app/app.module.ts b/demo-shell/src/app/app.module.ts index 2822b58c51..78495a2a6d 100644 --- a/demo-shell/src/app/app.module.ts +++ b/demo-shell/src/app/app.module.ts @@ -67,6 +67,7 @@ import { ProcessCloudLayoutComponent } from './components/cloud/process-cloud-la import { CustomEditorComponent, CustomWidgetComponent } from './components/cloud/custom-form-components/custom-editor.component'; import { SearchFilterChipsComponent } from './components/search/search-filter-chips.component'; import { UserInfoComponent } from './components/app-layout/user-info/user-info.component'; +import { FolderDirectiveModule } from './folder-directive'; @NgModule({ imports: [ @@ -87,7 +88,8 @@ import { UserInfoComponent } from './components/app-layout/user-info/user-info.c ExtensionsModule.forRoot(), NgChartsModule, AppCloudSharedModule, - MonacoEditorModule.forRoot() + MonacoEditorModule.forRoot(), + FolderDirectiveModule ], declarations: [ AppComponent, diff --git a/demo-shell/src/app/components/files/files.component.html b/demo-shell/src/app/components/files/files.component.html index 47815e5df6..2ab363c090 100644 --- a/demo-shell/src/app/components/files/files.component.html +++ b/demo-shell/src/app/components/files/files.component.html @@ -64,19 +64,6 @@ <mat-icon>more_vert</mat-icon> </button> <mat-menu #menu="matMenu"> - <button mat-menu-item - (error)="openSnackMessageError($event)" - [adf-create-folder]="currentFolderId"> - <mat-icon>create_new_folder</mat-icon> - <span>New folder</span> - </button> - <button mat-menu-item - [disabled]="!canEditFolder(documentList.selection)" - (error)="openSnackMessageError($event)" - [adf-edit-folder]="documentList.selection[0]?.entry"> - <mat-icon>create</mat-icon> - <span>Edit folder</span> - </button> <button mat-menu-item adf-check-allowable-operation="delete" [adf-nodes]="documentList.selection" diff --git a/demo-shell/src/app/components/files/files.component.ts b/demo-shell/src/app/components/files/files.component.ts index 7ceb25b1f2..5db9a4087a 100644 --- a/demo-shell/src/app/components/files/files.component.ts +++ b/demo-shell/src/app/components/files/files.component.ts @@ -390,17 +390,6 @@ export class FilesComponent implements OnInit, OnChanges, OnDestroy { return this.contentService.hasAllowableOperations(selection[0].entry, 'update'); } - canEditFolder(selection: Array<NodeEntry>): boolean { - if (selection && selection.length === 1) { - const entry = selection[0].entry; - - if (entry?.isFolder) { - return this.contentService.hasAllowableOperations(entry, 'update'); - } - } - return false; - } - canCreateContent(parentNode: Node): boolean { if (parentNode) { return this.contentService.hasAllowableOperations(parentNode, 'create'); diff --git a/docs/content-services/directives/folder-create.directive.md b/demo-shell/src/app/folder-directive/folder-create.directive.md similarity index 98% rename from docs/content-services/directives/folder-create.directive.md rename to demo-shell/src/app/folder-directive/folder-create.directive.md index ba933d5f40..1d48413477 100644 --- a/docs/content-services/directives/folder-create.directive.md +++ b/demo-shell/src/app/folder-directive/folder-create.directive.md @@ -1,7 +1,7 @@ --- Title: Folder Create directive Added: v2.0.0 -Status: Active +Status: Deprecated Last reviewed: 2019-01-16 --- diff --git a/lib/content-services/src/lib/folder-directive/folder-create.directive.spec.ts b/demo-shell/src/app/folder-directive/folder-create.directive.spec.ts similarity index 96% rename from lib/content-services/src/lib/folder-directive/folder-create.directive.spec.ts rename to demo-shell/src/app/folder-directive/folder-create.directive.spec.ts index 4e90a7425d..2358a744e0 100644 --- a/lib/content-services/src/lib/folder-directive/folder-create.directive.spec.ts +++ b/demo-shell/src/app/folder-directive/folder-create.directive.spec.ts @@ -22,8 +22,8 @@ import { By } from '@angular/platform-browser'; import { Subject, of } from 'rxjs'; import { FolderCreateDirective } from './folder-create.directive'; import { Node } from '@alfresco/js-api'; -import { ContentTestingModule } from '../testing/content.testing.module'; -import { ContentService } from '../common/services/content.service'; +import { ContentService } from '@alfresco/adf-content-services'; +import { ContentTestingModule } from 'lib/content-services/src/lib/testing/content.testing.module'; @Component({ template: ` <div [adf-create-folder]="parentNode" (success)="success($event)" title="create-title" [nodeType]="'cm:my-little-pony'"></div>` diff --git a/lib/content-services/src/lib/folder-directive/folder-create.directive.ts b/demo-shell/src/app/folder-directive/folder-create.directive.ts similarity index 88% rename from lib/content-services/src/lib/folder-directive/folder-create.directive.ts rename to demo-shell/src/app/folder-directive/folder-create.directive.ts index 35ab1dcf88..f7cedd20d2 100644 --- a/lib/content-services/src/lib/folder-directive/folder-create.directive.ts +++ b/demo-shell/src/app/folder-directive/folder-create.directive.ts @@ -15,13 +15,12 @@ * limitations under the License. */ -/* eslint-disable @angular-eslint/no-input-rename */ +/* eslint-disable */ import { Directive, HostListener, Input, Output, EventEmitter } from '@angular/core'; import { MatDialog } from '@angular/material/dialog'; import { Node } from '@alfresco/js-api'; -import { FolderDialogComponent } from '../dialogs/folder.dialog'; -import { ContentService } from '../common/services/content.service'; +import { ContentService, FolderDialogComponent } from '@alfresco/adf-content-services'; const DEFAULT_FOLDER_PARENT_ID = '-my-'; const DIALOG_WIDTH: number = 400; @@ -50,16 +49,13 @@ export class FolderCreateDirective { @Output() success: EventEmitter<Node> = new EventEmitter<Node>(); - @HostListener('click', [ '$event' ]) + @HostListener('click', ['$event']) onClick(event) { event.preventDefault(); this.openDialog(); } - constructor( - public dialogRef: MatDialog, - public content: ContentService - ) {} + constructor(public dialogRef: MatDialog, public content: ContentService) {} private get dialogConfig() { const { parentNodeId, title: createTitle, nodeType } = this; diff --git a/lib/content-services/src/lib/folder-directive/folder-directive.module.ts b/demo-shell/src/app/folder-directive/folder-directive.module.ts similarity index 75% rename from lib/content-services/src/lib/folder-directive/folder-directive.module.ts rename to demo-shell/src/app/folder-directive/folder-directive.module.ts index 325f62b692..3f687d8832 100644 --- a/lib/content-services/src/lib/folder-directive/folder-directive.module.ts +++ b/demo-shell/src/app/folder-directive/folder-directive.module.ts @@ -20,20 +20,10 @@ import { NgModule } from '@angular/core'; import { MaterialModule } from '../material.module'; import { FolderCreateDirective } from './folder-create.directive'; -import { FolderEditDirective } from './folder-edit.directive'; @NgModule({ - imports: [ - CommonModule, - MaterialModule - ], - declarations: [ - FolderCreateDirective, - FolderEditDirective - ], - exports: [ - FolderCreateDirective, - FolderEditDirective - ] + imports: [CommonModule, MaterialModule], + declarations: [FolderCreateDirective], + exports: [FolderCreateDirective] }) export class FolderDirectiveModule {} diff --git a/lib/content-services/src/lib/folder-directive/index.ts b/demo-shell/src/app/folder-directive/index.ts similarity index 88% rename from lib/content-services/src/lib/folder-directive/index.ts rename to demo-shell/src/app/folder-directive/index.ts index e58e5c1c41..d373796834 100644 --- a/lib/content-services/src/lib/folder-directive/index.ts +++ b/demo-shell/src/app/folder-directive/index.ts @@ -15,4 +15,6 @@ * limitations under the License. */ -export * from './public-api'; +export * from './folder-create.directive'; + +export * from './folder-directive.module'; diff --git a/docs/README.md b/docs/README.md index fdf2a4e32e..9908957725 100644 --- a/docs/README.md +++ b/docs/README.md @@ -331,8 +331,6 @@ for more information about installing and using the source code. | [Check Allowable Operation directive](content-services/directives/check-allowable-operation.directive.md) | Selectively disables an HTML element or Angular component. | [Source](../lib/content-services/src/lib/directives/check-allowable-operation.directive.ts) | | [Node Public File Share Directive](content-services/directives/content-node-share.directive.md) | Creates and manages public shared links for files. | [Source](../lib/content-services/src/lib/content-node-share/content-node-share.directive.ts) | | [File Draggable directive](content-services/directives/file-draggable.directive.md) | Provides drag-and-drop features for an element such as a div. | [Source](../lib/content-services/src/lib/upload/directives/file-draggable.directive.ts) | -| [Folder Create directive](content-services/directives/folder-create.directive.md) | Creates folders. | [Source](../lib/content-services/src/lib/folder-directive/folder-create.directive.ts) | -| [Folder Edit directive](content-services/directives/folder-edit.directive.md) | Allows folders to be edited. | [Source](../lib/content-services/src/lib/folder-directive/folder-edit.directive.ts) | | [Inherit Permission directive](content-services/directives/inherited-button.directive.md) | Update the current node by adding/removing the inherited permissions. | [Source](../lib/content-services/src/lib/permission-manager/components/inherited-button.directive.ts) | | [Node Counter directive](content-services/directives/node-counter.directive.md) | Appends a counter to an element. | [Source](../lib/content-services/src/lib/directives/node-counter.directive.ts) | | [Node Delete directive](content-services/directives/node-delete.directive.md) | Deletes multiple files and folders. | [Source](../lib/content-services/src/lib/directives/node-delete.directive.ts) | diff --git a/docs/content-services/directives/folder-edit.directive.md b/docs/content-services/directives/folder-edit.directive.md deleted file mode 100644 index e796a6a43d..0000000000 --- a/docs/content-services/directives/folder-edit.directive.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -Title: Folder Edit directive -Added: v2.0.0 -Status: Active -Last reviewed: 2019-01-16 ---- - -# [Folder Edit directive](../../../lib/content-services/src/lib/folder-directive/folder-edit.directive.ts "Defined in folder-edit.directive.ts") - -Allows folders to be edited. - -## Basic Usage - -```html -<adf-toolbar title="toolbar example"> - <button mat-icon-button - [adf-edit-folder]="documentList.selection[0]?.entry" - title="Title of the dialog" - (success)="doSomething($event)"> - <mat-icon>create</mat-icon> - </button> -</adf-toolbar> - -<adf-document-list #documentList ...> - ... -</adf-document-list> -``` - -## Class members - -### Properties - -| Name | Type | Default value | Description | -| ---- | ---- | ------------- | ----------- | -| folder | `Node` | | Folder node to edit. | -| title | `string` | null | Title of folder edit dialog. | - -### Events - -| Name | Type | Description | -| ---- | ---- | ----------- | -| error | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<any>` | Emitted when an error occurs (eg, a folder with same name already exists). | -| success | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<Node>` | Emitted when the folder has been edited successfully. | - -## Details - -Pass this directive a folder to edit its name and description using a [Folder Dialog component](../../../lib/content-services/dialogs/folder.dialog.ts). -If the data is valid then the dialog emits a `folderEdit` event when it closes. diff --git a/e2e/content-services/document-list/document-list-pagination.e2e.ts b/e2e/content-services/document-list/document-list-pagination.e2e.ts index bef68ea475..1660313fe8 100644 --- a/e2e/content-services/document-list/document-list-pagination.e2e.ts +++ b/e2e/content-services/document-list/document-list-pagination.e2e.ts @@ -269,10 +269,8 @@ describe('Document List - Pagination', () => { await expect(await paginationPage.getCurrentItemsPerPage()).toEqual('5'); await contentServicesPage.createAndOpenNewFolder(folderTwoModel.name); - await contentServicesPage.checkPaginationIsNotDisplayed(); await contentServicesPage.deleteSubFolderUnderRoot(newFolderModel.name, folderTwoModel.name); - }); it('[C260071] Should be able to change pagination when having 25 files', async () => { @@ -371,7 +369,6 @@ describe('Document List - Pagination', () => { await contentServicesPage.createNewFolder(folderTwoModel.name); const nodeIdSubFolderTwo = await contentServicesPage.getAttributeValueForElement(folderTwoModel.name, 'Node id'); await contentServicesPage.openFolder(folderTwoModel.name); - for (let i = 0; i < numberOfSubFolders; i++) { await uploadActions.createFolder('subfolder' + (i + 1), nodeIdSubFolderTwo); } diff --git a/lib/content-services/src/lib/content.module.ts b/lib/content-services/src/lib/content.module.ts index 4e9540f812..6431bb6b9b 100644 --- a/lib/content-services/src/lib/content.module.ts +++ b/lib/content-services/src/lib/content.module.ts @@ -33,7 +33,6 @@ import { ContentNodeSelectorModule } from './content-node-selector/content-node- import { ContentNodeShareModule } from './content-node-share/content-node-share.module'; import { ContentDirectiveModule } from './directives/content-directive.module'; import { DialogModule } from './dialogs/dialog.module'; -import { FolderDirectiveModule } from './folder-directive/folder-directive.module'; import { ContentMetadataModule } from './content-metadata/content-metadata.module'; import { PermissionManagerModule } from './permission-manager/permission-manager.module'; import { TreeViewModule } from './tree-view/tree-view.module'; @@ -70,7 +69,6 @@ import { ContentAuthLoaderService } from './auth-loader/content-auth-loader.serv ContentNodeSelectorModule, ContentNodeShareModule, ContentMetadataModule, - FolderDirectiveModule, ContentDirectiveModule, PermissionManagerModule, VersionManagerModule, @@ -98,7 +96,6 @@ import { ContentAuthLoaderService } from './auth-loader/content-auth-loader.serv ContentNodeShareModule, ContentMetadataModule, DialogModule, - FolderDirectiveModule, ContentDirectiveModule, PermissionManagerModule, VersionManagerModule, diff --git a/lib/content-services/src/lib/folder-directive/folder-edit.directive.spec.ts b/lib/content-services/src/lib/folder-directive/folder-edit.directive.spec.ts deleted file mode 100644 index 6b49f20e25..0000000000 --- a/lib/content-services/src/lib/folder-directive/folder-edit.directive.spec.ts +++ /dev/null @@ -1,110 +0,0 @@ -/*! - * @license - * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { Component } from '@angular/core'; -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { MatDialog } from '@angular/material/dialog'; -import { By } from '@angular/platform-browser'; -import { Subject, of } from 'rxjs'; -import { FolderEditDirective } from './folder-edit.directive'; -import { Node } from '@alfresco/js-api'; -import { ContentTestingModule } from '../testing/content.testing.module'; -import { ContentService } from '../common/services/content.service'; - -@Component({ - template: '<div [adf-edit-folder]="folder" (success)="success($event)" title="edit-title"></div>' -}) -class TestComponent { - folder = {}; - public successParameter: Node = null; - - success(node: Node) { - this.successParameter = node; - } -} - -describe('FolderEditDirective', () => { - let fixture: ComponentFixture<TestComponent>; - let element; - let dialog: MatDialog; - let contentService: ContentService; - let dialogRefMock; - - const event = { - type: 'click', - preventDefault: () => null - }; - - beforeEach(() => { - TestBed.configureTestingModule({ - imports: [ContentTestingModule], - declarations: [TestComponent] - }); - fixture = TestBed.createComponent(TestComponent); - element = fixture.debugElement.query(By.directive(FolderEditDirective)); - dialog = TestBed.inject(MatDialog); - contentService = TestBed.inject(ContentService); - - dialogRefMock = { - afterClosed: (val) => of(val), - componentInstance: { - error: new Subject<any>(), - success: new Subject<Node>() - } - }; - - spyOn(dialog, 'open').and.returnValue(dialogRefMock); - }); - - it('should not emit folderEdit event when input value is undefined', async () => { - spyOn(dialogRefMock, 'afterClosed').and.returnValue(of(null)); - spyOn(contentService.folderEdit, 'next'); - - fixture.detectChanges(); - await fixture.whenStable(); - - element.nativeElement.click(); - expect(contentService.folderEdit.next).not.toHaveBeenCalled(); - }); - - it('should emit success event with node if the folder creation was successful', async () => { - fixture.detectChanges(); - const testNode: any = {}; - - element.triggerEventHandler('click', event); - dialogRefMock.componentInstance.success.next(testNode); - - fixture.detectChanges(); - await fixture.whenStable(); - expect(fixture.componentInstance.successParameter).toBe(testNode); - }); - - it('should open the dialog with the proper title', async () => { - fixture.detectChanges(); - element.triggerEventHandler('click', event); - - await fixture.whenStable(); - - expect(dialog.open).toHaveBeenCalledWith(jasmine.any(Function), { - data: { - folder: jasmine.any(Object), - editTitle: 'edit-title' - }, - width: jasmine.any(String) - }); - }); -}); diff --git a/lib/content-services/src/lib/folder-directive/folder-edit.directive.ts b/lib/content-services/src/lib/folder-directive/folder-edit.directive.ts deleted file mode 100644 index 5f19d8f0cf..0000000000 --- a/lib/content-services/src/lib/folder-directive/folder-edit.directive.ts +++ /dev/null @@ -1,92 +0,0 @@ -/*! - * @license - * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* eslint-disable @angular-eslint/no-input-rename */ - -import { Directive, ElementRef, HostListener, Input, Output, EventEmitter } from '@angular/core'; -import { MatDialog } from '@angular/material/dialog'; -import { Node } from '@alfresco/js-api'; -import { FolderDialogComponent } from '../dialogs/folder.dialog'; -import { ContentService } from '../common/services/content.service'; - -const DIALOG_WIDTH: number = 400; - -@Directive({ - selector: '[adf-edit-folder]' -}) -export class FolderEditDirective { - /** Folder node to edit. */ - @Input('adf-edit-folder') - folder: Node; - - /** Emitted when an error occurs (eg, a folder with same name already exists). */ - @Output() - error = new EventEmitter<any>(); - - /** Title of folder edit dialog. */ - @Input() - title: string = null; - - /** Emitted when the folder has been edited successfully. */ - @Output() - success = new EventEmitter<Node>(); - - @HostListener('click', [ '$event' ]) - onClick(event) { - event.preventDefault(); - if (this.folder) { - this.openDialog(); - } - } - - constructor( - public dialogRef: MatDialog, - public elementRef: ElementRef, - public content: ContentService - ) {} - - private get dialogConfig() { - const { folder } = this; - - return { - data: { - folder, - editTitle: this.title - }, - width: `${DIALOG_WIDTH}px` - }; - } - - private openDialog(): void { - const { dialogRef, dialogConfig, content } = this; - const dialogInstance = dialogRef.open(FolderDialogComponent, dialogConfig); - - dialogInstance.componentInstance.error.subscribe((error) => { - this.error.emit(error); - }); - - dialogInstance.componentInstance.success.subscribe((node: Node) => { - this.success.emit(node); - }); - - dialogInstance.afterClosed().subscribe((node: Node) => { - if (node) { - content.folderEdit.next(node); - } - }); - } -} diff --git a/lib/content-services/src/lib/folder-directive/public-api.ts b/lib/content-services/src/lib/folder-directive/public-api.ts deleted file mode 100644 index f00ea95f1f..0000000000 --- a/lib/content-services/src/lib/folder-directive/public-api.ts +++ /dev/null @@ -1,21 +0,0 @@ -/*! - * @license - * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export * from './folder-create.directive'; -export * from './folder-edit.directive'; - -export * from './folder-directive.module'; diff --git a/lib/content-services/src/public-api.ts b/lib/content-services/src/public-api.ts index b9447dce14..4d9f241421 100644 --- a/lib/content-services/src/public-api.ts +++ b/lib/content-services/src/public-api.ts @@ -26,7 +26,6 @@ export * from './lib/breadcrumb/index'; export * from './lib/version-manager/index'; export * from './lib/content-node-selector/index'; export * from './lib/dialogs/index'; -export * from './lib/folder-directive/index'; export * from './lib/content-metadata/index'; export * from './lib/permission-manager/index'; export * from './lib/content-node-share/index';