@rs-pk/asset-management 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/bundles/rs-pk-asset-management.umd.js +6474 -0
- package/bundles/rs-pk-asset-management.umd.js.map +1 -0
- package/bundles/rs-pk-asset-management.umd.min.js +16 -0
- package/bundles/rs-pk-asset-management.umd.min.js.map +1 -0
- package/esm2015/lib/asset-management.component.js +147 -0
- package/esm2015/lib/asset-management.module.js +179 -0
- package/esm2015/lib/asset-management.service.js +45 -0
- package/esm2015/lib/components/partial/add-folder-dialog/add-folder-dialog.component.js +143 -0
- package/esm2015/lib/components/partial/asset-dialog/asset-dialog.component.js +373 -0
- package/esm2015/lib/components/partial/asset-item/asset-item.component.js +165 -0
- package/esm2015/lib/components/partial/asset-list/asset-list.component.js +239 -0
- package/esm2015/lib/components/partial/asset-management-dialog/asset-management-dialog.component.js +108 -0
- package/esm2015/lib/components/partial/asset-wrapper/asset-wrapper.component.js +100 -0
- package/esm2015/lib/components/partial/breadcrumb/breadcrumb.component.js +115 -0
- package/esm2015/lib/components/partial/delete-dialog/delete-dialog.component.js +139 -0
- package/esm2015/lib/components/partial/edit-folder-dialog/edit-folder-dialog.component.js +148 -0
- package/esm2015/lib/components/partial/file-item/file-item.component.js +136 -0
- package/esm2015/lib/components/partial/file-list/file-list.component.js +72 -0
- package/esm2015/lib/components/partial/folder-item/folder-item.component.js +114 -0
- package/esm2015/lib/components/partial/folder-list/folder-list.component.js +69 -0
- package/esm2015/lib/components/partial/node-details/node-details.component.js +402 -0
- package/esm2015/lib/components/partial/node-tree/node-tree.component.js +330 -0
- package/esm2015/lib/components/partial/search-box/search-box.component.js +158 -0
- package/esm2015/lib/components/partial/sort-items/sort-items.component.js +99 -0
- package/esm2015/lib/components/partial/upload-dialog/upload-dialog.component.js +136 -0
- package/esm2015/lib/components/partial/upload-file/upload-file.component.js +102 -0
- package/esm2015/lib/components/ui/drag-to-resize/drag-to-resize.component.js +96 -0
- package/esm2015/lib/components/ui/input-file/input-file.component.js +49 -0
- package/esm2015/lib/components/ui/modal/modal.component.js +34 -0
- package/esm2015/lib/components/ui/search-not-found/search-not-found.component.js +41 -0
- package/esm2015/lib/configs/admin.config.js +22 -0
- package/esm2015/lib/contanst/data-image.js +12 -0
- package/esm2015/lib/contanst/index.js +6 -0
- package/esm2015/lib/datasources/index.js +6 -0
- package/esm2015/lib/datasources/node-tree.datasource.js +179 -0
- package/esm2015/lib/directives/dialogTrigger.directive.js +47 -0
- package/esm2015/lib/directives/directives.module.js +20 -0
- package/esm2015/lib/directives/dnd.directive.js +57 -0
- package/esm2015/lib/models/asset-file.model.js +57 -0
- package/esm2015/lib/models/asset.model.js +135 -0
- package/esm2015/lib/models/file-type.enum.js +11 -0
- package/esm2015/lib/models/file.model.js +91 -0
- package/esm2015/lib/models/index.js +12 -0
- package/esm2015/lib/models/node-tree.model.js +32 -0
- package/esm2015/lib/models/sort.enum.js +23 -0
- package/esm2015/lib/pipes/datetime.pipe.js +79 -0
- package/esm2015/lib/pipes/file-size.pipe.js +54 -0
- package/esm2015/lib/services/asset.service.js +224 -0
- package/esm2015/lib/services/base.service.js +49 -0
- package/esm2015/lib/services/env-config.service.js +18 -0
- package/esm2015/lib/services/file.service.js +106 -0
- package/esm2015/lib/services/index.js +11 -0
- package/esm2015/lib/services/node-tree.service.js +212 -0
- package/esm2015/lib/services/upload-assets.service.js +203 -0
- package/esm2015/lib/store/actions.action.js +125 -0
- package/esm2015/lib/store/index.js +7 -0
- package/esm2015/lib/store/reducer.js +115 -0
- package/esm2015/public-api.js +34 -0
- package/esm2015/rs-pk-asset-management.js +17 -0
- package/esm5/lib/asset-management.component.js +162 -0
- package/esm5/lib/asset-management.module.js +180 -0
- package/esm5/lib/asset-management.service.js +54 -0
- package/esm5/lib/components/partial/add-folder-dialog/add-folder-dialog.component.js +161 -0
- package/esm5/lib/components/partial/asset-dialog/asset-dialog.component.js +417 -0
- package/esm5/lib/components/partial/asset-item/asset-item.component.js +184 -0
- package/esm5/lib/components/partial/asset-list/asset-list.component.js +266 -0
- package/esm5/lib/components/partial/asset-management-dialog/asset-management-dialog.component.js +123 -0
- package/esm5/lib/components/partial/asset-wrapper/asset-wrapper.component.js +115 -0
- package/esm5/lib/components/partial/breadcrumb/breadcrumb.component.js +138 -0
- package/esm5/lib/components/partial/delete-dialog/delete-dialog.component.js +154 -0
- package/esm5/lib/components/partial/edit-folder-dialog/edit-folder-dialog.component.js +166 -0
- package/esm5/lib/components/partial/file-item/file-item.component.js +151 -0
- package/esm5/lib/components/partial/file-list/file-list.component.js +93 -0
- package/esm5/lib/components/partial/folder-item/folder-item.component.js +126 -0
- package/esm5/lib/components/partial/folder-list/folder-list.component.js +82 -0
- package/esm5/lib/components/partial/node-details/node-details.component.js +443 -0
- package/esm5/lib/components/partial/node-tree/node-tree.component.js +413 -0
- package/esm5/lib/components/partial/search-box/search-box.component.js +184 -0
- package/esm5/lib/components/partial/sort-items/sort-items.component.js +107 -0
- package/esm5/lib/components/partial/upload-dialog/upload-dialog.component.js +151 -0
- package/esm5/lib/components/partial/upload-file/upload-file.component.js +130 -0
- package/esm5/lib/components/ui/drag-to-resize/drag-to-resize.component.js +117 -0
- package/esm5/lib/components/ui/input-file/input-file.component.js +55 -0
- package/esm5/lib/components/ui/modal/modal.component.js +39 -0
- package/esm5/lib/components/ui/search-not-found/search-not-found.component.js +43 -0
- package/esm5/lib/configs/admin.config.js +22 -0
- package/esm5/lib/contanst/data-image.js +12 -0
- package/esm5/lib/contanst/index.js +6 -0
- package/esm5/lib/datasources/index.js +6 -0
- package/esm5/lib/datasources/node-tree.datasource.js +239 -0
- package/esm5/lib/directives/dialogTrigger.directive.js +53 -0
- package/esm5/lib/directives/directives.module.js +25 -0
- package/esm5/lib/directives/dnd.directive.js +80 -0
- package/esm5/lib/models/asset-file.model.js +69 -0
- package/esm5/lib/models/asset.model.js +154 -0
- package/esm5/lib/models/file-type.enum.js +11 -0
- package/esm5/lib/models/file.model.js +99 -0
- package/esm5/lib/models/index.js +12 -0
- package/esm5/lib/models/node-tree.model.js +37 -0
- package/esm5/lib/models/sort.enum.js +23 -0
- package/esm5/lib/pipes/datetime.pipe.js +83 -0
- package/esm5/lib/pipes/file-size.pipe.js +63 -0
- package/esm5/lib/services/asset.service.js +274 -0
- package/esm5/lib/services/base.service.js +57 -0
- package/esm5/lib/services/env-config.service.js +18 -0
- package/esm5/lib/services/file.service.js +127 -0
- package/esm5/lib/services/index.js +11 -0
- package/esm5/lib/services/node-tree.service.js +278 -0
- package/esm5/lib/services/upload-assets.service.js +260 -0
- package/esm5/lib/store/actions.action.js +143 -0
- package/esm5/lib/store/index.js +7 -0
- package/esm5/lib/store/reducer.js +116 -0
- package/esm5/public-api.js +34 -0
- package/esm5/rs-pk-asset-management.js +17 -0
- package/fesm2015/rs-pk-asset-management.js +5429 -0
- package/fesm2015/rs-pk-asset-management.js.map +1 -0
- package/fesm5/rs-pk-asset-management.js +6244 -0
- package/fesm5/rs-pk-asset-management.js.map +1 -0
- package/lib/asset-management.component.d.ts +21 -0
- package/lib/asset-management.module.d.ts +5 -0
- package/lib/asset-management.service.d.ts +7 -0
- package/lib/components/partial/add-folder-dialog/add-folder-dialog.component.d.ts +27 -0
- package/lib/components/partial/asset-dialog/asset-dialog.component.d.ts +52 -0
- package/lib/components/partial/asset-item/asset-item.component.d.ts +25 -0
- package/lib/components/partial/asset-list/asset-list.component.d.ts +22 -0
- package/lib/components/partial/asset-management-dialog/asset-management-dialog.component.d.ts +17 -0
- package/lib/components/partial/asset-wrapper/asset-wrapper.component.d.ts +19 -0
- package/lib/components/partial/breadcrumb/breadcrumb.component.d.ts +17 -0
- package/lib/components/partial/delete-dialog/delete-dialog.component.d.ts +24 -0
- package/lib/components/partial/edit-folder-dialog/edit-folder-dialog.component.d.ts +28 -0
- package/lib/components/partial/file-item/file-item.component.d.ts +27 -0
- package/lib/components/partial/file-list/file-list.component.d.ts +12 -0
- package/lib/components/partial/folder-item/folder-item.component.d.ts +14 -0
- package/lib/components/partial/folder-list/folder-list.component.d.ts +11 -0
- package/lib/components/partial/node-details/node-details.component.d.ts +29 -0
- package/lib/components/partial/node-tree/node-tree.component.d.ts +34 -0
- package/lib/components/partial/search-box/search-box.component.d.ts +18 -0
- package/lib/components/partial/sort-items/sort-items.component.d.ts +21 -0
- package/lib/components/partial/upload-dialog/upload-dialog.component.d.ts +24 -0
- package/lib/components/partial/upload-file/upload-file.component.d.ts +18 -0
- package/lib/components/ui/drag-to-resize/drag-to-resize.component.d.ts +15 -0
- package/lib/components/ui/input-file/input-file.component.d.ts +9 -0
- package/lib/components/ui/modal/modal.component.d.ts +7 -0
- package/lib/components/ui/search-not-found/search-not-found.component.d.ts +8 -0
- package/lib/configs/admin.config.d.ts +3 -0
- package/lib/contanst/data-image.d.ts +3 -0
- package/lib/contanst/index.d.ts +1 -0
- package/lib/datasources/index.d.ts +1 -0
- package/lib/datasources/node-tree.datasource.d.ts +24 -0
- package/lib/directives/dialogTrigger.directive.d.ts +7 -0
- package/lib/directives/directives.module.d.ts +5 -0
- package/lib/directives/dnd.directive.d.ts +7 -0
- package/lib/models/asset-file.model.d.ts +26 -0
- package/lib/models/asset.model.d.ts +61 -0
- package/lib/models/file-type.enum.d.ts +4 -0
- package/lib/models/file.model.d.ts +41 -0
- package/lib/models/index.d.ts +7 -0
- package/lib/models/node-tree.model.d.ts +9 -0
- package/lib/models/sort.enum.d.ts +9 -0
- package/lib/pipes/datetime.pipe.d.ts +13 -0
- package/lib/pipes/file-size.pipe.d.ts +5 -0
- package/lib/services/asset.service.d.ts +35 -0
- package/lib/services/base.service.d.ts +20 -0
- package/lib/services/env-config.service.d.ts +7 -0
- package/lib/services/file.service.d.ts +13 -0
- package/lib/services/index.d.ts +6 -0
- package/lib/services/node-tree.service.d.ts +24 -0
- package/lib/services/upload-assets.service.d.ts +42 -0
- package/lib/store/actions.action.d.ts +51 -0
- package/lib/store/index.d.ts +2 -0
- package/lib/store/reducer.d.ts +18 -0
- package/package.json +28 -0
- package/public-api.d.ts +26 -0
- package/rs-pk-asset-management.d.ts +12 -0
- package/rs-pk-asset-management.metadata.json +1 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import { Component, Inject } from '@angular/core';
|
|
6
|
+
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
7
|
+
import { takeUntil } from 'rxjs/operators';
|
|
8
|
+
import { Subject } from 'rxjs';
|
|
9
|
+
import { FileService } from '../../../services/file.service';
|
|
10
|
+
import { AssetService } from '../../../services/asset.service';
|
|
11
|
+
/**
|
|
12
|
+
* @record
|
|
13
|
+
*/
|
|
14
|
+
function IData() { }
|
|
15
|
+
if (false) {
|
|
16
|
+
/** @type {?} */
|
|
17
|
+
IData.prototype.type;
|
|
18
|
+
/** @type {?} */
|
|
19
|
+
IData.prototype.ids;
|
|
20
|
+
/** @type {?|undefined} */
|
|
21
|
+
IData.prototype.name;
|
|
22
|
+
}
|
|
23
|
+
export class DeleteDialogComponent {
|
|
24
|
+
/**
|
|
25
|
+
* @param {?} data
|
|
26
|
+
* @param {?} dialogRef
|
|
27
|
+
* @param {?} fileService
|
|
28
|
+
* @param {?} assetService
|
|
29
|
+
*/
|
|
30
|
+
constructor(data, dialogRef, fileService, assetService) {
|
|
31
|
+
this.data = data;
|
|
32
|
+
this.dialogRef = dialogRef;
|
|
33
|
+
this.fileService = fileService;
|
|
34
|
+
this.assetService = assetService;
|
|
35
|
+
this.isLoading = false;
|
|
36
|
+
this.destroy$ = new Subject();
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* @return {?}
|
|
40
|
+
*/
|
|
41
|
+
ngOnInit() { }
|
|
42
|
+
/**
|
|
43
|
+
* @return {?}
|
|
44
|
+
*/
|
|
45
|
+
delete() {
|
|
46
|
+
this.isLoading = true;
|
|
47
|
+
this.fileService
|
|
48
|
+
.deleteFile(this.data.ids)
|
|
49
|
+
.pipe(takeUntil(this.destroy$))
|
|
50
|
+
.subscribe((/**
|
|
51
|
+
* @param {?} _res
|
|
52
|
+
* @return {?}
|
|
53
|
+
*/
|
|
54
|
+
(_res) => {
|
|
55
|
+
this.handleAssetPaging();
|
|
56
|
+
this.isLoading = false;
|
|
57
|
+
this.closeDialog(true);
|
|
58
|
+
}), (/**
|
|
59
|
+
* @param {?} _err
|
|
60
|
+
* @return {?}
|
|
61
|
+
*/
|
|
62
|
+
(_err) => {
|
|
63
|
+
this.isLoading = false;
|
|
64
|
+
console.log('deleted fail', _err);
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* @private
|
|
69
|
+
* @return {?}
|
|
70
|
+
*/
|
|
71
|
+
handleAssetPaging() {
|
|
72
|
+
this.assetService
|
|
73
|
+
.getAssetList()
|
|
74
|
+
.pipe(takeUntil(this.destroy$))
|
|
75
|
+
.subscribe((/**
|
|
76
|
+
* @param {?} assets
|
|
77
|
+
* @return {?}
|
|
78
|
+
*/
|
|
79
|
+
(assets) => {
|
|
80
|
+
if (assets &&
|
|
81
|
+
assets.length === this.data.ids.length &&
|
|
82
|
+
this.assetService.pageIndex > 0) {
|
|
83
|
+
this.assetService.pageIndex--;
|
|
84
|
+
}
|
|
85
|
+
}));
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* @param {?=} res
|
|
89
|
+
* @return {?}
|
|
90
|
+
*/
|
|
91
|
+
closeDialog(res) {
|
|
92
|
+
this.dialogRef.close(res);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* @return {?}
|
|
96
|
+
*/
|
|
97
|
+
ngOnDestroy() {
|
|
98
|
+
this.destroy$.next(true);
|
|
99
|
+
this.destroy$.complete();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
DeleteDialogComponent.decorators = [
|
|
103
|
+
{ type: Component, args: [{
|
|
104
|
+
selector: 'lib-delete-dialog',
|
|
105
|
+
template: "<ng-container *ngIf=\"data?.type === 'folder'\">\n <lib-modal heading=\"Delete folder\">\n <ng-container content>\n <div>\n Are you sure you want to delete folder{{ ' ' }}\n <strong class=\"file__name\">{{ data.name }}</strong\n >?\n </div>\n </ng-container>\n <ng-container actions *ngTemplateOutlet=\"deleteAction\"></ng-container>\n </lib-modal>\n</ng-container>\n\n<ng-container *ngIf=\"data?.type === 'file'\">\n <lib-modal heading=\"Delete file\">\n <ng-container content>\n <div>\n Are you sure you want to delete file{{ ' ' }}\n <strong class=\"file__name\">{{ ' ' }}{{ data.name }}</strong\n >?\n </div>\n </ng-container>\n <ng-container actions *ngTemplateOutlet=\"deleteAction\"></ng-container>\n </lib-modal>\n</ng-container>\n\n<ng-container *ngIf=\"data?.type === 'files'\">\n <lib-modal heading=\"Delete files\">\n <ng-container content>\n <div>\n Are you sure you want to delete\n <strong *ngIf=\"data?.ids?.length > 1; else singular\"\n >{{ data?.ids?.length }} files</strong\n >\n <ng-template #singular>\n <strong>{{ data?.ids?.length }} file</strong> </ng-template\n >?\n </div>\n </ng-container>\n <ng-container actions *ngTemplateOutlet=\"deleteAction\"></ng-container>\n </lib-modal>\n</ng-container>\n\n<ng-template #deleteAction>\n <button mat-raised-button mat-dialog-close>No</button>\n <button\n mat-raised-button\n color=\"warn\"\n (click)=\"delete()\"\n class=\"file__button delete__action\"\n [class.loading]=\"isLoading\"\n [disabled]=\"isLoading\"\n >\n <ng-container *ngIf=\"isLoading\">\n <mat-spinner [diameter]=\"20\"></mat-spinner>\n </ng-container>\n <span>Yes</span>\n </button>\n</ng-template>\n",
|
|
106
|
+
styles: [""]
|
|
107
|
+
}] }
|
|
108
|
+
];
|
|
109
|
+
/** @nocollapse */
|
|
110
|
+
DeleteDialogComponent.ctorParameters = () => [
|
|
111
|
+
{ type: undefined, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] },
|
|
112
|
+
{ type: MatDialogRef },
|
|
113
|
+
{ type: FileService },
|
|
114
|
+
{ type: AssetService }
|
|
115
|
+
];
|
|
116
|
+
if (false) {
|
|
117
|
+
/** @type {?} */
|
|
118
|
+
DeleteDialogComponent.prototype.isLoading;
|
|
119
|
+
/**
|
|
120
|
+
* @type {?}
|
|
121
|
+
* @private
|
|
122
|
+
*/
|
|
123
|
+
DeleteDialogComponent.prototype.destroy$;
|
|
124
|
+
/** @type {?} */
|
|
125
|
+
DeleteDialogComponent.prototype.data;
|
|
126
|
+
/** @type {?} */
|
|
127
|
+
DeleteDialogComponent.prototype.dialogRef;
|
|
128
|
+
/**
|
|
129
|
+
* @type {?}
|
|
130
|
+
* @private
|
|
131
|
+
*/
|
|
132
|
+
DeleteDialogComponent.prototype.fileService;
|
|
133
|
+
/**
|
|
134
|
+
* @type {?}
|
|
135
|
+
* @private
|
|
136
|
+
*/
|
|
137
|
+
DeleteDialogComponent.prototype.assetService;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcnMtcGsvYXNzZXQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3BhcnRpYWwvZGVsZXRlLWRpYWxvZy9kZWxldGUtZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7OztBQUUvRCxvQkFJQzs7O0lBSEMscUJBQWtDOztJQUNsQyxvQkFBYzs7SUFDZCxxQkFBYzs7QUFRaEIsTUFBTSxPQUFPLHFCQUFxQjs7Ozs7OztJQUdoQyxZQUVTLElBQVcsRUFDWCxTQUE4QyxFQUM3QyxXQUF3QixFQUN4QixZQUEwQjtRQUgzQixTQUFJLEdBQUosSUFBSSxDQUFPO1FBQ1gsY0FBUyxHQUFULFNBQVMsQ0FBcUM7UUFDN0MsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFQN0IsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQXFCLElBQUksT0FBTyxFQUFFLENBQUM7SUFPaEQsQ0FBQzs7OztJQUVKLFFBQVEsS0FBSSxDQUFDOzs7O0lBRWIsTUFBTTtRQUNKLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXO2FBQ2IsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVM7Ozs7UUFDUixDQUFDLElBQXNCLEVBQUUsRUFBRTtZQUN6QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLENBQUM7Ozs7UUFDRCxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1AsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxFQUNGLENBQUM7SUFDTixDQUFDOzs7OztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsWUFBWTthQUNkLFlBQVksRUFBRTthQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVM7Ozs7UUFBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3BCLElBQ0UsTUFBTTtnQkFDTixNQUFNLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU07Z0JBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLENBQUMsRUFDL0I7Z0JBQ0EsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUMvQjtRQUNILENBQUMsRUFBQyxDQUFDO0lBQ1AsQ0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsR0FBYTtRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QixDQUFDOzs7O0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7O1lBMURGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixrekRBQTZDOzthQUU5Qzs7Ozs0Q0FLSSxNQUFNLFNBQUMsZUFBZTtZQXRCbEIsWUFBWTtZQUdaLFdBQVc7WUFFWCxZQUFZOzs7O0lBY25CLDBDQUF5Qjs7Ozs7SUFDekIseUNBQW1EOztJQUVqRCxxQ0FDa0I7O0lBQ2xCLDBDQUFxRDs7Ozs7SUFDckQsNENBQWdDOzs7OztJQUNoQyw2Q0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IElBc3NldERldGFpbHNSZXMgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQXNzZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXNzZXQuc2VydmljZSc7XG5cbmludGVyZmFjZSBJRGF0YSB7XG4gIHR5cGU6ICdmaWxlJyB8ICdmb2xkZXInIHwgJ2ZpbGVzJztcbiAgaWRzOiBzdHJpbmdbXTtcbiAgbmFtZT86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWRlbGV0ZS1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGVsZXRlLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RlbGV0ZS1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRGVsZXRlRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgaXNMb2FkaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSlcbiAgICBwdWJsaWMgZGF0YTogSURhdGEsXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPERlbGV0ZURpYWxvZ0NvbXBvbmVudD4sXG4gICAgcHJpdmF0ZSBmaWxlU2VydmljZTogRmlsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhc3NldFNlcnZpY2U6IEFzc2V0U2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIGRlbGV0ZSgpIHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5maWxlU2VydmljZVxuICAgICAgLmRlbGV0ZUZpbGUodGhpcy5kYXRhLmlkcylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIChfcmVzOiBJQXNzZXREZXRhaWxzUmVzKSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVBc3NldFBhZ2luZygpO1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5jbG9zZURpYWxvZyh0cnVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgKF9lcnIpID0+IHtcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdkZWxldGVkIGZhaWwnLCBfZXJyKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQXNzZXRQYWdpbmcoKSB7XG4gICAgdGhpcy5hc3NldFNlcnZpY2VcbiAgICAgIC5nZXRBc3NldExpc3QoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoYXNzZXRzKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBhc3NldHMgJiZcbiAgICAgICAgICBhc3NldHMubGVuZ3RoID09PSB0aGlzLmRhdGEuaWRzLmxlbmd0aCAmJlxuICAgICAgICAgIHRoaXMuYXNzZXRTZXJ2aWNlLnBhZ2VJbmRleCA+IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5hc3NldFNlcnZpY2UucGFnZUluZGV4LS07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgY2xvc2VEaWFsb2cocmVzPzogYm9vbGVhbikge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHJlcyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import { Component, Inject } from '@angular/core';
|
|
6
|
+
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
7
|
+
import { takeUntil } from 'rxjs/operators';
|
|
8
|
+
import { Subject } from 'rxjs';
|
|
9
|
+
import { FileService } from '../../../services/file.service';
|
|
10
|
+
import { FormBuilder, FormControl, Validators, } from '@angular/forms';
|
|
11
|
+
/**
|
|
12
|
+
* @record
|
|
13
|
+
*/
|
|
14
|
+
function IData() { }
|
|
15
|
+
if (false) {
|
|
16
|
+
/** @type {?} */
|
|
17
|
+
IData.prototype.assetId;
|
|
18
|
+
/** @type {?} */
|
|
19
|
+
IData.prototype.name;
|
|
20
|
+
}
|
|
21
|
+
export class EditFolderDialogComponent {
|
|
22
|
+
/**
|
|
23
|
+
* @param {?} fb
|
|
24
|
+
* @param {?} data
|
|
25
|
+
* @param {?} dialogRef
|
|
26
|
+
* @param {?} fileService
|
|
27
|
+
*/
|
|
28
|
+
constructor(fb, data, dialogRef, fileService) {
|
|
29
|
+
this.fb = fb;
|
|
30
|
+
this.data = data;
|
|
31
|
+
this.dialogRef = dialogRef;
|
|
32
|
+
this.fileService = fileService;
|
|
33
|
+
this.isLoading = false;
|
|
34
|
+
this.errorMessage = '';
|
|
35
|
+
this.value = '';
|
|
36
|
+
this.destroy$ = new Subject();
|
|
37
|
+
this.form = new FormControl();
|
|
38
|
+
this.formGroup = this.fb.group({
|
|
39
|
+
name: [this.data.name, Validators.compose([Validators.required])],
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* @return {?}
|
|
44
|
+
*/
|
|
45
|
+
ngOnInit() { }
|
|
46
|
+
/**
|
|
47
|
+
* @return {?}
|
|
48
|
+
*/
|
|
49
|
+
get disabled() {
|
|
50
|
+
const { value: name } = this.formGroup.controls.name;
|
|
51
|
+
return (!name ||
|
|
52
|
+
!!this.errorMessage ||
|
|
53
|
+
name.toLowerCase().trim() === this.data.name.toLowerCase() ||
|
|
54
|
+
this.isLoading);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* @param {?} _event
|
|
58
|
+
* @return {?}
|
|
59
|
+
*/
|
|
60
|
+
onChange(_event) {
|
|
61
|
+
this.errorMessage = '';
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* @return {?}
|
|
65
|
+
*/
|
|
66
|
+
editFolder() {
|
|
67
|
+
const { value: name } = this.formGroup.controls.name;
|
|
68
|
+
this.isLoading = true;
|
|
69
|
+
this.fileService
|
|
70
|
+
.updateFile({
|
|
71
|
+
assetId: this.data.assetId,
|
|
72
|
+
fileName: name.trim(),
|
|
73
|
+
})
|
|
74
|
+
.pipe(takeUntil(this.destroy$))
|
|
75
|
+
.subscribe((/**
|
|
76
|
+
* @param {?} _res
|
|
77
|
+
* @return {?}
|
|
78
|
+
*/
|
|
79
|
+
(_res) => this.closeDialog(true)), (/**
|
|
80
|
+
* @param {?} err
|
|
81
|
+
* @return {?}
|
|
82
|
+
*/
|
|
83
|
+
err => {
|
|
84
|
+
this.isLoading = false;
|
|
85
|
+
this.errorMessage = err.ResponseMessage;
|
|
86
|
+
}));
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* @param {?=} res
|
|
90
|
+
* @return {?}
|
|
91
|
+
*/
|
|
92
|
+
closeDialog(res) {
|
|
93
|
+
this.dialogRef.close(res);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* @return {?}
|
|
97
|
+
*/
|
|
98
|
+
ngOnDestroy() {
|
|
99
|
+
this.destroy$.next(true);
|
|
100
|
+
this.destroy$.complete();
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
EditFolderDialogComponent.decorators = [
|
|
104
|
+
{ type: Component, args: [{
|
|
105
|
+
selector: 'lib-edit-folder-dialog',
|
|
106
|
+
template: "<lib-modal heading=\"Rename folder\">\n <ng-container content>\n <form (ngSubmit)=\"editFolder()\" [formGroup]=\"formGroup\" #form=\"ngForm\">\n <input\n matInput\n required\n autocomplete=\"off\"\n formControlName=\"name\"\n (input)=\"onChange($event)\"\n placeholder=\"Enter your folder name\"\n pattern=\".*\\S+.*\"\n />\n <mat-error *ngIf=\"formGroup?.controls?.name?.errors?.pattern\">\n This field does not allow only whitespace\n </mat-error>\n <mat-error *ngIf=\"errorMessage\">{{ errorMessage }}</mat-error>\n </form>\n </ng-container>\n <ng-container actions>\n <button mat-raised-button mat-dialog-close>Cancel</button>\n <button\n mat-raised-button\n color=\"primary\"\n (click)=\"editFolder()\"\n [class.loading]=\"isLoading\"\n [disabled]=\"disabled || formGroup?.controls?.name?.errors?.pattern\"\n >\n <ng-container *ngIf=\"isLoading\">\n <mat-spinner [diameter]=\"20\"></mat-spinner>\n </ng-container>\n <span>Update</span>\n </button>\n </ng-container>\n</lib-modal>\n",
|
|
107
|
+
styles: [":host::ng-deep .mat-dialog-title{padding-bottom:0!important}:host::ng-deep form{position:relative}:host::ng-deep form .mat-error{margin-top:0;position:absolute;left:0;bottom:-20px;line-height:15px;font-size:13px}:host::ng-deep .mat-dialog-content{padding-top:24px;padding-bottom:24px}:host::ng-deep .mat-dialog-actions{padding-top:5px}"]
|
|
108
|
+
}] }
|
|
109
|
+
];
|
|
110
|
+
/** @nocollapse */
|
|
111
|
+
EditFolderDialogComponent.ctorParameters = () => [
|
|
112
|
+
{ type: FormBuilder },
|
|
113
|
+
{ type: undefined, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] },
|
|
114
|
+
{ type: MatDialogRef },
|
|
115
|
+
{ type: FileService }
|
|
116
|
+
];
|
|
117
|
+
if (false) {
|
|
118
|
+
/** @type {?} */
|
|
119
|
+
EditFolderDialogComponent.prototype.isLoading;
|
|
120
|
+
/** @type {?} */
|
|
121
|
+
EditFolderDialogComponent.prototype.errorMessage;
|
|
122
|
+
/** @type {?} */
|
|
123
|
+
EditFolderDialogComponent.prototype.value;
|
|
124
|
+
/**
|
|
125
|
+
* @type {?}
|
|
126
|
+
* @private
|
|
127
|
+
*/
|
|
128
|
+
EditFolderDialogComponent.prototype.destroy$;
|
|
129
|
+
/** @type {?} */
|
|
130
|
+
EditFolderDialogComponent.prototype.formGroup;
|
|
131
|
+
/** @type {?} */
|
|
132
|
+
EditFolderDialogComponent.prototype.form;
|
|
133
|
+
/**
|
|
134
|
+
* @type {?}
|
|
135
|
+
* @private
|
|
136
|
+
*/
|
|
137
|
+
EditFolderDialogComponent.prototype.fb;
|
|
138
|
+
/** @type {?} */
|
|
139
|
+
EditFolderDialogComponent.prototype.data;
|
|
140
|
+
/** @type {?} */
|
|
141
|
+
EditFolderDialogComponent.prototype.dialogRef;
|
|
142
|
+
/**
|
|
143
|
+
* @type {?}
|
|
144
|
+
* @private
|
|
145
|
+
*/
|
|
146
|
+
EditFolderDialogComponent.prototype.fileService;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1mb2xkZXItZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bycy1way9hc3NldC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGFydGlhbC9lZGl0LWZvbGRlci1kaWFsb2cvZWRpdC1mb2xkZXItZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTdELE9BQU8sRUFDTCxXQUFXLEVBQ1gsV0FBVyxFQUVYLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRXhCLG9CQUdDOzs7SUFGQyx3QkFBZ0I7O0lBQ2hCLHFCQUFhOztBQVFmLE1BQU0sT0FBTyx5QkFBeUI7Ozs7Ozs7SUFPcEMsWUFDVSxFQUFlLEVBQ1MsSUFBVyxFQUNwQyxTQUFrRCxFQUNqRCxXQUF3QjtRQUh4QixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ1MsU0FBSSxHQUFKLElBQUksQ0FBTztRQUNwQyxjQUFTLEdBQVQsU0FBUyxDQUF5QztRQUNqRCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQVYzQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDVixhQUFRLEdBQXFCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFNUMsU0FBSSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBTzNDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDN0IsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1NBQ2xFLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7SUFFRCxRQUFRLEtBQUksQ0FBQzs7OztJQUViLElBQUksUUFBUTtjQUNKLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUk7UUFDcEQsT0FBTyxDQUNMLENBQUMsSUFBSTtZQUNMLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWTtZQUNuQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzFELElBQUksQ0FBQyxTQUFTLENBQ2YsQ0FBQztJQUNKLENBQUM7Ozs7O0lBRUQsUUFBUSxDQUFDLE1BQWE7UUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDekIsQ0FBQzs7OztJQUVELFVBQVU7Y0FDRixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJO1FBQ3BELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXO2FBQ2IsVUFBVSxDQUFDO1lBQ1YsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUMxQixRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTtTQUN0QixDQUFDO2FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUzs7OztRQUNSLENBQUMsSUFBc0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Ozs7UUFDbEQsR0FBRyxDQUFDLEVBQUU7WUFDSixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUM7UUFDMUMsQ0FBQyxFQUNGLENBQUM7SUFDTixDQUFDOzs7OztJQUVELFdBQVcsQ0FBQyxHQUFhO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7Ozs7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzs7WUFoRUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLDRuQ0FBa0Q7O2FBRW5EOzs7O1lBZkMsV0FBVzs0Q0F5QlIsTUFBTSxTQUFDLGVBQWU7WUEvQmxCLFlBQVk7WUFHWixXQUFXOzs7O0lBb0JsQiw4Q0FBeUI7O0lBQ3pCLGlEQUF5Qjs7SUFDekIsMENBQWtCOzs7OztJQUNsQiw2Q0FBbUQ7O0lBQ25ELDhDQUE0Qjs7SUFDNUIseUNBQTZDOzs7OztJQUUzQyx1Q0FBdUI7O0lBQ3ZCLHlDQUEyQzs7SUFDM0MsOENBQXlEOzs7OztJQUN6RCxnREFBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IElBc3NldFVwZGF0ZWRSZXMgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgRm9ybUJ1aWxkZXIsXG4gIEZvcm1Db250cm9sLFxuICBGb3JtR3JvdXAsXG4gIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW50ZXJmYWNlIElEYXRhIHtcbiAgYXNzZXRJZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1lZGl0LWZvbGRlci1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdC1mb2xkZXItZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWRpdC1mb2xkZXItZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEVkaXRGb2xkZXJEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgcHVibGljIGVycm9yTWVzc2FnZSA9ICcnO1xuICBwdWJsaWMgdmFsdWUgPSAnJztcbiAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0KCk7XG4gIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgcHVibGljIGZvcm06IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogSURhdGEsXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEVkaXRGb2xkZXJEaWFsb2dDb21wb25lbnQ+LFxuICAgIHByaXZhdGUgZmlsZVNlcnZpY2U6IEZpbGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBuYW1lOiBbdGhpcy5kYXRhLm5hbWUsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXSxcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge31cblxuICBnZXQgZGlzYWJsZWQoKSB7XG4gICAgY29uc3QgeyB2YWx1ZTogbmFtZSB9ID0gdGhpcy5mb3JtR3JvdXAuY29udHJvbHMubmFtZTtcbiAgICByZXR1cm4gKFxuICAgICAgIW5hbWUgfHxcbiAgICAgICEhdGhpcy5lcnJvck1lc3NhZ2UgfHxcbiAgICAgIG5hbWUudG9Mb3dlckNhc2UoKS50cmltKCkgPT09IHRoaXMuZGF0YS5uYW1lLnRvTG93ZXJDYXNlKCkgfHxcbiAgICAgIHRoaXMuaXNMb2FkaW5nXG4gICAgKTtcbiAgfVxuXG4gIG9uQ2hhbmdlKF9ldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICcnO1xuICB9XG5cbiAgZWRpdEZvbGRlcigpIHtcbiAgICBjb25zdCB7IHZhbHVlOiBuYW1lIH0gPSB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5uYW1lO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmZpbGVTZXJ2aWNlXG4gICAgICAudXBkYXRlRmlsZSh7XG4gICAgICAgIGFzc2V0SWQ6IHRoaXMuZGF0YS5hc3NldElkLFxuICAgICAgICBmaWxlTmFtZTogbmFtZS50cmltKCksXG4gICAgICB9KVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKF9yZXM6IElBc3NldFVwZGF0ZWRSZXMpID0+IHRoaXMuY2xvc2VEaWFsb2codHJ1ZSksXG4gICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVyci5SZXNwb25zZU1lc3NhZ2U7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBjbG9zZURpYWxvZyhyZXM/OiBib29sZWFuKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UocmVzKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import { Component, Output, Input, EventEmitter } from '@angular/core';
|
|
6
|
+
import { UploadAssetsService } from '../../../services/upload-assets.service';
|
|
7
|
+
import { imagePdf } from '../../../contanst';
|
|
8
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
9
|
+
export class FileItemComponent {
|
|
10
|
+
/**
|
|
11
|
+
* @param {?} domSanitizer
|
|
12
|
+
* @param {?} uploadAssetService
|
|
13
|
+
*/
|
|
14
|
+
constructor(domSanitizer, uploadAssetService) {
|
|
15
|
+
this.domSanitizer = domSanitizer;
|
|
16
|
+
this.uploadAssetService = uploadAssetService;
|
|
17
|
+
this.base64Pdf = this.domSanitizer.bypassSecurityTrustUrl(imagePdf);
|
|
18
|
+
this.checkError = new EventEmitter();
|
|
19
|
+
this.fileChange = new EventEmitter();
|
|
20
|
+
this.fileRemove = new EventEmitter();
|
|
21
|
+
this.dataFile = {
|
|
22
|
+
name: '',
|
|
23
|
+
size: 0,
|
|
24
|
+
ext: '',
|
|
25
|
+
data: null,
|
|
26
|
+
errors: {
|
|
27
|
+
ext: false,
|
|
28
|
+
size: false,
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* @return {?}
|
|
34
|
+
*/
|
|
35
|
+
ngOnInit() {
|
|
36
|
+
this.setDataFile(this.file);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* @private
|
|
40
|
+
* @param {?} file
|
|
41
|
+
* @return {?}
|
|
42
|
+
*/
|
|
43
|
+
setDataFile(file) {
|
|
44
|
+
const { supportedTypes, supportedSize } = this.uploadAssetService;
|
|
45
|
+
/** @type {?} */
|
|
46
|
+
const nameSplit = file.name.split('.');
|
|
47
|
+
nameSplit.splice(nameSplit.length - 1, 1);
|
|
48
|
+
this.dataFile.name = nameSplit.join('.');
|
|
49
|
+
this.dataFile.size = file.size;
|
|
50
|
+
this.dataFile.ext = file.type.split('/')[1];
|
|
51
|
+
this.dataFile.errors = {
|
|
52
|
+
ext: supportedTypes.indexOf(`.${this.dataFile.ext}`) < 0,
|
|
53
|
+
size: supportedSize < this.dataFile.size,
|
|
54
|
+
};
|
|
55
|
+
const { ext, size } = this.dataFile.errors;
|
|
56
|
+
if (ext || size) {
|
|
57
|
+
this.uploadAssetService.errors = { [file.name]: true };
|
|
58
|
+
this.checkError.emit();
|
|
59
|
+
}
|
|
60
|
+
if (file.type.indexOf('image') > -1) {
|
|
61
|
+
/** @type {?} */
|
|
62
|
+
const reader = new FileReader();
|
|
63
|
+
reader.readAsDataURL(file);
|
|
64
|
+
reader.onload = (/**
|
|
65
|
+
* @param {?} readerEvent
|
|
66
|
+
* @return {?}
|
|
67
|
+
*/
|
|
68
|
+
(readerEvent) => {
|
|
69
|
+
/** @type {?} */
|
|
70
|
+
const img = document.createElement('img');
|
|
71
|
+
img.src = (/** @type {?} */ (readerEvent.target.result));
|
|
72
|
+
img.onload = (/**
|
|
73
|
+
* @return {?}
|
|
74
|
+
*/
|
|
75
|
+
() => {
|
|
76
|
+
this.dataFile.data = this.domSanitizer.bypassSecurityTrustUrl(readerEvent.target.result);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
this.uploadAssetService.setErrorObs(this.uploadAssetService.errorFiles);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* @param {?} event
|
|
84
|
+
* @return {?}
|
|
85
|
+
*/
|
|
86
|
+
onChange(event) {
|
|
87
|
+
this.dataFile.name = ((/** @type {?} */ (event.target))).value.trim();
|
|
88
|
+
this.fileChange.emit(this.dataFile.name);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* @return {?}
|
|
92
|
+
*/
|
|
93
|
+
onRemove() {
|
|
94
|
+
this.fileRemove.emit(true);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
FileItemComponent.decorators = [
|
|
98
|
+
{ type: Component, args: [{
|
|
99
|
+
selector: 'lib-file-item',
|
|
100
|
+
template: "<div class=\"file-item__img\">\n <ng-container\n *ngIf=\"\n file.type.indexOf('image') > -1 || dataFile.ext === 'pdf';\n else defaultFile\n \"\n >\n <img\n [class.image]=\"file.type.indexOf('image') > -1\"\n *ngIf=\"dataFile.ext === 'pdf' || dataFile.data\"\n [src]=\"dataFile.ext === 'pdf' ? base64Pdf : dataFile.data\"\n />\n </ng-container>\n <ng-template #defaultFile>\n <mat-icon>attach_file</mat-icon>\n </ng-template>\n</div>\n<div class=\"file-item__content\">\n <input\n class=\"file-item__content--name\"\n matInput\n placeholder=\"Enter file name\"\n [value]=\"dataFile.name\"\n required\n (input)=\"onChange($event)\"\n />\n <div class=\"file-item__content--info\">\n <div class=\"file-item__content--info__item\">\n Type of file: <span>{{ dataFile.ext }}</span>\n </div>\n <div class=\"file-item__content--info__item\">\n Size: <span>{{ dataFile.size | fileSize }}</span>\n </div>\n </div>\n <div *ngIf=\"dataFile.errors.ext\" class=\"file-item__error\">\n {{ uploadAssetService.messageErrors['ext'] }}\n {{ uploadAssetService.supportedTypes.join(', ') }}\n </div>\n <div *ngIf=\"dataFile.errors.size\" class=\"file-item__error\">\n {{ uploadAssetService.messageErrors['size'] }}\n {{ uploadAssetService.supportedSize | fileSize: 0 }}\n </div>\n</div>\n<div class=\"file-item__action\">\n <mat-icon (click)=\"onRemove()\">delete_outline</mat-icon>\n</div>\n",
|
|
101
|
+
styles: [":host::ng-deep{padding:10px 5%;display:flex;justify-content:space-between;align-items:center;background-color:#f9f9f9;border-radius:10px}:host::ng-deep .file-item__img{display:flex;justify-content:center;align-items:center;width:250px;height:150px;border-radius:10px}:host::ng-deep .file-item__img img{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain}:host::ng-deep .file-item__img img.image{background-image:url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAAUABQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+/ivFPFOf+EjvxzjbBgdv+PeDp+OfxzSt4q18AkageASB9ntu3OM+Vn8c5rsdG0fT9d06DVdUgN1f3XmefP5ksO/ypXhj/dwvHGu2ONF+VF3bQSM0AeYUV7IPCWgjgWRA/wCvi4P85SaKAPGm5Vh7H+VeyeERjQLEDoPP/WeQ/wAzRRQB0tFFFAH/2Q==)}:host::ng-deep .file-item__img mat-icon{font-size:100px;width:auto;height:auto}:host::ng-deep .file-item__content{flex:1;padding-left:5%;padding-right:5%}:host::ng-deep .file-item__content--name{width:100%;padding:10px;border:1px solid #d8d8d8;border-radius:5px}:host::ng-deep .file-item__content--info{margin-top:10px;display:flex}:host::ng-deep .file-item__content--info__item:not(:last-child){margin-right:50px}:host::ng-deep .file-item__content--info__item span{color:#000;text-transform:uppercase}:host::ng-deep .file-item__error{margin-top:10px;color:#f44336}:host::ng-deep .file-item__action{color:#f44336;cursor:pointer}"]
|
|
102
|
+
}] }
|
|
103
|
+
];
|
|
104
|
+
/** @nocollapse */
|
|
105
|
+
FileItemComponent.ctorParameters = () => [
|
|
106
|
+
{ type: DomSanitizer },
|
|
107
|
+
{ type: UploadAssetsService }
|
|
108
|
+
];
|
|
109
|
+
FileItemComponent.propDecorators = {
|
|
110
|
+
file: [{ type: Input }],
|
|
111
|
+
checkError: [{ type: Output }],
|
|
112
|
+
fileChange: [{ type: Output }],
|
|
113
|
+
fileRemove: [{ type: Output }]
|
|
114
|
+
};
|
|
115
|
+
if (false) {
|
|
116
|
+
/** @type {?} */
|
|
117
|
+
FileItemComponent.prototype.base64Pdf;
|
|
118
|
+
/** @type {?} */
|
|
119
|
+
FileItemComponent.prototype.file;
|
|
120
|
+
/** @type {?} */
|
|
121
|
+
FileItemComponent.prototype.checkError;
|
|
122
|
+
/** @type {?} */
|
|
123
|
+
FileItemComponent.prototype.fileChange;
|
|
124
|
+
/** @type {?} */
|
|
125
|
+
FileItemComponent.prototype.fileRemove;
|
|
126
|
+
/** @type {?} */
|
|
127
|
+
FileItemComponent.prototype.dataFile;
|
|
128
|
+
/**
|
|
129
|
+
* @type {?}
|
|
130
|
+
* @private
|
|
131
|
+
*/
|
|
132
|
+
FileItemComponent.prototype.domSanitizer;
|
|
133
|
+
/** @type {?} */
|
|
134
|
+
FileItemComponent.prototype.uploadAssetService;
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bycy1way9hc3NldC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGFydGlhbC9maWxlLWl0ZW0vZmlsZS1pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBVyxNQUFNLDJCQUEyQixDQUFDO0FBTWxFLE1BQU0sT0FBTyxpQkFBaUI7Ozs7O0lBaUI1QixZQUNVLFlBQTBCLEVBQzNCLGtCQUF1QztRQUR0QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMzQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXFCO1FBbEJ6QyxjQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU1RCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuQyxhQUFRLEdBQUc7WUFDaEIsSUFBSSxFQUFFLEVBQUU7WUFDUixJQUFJLEVBQUUsQ0FBQztZQUNQLEdBQUcsRUFBRSxFQUFFO1lBQ1AsSUFBSSxFQUFFLElBQUk7WUFDVixNQUFNLEVBQUU7Z0JBQ04sR0FBRyxFQUFFLEtBQUs7Z0JBQ1YsSUFBSSxFQUFFLEtBQUs7YUFDWjtTQUNGLENBQUM7SUFLQyxDQUFDOzs7O0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxD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OztZQUxRLFlBQVk7WUFGWixtQkFBbUI7OzttQkFVekIsS0FBSzt5QkFDTCxNQUFNO3lCQUNOLE1BQU07eUJBQ04sTUFBTTs7OztJQUpQLHNDQUFzRTs7SUFDdEUsaUNBQW9COztJQUNwQix1Q0FBMEM7O0lBQzFDLHVDQUEwQzs7SUFDMUMsdUNBQTBDOztJQUMxQyxxQ0FTRTs7Ozs7SUFHQSx5Q0FBa0M7O0lBQ2xDLCtDQUE4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPdXRwdXQsIElucHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVwbG9hZEFzc2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91cGxvYWQtYXNzZXRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgaW1hZ2VQZGYgfSBmcm9tICcuLi8uLi8uLi9jb250YW5zdCc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1maWxlLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIGJhc2U2NFBkZiA9IHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwoaW1hZ2VQZGYpO1xuICBASW5wdXQoKSBmaWxlOiBGaWxlO1xuICBAT3V0cHV0KCkgY2hlY2tFcnJvciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGZpbGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBmaWxlUmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBwdWJsaWMgZGF0YUZpbGUgPSB7XG4gICAgbmFtZTogJycsXG4gICAgc2l6ZTogMCxcbiAgICBleHQ6ICcnLFxuICAgIGRhdGE6IG51bGwsXG4gICAgZXJyb3JzOiB7XG4gICAgICBleHQ6IGZhbHNlLFxuICAgICAgc2l6ZTogZmFsc2UsXG4gICAgfSxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgIHB1YmxpYyB1cGxvYWRBc3NldFNlcnZpY2U6IFVwbG9hZEFzc2V0c1NlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2V0RGF0YUZpbGUodGhpcy5maWxlKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RGF0YUZpbGUoZmlsZTogRmlsZSk6IHZvaWQge1xuICAgIGNvbnN0IHsgc3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRlZFNpemUgfSA9IHRoaXMudXBsb2FkQXNzZXRTZXJ2aWNlO1xuICAgIGNvbnN0IG5hbWVTcGxpdCA9IGZpbGUubmFtZS5zcGxpdCgnLicpO1xuICAgIG5hbWVTcGxpdC5zcGxpY2UobmFtZVNwbGl0Lmxlbmd0aCAtIDEsIDEpO1xuICAgIHRoaXMuZGF0YUZpbGUubmFtZSA9IG5hbWVTcGxpdC5qb2luKCcuJyk7XG4gICAgdGhpcy5kYXRhRmlsZS5zaXplID0gZmlsZS5zaXplO1xuICAgIHRoaXMuZGF0YUZpbGUuZXh0ID0gZmlsZS50eXBlLnNwbGl0KCcvJylbMV07XG4gICAgdGhpcy5kYXRhRmlsZS5lcnJvcnMgPSB7XG4gICAgICBleHQ6IHN1cHBvcnRlZFR5cGVzLmluZGV4T2YoYC4ke3RoaXMuZGF0YUZpbGUuZXh0fWApIDwgMCxcbiAgICAgIHNpemU6IHN1cHBvcnRlZFNpemUgPCB0aGlzLmRhdGFGaWxlLnNpemUsXG4gICAgfTtcblxuICAgIGNvbnN0IHsgZXh0LCBzaXplIH0gPSB0aGlzLmRhdGFGaWxlLmVycm9ycztcbiAgICBpZiAoZXh0IHx8IHNpemUpIHtcbiAgICAgIHRoaXMudXBsb2FkQXNzZXRTZXJ2aWNlLmVycm9ycyA9IHsgW2ZpbGUubmFtZV06IHRydWUgfTtcbiAgICAgIHRoaXMuY2hlY2tFcnJvci5lbWl0KCk7XG4gICAgfVxuXG4gICAgaWYgKGZpbGUudHlwZS5pbmRleE9mKCdpbWFnZScpID4gLTEpIHtcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAocmVhZGVyRXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBpbWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTtcbiAgICAgICAgaW1nLnNyYyA9IHJlYWRlckV2ZW50LnRhcmdldC5yZXN1bHQgYXMgc3RyaW5nO1xuXG4gICAgICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5kYXRhRmlsZS5kYXRhID0gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybChcbiAgICAgICAgICAgIHJlYWRlckV2ZW50LnRhcmdldC5yZXN1bHRcbiAgICAgICAgICApO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLnVwbG9hZEFzc2V0U2VydmljZS5zZXRFcnJvck9icyh0aGlzLnVwbG9hZEFzc2V0U2VydmljZS5lcnJvckZpbGVzKTtcbiAgfVxuXG4gIG9uQ2hhbmdlKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuZGF0YUZpbGUubmFtZSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUudHJpbSgpO1xuICAgIHRoaXMuZmlsZUNoYW5nZS5lbWl0KHRoaXMuZGF0YUZpbGUubmFtZSk7XG4gIH1cblxuICBvblJlbW92ZSgpIHtcbiAgICB0aGlzLmZpbGVSZW1vdmUuZW1pdCh0cnVlKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import { Component, Output, EventEmitter } from '@angular/core';
|
|
6
|
+
import { UploadAssetsService } from '../../../services/upload-assets.service';
|
|
7
|
+
export class FileListComponent {
|
|
8
|
+
/**
|
|
9
|
+
* @param {?} uploadAssetsService
|
|
10
|
+
*/
|
|
11
|
+
constructor(uploadAssetsService) {
|
|
12
|
+
this.uploadAssetsService = uploadAssetsService;
|
|
13
|
+
this.revalidate = new EventEmitter();
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* @return {?}
|
|
17
|
+
*/
|
|
18
|
+
ngOnInit() { }
|
|
19
|
+
/**
|
|
20
|
+
* @param {?} newFiles
|
|
21
|
+
* @return {?}
|
|
22
|
+
*/
|
|
23
|
+
onFileChange(newFiles) {
|
|
24
|
+
const { getFiles: files } = this.uploadAssetsService;
|
|
25
|
+
this.uploadAssetsService.setFiles = [...files, ...newFiles];
|
|
26
|
+
((/** @type {?} */ (document.getElementById('file-import')))).value = '';
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @param {?} fileName
|
|
30
|
+
* @param {?} index
|
|
31
|
+
* @return {?}
|
|
32
|
+
*/
|
|
33
|
+
onDelFile(fileName, index) {
|
|
34
|
+
this.uploadAssetsService.deleteFile(fileName, index);
|
|
35
|
+
this.revalidate.emit(this.uploadAssetsService.errorFiles);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* @param {?} newName
|
|
39
|
+
* @param {?} originName
|
|
40
|
+
* @return {?}
|
|
41
|
+
*/
|
|
42
|
+
onChangeName(newName, originName) {
|
|
43
|
+
this.uploadAssetsService.newName = { [originName]: newName };
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* @return {?}
|
|
47
|
+
*/
|
|
48
|
+
onEmitError() {
|
|
49
|
+
this.revalidate.emit(this.uploadAssetsService.errorFiles);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
FileListComponent.decorators = [
|
|
53
|
+
{ type: Component, args: [{
|
|
54
|
+
selector: 'lib-file-list',
|
|
55
|
+
template: "<div class=\"file-list__heading\">\n <div class=\"file-list__info\">\n <h4 class=\"file-list__info--title\">\n <span *ngIf=\"!uploadAssetsService.errorLength\">\n {{\n uploadAssetsService?.getFiles?.length -\n uploadAssetsService.errorLength\n }}\n {{ uploadAssetsService?.getFiles?.length > 1 ? 'assets' : 'asset' }}\n ready to upload\n </span>\n <span *ngIf=\"uploadAssetsService.errorLength\">\n {{ uploadAssetsService.errorLength }}\n {{ uploadAssetsService.errorLength > 1 ? 'assets' : 'asset' }}\n invalid, please remove it before upload</span\n >\n </h4>\n <div class=\"file-list__info--desc\">\n Manage the assets before adding them to the Media Library\n </div>\n </div>\n <lib-input-file\n [acceptTypes]=\"uploadAssetsService?.supportedTypes?.join(', ')\"\n (onFileChange)=\"onFileChange($event)\"\n color=\"primary\"\n >\n <span>Add new assets</span>\n </lib-input-file>\n</div>\n<div class=\"file-list\">\n <lib-file-item\n *ngFor=\"let file of uploadAssetsService?.getFiles; let i = index\"\n [file]=\"file\"\n (checkError)=\"onEmitError()\"\n (fileRemove)=\"onDelFile(file.name, i)\"\n (fileChange)=\"onChangeName($event, file.name)\"\n ></lib-file-item>\n</div>\n",
|
|
56
|
+
styles: [":host::ng-deep .file-list{padding-top:15px}:host::ng-deep .file-list__heading{display:flex;justify-content:space-between;align-items:center;padding-top:15px;padding-bottom:15px;position:-webkit-sticky;position:sticky;top:0;background-color:#fff}:host::ng-deep .file-list__info--title{font-size:16px;margin-bottom:5px;color:#000}:host::ng-deep lib-file-item{margin-bottom:20px}"]
|
|
57
|
+
}] }
|
|
58
|
+
];
|
|
59
|
+
/** @nocollapse */
|
|
60
|
+
FileListComponent.ctorParameters = () => [
|
|
61
|
+
{ type: UploadAssetsService }
|
|
62
|
+
];
|
|
63
|
+
FileListComponent.propDecorators = {
|
|
64
|
+
revalidate: [{ type: Output }]
|
|
65
|
+
};
|
|
66
|
+
if (false) {
|
|
67
|
+
/** @type {?} */
|
|
68
|
+
FileListComponent.prototype.revalidate;
|
|
69
|
+
/** @type {?} */
|
|
70
|
+
FileListComponent.prototype.uploadAssetsService;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bycy1way9hc3NldC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGFydGlhbC9maWxlLWxpc3QvZmlsZS1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBTzlFLE1BQU0sT0FBTyxpQkFBaUI7Ozs7SUFFNUIsWUFBbUIsbUJBQXdDO1FBQXhDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFEakQsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDb0IsQ0FBQzs7OztJQUUvRCxRQUFRLEtBQUksQ0FBQzs7Ozs7SUFFYixZQUFZLENBQUMsUUFBZ0I7Y0FDckIsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLG1CQUFtQjtRQUNwRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxHQUFHLENBQUMsR0FBRyxLQUFLLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQztRQUM1RCxDQUFDLG1CQUFBLFFBQVEsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLEVBQW9CLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQzFFLENBQUM7Ozs7OztJQUVELFNBQVMsQ0FBQyxRQUFnQixFQUFFLEtBQWE7UUFDdkMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVELENBQUM7Ozs7OztJQUVELFlBQVksQ0FBQyxPQUFlLEVBQUUsVUFBa0I7UUFDOUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDL0QsQ0FBQzs7OztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUQsQ0FBQzs7O1lBNUJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsa3pDQUF5Qzs7YUFFMUM7Ozs7WUFOUSxtQkFBbUI7Ozt5QkFRekIsTUFBTTs7OztJQUFQLHVDQUEwQzs7SUFDOUIsZ0RBQStDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVcGxvYWRBc3NldHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXBsb2FkLWFzc2V0cy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWZpbGUtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWxlLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsZUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAT3V0cHV0KCkgcmV2YWxpZGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgY29uc3RydWN0b3IocHVibGljIHVwbG9hZEFzc2V0c1NlcnZpY2U6IFVwbG9hZEFzc2V0c1NlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIG9uRmlsZUNoYW5nZShuZXdGaWxlczogRmlsZVtdKTogdm9pZCB7XG4gICAgY29uc3QgeyBnZXRGaWxlczogZmlsZXMgfSA9IHRoaXMudXBsb2FkQXNzZXRzU2VydmljZTtcbiAgICB0aGlzLnVwbG9hZEFzc2V0c1NlcnZpY2Uuc2V0RmlsZXMgPSBbLi4uZmlsZXMsIC4uLm5ld0ZpbGVzXTtcbiAgICAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpbGUtaW1wb3J0JykgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUgPSAnJztcbiAgfVxuXG4gIG9uRGVsRmlsZShmaWxlTmFtZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy51cGxvYWRBc3NldHNTZXJ2aWNlLmRlbGV0ZUZpbGUoZmlsZU5hbWUsIGluZGV4KTtcbiAgICB0aGlzLnJldmFsaWRhdGUuZW1pdCh0aGlzLnVwbG9hZEFzc2V0c1NlcnZpY2UuZXJyb3JGaWxlcyk7XG4gIH1cblxuICBvbkNoYW5nZU5hbWUobmV3TmFtZTogc3RyaW5nLCBvcmlnaW5OYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLnVwbG9hZEFzc2V0c1NlcnZpY2UubmV3TmFtZSA9IHsgW29yaWdpbk5hbWVdOiBuZXdOYW1lIH07XG4gIH1cblxuICBvbkVtaXRFcnJvcigpOiB2b2lkIHtcbiAgICB0aGlzLnJldmFsaWRhdGUuZW1pdCh0aGlzLnVwbG9hZEFzc2V0c1NlcnZpY2UuZXJyb3JGaWxlcyk7XG4gIH1cbn1cbiJdfQ==
|