mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ADF-1220] Extra data sources for Document List (#2224)
* initial trashcan support and demo page * use testbed for unit tests * support for restricting navigation for special data sources * shared links mode, thumbnail fixes * update unit tests * improve Trashcan/SharedLinks columns * Sites view for document list * Favorites support for DL, upgrade to latest js-api (alpha) * recent files support for document list * support default presets * readme updates and code fixes * code fixes * breadcrumb fixes - show custom root node for certain scenarios - fix css issues - fix crash related to missing "path" property for certain scenarios * toolbar style fixes - addresses the shrinking issues with components embedded into toolbar (i.e. breadcrumb) * i18n support for column presets * unit tests
This commit is contained in:
committed by
Eugenio Romano
parent
f19bd0ba93
commit
13360186f4
@@ -28,6 +28,26 @@
|
||||
<md-icon>more_vert</md-icon>
|
||||
</button>
|
||||
<md-menu #appMenu="mdMenu">
|
||||
<a md-menu-item href="" routerLink="/trashcan">
|
||||
<md-icon>extension</md-icon>
|
||||
<span>DL: Trashcan</span>
|
||||
</a>
|
||||
<a md-menu-item href="" routerLink="/shared-links">
|
||||
<md-icon>extension</md-icon>
|
||||
<span>DL: Shared Links</span>
|
||||
</a>
|
||||
<a md-menu-item href="" routerLink="/sites">
|
||||
<md-icon>extension</md-icon>
|
||||
<span>DL: Sites</span>
|
||||
</a>
|
||||
<a md-menu-item href="" routerLink="/favorites">
|
||||
<md-icon>extension</md-icon>
|
||||
<span>DL: Favorites</span>
|
||||
</a>
|
||||
<a md-menu-item href="" routerLink="/recent">
|
||||
<md-icon>extension</md-icon>
|
||||
<span>DL: Recent</span>
|
||||
</a>
|
||||
<a md-menu-item href="" routerLink="/datatable">
|
||||
<md-icon>view_module</md-icon>
|
||||
<span>DataTable</span>
|
||||
|
@@ -43,6 +43,11 @@ import { CustomEditorsModule } from './components/activiti/custom-editor/custom-
|
||||
import { MaterialModule } from './material.module';
|
||||
import { DebugAppConfigService } from './services/debug-app-config.service';
|
||||
|
||||
import { FavoritesComponent } from './components/files/favorites.component';
|
||||
import { RecentComponent } from './components/files/recent.component';
|
||||
import { SharedLinksComponent } from './components/files/shared-links.component';
|
||||
import { SitesComponent } from './components/files/sites.component';
|
||||
import { TrashcanComponent } from './components/files/trashcan.component';
|
||||
import { FormListDemoComponent } from './components/form/form-list-demo.component';
|
||||
|
||||
import {
|
||||
@@ -120,7 +125,12 @@ if (process.env.ENV === 'production') {
|
||||
FormNodeViewerComponent,
|
||||
SettingsComponent,
|
||||
FormDemoComponent,
|
||||
FormListDemoComponent
|
||||
FormListDemoComponent,
|
||||
TrashcanComponent,
|
||||
SharedLinksComponent,
|
||||
SitesComponent,
|
||||
FavoritesComponent,
|
||||
RecentComponent
|
||||
],
|
||||
providers: [
|
||||
{ provide: AppConfigService, useClass: DebugAppConfigService },
|
||||
|
@@ -39,6 +39,11 @@ import {
|
||||
} from './components/index';
|
||||
|
||||
import { UploadButtonComponent } from 'ng2-alfresco-upload';
|
||||
import { FavoritesComponent } from './components/files/favorites.component';
|
||||
import { RecentComponent } from './components/files/recent.component';
|
||||
import { SharedLinksComponent } from './components/files/shared-links.component';
|
||||
import { SitesComponent } from './components/files/sites.component';
|
||||
import { TrashcanComponent } from './components/files/trashcan.component';
|
||||
import { FormListDemoComponent } from './components/form/form-list-demo.component';
|
||||
|
||||
export const appRoutes: Routes = [
|
||||
@@ -63,6 +68,31 @@ export const appRoutes: Routes = [
|
||||
component: FilesComponent,
|
||||
canActivate: [AuthGuardEcm]
|
||||
},
|
||||
{
|
||||
path: 'trashcan',
|
||||
component: TrashcanComponent,
|
||||
canActivate: [AuthGuardEcm]
|
||||
},
|
||||
{
|
||||
path: 'shared-links',
|
||||
component: SharedLinksComponent,
|
||||
canActivate: [AuthGuardEcm]
|
||||
},
|
||||
{
|
||||
path: 'sites',
|
||||
component: SitesComponent,
|
||||
canActivate: [AuthGuardEcm]
|
||||
},
|
||||
{
|
||||
path: 'favorites',
|
||||
component: FavoritesComponent,
|
||||
canActivate: [AuthGuardEcm]
|
||||
},
|
||||
{
|
||||
path: 'recent',
|
||||
component: RecentComponent,
|
||||
canActivate: [AuthGuardEcm]
|
||||
},
|
||||
{
|
||||
path: 'datatable',
|
||||
component: DataTableDemoComponent,
|
||||
|
@@ -0,0 +1,4 @@
|
||||
<adf-document-list
|
||||
currentFolderId="-favorites-"
|
||||
locationFormat="/files">
|
||||
</adf-document-list>
|
25
demo-shell-ng2/app/components/files/favorites.component.ts
Normal file
25
demo-shell-ng2/app/components/files/favorites.component.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2016 Alfresco Software, Ltd.
|
||||
*
|
||||
* 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';
|
||||
|
||||
@Component({
|
||||
selector: 'adf-favorites-demo',
|
||||
templateUrl: 'favorites.component.html'
|
||||
})
|
||||
export class FavoritesComponent {
|
||||
}
|
@@ -0,0 +1,4 @@
|
||||
<adf-document-list
|
||||
currentFolderId="-recent-"
|
||||
locationFormat="/files">
|
||||
</adf-document-list>
|
25
demo-shell-ng2/app/components/files/recent.component.ts
Normal file
25
demo-shell-ng2/app/components/files/recent.component.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2016 Alfresco Software, Ltd.
|
||||
*
|
||||
* 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';
|
||||
|
||||
@Component({
|
||||
selector: 'adf-recent-demo',
|
||||
templateUrl: 'recent.component.html'
|
||||
})
|
||||
export class RecentComponent {
|
||||
}
|
@@ -0,0 +1,4 @@
|
||||
<adf-document-list
|
||||
currentFolderId="-sharedlinks-"
|
||||
locationFormat="/files">
|
||||
</adf-document-list>
|
@@ -0,0 +1,25 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2016 Alfresco Software, Ltd.
|
||||
*
|
||||
* 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';
|
||||
|
||||
@Component({
|
||||
selector: 'adf-shared-links-demo',
|
||||
templateUrl: 'shared-links.component.html'
|
||||
})
|
||||
export class SharedLinksComponent {
|
||||
}
|
3
demo-shell-ng2/app/components/files/sites.component.html
Normal file
3
demo-shell-ng2/app/components/files/sites.component.html
Normal file
@@ -0,0 +1,3 @@
|
||||
<adf-document-list
|
||||
currentFolderId="-sites-">
|
||||
</adf-document-list>
|
25
demo-shell-ng2/app/components/files/sites.component.ts
Normal file
25
demo-shell-ng2/app/components/files/sites.component.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2016 Alfresco Software, Ltd.
|
||||
*
|
||||
* 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';
|
||||
|
||||
@Component({
|
||||
selector: 'adf-sites-demo',
|
||||
templateUrl: 'sites.component.html'
|
||||
})
|
||||
export class SitesComponent {
|
||||
}
|
@@ -0,0 +1,4 @@
|
||||
<adf-document-list
|
||||
currentFolderId="-trashcan-"
|
||||
locationFormat="/files">
|
||||
</adf-document-list>
|
25
demo-shell-ng2/app/components/files/trashcan.component.ts
Normal file
25
demo-shell-ng2/app/components/files/trashcan.component.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2016 Alfresco Software, Ltd.
|
||||
*
|
||||
* 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';
|
||||
|
||||
@Component({
|
||||
selector: 'adf-trashcan-demo',
|
||||
templateUrl: 'trashcan.component.html'
|
||||
})
|
||||
export class TrashcanComponent {
|
||||
}
|
4541
demo-shell-ng2/package-lock.json
generated
4541
demo-shell-ng2/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -68,7 +68,7 @@
|
||||
"@angular/platform-browser-dynamic": "4.2.5",
|
||||
"@angular/router": "4.2.5",
|
||||
"@ngx-translate/core": "7.0.0",
|
||||
"alfresco-js-api": "1.7.0",
|
||||
"alfresco-js-api": "1.8.0-9feb5d0164d6c5f994df8758e41ed126a8f69db2",
|
||||
"chart.js": "2.5.0",
|
||||
"core-js": "2.4.1",
|
||||
"dialog-polyfill": "0.4.7",
|
||||
|
@@ -17,5 +17,6 @@ $adf-toolbar-font-size: 14px;
|
||||
.mat-toolbar-row {
|
||||
height: $adf-toolbar-height;
|
||||
font-size: $adf-toolbar-font-size;
|
||||
white-space: normal;
|
||||
}
|
||||
}
|
||||
|
@@ -198,6 +198,7 @@ export class ObjectDataColumn implements DataColumn {
|
||||
|
||||
key: string;
|
||||
type: string; // text|image
|
||||
format: string;
|
||||
sortable: boolean;
|
||||
title: string;
|
||||
srTitle: string;
|
||||
@@ -207,6 +208,7 @@ export class ObjectDataColumn implements DataColumn {
|
||||
constructor(obj: any) {
|
||||
this.key = obj.key;
|
||||
this.type = obj.type || 'text';
|
||||
this.format = obj.format;
|
||||
this.sortable = obj.sortable;
|
||||
this.title = obj.title;
|
||||
this.srTitle = obj.srTitle;
|
||||
|
@@ -93,7 +93,7 @@ The properties currentFolderId, folderNode and node are the entry initialization
|
||||
| selection | Array<MinimalNodeEntity> | [] | Contains selected nodes |
|
||||
| rowStyle | string | | The inline style to apply to every row, see [NgStyle](https://angular.io/docs/ts/latest/api/common/index/NgStyle-directive.html) docs for more details and usage examples |
|
||||
| rowStyleClass | string | | The CSS class to apply to every row |
|
||||
| currentFolderId | string | null | Initial node ID of displayed folder. Can be `-root-`, `-shared-`, `-my-`, or a fixed node ID |
|
||||
| currentFolderId | string | null | The ID of the folder node to display or a reserved string alias for special sources (see **Data Sources**) |
|
||||
| folderNode | [MinimalNodeEntryEntity](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodeMinimalEntry.md) | null | Currently displayed folder node |
|
||||
| permissionsStyle | [PermissionStyleModel[]](https://github.com/Alfresco/alfresco-ng2-components/blob/master/ng2-components/ng2-alfresco-documentlist/src/models/permissions-style.model.ts) | null | with this array you can define different styles depending on the permission of the user on that node. The PermissionStyleModel allows you to select also if you want to apply the style only on the file or folder nodes. PermissionStyleModel.permission accepts the following values [Permissions](https://github.com/Alfresco/alfresco-ng2-components/blob/master/ng2-components/ng2-alfresco-core/src/models/permissions.enum.ts) [see more](#custom-row-permissions-style). |
|
||||
| node | [NodePaging](https://github.com/Alfresco/alfresco-js-api/blob/master/src/alfresco-core-rest-api/docs/NodePaging.md) | null | Document list will show all the nodes contained in the NodePaging entity |
|
||||
@@ -110,6 +110,7 @@ The properties currentFolderId, folderNode and node are the entry initialization
|
||||
| imageResolver | `ImageResolver` | | Custom image resolver, [see more](#custom-image-resolver). |
|
||||
| allowDropFiles | boolean | false | Toggle file drop support for rows (see **ng2-alfresco-core/UploadDirective** for more details) |
|
||||
| sorting | string[] | | Defines default sorting. The format is an array of 2 strings `[key, direction]` i.e. `['name', 'desc']` or `['name', 'asc']`. Set this value only if you want to override default sorting detected by the component based on columns. |
|
||||
| locationFormat | string | '/' | The default route for all the location-based columns (if declared). |
|
||||
|
||||
### Events
|
||||
|
||||
@@ -164,6 +165,135 @@ Here's a basic example on handling DOM events in the parent elements:
|
||||
</div>
|
||||
```
|
||||
|
||||
### Data Sources
|
||||
|
||||
For the Document List data sources you can use one of the following options:
|
||||
|
||||
#### Node ID
|
||||
|
||||
The unique identifier of the Node. Gets automatically updated when you perform navigation to other folders.
|
||||
|
||||
#### Repository aliases
|
||||
|
||||
You can use one of the well-known reserved aliases:
|
||||
|
||||
- `-root-`
|
||||
- `-shared-`
|
||||
- `-my-`
|
||||
|
||||
#### DocumentList aliases
|
||||
|
||||
The DocumentList component also provides support for the following reserved aliases you can use:
|
||||
|
||||
- `-trashcan-`,
|
||||
- `-sharedlinks-`
|
||||
- `-sites-`
|
||||
- `-favorites-`
|
||||
- `-recent-`
|
||||
|
||||
Note that due to specific origin of the data the sources above do not support navigation.
|
||||
You may want handling single and double clicks yourself to perform navigation to other sources.
|
||||
|
||||
DocumentList component supports default presets for all the custom sources mentioned earlier.
|
||||
If you don't provide any custom column definition utilizing "data-columns" component,
|
||||
then a default preset will be automatically used at runtime.
|
||||
|
||||
Some of the presets use the Location columns that allow you to navigate to the parent folder of the node,
|
||||
for instance navigating from the "Favorite" node to the folder containing it.
|
||||
There's a possibility to set the default location format using "locationFormat" property, to avoid re-defining entire columns layout.
|
||||
|
||||
The default column layout for non-reserved views is:
|
||||
|
||||
- Icon
|
||||
- Name
|
||||
- Size
|
||||
- Modified (date)
|
||||
- Modified by
|
||||
|
||||
### Trashcan
|
||||
|
||||
```html
|
||||
<adf-document-list
|
||||
currentFolderId="-trashcan-"
|
||||
locationFormat="/files">
|
||||
</adf-document-list>
|
||||
```
|
||||
|
||||
Default layout:
|
||||
|
||||
- Icon
|
||||
- Name
|
||||
- Location
|
||||
- Size
|
||||
- Deleted
|
||||
- Deleted by
|
||||
|
||||
### Shared Links
|
||||
|
||||
```html
|
||||
<adf-document-list
|
||||
currentFolderId="-sharedlinks-"
|
||||
locationFormat="/files">
|
||||
</adf-document-list>
|
||||
```
|
||||
|
||||
Default layout:
|
||||
|
||||
- Icon
|
||||
- Name
|
||||
- Location
|
||||
- Size
|
||||
- Modified
|
||||
- Modified by
|
||||
- Shared by
|
||||
|
||||
### Sites
|
||||
|
||||
```html
|
||||
<adf-document-list
|
||||
currentFolderId="-sites-">
|
||||
</adf-document-list>
|
||||
```
|
||||
|
||||
Default layout:
|
||||
|
||||
- Icon
|
||||
- Title
|
||||
- Status
|
||||
|
||||
### Favorites
|
||||
|
||||
```html
|
||||
<adf-document-list
|
||||
currentFolderId="-favorites-"
|
||||
locationFormat="/files">
|
||||
</adf-document-list>
|
||||
```
|
||||
|
||||
Default layout:
|
||||
|
||||
- Icon
|
||||
- Name
|
||||
- Location
|
||||
- Size
|
||||
- Modified
|
||||
- Modified by
|
||||
|
||||
### Recent Files
|
||||
|
||||
```html
|
||||
<adf-document-list
|
||||
currentFolderId="-recent-"
|
||||
locationFormat="/files">
|
||||
</adf-document-list>
|
||||
```
|
||||
|
||||
Default layout:
|
||||
|
||||
- Icon
|
||||
- Name
|
||||
- Location
|
||||
|
||||
### Setting default folder
|
||||
|
||||
You can set current folder path by assigning a value for `currentFolderId` property.
|
||||
|
@@ -1,14 +1,18 @@
|
||||
<div *ngIf="folderNode" data-automation-id="breadcrumb" class="adf-breadcrumb-container">
|
||||
<li *ngFor="let item of route; let last = last" [class.active]="last" [ngSwitch]="last" title="{{ item.name }}" class="adf-breadcrumb-item">
|
||||
<li *ngFor="let item of route; let last = last"
|
||||
[class.active]="last"
|
||||
[ngSwitch]="last"
|
||||
title="{{ item.name }}"
|
||||
class="adf-breadcrumb-item">
|
||||
|
||||
<a *ngSwitchDefault href="#" [attr.data-automation-id]="'breadcrumb_' + item.name"
|
||||
class="adf-breadcrumb-item-anchor"
|
||||
(click)="onRoutePathClick(item, $event)">
|
||||
{{item.name}}
|
||||
{{ item.name }}
|
||||
</a>
|
||||
|
||||
<div *ngSwitchCase="true" class="adf-breadcrumb-item-current">
|
||||
{{item.name}}
|
||||
{{ item.name }}
|
||||
</div>
|
||||
|
||||
<i class="material-icons adf-breadcrumb-item-chevron" *ngIf="!last">
|
||||
@@ -16,3 +20,10 @@
|
||||
</i>
|
||||
</li>
|
||||
</div>
|
||||
<div *ngIf="!folderNode && root">
|
||||
<li class="adf-breadcrumb-item">
|
||||
<div class="adf-breadcrumb-item-current">
|
||||
{{ root }}
|
||||
</div>
|
||||
</li>
|
||||
</div>
|
||||
|
@@ -3,8 +3,13 @@
|
||||
$breadcrumb-chevron-spacer: 2px;
|
||||
|
||||
.adf-breadcrumb {
|
||||
font-family: Muli, Roboto, "Helvetica Neue", sans-serif;
|
||||
display: flex;
|
||||
flex: 1;
|
||||
line-height: 24px;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
letter-spacing: -0.2px;
|
||||
|
||||
&-container {
|
||||
margin: 0;
|
||||
@@ -13,19 +18,12 @@ $breadcrumb-chevron-spacer: 2px;
|
||||
cursor: default;
|
||||
display: flex;
|
||||
overflow: hidden;
|
||||
height: 25px;
|
||||
}
|
||||
|
||||
&-item {
|
||||
padding-right: $breadcrumb-chevron-spacer;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
line-height: 24px;
|
||||
|
||||
font-family: Muli, Roboto, "Helvetica Neue", sans-serif;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
letter-spacing: -0.2px;
|
||||
text-align: left;
|
||||
opacity: 0.6;
|
||||
|
||||
@@ -34,6 +32,10 @@ $breadcrumb-chevron-spacer: 2px;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
&.active {
|
||||
flex: 1 0 auto;
|
||||
}
|
||||
|
||||
&-chevron {
|
||||
opacity: 1;
|
||||
}
|
||||
|
@@ -15,11 +15,14 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { SimpleChange } from '@angular/core';
|
||||
import { CUSTOM_ELEMENTS_SCHEMA, SimpleChange } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { PathElementEntity } from 'alfresco-js-api';
|
||||
import { CoreModule } from 'ng2-alfresco-core';
|
||||
import { DataTableModule } from 'ng2-alfresco-datatable';
|
||||
import { fakeNodeWithCreatePermission } from '../../assets/document-list.component.mock';
|
||||
import { MaterialModule } from '../../material.module';
|
||||
import { DocumentListService } from '../../services/document-list.service';
|
||||
import { DocumentListComponent } from '../document-list.component';
|
||||
import { BreadcrumbComponent } from './breadcrumb.component';
|
||||
|
||||
@@ -30,14 +33,24 @@ describe('Breadcrumb', () => {
|
||||
let component: BreadcrumbComponent;
|
||||
let fixture: ComponentFixture<BreadcrumbComponent>;
|
||||
let element: HTMLElement;
|
||||
let documentList: DocumentListComponent;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [
|
||||
CoreModule.forRoot()
|
||||
CoreModule,
|
||||
DataTableModule,
|
||||
MaterialModule
|
||||
],
|
||||
declarations: [
|
||||
DocumentListComponent,
|
||||
BreadcrumbComponent
|
||||
],
|
||||
providers: [
|
||||
DocumentListService
|
||||
],
|
||||
schemas: [
|
||||
CUSTOM_ELEMENTS_SCHEMA
|
||||
]
|
||||
}).compileComponents();
|
||||
}));
|
||||
@@ -47,6 +60,8 @@ describe('Breadcrumb', () => {
|
||||
|
||||
element = fixture.nativeElement;
|
||||
component = fixture.componentInstance;
|
||||
|
||||
documentList = TestBed.createComponent(DocumentListComponent).componentInstance;
|
||||
});
|
||||
|
||||
it('should prevent default click behavior', () => {
|
||||
@@ -75,7 +90,6 @@ describe('Breadcrumb', () => {
|
||||
});
|
||||
|
||||
it('should update document list on click', (done) => {
|
||||
let documentList = new DocumentListComponent(null, null, null);
|
||||
spyOn(documentList, 'loadFolderByNodeId').and.stub();
|
||||
|
||||
let node = <PathElementEntity> {id: '-id-', name: 'name'};
|
||||
|
@@ -47,10 +47,10 @@ export class BreadcrumbComponent implements OnChanges {
|
||||
ngOnChanges(changes: SimpleChanges): void {
|
||||
if (changes.folderNode) {
|
||||
|
||||
let node: MinimalNodeEntryEntity = changes.folderNode.currentValue;
|
||||
const node: MinimalNodeEntryEntity = changes.folderNode.currentValue;
|
||||
|
||||
if (node) {
|
||||
let route = <PathElementEntity[]> (node.path.elements || []).slice();
|
||||
if (node && node.path) {
|
||||
const route = <PathElementEntity[]> (node.path.elements || []).slice();
|
||||
|
||||
route.push(<PathElementEntity> {
|
||||
id: node.id,
|
||||
|
@@ -32,12 +32,14 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { SimpleChange } from '@angular/core';
|
||||
import { CUSTOM_ELEMENTS_SCHEMA, SimpleChange } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { MdOptionModule, MdSelectModule } from '@angular/material';
|
||||
import { By } from '@angular/platform-browser';
|
||||
import { CoreModule } from 'ng2-alfresco-core';
|
||||
import { DataTableModule } from 'ng2-alfresco-datatable';
|
||||
import { fakeNodeWithCreatePermission } from '../../assets/document-list.component.mock';
|
||||
import { MaterialModule } from '../../material.module';
|
||||
import { DocumentListService } from '../../services/document-list.service';
|
||||
import { DocumentListComponent } from '../document-list.component';
|
||||
import { DropdownBreadcrumbComponent } from './dropdown-breadcrumb.component';
|
||||
|
||||
@@ -46,16 +48,24 @@ describe('DropdownBreadcrumb', () => {
|
||||
let component: DropdownBreadcrumbComponent;
|
||||
let fixture: ComponentFixture<DropdownBreadcrumbComponent>;
|
||||
let element: HTMLElement;
|
||||
let documentList: DocumentListComponent;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [
|
||||
CoreModule.forRoot(),
|
||||
MdSelectModule,
|
||||
MdOptionModule
|
||||
CoreModule,
|
||||
DataTableModule,
|
||||
MaterialModule
|
||||
],
|
||||
declarations: [
|
||||
DocumentListComponent,
|
||||
DropdownBreadcrumbComponent
|
||||
],
|
||||
providers: [
|
||||
DocumentListService
|
||||
],
|
||||
schemas: [
|
||||
CUSTOM_ELEMENTS_SCHEMA
|
||||
]
|
||||
}).compileComponents();
|
||||
}));
|
||||
@@ -64,6 +74,8 @@ describe('DropdownBreadcrumb', () => {
|
||||
fixture = TestBed.createComponent(DropdownBreadcrumbComponent);
|
||||
element = fixture.nativeElement;
|
||||
component = fixture.componentInstance;
|
||||
|
||||
documentList = TestBed.createComponent(DocumentListComponent).componentInstance;
|
||||
});
|
||||
|
||||
function openSelect() {
|
||||
@@ -144,7 +156,6 @@ describe('DropdownBreadcrumb', () => {
|
||||
});
|
||||
|
||||
it('should update document list when clicking on an option', () => {
|
||||
let documentList = new DocumentListComponent(null, null, null);
|
||||
spyOn(documentList, 'loadFolderByNodeId').and.stub();
|
||||
component.target = documentList;
|
||||
fakeNodeWithCreatePermission.path.elements = [{ id: '1', name: 'Stark Industries' }];
|
||||
|
@@ -15,7 +15,12 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { DocumentListServiceMock } from './../../assets/document-list.service.mock';
|
||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||
import { async, TestBed } from '@angular/core/testing';
|
||||
import { CoreModule } from 'ng2-alfresco-core';
|
||||
import { DataTableModule } from 'ng2-alfresco-datatable';
|
||||
import { MaterialModule } from '../../material.module';
|
||||
import { DocumentListService } from '../../services/document-list.service';
|
||||
import { ContentActionModel } from './../../models/content-action.model';
|
||||
import { DocumentListComponent } from './../document-list.component';
|
||||
import { ContentActionListComponent } from './content-action-list.component';
|
||||
@@ -25,9 +30,27 @@ describe('ContentColumnList', () => {
|
||||
let documentList: DocumentListComponent;
|
||||
let actionList: ContentActionListComponent;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [
|
||||
CoreModule,
|
||||
DataTableModule,
|
||||
MaterialModule
|
||||
],
|
||||
declarations: [
|
||||
DocumentListComponent
|
||||
],
|
||||
providers: [
|
||||
DocumentListService
|
||||
],
|
||||
schemas: [
|
||||
CUSTOM_ELEMENTS_SCHEMA
|
||||
]
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
let documentListService = new DocumentListServiceMock();
|
||||
documentList = new DocumentListComponent(documentListService, null, null);
|
||||
documentList = TestBed.createComponent(DocumentListComponent).componentInstance;
|
||||
actionList = new ContentActionListComponent(documentList);
|
||||
});
|
||||
|
||||
|
@@ -15,11 +15,15 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||
import { EventEmitter } from '@angular/core';
|
||||
import { async, TestBed } from '@angular/core/testing';
|
||||
import { AlfrescoContentService, AlfrescoTranslationService, CoreModule, NotificationService } from 'ng2-alfresco-core';
|
||||
import { DataTableModule } from 'ng2-alfresco-datatable';
|
||||
import { MaterialModule } from '../../material.module';
|
||||
|
||||
import { DocumentListService } from '../../services/document-list.service';
|
||||
import { FileNode } from './../../assets/document-library.model.mock';
|
||||
import { DocumentListServiceMock } from './../../assets/document-list.service.mock';
|
||||
import { ContentActionHandler } from './../../models/content-action.model';
|
||||
import { DocumentActionsService } from './../../services/document-actions.service';
|
||||
import { FolderActionsService } from './../../services/folder-actions.service';
|
||||
@@ -43,10 +47,18 @@ describe('ContentAction', () => {
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [
|
||||
CoreModule.forRoot()
|
||||
CoreModule,
|
||||
DataTableModule,
|
||||
MaterialModule
|
||||
],
|
||||
providers: [
|
||||
AlfrescoContentService
|
||||
DocumentListService
|
||||
],
|
||||
declarations: [
|
||||
DocumentListComponent
|
||||
],
|
||||
schemas: [
|
||||
CUSTOM_ELEMENTS_SCHEMA
|
||||
]
|
||||
}).compileComponents();
|
||||
}));
|
||||
@@ -56,11 +68,10 @@ describe('ContentAction', () => {
|
||||
translateService = <AlfrescoTranslationService> { addTranslationFolder: () => {}};
|
||||
nodeActionsService = new NodeActionsService(null, null, null);
|
||||
notificationService = new NotificationService(null);
|
||||
let documentServiceMock = new DocumentListServiceMock();
|
||||
documentActions = new DocumentActionsService(nodeActionsService);
|
||||
folderActions = new FolderActionsService(nodeActionsService, null, contentService);
|
||||
|
||||
documentList = new DocumentListComponent(documentServiceMock, null, null);
|
||||
documentList = TestBed.createComponent(DocumentListComponent).componentInstance;
|
||||
actionList = new ContentActionListComponent(documentList);
|
||||
});
|
||||
|
||||
|
@@ -15,9 +15,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { DataColumn } from 'ng2-alfresco-datatable';
|
||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||
import { async, TestBed } from '@angular/core/testing';
|
||||
import { CoreModule } from 'ng2-alfresco-core';
|
||||
import { DataColumn, DataTableModule } from 'ng2-alfresco-datatable';
|
||||
import { MaterialModule } from '../../material.module';
|
||||
|
||||
import { DocumentListServiceMock } from './../../assets/document-list.service.mock';
|
||||
import { DocumentListService } from '../../services/document-list.service';
|
||||
import { DocumentListComponent } from './../document-list.component';
|
||||
import { ContentColumnListComponent } from './content-column-list.component';
|
||||
|
||||
@@ -26,9 +30,27 @@ describe('ContentColumnList', () => {
|
||||
let documentList: DocumentListComponent;
|
||||
let columnList: ContentColumnListComponent;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [
|
||||
CoreModule,
|
||||
DataTableModule,
|
||||
MaterialModule
|
||||
],
|
||||
declarations: [
|
||||
DocumentListComponent
|
||||
],
|
||||
providers: [
|
||||
DocumentListService
|
||||
],
|
||||
schemas: [
|
||||
CUSTOM_ELEMENTS_SCHEMA
|
||||
]
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
let service = new DocumentListServiceMock();
|
||||
documentList = new DocumentListComponent(service, null, null);
|
||||
documentList = TestBed.createComponent(DocumentListComponent).componentInstance;
|
||||
columnList = new ContentColumnListComponent(documentList);
|
||||
|
||||
documentList.ngOnInit();
|
||||
|
@@ -15,7 +15,12 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { DocumentListServiceMock } from './../../assets/document-list.service.mock';
|
||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||
import { async, TestBed } from '@angular/core/testing';
|
||||
import { CoreModule } from 'ng2-alfresco-core';
|
||||
import { DataTableModule } from 'ng2-alfresco-datatable';
|
||||
import { MaterialModule } from '../../material.module';
|
||||
import { DocumentListService } from '../../services/document-list.service';
|
||||
import { DocumentListComponent } from './../document-list.component';
|
||||
import { ContentColumnListComponent } from './content-column-list.component';
|
||||
import { ContentColumnComponent } from './content-column.component';
|
||||
@@ -25,9 +30,27 @@ describe('ContentColumn', () => {
|
||||
let documentList: DocumentListComponent;
|
||||
let columnList: ContentColumnListComponent;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [
|
||||
CoreModule,
|
||||
DataTableModule,
|
||||
MaterialModule
|
||||
],
|
||||
declarations: [
|
||||
DocumentListComponent
|
||||
],
|
||||
providers: [
|
||||
DocumentListService
|
||||
],
|
||||
schemas: [
|
||||
CUSTOM_ELEMENTS_SCHEMA
|
||||
]
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
let service = new DocumentListServiceMock();
|
||||
documentList = new DocumentListComponent(service, null, null);
|
||||
documentList = TestBed.createComponent(DocumentListComponent).componentInstance;
|
||||
columnList = new ContentColumnListComponent(documentList);
|
||||
|
||||
documentList.ngOnInit();
|
||||
|
@@ -17,7 +17,7 @@
|
||||
|
||||
import { CUSTOM_ELEMENTS_SCHEMA, NgZone, SimpleChange, TemplateRef } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { AlfrescoTranslationService, CoreModule } from 'ng2-alfresco-core';
|
||||
import { AlfrescoApiService, AlfrescoTranslationService, CoreModule } from 'ng2-alfresco-core';
|
||||
import { DataColumn, DataTableComponent } from 'ng2-alfresco-datatable';
|
||||
import { DataTableModule } from 'ng2-alfresco-datatable';
|
||||
import { Observable, Subject } from 'rxjs/Rx';
|
||||
@@ -41,10 +41,10 @@ describe('DocumentList', () => {
|
||||
|
||||
let documentList: DocumentListComponent;
|
||||
let documentListService: DocumentListService;
|
||||
let apiService: AlfrescoApiService;
|
||||
let fixture: ComponentFixture<DocumentListComponent>;
|
||||
let element: HTMLElement;
|
||||
let eventMock: any;
|
||||
let componentHandler;
|
||||
|
||||
beforeEach(async(() => {
|
||||
let zone = new NgZone({enableLongStackTrace: false});
|
||||
@@ -73,15 +73,10 @@ describe('DocumentList', () => {
|
||||
}
|
||||
};
|
||||
|
||||
componentHandler = jasmine.createSpyObj('componentHandler', [
|
||||
'upgradeAllRegistered', 'upgradeElement'
|
||||
]);
|
||||
window['componentHandler'] = componentHandler;
|
||||
|
||||
fixture = TestBed.createComponent(DocumentListComponent);
|
||||
|
||||
let translateService = TestBed.get(AlfrescoTranslationService);
|
||||
spyOn(translateService, 'addTranslationFolder').and.stub();
|
||||
// spyOn(translateService, 'addTranslationFolder').and.stub();
|
||||
spyOn(translateService, 'get').and.callFake((key) => {
|
||||
return Observable.of(key);
|
||||
});
|
||||
@@ -89,6 +84,7 @@ describe('DocumentList', () => {
|
||||
element = fixture.nativeElement;
|
||||
documentList = fixture.componentInstance;
|
||||
documentListService = TestBed.get(DocumentListService);
|
||||
apiService = TestBed.get(AlfrescoApiService);
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
@@ -120,8 +116,8 @@ describe('DocumentList', () => {
|
||||
columns.push(column);
|
||||
|
||||
documentList.ngAfterContentInit();
|
||||
expect(columns.length).toBe(3);
|
||||
expect(columns[2]).toBe(column);
|
||||
expect(columns.length).toBe(6);
|
||||
expect(columns[5]).toBe(column);
|
||||
});
|
||||
|
||||
it('should call action\'s handler with node', () => {
|
||||
@@ -873,4 +869,67 @@ describe('DocumentList', () => {
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should not perform navigation for virtual sources', () => {
|
||||
const sources = ['-trashcan-', '-sharedlinks-', '-sites-', '-favorites-', '-recent-'];
|
||||
const node = new FolderNode('folder');
|
||||
|
||||
documentList.currentFolderId = 'node-id';
|
||||
expect(documentList.canNavigateFolder(node)).toBeTruthy();
|
||||
|
||||
sources.forEach(source => {
|
||||
documentList.currentFolderId = source;
|
||||
expect(documentList.canNavigateFolder(node)).toBeFalsy();
|
||||
});
|
||||
});
|
||||
|
||||
it('should fetch trashcan', () => {
|
||||
const nodesApi = apiService.getInstance().core.nodesApi;
|
||||
spyOn(nodesApi, 'getDeletedNodes').and.returnValue(Promise.resolve(null));
|
||||
|
||||
documentList.loadFolderByNodeId('-trashcan-');
|
||||
expect(nodesApi.getDeletedNodes).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should fetch shared links', () => {
|
||||
const sharedlinksApi = apiService.getInstance().core.sharedlinksApi;
|
||||
spyOn(sharedlinksApi, 'findSharedLinks').and.returnValue(Promise.resolve(null));
|
||||
|
||||
documentList.loadFolderByNodeId('-sharedlinks-');
|
||||
expect(sharedlinksApi.findSharedLinks).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should fetch sites', () => {
|
||||
const sitesApi = apiService.getInstance().core.sitesApi;
|
||||
spyOn(sitesApi, 'getSites').and.returnValue(Promise.resolve(null));
|
||||
|
||||
documentList.loadFolderByNodeId('-sites-');
|
||||
expect(sitesApi.getSites).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should fetch favorites', () => {
|
||||
const favoritesApi = apiService.getInstance().core.favoritesApi;
|
||||
spyOn(favoritesApi, 'getFavorites').and.returnValue(Promise.resolve(null));
|
||||
|
||||
documentList.loadFolderByNodeId('-favorites-');
|
||||
expect(favoritesApi.getFavorites).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should fetch recent', (done) => {
|
||||
|
||||
const person = { entry: { id: 'person '} };
|
||||
const peopleApi = apiService.getInstance().core.peopleApi;
|
||||
const searchApi = apiService.getInstance().search.searchApi;
|
||||
|
||||
spyOn(peopleApi, 'getPerson').and.returnValue(Promise.resolve(person));
|
||||
spyOn(searchApi, 'search').and.returnValue(Promise.resolve(null));
|
||||
|
||||
documentList.loadFolderByNodeId('-recent-');
|
||||
|
||||
setTimeout(function() {
|
||||
expect(peopleApi.getPerson).toHaveBeenCalledWith('-me-');
|
||||
expect(searchApi.search).toHaveBeenCalled();
|
||||
done();
|
||||
}, 100);
|
||||
});
|
||||
});
|
||||
|
@@ -19,8 +19,8 @@ import {
|
||||
AfterContentInit, Component, ContentChild, ElementRef, EventEmitter, HostListener, Input, NgZone,
|
||||
OnChanges, OnInit, Output, SimpleChanges, TemplateRef, ViewChild
|
||||
} from '@angular/core';
|
||||
import { MinimalNodeEntity, MinimalNodeEntryEntity, NodePaging, Pagination } from 'alfresco-js-api';
|
||||
import { DataColumnListComponent } from 'ng2-alfresco-core';
|
||||
import { MinimalNodeEntity, MinimalNodeEntryEntity, NodePaging, Pagination, PersonEntry } from 'alfresco-js-api';
|
||||
import { AlfrescoApiService, DataColumnListComponent } from 'ng2-alfresco-core';
|
||||
import { DataCellEvent, DataColumn, DataRowActionEvent, DataSorting, DataTableComponent, ObjectDataColumn } from 'ng2-alfresco-datatable';
|
||||
import { Observable, Subject } from 'rxjs/Rx';
|
||||
import { ImageResolver, RowFilter, ShareDataRow, ShareDataTableAdapter } from './../data/share-datatable-adapter';
|
||||
@@ -47,6 +47,9 @@ export class DocumentListComponent implements OnInit, OnChanges, AfterContentIni
|
||||
@Input()
|
||||
permissionsStyle: PermissionStyleModel[] = [];
|
||||
|
||||
@Input()
|
||||
locationFormat: string = '/';
|
||||
|
||||
@Input()
|
||||
navigate: boolean = true;
|
||||
|
||||
@@ -147,7 +150,32 @@ export class DocumentListComponent implements OnInit, OnChanges, AfterContentIni
|
||||
|
||||
constructor(private documentListService: DocumentListService,
|
||||
private ngZone: NgZone,
|
||||
private elementRef: ElementRef) {
|
||||
private elementRef: ElementRef,
|
||||
private apiService: AlfrescoApiService) {
|
||||
}
|
||||
|
||||
private get nodesApi() {
|
||||
return this.apiService.getInstance().core.nodesApi;
|
||||
}
|
||||
|
||||
private get sharedLinksApi() {
|
||||
return this.apiService.getInstance().core.sharedlinksApi;
|
||||
}
|
||||
|
||||
private get sitesApi() {
|
||||
return this.apiService.getInstance().core.sitesApi;
|
||||
}
|
||||
|
||||
private get favoritesApi() {
|
||||
return this.apiService.getInstance().core.favoritesApi;
|
||||
}
|
||||
|
||||
private get peopleApi() {
|
||||
return this.apiService.getInstance().core.peopleApi;
|
||||
}
|
||||
|
||||
private get searchApi() {
|
||||
return this.apiService.getInstance().search.searchApi;
|
||||
}
|
||||
|
||||
getContextActions(node: MinimalNodeEntity) {
|
||||
@@ -205,7 +233,7 @@ export class DocumentListComponent implements OnInit, OnChanges, AfterContentIni
|
||||
|
||||
let columns = this.data.getColumns();
|
||||
if (!columns || columns.length === 0) {
|
||||
this.setupDefaultColumns();
|
||||
this.setupDefaultColumns(this.currentFolderId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -316,7 +344,7 @@ export class DocumentListComponent implements OnInit, OnChanges, AfterContentIni
|
||||
}
|
||||
|
||||
performNavigation(node: MinimalNodeEntity): boolean {
|
||||
if (node && node.entry && node.entry.isFolder) {
|
||||
if (this.canNavigateFolder(node)) {
|
||||
this.currentFolderId = node.entry.id;
|
||||
this.folderNode = node.entry;
|
||||
this.skipCount = 0;
|
||||
@@ -360,14 +388,28 @@ export class DocumentListComponent implements OnInit, OnChanges, AfterContentIni
|
||||
// gets folder node and its content
|
||||
loadFolderByNodeId(nodeId: string) {
|
||||
this.loading = true;
|
||||
this.documentListService.getFolderNode(nodeId).then(node => {
|
||||
this.folderNode = node;
|
||||
this.currentFolderId = node.id;
|
||||
this.skipCount = 0;
|
||||
this.currentNodeAllowableOperations = node['allowableOperations'] ? node['allowableOperations'] : [];
|
||||
this.loadFolderNodesByFolderNodeId(node.id, this.pageSize, this.skipCount).catch(err => this.error.emit(err));
|
||||
})
|
||||
.catch(err => this.error.emit(err));
|
||||
|
||||
if (nodeId === '-trashcan-') {
|
||||
this.loadTrashcan();
|
||||
} else if (nodeId === '-sharedlinks-') {
|
||||
this.loadSharedLinks();
|
||||
} else if (nodeId === '-sites-') {
|
||||
this.loadSites();
|
||||
} else if (nodeId === '-favorites-') {
|
||||
this.loadFavorites();
|
||||
} else if (nodeId === '-recent-') {
|
||||
this.loadRecent();
|
||||
} else {
|
||||
this.documentListService
|
||||
.getFolderNode(nodeId).then(node => {
|
||||
this.folderNode = node;
|
||||
this.currentFolderId = node.id;
|
||||
this.skipCount = 0;
|
||||
this.currentNodeAllowableOperations = node['allowableOperations'] ? node['allowableOperations'] : [];
|
||||
this.loadFolderNodesByFolderNodeId(node.id, this.pageSize, this.skipCount).catch(err => this.error.emit(err));
|
||||
})
|
||||
.catch(err => this.error.emit(err));
|
||||
}
|
||||
}
|
||||
|
||||
loadFolderNodesByFolderNodeId(id: string, maxItems: number, skipCount: number): Promise<any> {
|
||||
@@ -401,6 +443,107 @@ export class DocumentListComponent implements OnInit, OnChanges, AfterContentIni
|
||||
|
||||
}
|
||||
|
||||
private loadTrashcan(): void {
|
||||
const options = {
|
||||
include: [ 'path', 'properties' ],
|
||||
maxItems: this.pageSize,
|
||||
skipCount: this.skipCount
|
||||
};
|
||||
this.nodesApi.getDeletedNodes(options).then((page: NodePaging) => {
|
||||
this.onPageLoaded(page);
|
||||
});
|
||||
}
|
||||
|
||||
private loadSharedLinks(): void {
|
||||
const options = {
|
||||
include: [ 'properties', 'allowableOperations', 'path' ],
|
||||
maxItems: this.pageSize,
|
||||
skipCount: this.skipCount
|
||||
};
|
||||
this.sharedLinksApi.findSharedLinks(options).then((page: NodePaging) => {
|
||||
this.onPageLoaded(page);
|
||||
});
|
||||
}
|
||||
|
||||
private loadSites(): void {
|
||||
const options = {
|
||||
include: [ 'properties' ],
|
||||
maxItems: this.pageSize,
|
||||
skipCount: this.skipCount
|
||||
};
|
||||
|
||||
this.sitesApi.getSites(options).then((page: NodePaging) => {
|
||||
this.onPageLoaded(page);
|
||||
});
|
||||
}
|
||||
|
||||
private loadFavorites(): void {
|
||||
const options = {
|
||||
maxItems: this.pageSize,
|
||||
skipCount: this.skipCount,
|
||||
where: '(EXISTS(target/file) OR EXISTS(target/folder))',
|
||||
include: [ 'properties', 'allowableOperations', 'path' ]
|
||||
};
|
||||
|
||||
this.favoritesApi.getFavorites('-me-', options).then((result: NodePaging) => {
|
||||
let page: NodePaging = {
|
||||
list: {
|
||||
entries: result.list.entries
|
||||
.map(({ entry: { target }}: any) => ({
|
||||
entry: target.file || target.folder
|
||||
}))
|
||||
.map(({ entry }: any) => {
|
||||
entry.properties = {
|
||||
'cm:title': entry.title,
|
||||
'cm:description': entry.description
|
||||
};
|
||||
return { entry };
|
||||
}),
|
||||
pagination: result.list.pagination
|
||||
}
|
||||
};
|
||||
this.onPageLoaded(page);
|
||||
});
|
||||
}
|
||||
|
||||
private loadRecent(): void {
|
||||
this.peopleApi.getPerson('-me-').then((person: PersonEntry) => {
|
||||
const username = person.entry.id;
|
||||
const query = {
|
||||
query: {
|
||||
query: '*',
|
||||
language: 'afts'
|
||||
},
|
||||
filterQueries: [
|
||||
{ query: `cm:modified:[NOW/DAY-30DAYS TO NOW/DAY+1DAY]` },
|
||||
{ query: `cm:modifier:${username} OR cm:creator:${username}` },
|
||||
{ query: `TYPE:"content" AND -TYPE:"app:filelink" AND -TYPE:"fm:post"` }
|
||||
],
|
||||
include: [ 'path', 'properties', 'allowableOperations' ],
|
||||
sort: [{
|
||||
type: 'FIELD',
|
||||
field: 'cm:modified',
|
||||
ascending: false
|
||||
}],
|
||||
paging: {
|
||||
maxItems: this.pageSize,
|
||||
skipCount: this.skipCount
|
||||
}
|
||||
};
|
||||
|
||||
this.searchApi.search(query).then(page => this.onPageLoaded(page));
|
||||
});
|
||||
}
|
||||
|
||||
private onPageLoaded(page: NodePaging) {
|
||||
if (page) {
|
||||
this.data.loadPage(page);
|
||||
this.pagination = page.list.pagination;
|
||||
this.loading = false;
|
||||
this.ready.emit();
|
||||
}
|
||||
}
|
||||
|
||||
private isCurrentPageEmpty(node, skipCount): boolean {
|
||||
return !this.hasNodeEntries(node) && this.hasPages(skipCount);
|
||||
}
|
||||
@@ -416,23 +559,9 @@ export class DocumentListComponent implements OnInit, OnChanges, AfterContentIni
|
||||
/**
|
||||
* Creates a set of predefined columns.
|
||||
*/
|
||||
setupDefaultColumns(): void {
|
||||
let colThumbnail = new ObjectDataColumn({
|
||||
type: 'image',
|
||||
key: '$thumbnail',
|
||||
title: '',
|
||||
srTitle: 'Thumbnail'
|
||||
});
|
||||
|
||||
let colName = new ObjectDataColumn({
|
||||
type: 'text',
|
||||
key: 'name',
|
||||
title: 'Name',
|
||||
cssClass: 'full-width',
|
||||
sortable: true
|
||||
});
|
||||
|
||||
this.data.setColumns([colThumbnail, colName]);
|
||||
setupDefaultColumns(preset: string = 'default'): void {
|
||||
const columns = this.getLayoutPreset(preset);
|
||||
this.data.setColumns(columns);
|
||||
}
|
||||
|
||||
onPreviewFile(node: MinimalNodeEntity) {
|
||||
@@ -580,6 +709,20 @@ export class DocumentListComponent implements OnInit, OnChanges, AfterContentIni
|
||||
return defaultSorting;
|
||||
}
|
||||
|
||||
canNavigateFolder(node: MinimalNodeEntity): boolean {
|
||||
const restricted = ['-trashcan-', '-sharedlinks-', '-sites-', '-favorites-', '-recent-'];
|
||||
|
||||
if (restricted.indexOf(this.currentFolderId) > -1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (node && node.entry && node.entry.isFolder) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
updateSkipCount(newSkipCount) {
|
||||
this.skipCount = newSkipCount;
|
||||
}
|
||||
@@ -597,4 +740,231 @@ export class DocumentListComponent implements OnInit, OnChanges, AfterContentIni
|
||||
return this.hasCurrentNodePermission(this.CREATE_PERMISSION);
|
||||
}
|
||||
|
||||
private getLayoutPreset(name: string = 'default'): DataColumn[] {
|
||||
const presets = {
|
||||
'-trashcan-': [
|
||||
{
|
||||
key: '$thumbnail',
|
||||
type: 'image',
|
||||
srTitle: 'ADF-DOCUMENT-LIST.LAYOUT.THUMBNAIL',
|
||||
sortable: false
|
||||
},
|
||||
{
|
||||
key: 'name',
|
||||
type: 'text',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.NAME',
|
||||
cssClass: 'full-width ellipsis-cell',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
key: 'path',
|
||||
type: 'location',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.LOCATION',
|
||||
format: this.locationFormat,
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
key: 'content.sizeInBytes',
|
||||
type: 'fileSize',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.SIZE',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
key: 'archivedAt',
|
||||
type: 'date',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.DELETED_ON',
|
||||
format: 'timeAgo',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
key: 'archivedByUser.displayName',
|
||||
type: 'text',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.DELETED_BY',
|
||||
sortable: true
|
||||
}
|
||||
],
|
||||
'-sites-': [
|
||||
{
|
||||
key: '$thumbnail',
|
||||
type: 'image',
|
||||
srTitle: 'ADF-DOCUMENT-LIST.LAYOUT.THUMBNAIL',
|
||||
sortable: false
|
||||
},
|
||||
{
|
||||
key: 'title',
|
||||
type: 'text',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.NAME',
|
||||
cssClass: 'full-width ellipsis-cell',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
key: 'visibility',
|
||||
type: 'text',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.STATUS',
|
||||
sortable: true
|
||||
}
|
||||
],
|
||||
'-favorites-': [
|
||||
{
|
||||
key: '$thumbnail',
|
||||
type: 'image',
|
||||
srTitle: 'ADF-DOCUMENT-LIST.LAYOUT.THUMBNAIL',
|
||||
sortable: false
|
||||
},
|
||||
{
|
||||
key: 'name',
|
||||
type: 'text',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.NAME',
|
||||
cssClass: 'full-width ellipsis-cell',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
key: 'path',
|
||||
type: 'location',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.LOCATION',
|
||||
format: this.locationFormat,
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
key: 'content.sizeInBytes',
|
||||
type: 'fileSize',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.SIZE',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
key: 'modifiedAt',
|
||||
type: 'date',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.MODIFIED_ON',
|
||||
format: 'timeAgo',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
key: 'modifiedByUser.displayName',
|
||||
type: 'text',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.MODIFIED_BY',
|
||||
sortable: true
|
||||
}
|
||||
],
|
||||
'-recent-': [
|
||||
{
|
||||
key: '$thumbnail',
|
||||
type: 'image',
|
||||
srTitle: 'ADF-DOCUMENT-LIST.LAYOUT.THUMBNAIL',
|
||||
sortable: false
|
||||
},
|
||||
{
|
||||
key: 'name',
|
||||
type: 'text',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.NAME',
|
||||
cssClass: 'full-width ellipsis-cell',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
key: 'path',
|
||||
type: 'location',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.LOCATION',
|
||||
cssClass: 'ellipsis-cell',
|
||||
format: this.locationFormat,
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
key: 'content.sizeInBytes',
|
||||
type: 'fileSize',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.SIZE',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
key: 'modifiedAt',
|
||||
type: 'date',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.MODIFIED_ON',
|
||||
format: 'timeAgo',
|
||||
sortable: true
|
||||
}
|
||||
],
|
||||
'-sharedlinks-': [
|
||||
{
|
||||
key: '$thumbnail',
|
||||
type: 'image',
|
||||
srTitle: 'ADF-DOCUMENT-LIST.LAYOUT.THUMBNAIL',
|
||||
sortable: false
|
||||
},
|
||||
{
|
||||
key: 'name',
|
||||
type: 'text',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.NAME',
|
||||
cssClass: 'full-width ellipsis-cell',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
key: 'path',
|
||||
type: 'location',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.LOCATION',
|
||||
cssClass: 'ellipsis-cell',
|
||||
format: this.locationFormat,
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
key: 'content.sizeInBytes',
|
||||
type: 'fileSize',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.SIZE',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
key: 'modifiedAt',
|
||||
type: 'date',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.MODIFIED_ON',
|
||||
format: 'timeAgo',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
key: 'modifiedByUser.displayName',
|
||||
type: 'text',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.MODIFIED_BY',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
key: 'sharedByUser.displayName',
|
||||
type: 'text',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.SHARED_BY',
|
||||
sortable: true
|
||||
}
|
||||
],
|
||||
'default': [
|
||||
{
|
||||
key: '$thumbnail',
|
||||
type: 'image',
|
||||
srTitle: 'ADF-DOCUMENT-LIST.LAYOUT.THUMBNAIL',
|
||||
sortable: false
|
||||
},
|
||||
{
|
||||
key: 'name',
|
||||
type: 'text',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.NAME',
|
||||
cssClass: 'full-width ellipsis-cell',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
key: 'content.sizeInBytes',
|
||||
type: 'fileSize',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.SIZE',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
key: 'modifiedAt',
|
||||
type: 'date',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.MODIFIED_ON',
|
||||
format: 'timeAgo',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
key: 'modifiedByUser.displayName',
|
||||
type: 'text',
|
||||
title: 'ADF-DOCUMENT-LIST.LAYOUT.MODIFIED_BY',
|
||||
sortable: true
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
return (presets[name] || presets['default']).map(col => new ObjectDataColumn(col));
|
||||
}
|
||||
}
|
||||
|
@@ -15,9 +15,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { DataTableComponent } from 'ng2-alfresco-datatable';
|
||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||
import { async, TestBed } from '@angular/core/testing';
|
||||
import { CoreModule } from 'ng2-alfresco-core';
|
||||
import { DataTableComponent, DataTableModule } from 'ng2-alfresco-datatable';
|
||||
import { MaterialModule } from '../../material.module';
|
||||
import { DocumentListService } from '../../services/document-list.service';
|
||||
|
||||
import { DocumentListServiceMock } from './../../assets/document-list.service.mock';
|
||||
import { DocumentListComponent } from './../document-list.component';
|
||||
import { EmptyFolderContentDirective } from './empty-folder-content.directive';
|
||||
|
||||
@@ -26,9 +30,27 @@ describe('EmptyFolderContent', () => {
|
||||
let emptyFolderContent: EmptyFolderContentDirective;
|
||||
let documentList: DocumentListComponent;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [
|
||||
CoreModule,
|
||||
DataTableModule,
|
||||
MaterialModule
|
||||
],
|
||||
declarations: [
|
||||
DocumentListComponent
|
||||
],
|
||||
providers: [
|
||||
DocumentListService
|
||||
],
|
||||
schemas: [
|
||||
CUSTOM_ELEMENTS_SCHEMA
|
||||
]
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
let documentListService = new DocumentListServiceMock();
|
||||
documentList = new DocumentListComponent(documentListService, null, null);
|
||||
documentList = TestBed.createComponent(DocumentListComponent).componentInstance;
|
||||
documentList.dataTable = new DataTableComponent(null, null);
|
||||
emptyFolderContent = new EmptyFolderContentDirective(documentList);
|
||||
});
|
||||
|
@@ -270,6 +270,7 @@ describe('ShareDataTableAdapter', () => {
|
||||
let file = new FileNode();
|
||||
file.entry.isFile = false;
|
||||
file.entry.isFolder = false;
|
||||
file.entry.content = null;
|
||||
|
||||
let row = new ShareDataRow(file, documentListService, null);
|
||||
let col = <DataColumn> {type: 'image', key: '$thumbnail'};
|
||||
@@ -279,6 +280,22 @@ describe('ShareDataTableAdapter', () => {
|
||||
expect(value).toContain(`svg`);
|
||||
});
|
||||
|
||||
it('should resolve file icon for content type', () => {
|
||||
let adapter = new ShareDataTableAdapter(documentListService, null);
|
||||
|
||||
let file = new FileNode();
|
||||
file.entry.isFile = false;
|
||||
file.entry.isFolder = false;
|
||||
file.entry.content.mimeType = 'image/png';
|
||||
|
||||
let row = new ShareDataRow(file, documentListService, null);
|
||||
let col = <DataColumn> {type: 'image', key: '$thumbnail'};
|
||||
|
||||
let value = adapter.getValue(row, col);
|
||||
expect(value).toContain(`assets/images/ft_ic_raster_image`);
|
||||
expect(value).toContain(`svg`);
|
||||
});
|
||||
|
||||
it('should put folders on top upon sort', () => {
|
||||
let file1 = new FileNode('file1');
|
||||
let file2 = new FileNode('file2');
|
||||
|
@@ -98,7 +98,7 @@ export class ShareDataTableAdapter implements DataTableAdapter {
|
||||
}
|
||||
|
||||
if (col.key === '$thumbnail') {
|
||||
let node = (<ShareDataRow> row).node;
|
||||
const node = (<ShareDataRow> row).node;
|
||||
|
||||
if (node.entry.isFolder) {
|
||||
return this.documentListService.getMimeTypeIcon('folder');
|
||||
@@ -108,12 +108,12 @@ export class ShareDataTableAdapter implements DataTableAdapter {
|
||||
if (this.thumbnails) {
|
||||
return this.documentListService.getDocumentThumbnailUrl(node);
|
||||
}
|
||||
}
|
||||
|
||||
if (node.entry.content) {
|
||||
let mimeType = node.entry.content.mimeType;
|
||||
if (mimeType) {
|
||||
return this.documentListService.getMimeTypeIcon(mimeType);
|
||||
}
|
||||
if (node.entry.content) {
|
||||
const mimeType = node.entry.content.mimeType;
|
||||
if (mimeType) {
|
||||
return this.documentListService.getMimeTypeIcon(mimeType);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1,4 +1,21 @@
|
||||
{
|
||||
"ADF-DOCUMENT-LIST": {
|
||||
"EMPTY": {
|
||||
"HEADER": "This folder is empty"
|
||||
},
|
||||
"LAYOUT": {
|
||||
"THUMBNAIL": "Thumbnail",
|
||||
"NAME": "Name",
|
||||
"LOCATION": "Location",
|
||||
"SIZE": "Size",
|
||||
"DELETED_ON": "Deleted",
|
||||
"DELETED_BY": "Deleted by",
|
||||
"STATUS": "Status",
|
||||
"MODIFIED_ON": "Modified",
|
||||
"MODIFIED_BY": "Modified by",
|
||||
"SHARED_BY": "Shared by"
|
||||
}
|
||||
},
|
||||
"ALFRESCO_DOCUMENT_LIST": {
|
||||
"BUTTON": {
|
||||
"ACTION_CREATE": "Create...",
|
||||
@@ -7,11 +24,6 @@
|
||||
"CANCEL": "Cancel"
|
||||
}
|
||||
},
|
||||
"ADF-DOCUMENT-LIST": {
|
||||
"EMPTY": {
|
||||
"HEADER": "This folder is empty"
|
||||
}
|
||||
},
|
||||
"DROPDOWN": {
|
||||
"PLACEHOLDER_LABEL": "Site List",
|
||||
"DEFAULT_OPTION": "Default"
|
||||
|
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"ALFRESCO_DOCUMENT_LIST": {
|
||||
"BUTTON": {
|
||||
"ACTION_CREATE": "Создать...",
|
||||
"ACTION_NEW_FOLDER": "Новая папка",
|
||||
"CREATE": "Создать",
|
||||
"CANCEL": "Отмена"
|
||||
}
|
||||
}
|
||||
}
|
344
ng2-components/package-lock.json
generated
344
ng2-components/package-lock.json
generated
@@ -140,9 +140,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"alfresco-js-api": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/alfresco-js-api/-/alfresco-js-api-1.7.0.tgz",
|
||||
"integrity": "sha512-CyN1W1QxlKkE9X/WQv68pZr7nzPcR6LoV/hjgOCBz6QEkj8eBowzYB2PF3EL8d6g80LmgXBF733Dv0ur/kJqLQ=="
|
||||
"version": "1.8.0-9feb5d0164d6c5f994df8758e41ed126a8f69db2",
|
||||
"resolved": "https://registry.npmjs.org/alfresco-js-api/-/alfresco-js-api-1.8.0-9feb5d0164d6c5f994df8758e41ed126a8f69db2.tgz",
|
||||
"integrity": "sha512-x47sy7uJOSCHkYxm0VBDnRt8/xc0nZ4M/OxEU/Z7ta14/A0HjAnz1dLz6aYEA+Kb/lXZiZesnLnHdQuSmR4jDw=="
|
||||
},
|
||||
"align-text": {
|
||||
"version": "0.1.4",
|
||||
@@ -512,9 +512,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"babylon": {
|
||||
"version": "6.17.4",
|
||||
"resolved": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.tgz",
|
||||
"integrity": "sha512-kChlV+0SXkjE0vUn9OZ7pBMWRFd8uq3mZe8x1K6jhuNcAFAtEnjchFAqB+dYEXKyd+JpT6eppRR78QAr5gTsUw==",
|
||||
"version": "6.18.0",
|
||||
"resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
|
||||
"integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
|
||||
"dev": true
|
||||
},
|
||||
"backo2": {
|
||||
@@ -578,9 +578,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"binary-extensions": {
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.9.0.tgz",
|
||||
"integrity": "sha1-ZlBsFs5vTWkopbPNajPKQelB43s=",
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz",
|
||||
"integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=",
|
||||
"dev": true
|
||||
},
|
||||
"blob": {
|
||||
@@ -602,9 +602,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"bn.js": {
|
||||
"version": "4.11.7",
|
||||
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz",
|
||||
"integrity": "sha512-LxFiV5mefv0ley0SzqkOPR1bC4EbpPx8LkOz5vMe/Yi15t5hzwgO/G+tc7wOtL4PZTYjwHu8JnEiSLumuSjSfA==",
|
||||
"version": "4.11.8",
|
||||
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
|
||||
"integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
|
||||
"dev": true
|
||||
},
|
||||
"body": {
|
||||
@@ -793,9 +793,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"caniuse-db": {
|
||||
"version": "1.0.30000709",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000709.tgz",
|
||||
"integrity": "sha1-C2AAcrfNu/YzaodYtxua0DJo7eI=",
|
||||
"version": "1.0.30000715",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000715.tgz",
|
||||
"integrity": "sha1-C5tceVlQ37rzAaiAa6/ofxJtqMo=",
|
||||
"dev": true
|
||||
},
|
||||
"caseless": {
|
||||
@@ -1041,18 +1041,10 @@
|
||||
"dev": true
|
||||
},
|
||||
"connect": {
|
||||
"version": "3.6.2",
|
||||
"resolved": "https://registry.npmjs.org/connect/-/connect-3.6.2.tgz",
|
||||
"integrity": "sha1-aU6NIGgb/kkCgsiriGvpjwn0L+c=",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.6.7",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz",
|
||||
"integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
"version": "3.6.3",
|
||||
"resolved": "https://registry.npmjs.org/connect/-/connect-3.6.3.tgz",
|
||||
"integrity": "sha512-GLSZqgjVxPvGYVD/2vz//gS201MEXk4b7t3nHV6OVnTdDNWi/Gm7Rpxs/ybvljPWvULys/wrzIV3jB3YvEc3nQ==",
|
||||
"dev": true
|
||||
},
|
||||
"connect-history-api-fallback": {
|
||||
"version": "1.3.0",
|
||||
@@ -1446,12 +1438,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"dom-walk": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz",
|
||||
"integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=",
|
||||
"dev": true
|
||||
},
|
||||
"domain-browser": {
|
||||
"version": "1.1.7",
|
||||
"resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz",
|
||||
@@ -1508,9 +1494,9 @@
|
||||
}
|
||||
},
|
||||
"duplexify": {
|
||||
"version": "3.5.0",
|
||||
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.0.tgz",
|
||||
"integrity": "sha1-GqdzAC4VeEV+nZ1KULDMquvL1gQ=",
|
||||
"version": "3.5.1",
|
||||
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.1.tgz",
|
||||
"integrity": "sha512-j5goxHTwVED1Fpe5hh3q9R93Kip0Bg2KVAt4f8CEYM3UEwYcPSvWbXaUQOzdX/HtiNomipv+gU7ASQPDbV7pGQ==",
|
||||
"dev": true
|
||||
},
|
||||
"ecc-jsbn": {
|
||||
@@ -1527,9 +1513,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"electron-to-chromium": {
|
||||
"version": "1.3.16",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.16.tgz",
|
||||
"integrity": "sha1-0OAmc1dUdwkBrjAaIWZMukXZL30=",
|
||||
"version": "1.3.18",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.18.tgz",
|
||||
"integrity": "sha1-PcyZ2j5rZl9qu8ccKK1Ros1zGpw=",
|
||||
"dev": true
|
||||
},
|
||||
"elliptic": {
|
||||
@@ -1551,18 +1537,10 @@
|
||||
"dev": true
|
||||
},
|
||||
"end-of-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz",
|
||||
"integrity": "sha1-1FlucCc0qT5A6a+GQxnqvZn/Lw4=",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"once": {
|
||||
"version": "1.3.3",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
|
||||
"integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz",
|
||||
"integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=",
|
||||
"dev": true
|
||||
},
|
||||
"engine.io": {
|
||||
"version": "1.8.4",
|
||||
@@ -1653,9 +1631,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"es5-ext": {
|
||||
"version": "0.10.24",
|
||||
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.24.tgz",
|
||||
"integrity": "sha1-pVh3yZJLwMjZvTwsvhdJWsFwmxQ="
|
||||
"version": "0.10.27",
|
||||
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.27.tgz",
|
||||
"integrity": "sha512-3KXJRYzKXTd7xfFy5uZsJCXue55fAYQ035PRjyYk2PicllxIwcW9l3AbM/eGaw3vgVAUW4tl4xg9AXDEI6yw0w=="
|
||||
},
|
||||
"es6-iterator": {
|
||||
"version": "2.0.1",
|
||||
@@ -1763,6 +1741,11 @@
|
||||
"resolved": "https://registry.npmjs.org/ev-emitter/-/ev-emitter-1.0.3.tgz",
|
||||
"integrity": "sha1-7l73S27SjZEbMt3L/JeGf1gJN7w="
|
||||
},
|
||||
"eve": {
|
||||
"version": "0.5.0",
|
||||
"resolved": "https://registry.npmjs.org/eve/-/eve-0.5.0.tgz",
|
||||
"integrity": "sha1-dQSA4M9Pj9W1PE2EBfAEBTLg7r4="
|
||||
},
|
||||
"eve-raphael": {
|
||||
"version": "0.5.0",
|
||||
"resolved": "https://registry.npmjs.org/eve-raphael/-/eve-raphael-0.5.0.tgz",
|
||||
@@ -1842,24 +1825,10 @@
|
||||
"dev": true
|
||||
},
|
||||
"express": {
|
||||
"version": "4.15.3",
|
||||
"resolved": "https://registry.npmjs.org/express/-/express-4.15.3.tgz",
|
||||
"integrity": "sha1-urZdDwOqgMNYQIly/HAPkWlEtmI=",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.6.7",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz",
|
||||
"integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=",
|
||||
"dev": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.4.0",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
|
||||
"integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
"version": "4.15.4",
|
||||
"resolved": "https://registry.npmjs.org/express/-/express-4.15.4.tgz",
|
||||
"integrity": "sha1-Ay4iU0ic+PzgJma+yj0R7XotrtE=",
|
||||
"dev": true
|
||||
},
|
||||
"extend": {
|
||||
"version": "3.0.1",
|
||||
@@ -1901,9 +1870,9 @@
|
||||
}
|
||||
},
|
||||
"extsprintf": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz",
|
||||
"integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=",
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
|
||||
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
|
||||
"dev": true
|
||||
},
|
||||
"fancy-log": {
|
||||
@@ -1975,18 +1944,10 @@
|
||||
"dev": true
|
||||
},
|
||||
"finalhandler": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.3.tgz",
|
||||
"integrity": "sha1-70fneVDpmXgOhgIqVg4yF+DQzIk=",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.6.7",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz",
|
||||
"integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.4.tgz",
|
||||
"integrity": "sha512-16l/r8RgzlXKmFOhZpHBztvye+lAhC5SU7hXavnerC9UfZqZxxXl3BzL8MhffPT3kF61lj9Oav2LKEzh0ei7tg==",
|
||||
"dev": true
|
||||
},
|
||||
"find-up": {
|
||||
"version": "1.1.2",
|
||||
@@ -2822,20 +2783,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"global": {
|
||||
"version": "4.3.2",
|
||||
"resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz",
|
||||
"integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"process": {
|
||||
"version": "0.5.2",
|
||||
"resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz",
|
||||
"integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"globals": {
|
||||
"version": "9.18.0",
|
||||
"resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
|
||||
@@ -3400,18 +3347,10 @@
|
||||
"dev": true
|
||||
},
|
||||
"http-errors": {
|
||||
"version": "1.6.1",
|
||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz",
|
||||
"integrity": "sha1-X4uO2YrKVFZWv1cplzh/kEpyIlc=",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"depd": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz",
|
||||
"integrity": "sha1-4b2Cxqq2ztlluXuIsX7T5SjKGMM=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
"version": "1.6.2",
|
||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
|
||||
"integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
|
||||
"dev": true
|
||||
},
|
||||
"http-proxy": {
|
||||
"version": "1.16.2",
|
||||
@@ -3855,9 +3794,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"jsprim": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz",
|
||||
"integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=",
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
|
||||
"integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"assert-plus": {
|
||||
@@ -4337,9 +4276,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"markdown-it": {
|
||||
"version": "8.3.1",
|
||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.3.1.tgz",
|
||||
"integrity": "sha1-L0tiKUjM3Bk9ZvPKLUMSWsSscyM=",
|
||||
"version": "8.3.2",
|
||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.3.2.tgz",
|
||||
"integrity": "sha512-4J92IhJq1kGoyXddwzzfjr9cEKGexBfFsZooKYMhMLLlWa4+dlSPDUUP7y+xQOCebIj61aLmKlowg//YcdPP1w==",
|
||||
"dev": true
|
||||
},
|
||||
"markdown-link": {
|
||||
@@ -4491,12 +4430,6 @@
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz",
|
||||
"integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM="
|
||||
},
|
||||
"min-document": {
|
||||
"version": "2.19.0",
|
||||
"resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
|
||||
"integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=",
|
||||
"dev": true
|
||||
},
|
||||
"minimalistic-assert": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz",
|
||||
@@ -4590,17 +4523,15 @@
|
||||
"resolved": "https://registry.npmjs.org/ng2-activiti-diagrams/-/ng2-activiti-diagrams-1.7.0.tgz",
|
||||
"integrity": "sha512-2wU26EGrDpWUuhNjo4IGceEM76vpVOBr53T8L3nsPeyiR8QI9Da7jDDTx2stk3aX45tbflvsiLOG0RGC8iYJsg==",
|
||||
"dependencies": {
|
||||
"alfresco-js-api": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/alfresco-js-api/-/alfresco-js-api-1.7.0.tgz",
|
||||
"integrity": "sha512-CyN1W1QxlKkE9X/WQv68pZr7nzPcR6LoV/hjgOCBz6QEkj8eBowzYB2PF3EL8d6g80LmgXBF733Dv0ur/kJqLQ=="
|
||||
},
|
||||
"raphael": {
|
||||
"version": "2.2.6",
|
||||
"resolved": "https://registry.npmjs.org/raphael/-/raphael-2.2.6.tgz",
|
||||
"integrity": "sha1-beJockeUdlQ0T3CWduoMfvXl04g=",
|
||||
"dependencies": {
|
||||
"eve": {
|
||||
"version": "0.5.0",
|
||||
"resolved": "http://npmdev.lab.alfresco.me:4873/eve/-/eve-0.5.0.tgz",
|
||||
"integrity": "sha1-dQSA4M9Pj9W1PE2EBfAEBTLg7r4="
|
||||
}
|
||||
}
|
||||
"integrity": "sha1-beJockeUdlQ0T3CWduoMfvXl04g="
|
||||
},
|
||||
"zone.js": {
|
||||
"version": "0.8.4",
|
||||
@@ -4614,6 +4545,11 @@
|
||||
"resolved": "https://registry.npmjs.org/ng2-activiti-form/-/ng2-activiti-form-1.7.0.tgz",
|
||||
"integrity": "sha512-7wZdzA9JNt6b7b6pXtHQB43XmkVNE6dJI8l5X/FW2Ru3AnaG3HF14+eFUM6oLSNbXWv+JQOhYlb6tMvVfxHX8w==",
|
||||
"dependencies": {
|
||||
"alfresco-js-api": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/alfresco-js-api/-/alfresco-js-api-1.7.0.tgz",
|
||||
"integrity": "sha512-CyN1W1QxlKkE9X/WQv68pZr7nzPcR6LoV/hjgOCBz6QEkj8eBowzYB2PF3EL8d6g80LmgXBF733Dv0ur/kJqLQ=="
|
||||
},
|
||||
"zone.js": {
|
||||
"version": "0.8.4",
|
||||
"resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.4.tgz",
|
||||
@@ -4626,6 +4562,11 @@
|
||||
"resolved": "https://registry.npmjs.org/ng2-activiti-tasklist/-/ng2-activiti-tasklist-1.7.0.tgz",
|
||||
"integrity": "sha512-R5Oq5wYW65QAspYH+4eR7Tyg/fqarc3crYi/CLHb/u6cAyA0Y8brvz10IBgqThbmUqfLb+8ba4hTSgiNSLadoQ==",
|
||||
"dependencies": {
|
||||
"alfresco-js-api": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/alfresco-js-api/-/alfresco-js-api-1.7.0.tgz",
|
||||
"integrity": "sha512-CyN1W1QxlKkE9X/WQv68pZr7nzPcR6LoV/hjgOCBz6QEkj8eBowzYB2PF3EL8d6g80LmgXBF733Dv0ur/kJqLQ=="
|
||||
},
|
||||
"zone.js": {
|
||||
"version": "0.7.6",
|
||||
"resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.7.6.tgz",
|
||||
@@ -4638,6 +4579,11 @@
|
||||
"resolved": "https://registry.npmjs.org/ng2-alfresco-core/-/ng2-alfresco-core-1.7.0.tgz",
|
||||
"integrity": "sha512-dXKstITLFv3snsJDPdNr9EVzgeLCSefHfWuGKmNB8KWZeP4ZMT0KCMLcAK+e+8H40/4WJnkuANltAafZ898e7w==",
|
||||
"dependencies": {
|
||||
"alfresco-js-api": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/alfresco-js-api/-/alfresco-js-api-1.7.0.tgz",
|
||||
"integrity": "sha512-CyN1W1QxlKkE9X/WQv68pZr7nzPcR6LoV/hjgOCBz6QEkj8eBowzYB2PF3EL8d6g80LmgXBF733Dv0ur/kJqLQ=="
|
||||
},
|
||||
"zone.js": {
|
||||
"version": "0.7.6",
|
||||
"resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.7.6.tgz",
|
||||
@@ -4650,6 +4596,11 @@
|
||||
"resolved": "https://registry.npmjs.org/ng2-alfresco-datatable/-/ng2-alfresco-datatable-1.7.0.tgz",
|
||||
"integrity": "sha512-fLceBX0x9rsYqgJbig0raLFZb2O4zhpRX0bjOt1k5IvEeYwU39Ax851HMKbs7XjGXNf3C4uo4r0ra84SsWX7tg==",
|
||||
"dependencies": {
|
||||
"alfresco-js-api": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/alfresco-js-api/-/alfresco-js-api-1.7.0.tgz",
|
||||
"integrity": "sha512-CyN1W1QxlKkE9X/WQv68pZr7nzPcR6LoV/hjgOCBz6QEkj8eBowzYB2PF3EL8d6g80LmgXBF733Dv0ur/kJqLQ=="
|
||||
},
|
||||
"zone.js": {
|
||||
"version": "0.7.6",
|
||||
"resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.7.6.tgz",
|
||||
@@ -4662,6 +4613,11 @@
|
||||
"resolved": "https://registry.npmjs.org/ng2-alfresco-documentlist/-/ng2-alfresco-documentlist-1.7.0.tgz",
|
||||
"integrity": "sha512-PmCK45W8FH7Y29TAEYwExNR7sY8urje5mvattuPJWWIT4HGzrRvJcmVFpXGehTWpE9iT7yJs4cmV+5plZA2ySQ==",
|
||||
"dependencies": {
|
||||
"alfresco-js-api": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/alfresco-js-api/-/alfresco-js-api-1.7.0.tgz",
|
||||
"integrity": "sha512-CyN1W1QxlKkE9X/WQv68pZr7nzPcR6LoV/hjgOCBz6QEkj8eBowzYB2PF3EL8d6g80LmgXBF733Dv0ur/kJqLQ=="
|
||||
},
|
||||
"zone.js": {
|
||||
"version": "0.7.6",
|
||||
"resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.7.6.tgz",
|
||||
@@ -5081,9 +5037,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"pbkdf2": {
|
||||
"version": "3.0.12",
|
||||
"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz",
|
||||
"integrity": "sha1-vjZ4XFBn6kjYBv+SMojF91C2uKI=",
|
||||
"version": "3.0.13",
|
||||
"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.13.tgz",
|
||||
"integrity": "sha512-+dCHxDH+djNtjgWmvVC/my3SYBAKpKNqKSjLkp+GtWWYe4XPE+e/PSD2aCanlEZZnqPk2uekTKNC/ccbwd2X2Q==",
|
||||
"dev": true
|
||||
},
|
||||
"pdfjs-dist": {
|
||||
@@ -5258,9 +5214,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"chalk": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz",
|
||||
"integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==",
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
|
||||
"integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==",
|
||||
"dev": true
|
||||
},
|
||||
"color-convert": {
|
||||
@@ -5276,9 +5232,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"postcss": {
|
||||
"version": "6.0.8",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.8.tgz",
|
||||
"integrity": "sha512-G6WnRmdTt2jvJvY+aY+M0AO4YlbxE+slKPZb+jG2P2U9Tyxi3h1fYZ/DgiFU6DC6bv3XIEJoZt+f/kNh8BrWFw==",
|
||||
"version": "6.0.9",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.9.tgz",
|
||||
"integrity": "sha512-bBE2AHNEBhF23TfET6AA/lFP8ah+qHOZoFJEflFG+HgvVLdTmMOrocx/4LVVDIn3w6jUssw1q2Exk1cc9UOI8w==",
|
||||
"dev": true
|
||||
},
|
||||
"supports-color": {
|
||||
@@ -5302,9 +5258,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"chalk": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz",
|
||||
"integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==",
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
|
||||
"integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==",
|
||||
"dev": true
|
||||
},
|
||||
"color-convert": {
|
||||
@@ -5320,9 +5276,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"postcss": {
|
||||
"version": "6.0.8",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.8.tgz",
|
||||
"integrity": "sha512-G6WnRmdTt2jvJvY+aY+M0AO4YlbxE+slKPZb+jG2P2U9Tyxi3h1fYZ/DgiFU6DC6bv3XIEJoZt+f/kNh8BrWFw==",
|
||||
"version": "6.0.9",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.9.tgz",
|
||||
"integrity": "sha512-bBE2AHNEBhF23TfET6AA/lFP8ah+qHOZoFJEflFG+HgvVLdTmMOrocx/4LVVDIn3w6jUssw1q2Exk1cc9UOI8w==",
|
||||
"dev": true
|
||||
},
|
||||
"supports-color": {
|
||||
@@ -5346,9 +5302,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"chalk": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz",
|
||||
"integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==",
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
|
||||
"integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==",
|
||||
"dev": true
|
||||
},
|
||||
"color-convert": {
|
||||
@@ -5364,9 +5320,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"postcss": {
|
||||
"version": "6.0.8",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.8.tgz",
|
||||
"integrity": "sha512-G6WnRmdTt2jvJvY+aY+M0AO4YlbxE+slKPZb+jG2P2U9Tyxi3h1fYZ/DgiFU6DC6bv3XIEJoZt+f/kNh8BrWFw==",
|
||||
"version": "6.0.9",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.9.tgz",
|
||||
"integrity": "sha512-bBE2AHNEBhF23TfET6AA/lFP8ah+qHOZoFJEflFG+HgvVLdTmMOrocx/4LVVDIn3w6jUssw1q2Exk1cc9UOI8w==",
|
||||
"dev": true
|
||||
},
|
||||
"supports-color": {
|
||||
@@ -5390,9 +5346,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"chalk": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz",
|
||||
"integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==",
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
|
||||
"integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==",
|
||||
"dev": true
|
||||
},
|
||||
"color-convert": {
|
||||
@@ -5408,9 +5364,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"postcss": {
|
||||
"version": "6.0.8",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.8.tgz",
|
||||
"integrity": "sha512-G6WnRmdTt2jvJvY+aY+M0AO4YlbxE+slKPZb+jG2P2U9Tyxi3h1fYZ/DgiFU6DC6bv3XIEJoZt+f/kNh8BrWFw==",
|
||||
"version": "6.0.9",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.9.tgz",
|
||||
"integrity": "sha512-bBE2AHNEBhF23TfET6AA/lFP8ah+qHOZoFJEflFG+HgvVLdTmMOrocx/4LVVDIn3w6jUssw1q2Exk1cc9UOI8w==",
|
||||
"dev": true
|
||||
},
|
||||
"supports-color": {
|
||||
@@ -5556,15 +5512,7 @@
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/pump/-/pump-1.0.2.tgz",
|
||||
"integrity": "sha1-Oz7mUS+U8OV1U4wXmV+fFpkKXVE=",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"end-of-stream": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz",
|
||||
"integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
"dev": true
|
||||
},
|
||||
"pumpify": {
|
||||
"version": "1.3.5",
|
||||
@@ -5841,9 +5789,9 @@
|
||||
}
|
||||
},
|
||||
"remove-trailing-separator": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz",
|
||||
"integrity": "sha1-abBi2XhyetFNxrVrpKt3L9jXBRE=",
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
|
||||
"integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
|
||||
"dev": true
|
||||
},
|
||||
"renderkid": {
|
||||
@@ -6071,17 +6019,11 @@
|
||||
"dev": true
|
||||
},
|
||||
"send": {
|
||||
"version": "0.15.3",
|
||||
"resolved": "https://registry.npmjs.org/send/-/send-0.15.3.tgz",
|
||||
"integrity": "sha1-UBP5+ZAj31DRvZiSwZ4979HVMwk=",
|
||||
"version": "0.15.4",
|
||||
"resolved": "https://registry.npmjs.org/send/-/send-0.15.4.tgz",
|
||||
"integrity": "sha1-mF+qPihLAnPHkzZKNcZze9k5Bbk=",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.6.7",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz",
|
||||
"integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=",
|
||||
"dev": true
|
||||
},
|
||||
"mime": {
|
||||
"version": "1.3.4",
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
|
||||
@@ -6105,9 +6047,9 @@
|
||||
}
|
||||
},
|
||||
"serve-static": {
|
||||
"version": "1.12.3",
|
||||
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.3.tgz",
|
||||
"integrity": "sha1-n0uhni8wMMVH+K+ZEHg47DjVseI=",
|
||||
"version": "1.12.4",
|
||||
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.4.tgz",
|
||||
"integrity": "sha1-m2qpjutyU8Tu3Ewfb9vKYJkBqWE=",
|
||||
"dev": true
|
||||
},
|
||||
"set-blocking": {
|
||||
@@ -6617,9 +6559,9 @@
|
||||
}
|
||||
},
|
||||
"tapable": {
|
||||
"version": "0.2.7",
|
||||
"resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.7.tgz",
|
||||
"integrity": "sha1-5GwNqsuyuKmLmwzqD0BSEFgX7Vw=",
|
||||
"version": "0.2.8",
|
||||
"resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz",
|
||||
"integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=",
|
||||
"dev": true
|
||||
},
|
||||
"tar": {
|
||||
@@ -6661,9 +6603,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"timers-browserify": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.3.tgz",
|
||||
"integrity": "sha512-+JAqyNgg+M8+gXIrq2EeUr4kZqRz47Ysco7X5QKRGScRE9HIHckyHD1asozSFGeqx2nmPCgA8T5tIGVO0ML7/w==",
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz",
|
||||
"integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==",
|
||||
"dev": true
|
||||
},
|
||||
"tiny-lr": {
|
||||
@@ -6687,9 +6629,9 @@
|
||||
}
|
||||
},
|
||||
"tmp": {
|
||||
"version": "0.0.31",
|
||||
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz",
|
||||
"integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=",
|
||||
"version": "0.0.33",
|
||||
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
|
||||
"integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
|
||||
"dev": true
|
||||
},
|
||||
"to-array": {
|
||||
@@ -7100,10 +7042,18 @@
|
||||
"dev": true
|
||||
},
|
||||
"verror": {
|
||||
"version": "1.3.6",
|
||||
"resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz",
|
||||
"integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=",
|
||||
"dev": true
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
|
||||
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"assert-plus": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"vinyl": {
|
||||
"version": "0.5.3",
|
||||
|
@@ -73,7 +73,7 @@
|
||||
"@angular/platform-browser-dynamic": "4.2.5",
|
||||
"@angular/router": "4.2.5",
|
||||
"@ngx-translate/core": "7.0.0",
|
||||
"alfresco-js-api": "1.7.0",
|
||||
"alfresco-js-api": "1.8.0-9feb5d0164d6c5f994df8758e41ed126a8f69db2",
|
||||
"core-js": "2.4.1",
|
||||
"hammerjs": "2.0.8",
|
||||
"material-design-icons": "2.2.3",
|
||||
|
Reference in New Issue
Block a user