@rs-pk/asset-management 1.0.22 → 1.0.24

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.
Files changed (176) hide show
  1. package/README.md +24 -24
  2. package/bundles/rs-pk-asset-management.umd.js +6444 -6327
  3. package/bundles/rs-pk-asset-management.umd.js.map +1 -1
  4. package/bundles/rs-pk-asset-management.umd.min.js +2 -2
  5. package/bundles/rs-pk-asset-management.umd.min.js.map +1 -1
  6. package/esm2015/lib/asset-management.component.js +164 -152
  7. package/esm2015/lib/asset-management.module.js +178 -179
  8. package/esm2015/lib/asset-management.service.js +45 -45
  9. package/esm2015/lib/components/partial/add-folder-dialog/add-folder-dialog.component.js +146 -146
  10. package/esm2015/lib/components/partial/asset-dialog/asset-dialog.component.js +398 -395
  11. package/esm2015/lib/components/partial/asset-item/asset-item.component.js +316 -299
  12. package/esm2015/lib/components/partial/asset-list/asset-list.component.js +285 -273
  13. package/esm2015/lib/components/partial/asset-management-dialog/asset-management-dialog.component.js +123 -109
  14. package/esm2015/lib/components/partial/asset-wrapper/asset-wrapper.component.js +119 -100
  15. package/esm2015/lib/components/partial/breadcrumb/breadcrumb.component.js +121 -121
  16. package/esm2015/lib/components/partial/delete-dialog/delete-dialog.component.js +139 -139
  17. package/esm2015/lib/components/partial/edit-folder-dialog/edit-folder-dialog.component.js +151 -151
  18. package/esm2015/lib/components/partial/file-item/file-item.component.js +181 -181
  19. package/esm2015/lib/components/partial/file-list/file-list.component.js +73 -73
  20. package/esm2015/lib/components/partial/folder-item/folder-item.component.js +126 -114
  21. package/esm2015/lib/components/partial/folder-list/folder-list.component.js +81 -69
  22. package/esm2015/lib/components/partial/node-details/node-details.component.js +417 -403
  23. package/esm2015/lib/components/partial/node-tree/node-tree.component.js +330 -330
  24. package/esm2015/lib/components/partial/search-box/search-box.component.js +158 -158
  25. package/esm2015/lib/components/partial/sort-items/sort-items.component.js +99 -99
  26. package/esm2015/lib/components/partial/upload-dialog/upload-dialog.component.js +141 -141
  27. package/esm2015/lib/components/partial/upload-file/upload-file.component.js +85 -85
  28. package/esm2015/lib/components/ui/drag-to-resize/drag-to-resize.component.js +96 -96
  29. package/esm2015/lib/components/ui/input-file/input-file.component.js +49 -49
  30. package/esm2015/lib/components/ui/modal/modal.component.js +34 -34
  31. package/esm2015/lib/components/ui/search-not-found/search-not-found.component.js +41 -41
  32. package/esm2015/lib/configs/admin.config.js +22 -22
  33. package/esm2015/lib/contanst/data-image.js +20 -20
  34. package/esm2015/lib/contanst/index.js +6 -6
  35. package/esm2015/lib/datasources/index.js +6 -6
  36. package/esm2015/lib/datasources/node-tree.datasource.js +179 -179
  37. package/esm2015/lib/directives/dialogTrigger.directive.js +47 -47
  38. package/esm2015/lib/directives/directives.module.js +20 -20
  39. package/esm2015/lib/directives/dnd.directive.js +57 -57
  40. package/esm2015/lib/models/asset-file.model.js +57 -57
  41. package/esm2015/lib/models/asset.model.js +149 -149
  42. package/esm2015/lib/models/file-type.enum.js +11 -11
  43. package/esm2015/lib/models/file.model.js +91 -91
  44. package/esm2015/lib/models/index.js +12 -12
  45. package/esm2015/lib/models/node-tree.model.js +32 -32
  46. package/esm2015/lib/models/sort.enum.js +23 -23
  47. package/esm2015/lib/pipes/datetime.pipe.js +79 -79
  48. package/esm2015/lib/pipes/file-size.pipe.js +54 -54
  49. package/esm2015/lib/services/asset.service.js +229 -229
  50. package/esm2015/lib/services/base.service.js +49 -49
  51. package/esm2015/lib/services/env-config.service.js +18 -18
  52. package/esm2015/lib/services/file.service.js +106 -106
  53. package/esm2015/lib/services/index.js +11 -11
  54. package/esm2015/lib/services/node-tree.service.js +212 -212
  55. package/esm2015/lib/services/upload-assets.service.js +178 -178
  56. package/esm2015/lib/store/actions.action.js +125 -125
  57. package/esm2015/lib/store/index.js +7 -7
  58. package/esm2015/lib/store/reducer.js +115 -115
  59. package/esm2015/public-api.js +34 -34
  60. package/esm2015/rs-pk-asset-management.js +16 -16
  61. package/esm5/lib/asset-management.component.js +179 -167
  62. package/esm5/lib/asset-management.module.js +179 -180
  63. package/esm5/lib/asset-management.service.js +54 -54
  64. package/esm5/lib/components/partial/add-folder-dialog/add-folder-dialog.component.js +164 -164
  65. package/esm5/lib/components/partial/asset-dialog/asset-dialog.component.js +440 -437
  66. package/esm5/lib/components/partial/asset-item/asset-item.component.js +350 -333
  67. package/esm5/lib/components/partial/asset-list/asset-list.component.js +318 -306
  68. package/esm5/lib/components/partial/asset-management-dialog/asset-management-dialog.component.js +138 -124
  69. package/esm5/lib/components/partial/asset-wrapper/asset-wrapper.component.js +137 -115
  70. package/esm5/lib/components/partial/breadcrumb/breadcrumb.component.js +143 -143
  71. package/esm5/lib/components/partial/delete-dialog/delete-dialog.component.js +154 -154
  72. package/esm5/lib/components/partial/edit-folder-dialog/edit-folder-dialog.component.js +169 -169
  73. package/esm5/lib/components/partial/file-item/file-item.component.js +206 -206
  74. package/esm5/lib/components/partial/file-list/file-list.component.js +93 -93
  75. package/esm5/lib/components/partial/folder-item/folder-item.component.js +138 -126
  76. package/esm5/lib/components/partial/folder-list/folder-list.component.js +94 -82
  77. package/esm5/lib/components/partial/node-details/node-details.component.js +458 -444
  78. package/esm5/lib/components/partial/node-tree/node-tree.component.js +413 -413
  79. package/esm5/lib/components/partial/search-box/search-box.component.js +184 -184
  80. package/esm5/lib/components/partial/sort-items/sort-items.component.js +107 -107
  81. package/esm5/lib/components/partial/upload-dialog/upload-dialog.component.js +156 -156
  82. package/esm5/lib/components/partial/upload-file/upload-file.component.js +102 -102
  83. package/esm5/lib/components/ui/drag-to-resize/drag-to-resize.component.js +117 -117
  84. package/esm5/lib/components/ui/input-file/input-file.component.js +55 -55
  85. package/esm5/lib/components/ui/modal/modal.component.js +39 -39
  86. package/esm5/lib/components/ui/search-not-found/search-not-found.component.js +43 -43
  87. package/esm5/lib/configs/admin.config.js +22 -22
  88. package/esm5/lib/contanst/data-image.js +20 -20
  89. package/esm5/lib/contanst/index.js +6 -6
  90. package/esm5/lib/datasources/index.js +6 -6
  91. package/esm5/lib/datasources/node-tree.datasource.js +239 -239
  92. package/esm5/lib/directives/dialogTrigger.directive.js +53 -53
  93. package/esm5/lib/directives/directives.module.js +25 -25
  94. package/esm5/lib/directives/dnd.directive.js +80 -80
  95. package/esm5/lib/models/asset-file.model.js +69 -69
  96. package/esm5/lib/models/asset.model.js +168 -168
  97. package/esm5/lib/models/file-type.enum.js +11 -11
  98. package/esm5/lib/models/file.model.js +99 -99
  99. package/esm5/lib/models/index.js +12 -12
  100. package/esm5/lib/models/node-tree.model.js +37 -37
  101. package/esm5/lib/models/sort.enum.js +23 -23
  102. package/esm5/lib/pipes/datetime.pipe.js +83 -83
  103. package/esm5/lib/pipes/file-size.pipe.js +63 -63
  104. package/esm5/lib/services/asset.service.js +279 -279
  105. package/esm5/lib/services/base.service.js +57 -57
  106. package/esm5/lib/services/env-config.service.js +18 -18
  107. package/esm5/lib/services/file.service.js +127 -127
  108. package/esm5/lib/services/index.js +11 -11
  109. package/esm5/lib/services/node-tree.service.js +278 -278
  110. package/esm5/lib/services/upload-assets.service.js +207 -207
  111. package/esm5/lib/store/actions.action.js +143 -143
  112. package/esm5/lib/store/index.js +7 -7
  113. package/esm5/lib/store/reducer.js +116 -116
  114. package/esm5/public-api.js +34 -34
  115. package/esm5/rs-pk-asset-management.js +16 -16
  116. package/fesm2015/rs-pk-asset-management.js +5642 -5528
  117. package/fesm2015/rs-pk-asset-management.js.map +1 -1
  118. package/fesm5/rs-pk-asset-management.js +6448 -6331
  119. package/fesm5/rs-pk-asset-management.js.map +1 -1
  120. package/lib/asset-management.component.d.ts +25 -22
  121. package/lib/asset-management.module.d.ts +5 -5
  122. package/lib/asset-management.service.d.ts +7 -7
  123. package/lib/components/partial/add-folder-dialog/add-folder-dialog.component.d.ts +27 -27
  124. package/lib/components/partial/asset-dialog/asset-dialog.component.d.ts +65 -60
  125. package/lib/components/partial/asset-item/asset-item.component.d.ts +40 -37
  126. package/lib/components/partial/asset-list/asset-list.component.d.ts +27 -24
  127. package/lib/components/partial/asset-management-dialog/asset-management-dialog.component.d.ts +20 -17
  128. package/lib/components/partial/asset-wrapper/asset-wrapper.component.d.ts +23 -19
  129. package/lib/components/partial/breadcrumb/breadcrumb.component.d.ts +18 -18
  130. package/lib/components/partial/delete-dialog/delete-dialog.component.d.ts +24 -24
  131. package/lib/components/partial/edit-folder-dialog/edit-folder-dialog.component.d.ts +28 -28
  132. package/lib/components/partial/file-item/file-item.component.d.ts +36 -36
  133. package/lib/components/partial/file-list/file-list.component.d.ts +15 -15
  134. package/lib/components/partial/folder-item/folder-item.component.d.ts +17 -14
  135. package/lib/components/partial/folder-list/folder-list.component.d.ts +14 -11
  136. package/lib/components/partial/node-details/node-details.component.d.ts +32 -29
  137. package/lib/components/partial/node-tree/node-tree.component.d.ts +34 -34
  138. package/lib/components/partial/search-box/search-box.component.d.ts +18 -18
  139. package/lib/components/partial/sort-items/sort-items.component.d.ts +21 -21
  140. package/lib/components/partial/upload-dialog/upload-dialog.component.d.ts +25 -25
  141. package/lib/components/partial/upload-file/upload-file.component.d.ts +16 -16
  142. package/lib/components/ui/drag-to-resize/drag-to-resize.component.d.ts +15 -15
  143. package/lib/components/ui/input-file/input-file.component.d.ts +9 -9
  144. package/lib/components/ui/modal/modal.component.d.ts +7 -7
  145. package/lib/components/ui/search-not-found/search-not-found.component.d.ts +8 -8
  146. package/lib/configs/admin.config.d.ts +3 -3
  147. package/lib/contanst/data-image.d.ts +6 -6
  148. package/lib/contanst/index.d.ts +1 -1
  149. package/lib/datasources/index.d.ts +1 -1
  150. package/lib/datasources/node-tree.datasource.d.ts +24 -24
  151. package/lib/directives/dialogTrigger.directive.d.ts +7 -7
  152. package/lib/directives/directives.module.d.ts +5 -5
  153. package/lib/directives/dnd.directive.d.ts +7 -7
  154. package/lib/models/asset-file.model.d.ts +26 -26
  155. package/lib/models/asset.model.d.ts +68 -68
  156. package/lib/models/file-type.enum.d.ts +4 -4
  157. package/lib/models/file.model.d.ts +41 -41
  158. package/lib/models/index.d.ts +7 -7
  159. package/lib/models/node-tree.model.d.ts +9 -9
  160. package/lib/models/sort.enum.d.ts +9 -9
  161. package/lib/pipes/datetime.pipe.d.ts +13 -13
  162. package/lib/pipes/file-size.pipe.d.ts +5 -5
  163. package/lib/services/asset.service.d.ts +36 -36
  164. package/lib/services/base.service.d.ts +20 -20
  165. package/lib/services/env-config.service.d.ts +7 -7
  166. package/lib/services/file.service.d.ts +13 -13
  167. package/lib/services/index.d.ts +6 -6
  168. package/lib/services/node-tree.service.d.ts +24 -24
  169. package/lib/services/upload-assets.service.d.ts +34 -34
  170. package/lib/store/actions.action.d.ts +51 -51
  171. package/lib/store/index.d.ts +2 -2
  172. package/lib/store/reducer.d.ts +18 -18
  173. package/package.json +1 -1
  174. package/public-api.d.ts +26 -26
  175. package/rs-pk-asset-management.d.ts +12 -12
  176. package/rs-pk-asset-management.metadata.json +1 -1
@@ -1,333 +1,350 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { Component, EventEmitter, Input, Output, ChangeDetectorRef } from '@angular/core';
6
- import { MatDialog } from '@angular/material/dialog';
7
- import { DomSanitizer } from '@angular/platform-browser';
8
- import { Subject } from 'rxjs';
9
- import { takeUntil } from 'rxjs/operators';
10
- import { AssetManagementService } from '../../../asset-management.service';
11
- import { fileDefault, imageCsv, imagePdf, imageZip } from '../../../contanst';
12
- import { AssetModel, BackgroudProcessingStatus, FileTypeEnum } from '../../../models';
13
- import { ActionTypes, select } from '../../../store';
14
- import { AssetDialogComponent } from '../asset-dialog/asset-dialog.component';
15
- import { DeleteDialogComponent } from '../delete-dialog/delete-dialog.component';
16
- import { AssetService } from '../../../services/asset.service';
17
- import { UploadDialogComponent } from '../upload-dialog/upload-dialog.component';
18
- var AssetItemComponent = /** @class */ (function () {
19
- function AssetItemComponent(dialog, domSanitizer, assetService, svc, changeDetectorRef) {
20
- this.dialog = dialog;
21
- this.domSanitizer = domSanitizer;
22
- this.assetService = assetService;
23
- this.svc = svc;
24
- this.changeDetectorRef = changeDetectorRef;
25
- this.selectAsset = new EventEmitter();
26
- this.base64PNG = {
27
- pdf: this.domSanitizer.bypassSecurityTrustUrl(imagePdf),
28
- zip: this.domSanitizer.bypassSecurityTrustUrl(imageZip),
29
- csv: this.domSanitizer.bypassSecurityTrustUrl(imageCsv),
30
- default: this.domSanitizer.bypassSecurityTrustUrl(fileDefault),
31
- };
32
- this.selectedAssets = [];
33
- this.fileType = FileTypeEnum;
34
- this.backgroundProcessingNum = BackgroudProcessingStatus;
35
- this.destroy$ = new Subject();
36
- this._bindSubscriber();
37
- }
38
- /**
39
- * @return {?}
40
- */
41
- AssetItemComponent.prototype.ngOnInit = /**
42
- * @return {?}
43
- */
44
- function () {
45
- var _this = this;
46
- // get current folder
47
- this.assetService
48
- .getFolderList()
49
- .pipe(takeUntil(this.destroy$))
50
- .subscribe((/**
51
- * @param {?} folders
52
- * @return {?}
53
- */
54
- function (folders) {
55
- _this.currentFolder = folders;
56
- _this.changeDetectorRef.detectChanges();
57
- }));
58
- };
59
- Object.defineProperty(AssetItemComponent.prototype, "checkSelectedAsset", {
60
- get: /**
61
- * @return {?}
62
- */
63
- function () {
64
- var _this = this;
65
- return (this.selectedAssets &&
66
- this.selectedAssets.some((/**
67
- * @param {?} asset
68
- * @return {?}
69
- */
70
- function (asset) { return asset.AssetId === _this.asset.AssetId; })));
71
- },
72
- enumerable: true,
73
- configurable: true
74
- });
75
- /**
76
- * @return {?}
77
- */
78
- AssetItemComponent.prototype.onChange = /**
79
- * @return {?}
80
- */
81
- function () {
82
- this.selectAsset.emit(this.asset);
83
- };
84
- /**
85
- * @return {?}
86
- */
87
- AssetItemComponent.prototype.editAsset = /**
88
- * @return {?}
89
- */
90
- function () {
91
- var _this = this;
92
- /** @type {?} */
93
- var dialogRef = this.dialog.open(AssetDialogComponent, {
94
- autoFocus: false,
95
- data: {
96
- assetId: this.asset.AssetId,
97
- name: this.asset.OriginalFileNameWithoutExtension,
98
- },
99
- panelClass: 'lib-dialog--medium',
100
- });
101
- if (dialogRef) {
102
- dialogRef.afterClosed().subscribe((/**
103
- * @param {?} res
104
- * @return {?}
105
- */
106
- function (res) {
107
- if (res) {
108
- _this.svc.dispatch({
109
- type: ActionTypes.RELOAD_CURRENT_ASSETS,
110
- });
111
- }
112
- }));
113
- }
114
- };
115
- /**
116
- * @param {?} asset
117
- * @return {?}
118
- */
119
- AssetItemComponent.prototype.onUploadAgain = /**
120
- * @param {?} asset
121
- * @return {?}
122
- */
123
- function (asset) {
124
- var _this = this;
125
- /** @type {?} */
126
- var ids = [];
127
- ids.push(asset.AssetId);
128
- /** @type {?} */
129
- var dialogRef = this.dialog.open(DeleteDialogComponent, {
130
- data: {
131
- type: 'file',
132
- ids: ids,
133
- },
134
- panelClass: 'lib-dialog--small',
135
- autoFocus: false,
136
- });
137
- dialogRef.afterClosed().subscribe((/**
138
- * @param {?} res
139
- * @return {?}
140
- */
141
- function (res) {
142
- if (res) {
143
- _this.svc.dispatch({
144
- type: ActionTypes.RELOAD_CURRENT_ASSETS,
145
- });
146
- _this.svc.dispatch({
147
- type: ActionTypes.RELOAD_CURRENT_FOLDER,
148
- });
149
- _this.svc.dispatch({
150
- type: ActionTypes.SET_SELECTED_ASSETS,
151
- payload: [],
152
- });
153
- _this._openUploadDialog();
154
- }
155
- }));
156
- };
157
- /**
158
- * @param {?} asset
159
- * @return {?}
160
- */
161
- AssetItemComponent.prototype.onDelete = /**
162
- * @param {?} asset
163
- * @return {?}
164
- */
165
- function (asset) {
166
- var _this = this;
167
- /** @type {?} */
168
- var ids = [];
169
- ids.push(asset.AssetId);
170
- /** @type {?} */
171
- var dialogRef = this.dialog.open(DeleteDialogComponent, {
172
- data: {
173
- type: 'file',
174
- ids: ids,
175
- },
176
- panelClass: 'lib-dialog--small',
177
- autoFocus: false,
178
- });
179
- dialogRef.afterClosed().subscribe((/**
180
- * @param {?} res
181
- * @return {?}
182
- */
183
- function (res) {
184
- if (res) {
185
- _this.svc.dispatch({
186
- type: ActionTypes.RELOAD_CURRENT_ASSETS,
187
- });
188
- _this.svc.dispatch({
189
- type: ActionTypes.RELOAD_CURRENT_FOLDER,
190
- });
191
- _this.svc.dispatch({
192
- type: ActionTypes.SET_SELECTED_ASSETS,
193
- payload: [],
194
- });
195
- }
196
- }));
197
- };
198
- /**
199
- * @private
200
- * @return {?}
201
- */
202
- AssetItemComponent.prototype._bindSubscriber = /**
203
- * @private
204
- * @return {?}
205
- */
206
- function () {
207
- var _this = this;
208
- select((/**
209
- * @param {?} state
210
- * @return {?}
211
- */
212
- function (state) { return state.selectedAssets; }))
213
- .pipe(takeUntil(this.destroy$))
214
- .subscribe((/**
215
- * @param {?} selectedAssets
216
- * @return {?}
217
- */
218
- function (selectedAssets) {
219
- _this.selectedAssets = selectedAssets;
220
- }));
221
- };
222
- /**
223
- * @private
224
- * @return {?}
225
- */
226
- AssetItemComponent.prototype._openUploadDialog = /**
227
- * @private
228
- * @return {?}
229
- */
230
- function () {
231
- var _this = this;
232
- /** @type {?} */
233
- var dialogRef = this.dialog.open(UploadDialogComponent, {
234
- data: {
235
- currentAssetId: this.currentFolder.AssetId,
236
- fileType: this.assetService.dialogConfig.allowedType,
237
- maxSize: this.assetService.maxSize
238
- },
239
- panelClass: 'lib-dialog--medium',
240
- });
241
- dialogRef.afterClosed().subscribe((/**
242
- * @param {?} res
243
- * @return {?}
244
- */
245
- function (res) {
246
- if (res) {
247
- _this.svc.dispatch({
248
- type: ActionTypes.RELOAD_CURRENT_ASSETS,
249
- });
250
- _this.svc.dispatch({
251
- type: ActionTypes.RELOAD_CURRENT_FOLDER,
252
- });
253
- }
254
- }));
255
- };
256
- /**
257
- * @return {?}
258
- */
259
- AssetItemComponent.prototype.ngOnDestroy = /**
260
- * @return {?}
261
- */
262
- function () {
263
- this.destroy$.next(true);
264
- this.destroy$.complete();
265
- };
266
- AssetItemComponent.decorators = [
267
- { type: Component, args: [{
268
- selector: 'lib-asset-item',
269
- template: "<div class=\"asset-wrapper\">\n <div class=\"asset-content\">\n <div class=\"asset-content__header\" *ngIf=\"asset?.BackgroudProcessingStatus === backgroundProcessingNum.Processed\">\n <button class=\"asset-content__header--button\" mat-raised-button (click)=\"onChange()\">\n <mat-checkbox\n class=\"checkbox\"\n [checked]=\"checkSelectedAsset\"\n ></mat-checkbox>\n </button>\n <button\n class=\"asset-content__header--button edit-button\"\n mat-raised-button\n (click)=\"editAsset()\"\n >\n <mat-icon>edit</mat-icon>\n </button>\n </div>\n <div class=\"asset-content__body\">\n <ng-container [ngSwitch]=\"asset.FileType\">\n <ng-container *ngSwitchCase=\"fileType.IMAGE\">\n <img\n class=\"image\"\n [src]=\"asset.UrlThumbnail\"\n [alt]=\"asset.OriginalFileName\"\n *ngIf=\"asset.BackgroudProcessingStatus === backgroundProcessingNum.Processed\"\n />\n <!-- In Processing -->\n <div class=\"processing\" *ngIf=\"asset?.BackgroudProcessingStatus === backgroundProcessingNum.InProcessing\">\n <mat-icon class=\"icon\">pending</mat-icon>\n <span class=\"processing-txt\">Uploading...</span>\n </div>\n <!-- Failed -->\n <div class=\"processing\" *ngIf=\"asset.BackgroudProcessingStatus === backgroundProcessingNum.Failed\">\n <mat-icon class=\"icon-img\">error_outline</mat-icon>\n <div class=\"failed-group\">\n <span style=\"color: #f44336; font-weight: 300; font-size: 12px;\">Failed to upload the file</span>\n </div>\n <div class=\"btn-failed-group\">\n <button class=\"btn-custom-upload\" (click)=\"onUploadAgain(asset)\">Delete and update again</button>\n <span class=\"failed-txt mx-1\">or</span>\n <button class=\"btn-custom-failed\" (click)=\"onDelete(asset)\">Delete</button>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"fileType.DOCUMENT\">\n <img [src]=\"base64PNG[asset.Extension] || base64PNG.default\" [alt]=\"asset.OriginalFileName\" class=\"file\" *ngIf=\"asset.BackgroudProcessingStatus === backgroundProcessingNum.Processed\"/>\n <!-- In Processing -->\n <div class=\"processing\" *ngIf=\"asset.BackgroudProcessingStatus === backgroundProcessingNum.InProcessing\">\n <mat-icon class=\"icon\">pending</mat-icon>\n <span class=\"processing-txt\">Loading...</span>\n </div>\n <!-- Failed -->\n <div class=\"processing\" *ngIf=\"asset.BackgroudProcessingStatus === backgroundProcessingNum.Failed\">\n <mat-icon class=\"icon-doc\">error_outline</mat-icon>\n <div class=\"failed-group\">\n <span style=\"color: #f44336; font-weight: 300; font-size: 12px;\">Failed to upload the file</span>\n </div>\n <div class=\"btn-failed-group\">\n <button class=\"btn-custom-upload\" (click)=\"onUploadAgain(asset)\">Delete and update again</button>\n <span class=\"failed-txt mx-1\">or</span>\n <button class=\"btn-custom-failed\" (click)=\"onDelete(asset)\">Delete</button>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"asset-content__footer\">\n <div\n class=\"asset-content__footer--info\"\n [ngClass]=\"{\n 'file-type__document': asset.FileType === fileType.DOCUMENT\n }\"\n >\n <p\n class=\"name\"\n [matTooltip]=\"asset.OriginalFileNameWithoutExtension\"\n matTooltipClass=\"width-auto\"\n >\n {{ asset.OriginalFileNameWithoutExtension }}\n </p>\n <p class=\"info\">\n <span class=\"extension\">{{ asset.Extension }}</span>\n <span\n *ngIf=\"\n asset.FileType === fileType.IMAGE && asset?.Extension !== 'svg'\n \"\n >\n - {{ asset.Width }}x{{ asset.Height }}</span\n >\n <span *ngIf=\"asset.Size\"> - {{ asset.Size }}</span>\n </p>\n </div>\n <div class=\"asset-content__footer--file-type\">\n <span>{{ asset.FileType }}</span>\n </div>\n </div>\n </div>\n</div>\n",
270
- styles: [":host::ng-deep .asset-wrapper{padding:5px}:host::ng-deep .asset-wrapper .asset-content{overflow:hidden;position:relative;border-radius:10px;border:1px solid #d8d8d8;font-size:14px;transition:.3s cubic-bezier(.25,.8,.25,1)}:host::ng-deep .asset-wrapper .asset-content:hover{box-shadow:0 0 8px rgba(0,0,0,.17),0 0 0 rgba(0,0,0,.06)}:host::ng-deep .asset-wrapper .asset-content__header{position:absolute;z-index:1;top:0;left:0;width:100%;display:flex;justify-content:space-between;padding:14px}:host::ng-deep .asset-wrapper .asset-content__header--button{width:30px;height:30px;min-width:30px;display:flex;align-items:center;justify-content:center;text-align:center;color:rgba(0,0,0,.65);background:rgba(255,255,255,.6)}:host::ng-deep .asset-wrapper .asset-content__header--button:hover{background:#fff}:host::ng-deep .asset-wrapper .asset-content__header--button.edit-button{transition:.3s cubic-bezier(.25,.8,.25,1);opacity:0}:host::ng-deep .asset-wrapper .asset-content__header--button .mat-icon{font-size:22px}:host::ng-deep .asset-wrapper .asset-content__header--button .mat-checkbox{pointer-events:none;display:flex;align-items:center}:host::ng-deep .asset-wrapper .asset-content__header--button .mat-checkbox .mat-checkbox-layout{display:block;margin:0}:host::ng-deep .asset-wrapper .asset-content__header--button .mat-checkbox .mat-checkbox-layout .mat-checkbox-frame{color:#767676}:host::ng-deep .asset-wrapper .asset-content__body{padding-bottom:66.66%;background:#f1f1f1;position:relative}:host::ng-deep .asset-wrapper .asset-content__body img{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}:host::ng-deep .asset-wrapper .asset-content__body 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 .asset-wrapper .asset-content__body img.file{width:75%;height:75%}:host::ng-deep .asset-wrapper .asset-content__body .processing{background-color:#f1f1f1;width:100%;height:100%}:host::ng-deep .asset-wrapper .asset-content__body .processing .icon{position:absolute;top:30%;left:42%;font-size:35px}:host::ng-deep .asset-wrapper .asset-content__body .processing .icon-img{position:absolute;top:30%;left:42%;font-size:35px;color:#f44336}:host::ng-deep .asset-wrapper .asset-content__body .processing .icon-doc{position:absolute;top:30%;left:42%;font-size:35px;color:#f44336}:host::ng-deep .asset-wrapper .asset-content__body .processing .processing-txt{position:absolute;top:55%;left:37%}:host::ng-deep .asset-wrapper .asset-content__body .processing .failed-image{width:27px;height:27px;-o-object-fit:contain;object-fit:contain}:host::ng-deep .asset-wrapper .asset-content__body .processing .failed-group{position:absolute;top:55%;left:20%}:host::ng-deep .asset-wrapper .asset-content__body .processing .btn-failed-group{position:absolute;top:70%;left:10%;font-size:12px}:host::ng-deep .asset-wrapper .asset-content__body .processing .btn-failed-group .failed-txt{color:#f44336}:host::ng-deep .asset-wrapper .asset-content__body .processing .btn-failed-group .btn-custom-upload{font-size:9px;border:0;color:#fff;background-color:#ffc107;border-radius:3px}:host::ng-deep .asset-wrapper .asset-content__body .processing .btn-failed-group .btn-custom-failed{font-size:9px;border:0;color:#fff;background-color:#f44336;border-radius:3px}:host::ng-deep .asset-wrapper .asset-content__body .processing .btn-failed-group .btn-custom-failed:hover,:host::ng-deep .asset-wrapper .asset-content__body .processing .btn-failed-group .btn-custom-upload:hover{opacity:.8}:host::ng-deep .asset-wrapper .asset-content__footer{display:flex;align-items:center;justify-content:space-between;padding:5px 8px}:host::ng-deep .asset-wrapper .asset-content__footer--info{max-width:calc(100% - 50px)}:host::ng-deep .asset-wrapper .asset-content__footer--info p{margin:0;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host::ng-deep .asset-wrapper .asset-content__footer--info .info{font-size:12px;color:#979797}:host::ng-deep .asset-wrapper .asset-content__footer--info .info .extension{text-transform:uppercase}:host::ng-deep .asset-wrapper .asset-content__footer--info.file-type__document{max-width:calc(100% - 70px)}:host::ng-deep .asset-wrapper .asset-content__footer--file-type{border-radius:5px;background-color:#d8d8d8;padding:2px 6px;font-size:12px}:host::ng-deep .asset-wrapper .asset-content:hover .edit-button{opacity:1!important}"]
271
- }] }
272
- ];
273
- /** @nocollapse */
274
- AssetItemComponent.ctorParameters = function () { return [
275
- { type: MatDialog },
276
- { type: DomSanitizer },
277
- { type: AssetService },
278
- { type: AssetManagementService },
279
- { type: ChangeDetectorRef }
280
- ]; };
281
- AssetItemComponent.propDecorators = {
282
- asset: [{ type: Input }],
283
- selectAsset: [{ type: Output }]
284
- };
285
- return AssetItemComponent;
286
- }());
287
- export { AssetItemComponent };
288
- if (false) {
289
- /** @type {?} */
290
- AssetItemComponent.prototype.asset;
291
- /** @type {?} */
292
- AssetItemComponent.prototype.selectAsset;
293
- /** @type {?} */
294
- AssetItemComponent.prototype.base64PNG;
295
- /** @type {?} */
296
- AssetItemComponent.prototype.errorMessage;
297
- /** @type {?} */
298
- AssetItemComponent.prototype.selectedAssets;
299
- /** @type {?} */
300
- AssetItemComponent.prototype.currentFolder;
301
- /** @type {?} */
302
- AssetItemComponent.prototype.fileType;
303
- /** @type {?} */
304
- AssetItemComponent.prototype.backgroundProcessingNum;
305
- /**
306
- * @type {?}
307
- * @private
308
- */
309
- AssetItemComponent.prototype.destroy$;
310
- /**
311
- * @type {?}
312
- * @private
313
- */
314
- AssetItemComponent.prototype.dialog;
315
- /**
316
- * @type {?}
317
- * @private
318
- */
319
- AssetItemComponent.prototype.domSanitizer;
320
- /** @type {?} */
321
- AssetItemComponent.prototype.assetService;
322
- /**
323
- * @type {?}
324
- * @private
325
- */
326
- AssetItemComponent.prototype.svc;
327
- /**
328
- * @type {?}
329
- * @private
330
- */
331
- AssetItemComponent.prototype.changeDetectorRef;
332
- }
333
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcnMtcGsvYXNzZXQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3BhcnRpYWwvYXNzZXQtaXRlbS9hc3NldC1pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUUsT0FBTyxFQUFFLFVBQVUsRUFBRSx5QkFBeUIsRUFBRSxZQUFZLEVBQW1CLE1BQU0saUJBQWlCLENBQUM7QUFDdkcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFakY7SUFNRSw0QkFDVSxNQUFpQixFQUNqQixZQUEwQixFQUMzQixZ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SW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIENoYW5nZURldGVjdG9yUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQXNzZXRNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2Fzc2V0LW1hbmFnZW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBmaWxlRGVmYXVsdCwgaW1hZ2VDc3YsIGltYWdlUGRmLCBpbWFnZVppcCB9IGZyb20gJy4uLy4uLy4uL2NvbnRhbnN0JztcbmltcG9ydCB7IEFzc2V0TW9kZWwsIEJhY2tncm91ZFByb2Nlc3NpbmdTdGF0dXMsIEZpbGVUeXBlRW51bSwgRm9sZGVyVHJlZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEFjdGlvblR5cGVzLCBzZWxlY3QgfSBmcm9tICcuLi8uLi8uLi9zdG9yZSc7XG5pbXBvcnQgeyBBc3NldERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2Fzc2V0LWRpYWxvZy9hc3NldC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IERlbGV0ZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2RlbGV0ZS1kaWFsb2cvZGVsZXRlLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXNzZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXNzZXQuc2VydmljZSc7XG5pbXBvcnQgeyBVcGxvYWREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi91cGxvYWQtZGlhbG9nL3VwbG9hZC1kaWFsb2cuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWFzc2V0LWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYXNzZXQtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Fzc2V0LWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQXNzZXRJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgcHVibGljIGFzc2V0U2VydmljZTogQXNzZXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3ZjOiBBc3NldE1hbmFnZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHRoaXMuX2JpbmRTdWJzY3JpYmVyKCk7XG4gIH1cbiAgQElucHV0KCkgYXNzZXQ6IEFzc2V0TW9kZWw7XG5cbiAgQE91dHB1dCgpIHNlbGVjdEFzc2V0ID0gbmV3IEV2ZW50RW1pdHRlcjxBc3NldE1vZGVsPigpO1xuXG4gIHB1YmxpYyBiYXNlNjRQTkcgPSB7XG4gICAgcGRmOiB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKGltYWdlUGRmKSxcbiAgICB6aXA6IHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwoaW1hZ2VaaXApLFxuICAgIGNzdjogdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybChpbWFnZUNzdiksXG4gICAgZGVmYXVsdDogdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybChmaWxlRGVmYXVsdCksXG4gIH07XG4gIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgcHVibGljIHNlbGVjdGVkQXNzZXRzOiBBcnJheTxBc3NldE1vZGVsPiA9IFtdO1xuICBwdWJsaWMgY3VycmVudEZvbGRlcjogRm9sZGVyVHJlZU1vZGVsO1xuICBwdWJsaWMgZmlsZVR5cGUgPSBGaWxlVHlwZUVudW07XG4gIHB1YmxpYyBiYWNrZ3JvdW5kUHJvY2Vzc2luZ051bSA9IEJhY2tncm91ZFByb2Nlc3NpbmdTdGF0dXM7XG5cbiAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gZ2V0IGN1cnJlbnQgZm9sZGVyXG4gICAgdGhpcy5hc3NldFNlcnZpY2VcbiAgICAgIC5nZXRGb2xkZXJMaXN0KClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGZvbGRlcnMpID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50Rm9sZGVyID0gZm9sZGVycztcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGdldCBjaGVja1NlbGVjdGVkQXNzZXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuc2VsZWN0ZWRBc3NldHMgJiZcbiAgICAgIHRoaXMuc2VsZWN0ZWRBc3NldHMuc29tZSgoYXNzZXQpID0+IGFzc2V0LkFzc2V0SWQgPT09IHRoaXMuYXNzZXQuQXNzZXRJZClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG9uQ2hhbmdlKCkge1xuICAgIHRoaXMuc2VsZWN0QXNzZXQuZW1pdCh0aGlzLmFzc2V0KTtcbiAgfVxuXG4gIHB1YmxpYyBlZGl0QXNzZXQoKSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihBc3NldERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgYXNzZXRJZDogdGhpcy5hc3NldC5Bc3NldElkLFxuICAgICAgICBuYW1lOiB0aGlzLmFzc2V0Lk9yaWdpbmFsRmlsZU5hbWVXaXRob3V0RXh0ZW5zaW9uLFxuICAgICAgfSxcbiAgICAgIHBhbmVsQ2xhc3M6ICdsaWItZGlhbG9nLS1tZWRpdW0nLFxuICAgIH0pO1xuICAgIGlmIChkaWFsb2dSZWYpIHtcbiAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XG4gICAgICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5SRUxPQURfQ1VSUkVOVF9BU1NFVFMsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblVwbG9hZEFnYWluKGFzc2V0OiBBc3NldE1vZGVsKSB7XG4gICAgY29uc3QgaWRzID0gW107XG4gICAgaWRzLnB1c2goYXNzZXQuQXNzZXRJZCk7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihEZWxldGVEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdHlwZTogJ2ZpbGUnLFxuICAgICAgICBpZHMsXG4gICAgICB9LFxuICAgICAgcGFuZWxDbGFzczogJ2xpYi1kaWFsb2ctLXNtYWxsJyxcbiAgICAgIGF1dG9Gb2N1czogZmFsc2UsXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgaWYgKHJlcykge1xuICAgICAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XG4gICAgICAgICAgdHlwZTogQWN0aW9uVHlwZXMuUkVMT0FEX0NVUlJFTlRfQVNTRVRTLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6IEFjdGlvblR5cGVzLlJFTE9BRF9DVVJSRU5UX0ZPTERFUixcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3ZjLmRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5TRVRfU0VMRUNURURfQVNTRVRTLFxuICAgICAgICAgIHBheWxvYWQ6IFtdLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fb3BlblVwbG9hZERpYWxvZygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uRGVsZXRlKGFzc2V0OiBBc3NldE1vZGVsKSB7XG4gICAgY29uc3QgaWRzID0gW107XG4gICAgaWRzLnB1c2goYXNzZXQuQXNzZXRJZCk7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihEZWxldGVEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdHlwZTogJ2ZpbGUnLFxuICAgICAgICBpZHMsXG4gICAgICB9LFxuICAgICAgcGFuZWxDbGFzczogJ2xpYi1kaWFsb2ctLXNtYWxsJyxcbiAgICAgIGF1dG9Gb2N1czogZmFsc2UsXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgaWYgKHJlcykge1xuICAgICAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XG4gICAgICAgICAgdHlwZTogQWN0aW9uVHlwZXMuUkVMT0FEX0NVUlJFTlRfQVNTRVRTLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6IEFjdGlvblR5cGVzLlJFTE9BRF9DVVJSRU5UX0ZPTERFUixcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3ZjLmRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5TRVRfU0VMRUNURURfQVNTRVRTLFxuICAgICAgICAgIHBheWxvYWQ6IFtdLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2JpbmRTdWJzY3JpYmVyKCkge1xuICAgIHNlbGVjdCgoc3RhdGUpID0+IHN0YXRlLnNlbGVjdGVkQXNzZXRzKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoc2VsZWN0ZWRBc3NldHMpID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEFzc2V0cyA9IHNlbGVjdGVkQXNzZXRzO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9vcGVuVXBsb2FkRGlhbG9nKCkge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVXBsb2FkRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIGN1cnJlbnRBc3NldElkOiB0aGlzLmN1cnJlbnRGb2xkZXIuQXNzZXRJZCxcbiAgICAgICAgZmlsZVR5cGU6IHRoaXMuYXNzZXRTZXJ2aWNlLmRpYWxvZ0NvbmZpZy5hbGxvd2VkVHlwZSxcbiAgICAgICAgbWF4U2l6ZTogdGhpcy5hc3NldFNlcnZpY2UubWF4U2l6ZVxuICAgICAgfSxcbiAgICAgIHBhbmVsQ2xhc3M6ICdsaWItZGlhbG9nLS1tZWRpdW0nLFxuICAgIH0pO1xuXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6IEFjdGlvblR5cGVzLlJFTE9BRF9DVVJSRU5UX0FTU0VUUyxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3ZjLmRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5SRUxPQURfQ1VSUkVOVF9GT0xERVIsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { Component, EventEmitter, Input, Output, ChangeDetectorRef } from '@angular/core';
6
+ import { MatDialog } from '@angular/material/dialog';
7
+ import { DomSanitizer } from '@angular/platform-browser';
8
+ import { Subject } from 'rxjs';
9
+ import { takeUntil } from 'rxjs/operators';
10
+ import { AssetManagementService } from '../../../asset-management.service';
11
+ import { fileDefault, imageCsv, imagePdf, imageZip } from '../../../contanst';
12
+ import { AssetModel, BackgroudProcessingStatus, FileTypeEnum } from '../../../models';
13
+ import { ActionTypes, select } from '../../../store';
14
+ import { AssetDialogComponent } from '../asset-dialog/asset-dialog.component';
15
+ import { DeleteDialogComponent } from '../delete-dialog/delete-dialog.component';
16
+ import { AssetService } from '../../../services/asset.service';
17
+ import { UploadDialogComponent } from '../upload-dialog/upload-dialog.component';
18
+ var AssetItemComponent = /** @class */ (function () {
19
+ function AssetItemComponent(dialog, domSanitizer, assetService, svc, changeDetectorRef) {
20
+ this.dialog = dialog;
21
+ this.domSanitizer = domSanitizer;
22
+ this.assetService = assetService;
23
+ this.svc = svc;
24
+ this.changeDetectorRef = changeDetectorRef;
25
+ this.hasModifyPermission = true;
26
+ this.hasAccessPermission = true;
27
+ this.hasArchivePermission = true;
28
+ this.selectAsset = new EventEmitter();
29
+ this.base64PNG = {
30
+ pdf: this.domSanitizer.bypassSecurityTrustUrl(imagePdf),
31
+ zip: this.domSanitizer.bypassSecurityTrustUrl(imageZip),
32
+ csv: this.domSanitizer.bypassSecurityTrustUrl(imageCsv),
33
+ default: this.domSanitizer.bypassSecurityTrustUrl(fileDefault),
34
+ };
35
+ this.selectedAssets = [];
36
+ this.fileType = FileTypeEnum;
37
+ this.backgroundProcessingNum = BackgroudProcessingStatus;
38
+ this.destroy$ = new Subject();
39
+ this._bindSubscriber();
40
+ }
41
+ /**
42
+ * @return {?}
43
+ */
44
+ AssetItemComponent.prototype.ngOnInit = /**
45
+ * @return {?}
46
+ */
47
+ function () {
48
+ var _this = this;
49
+ // get current folder
50
+ this.assetService
51
+ .getFolderList()
52
+ .pipe(takeUntil(this.destroy$))
53
+ .subscribe((/**
54
+ * @param {?} folders
55
+ * @return {?}
56
+ */
57
+ function (folders) {
58
+ _this.currentFolder = folders;
59
+ _this.changeDetectorRef.detectChanges();
60
+ }));
61
+ };
62
+ Object.defineProperty(AssetItemComponent.prototype, "checkSelectedAsset", {
63
+ get: /**
64
+ * @return {?}
65
+ */
66
+ function () {
67
+ var _this = this;
68
+ return (this.selectedAssets &&
69
+ this.selectedAssets.some((/**
70
+ * @param {?} asset
71
+ * @return {?}
72
+ */
73
+ function (asset) { return asset.AssetId === _this.asset.AssetId; })));
74
+ },
75
+ enumerable: true,
76
+ configurable: true
77
+ });
78
+ /**
79
+ * @return {?}
80
+ */
81
+ AssetItemComponent.prototype.onChange = /**
82
+ * @return {?}
83
+ */
84
+ function () {
85
+ this.selectAsset.emit(this.asset);
86
+ };
87
+ /**
88
+ * @return {?}
89
+ */
90
+ AssetItemComponent.prototype.editAsset = /**
91
+ * @return {?}
92
+ */
93
+ function () {
94
+ var _this = this;
95
+ /** @type {?} */
96
+ var dialogRef = this.dialog.open(AssetDialogComponent, {
97
+ autoFocus: false,
98
+ data: {
99
+ assetId: this.asset.AssetId,
100
+ name: this.asset.OriginalFileNameWithoutExtension,
101
+ permission: {
102
+ modify: this.hasModifyPermission,
103
+ access: this.hasAccessPermission,
104
+ archive: this.hasArchivePermission,
105
+ }
106
+ },
107
+ panelClass: 'lib-dialog--medium',
108
+ });
109
+ if (dialogRef) {
110
+ dialogRef.afterClosed().subscribe((/**
111
+ * @param {?} res
112
+ * @return {?}
113
+ */
114
+ function (res) {
115
+ if (res) {
116
+ _this.svc.dispatch({
117
+ type: ActionTypes.RELOAD_CURRENT_ASSETS,
118
+ });
119
+ }
120
+ }));
121
+ }
122
+ };
123
+ /**
124
+ * @param {?} asset
125
+ * @return {?}
126
+ */
127
+ AssetItemComponent.prototype.onUploadAgain = /**
128
+ * @param {?} asset
129
+ * @return {?}
130
+ */
131
+ function (asset) {
132
+ var _this = this;
133
+ /** @type {?} */
134
+ var ids = [];
135
+ ids.push(asset.AssetId);
136
+ /** @type {?} */
137
+ var dialogRef = this.dialog.open(DeleteDialogComponent, {
138
+ data: {
139
+ type: 'file',
140
+ ids: ids,
141
+ },
142
+ panelClass: 'lib-dialog--small',
143
+ autoFocus: false,
144
+ });
145
+ dialogRef.afterClosed().subscribe((/**
146
+ * @param {?} res
147
+ * @return {?}
148
+ */
149
+ function (res) {
150
+ if (res) {
151
+ _this.svc.dispatch({
152
+ type: ActionTypes.RELOAD_CURRENT_ASSETS,
153
+ });
154
+ _this.svc.dispatch({
155
+ type: ActionTypes.RELOAD_CURRENT_FOLDER,
156
+ });
157
+ _this.svc.dispatch({
158
+ type: ActionTypes.SET_SELECTED_ASSETS,
159
+ payload: [],
160
+ });
161
+ _this._openUploadDialog();
162
+ }
163
+ }));
164
+ };
165
+ /**
166
+ * @param {?} asset
167
+ * @return {?}
168
+ */
169
+ AssetItemComponent.prototype.onDelete = /**
170
+ * @param {?} asset
171
+ * @return {?}
172
+ */
173
+ function (asset) {
174
+ var _this = this;
175
+ /** @type {?} */
176
+ var ids = [];
177
+ ids.push(asset.AssetId);
178
+ /** @type {?} */
179
+ var dialogRef = this.dialog.open(DeleteDialogComponent, {
180
+ data: {
181
+ type: 'file',
182
+ ids: ids,
183
+ },
184
+ panelClass: 'lib-dialog--small',
185
+ autoFocus: false,
186
+ });
187
+ dialogRef.afterClosed().subscribe((/**
188
+ * @param {?} res
189
+ * @return {?}
190
+ */
191
+ function (res) {
192
+ if (res) {
193
+ _this.svc.dispatch({
194
+ type: ActionTypes.RELOAD_CURRENT_ASSETS,
195
+ });
196
+ _this.svc.dispatch({
197
+ type: ActionTypes.RELOAD_CURRENT_FOLDER,
198
+ });
199
+ _this.svc.dispatch({
200
+ type: ActionTypes.SET_SELECTED_ASSETS,
201
+ payload: [],
202
+ });
203
+ }
204
+ }));
205
+ };
206
+ /**
207
+ * @private
208
+ * @return {?}
209
+ */
210
+ AssetItemComponent.prototype._bindSubscriber = /**
211
+ * @private
212
+ * @return {?}
213
+ */
214
+ function () {
215
+ var _this = this;
216
+ select((/**
217
+ * @param {?} state
218
+ * @return {?}
219
+ */
220
+ function (state) { return state.selectedAssets; }))
221
+ .pipe(takeUntil(this.destroy$))
222
+ .subscribe((/**
223
+ * @param {?} selectedAssets
224
+ * @return {?}
225
+ */
226
+ function (selectedAssets) {
227
+ _this.selectedAssets = selectedAssets;
228
+ }));
229
+ };
230
+ /**
231
+ * @private
232
+ * @return {?}
233
+ */
234
+ AssetItemComponent.prototype._openUploadDialog = /**
235
+ * @private
236
+ * @return {?}
237
+ */
238
+ function () {
239
+ var _this = this;
240
+ /** @type {?} */
241
+ var dialogRef = this.dialog.open(UploadDialogComponent, {
242
+ data: {
243
+ currentAssetId: this.currentFolder.AssetId,
244
+ fileType: this.assetService.dialogConfig.allowedType,
245
+ maxSize: this.assetService.maxSize
246
+ },
247
+ panelClass: 'lib-dialog--medium',
248
+ });
249
+ dialogRef.afterClosed().subscribe((/**
250
+ * @param {?} res
251
+ * @return {?}
252
+ */
253
+ function (res) {
254
+ if (res) {
255
+ _this.svc.dispatch({
256
+ type: ActionTypes.RELOAD_CURRENT_ASSETS,
257
+ });
258
+ _this.svc.dispatch({
259
+ type: ActionTypes.RELOAD_CURRENT_FOLDER,
260
+ });
261
+ }
262
+ }));
263
+ };
264
+ /**
265
+ * @return {?}
266
+ */
267
+ AssetItemComponent.prototype.ngOnDestroy = /**
268
+ * @return {?}
269
+ */
270
+ function () {
271
+ this.destroy$.next(true);
272
+ this.destroy$.complete();
273
+ };
274
+ AssetItemComponent.decorators = [
275
+ { type: Component, args: [{
276
+ selector: 'lib-asset-item',
277
+ template: "<div class=\"asset-wrapper\">\r\n <div class=\"asset-content\">\r\n <div class=\"asset-content__header\" *ngIf=\"asset?.BackgroudProcessingStatus === backgroundProcessingNum.Processed\">\r\n <button class=\"asset-content__header--button\" mat-raised-button (click)=\"onChange()\" [disabled]=\"!hasArchivePermission\">\r\n <mat-checkbox\r\n class=\"checkbox\"\r\n [checked]=\"checkSelectedAsset\"\r\n ></mat-checkbox>\r\n </button>\r\n <button\r\n class=\"asset-content__header--button edit-button\"\r\n mat-raised-button\r\n (click)=\"editAsset()\"\r\n >\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"asset-content__body\">\r\n <ng-container [ngSwitch]=\"asset.FileType\">\r\n <ng-container *ngSwitchCase=\"fileType.IMAGE\">\r\n <img\r\n class=\"image\"\r\n [src]=\"asset.UrlThumbnail\"\r\n [alt]=\"asset.OriginalFileName\"\r\n *ngIf=\"asset.BackgroudProcessingStatus === backgroundProcessingNum.Processed\"\r\n />\r\n <!-- In Processing -->\r\n <div class=\"processing\" *ngIf=\"asset?.BackgroudProcessingStatus === backgroundProcessingNum.InProcessing\">\r\n <mat-icon class=\"icon\">cloud_upload</mat-icon>\r\n <span class=\"processing-txt\">Uploading...</span>\r\n </div>\r\n <!-- Failed -->\r\n <div class=\"processing\" *ngIf=\"asset.BackgroudProcessingStatus === backgroundProcessingNum.Failed\">\r\n <mat-icon class=\"icon-img\">error_outline</mat-icon>\r\n <div class=\"failed-group\">\r\n <span style=\"color: #f44336; font-weight: 300; font-size: 12px;\">Failed to upload the file</span>\r\n </div>\r\n <div class=\"btn-failed-group\">\r\n <button class=\"btn-custom-upload\" (click)=\"onUploadAgain(asset)\">Delete and update again</button>\r\n <span class=\"failed-txt mx-1\">or</span>\r\n <button class=\"btn-custom-failed\" (click)=\"onDelete(asset)\">Delete</button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"fileType.DOCUMENT\">\r\n <img [src]=\"base64PNG[asset.Extension] || base64PNG.default\" [alt]=\"asset.OriginalFileName\" class=\"file\" *ngIf=\"asset.BackgroudProcessingStatus === backgroundProcessingNum.Processed\"/>\r\n <!-- In Processing -->\r\n <div class=\"processing\" *ngIf=\"asset.BackgroudProcessingStatus === backgroundProcessingNum.InProcessing\">\r\n <mat-icon class=\"icon\">cloud_upload</mat-icon>\r\n <span class=\"processing-txt\">Uploading...</span>\r\n </div>\r\n <!-- Failed -->\r\n <div class=\"processing\" *ngIf=\"asset.BackgroudProcessingStatus === backgroundProcessingNum.Failed\">\r\n <mat-icon class=\"icon-doc\">error_outline</mat-icon>\r\n <div class=\"failed-group\">\r\n <span style=\"color: #f44336; font-weight: 300; font-size: 12px;\">Failed to upload the file</span>\r\n </div>\r\n <div class=\"btn-failed-group\">\r\n <button class=\"btn-custom-upload\" (click)=\"onUploadAgain(asset)\">Delete and update again</button>\r\n <span class=\"failed-txt mx-1\">or</span>\r\n <button class=\"btn-custom-failed\" (click)=\"onDelete(asset)\">Delete</button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"asset-content__footer\">\r\n <div\r\n class=\"asset-content__footer--info\"\r\n [ngClass]=\"{\r\n 'file-type__document': asset.FileType === fileType.DOCUMENT\r\n }\"\r\n >\r\n <p\r\n class=\"name\"\r\n [matTooltip]=\"asset.OriginalFileNameWithoutExtension\"\r\n matTooltipClass=\"width-auto\"\r\n >\r\n {{ asset.OriginalFileNameWithoutExtension }}\r\n </p>\r\n <p class=\"info\">\r\n <span class=\"extension\">{{ asset.Extension }}</span>\r\n <span\r\n *ngIf=\"\r\n asset.FileType === fileType.IMAGE && asset?.Extension !== 'svg'\r\n \"\r\n >\r\n - {{ asset.Width }}x{{ asset.Height }}</span\r\n >\r\n <span *ngIf=\"asset.Size\"> - {{ asset.Size }}</span>\r\n </p>\r\n </div>\r\n <div class=\"asset-content__footer--file-type\">\r\n <span>{{ asset.FileType }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
278
+ styles: [":host::ng-deep .asset-wrapper{padding:5px}:host::ng-deep .asset-wrapper .asset-content{overflow:hidden;position:relative;border-radius:10px;border:1px solid #d8d8d8;font-size:14px;transition:.3s cubic-bezier(.25,.8,.25,1)}:host::ng-deep .asset-wrapper .asset-content:hover{box-shadow:0 0 8px rgba(0,0,0,.17),0 0 0 rgba(0,0,0,.06)}:host::ng-deep .asset-wrapper .asset-content__header{position:absolute;z-index:1;top:0;left:0;width:100%;display:flex;justify-content:space-between;padding:14px}:host::ng-deep .asset-wrapper .asset-content__header--button{width:30px;height:30px;min-width:30px;display:flex;align-items:center;justify-content:center;text-align:center;color:rgba(0,0,0,.65);background:rgba(255,255,255,.6)}:host::ng-deep .asset-wrapper .asset-content__header--button:hover{background:#fff}:host::ng-deep .asset-wrapper .asset-content__header--button.edit-button{transition:.3s cubic-bezier(.25,.8,.25,1);opacity:0}:host::ng-deep .asset-wrapper .asset-content__header--button .mat-icon{font-size:22px}:host::ng-deep .asset-wrapper .asset-content__header--button .mat-checkbox{pointer-events:none;display:flex;align-items:center}:host::ng-deep .asset-wrapper .asset-content__header--button .mat-checkbox .mat-checkbox-layout{display:block;margin:0}:host::ng-deep .asset-wrapper .asset-content__header--button .mat-checkbox .mat-checkbox-layout .mat-checkbox-frame{color:#767676}:host::ng-deep .asset-wrapper .asset-content__body{padding-bottom:66.66%;background:#f1f1f1;position:relative}:host::ng-deep .asset-wrapper .asset-content__body img{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}:host::ng-deep .asset-wrapper .asset-content__body 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 .asset-wrapper .asset-content__body img.file{width:75%;height:75%}:host::ng-deep .asset-wrapper .asset-content__body .processing{background-color:#f1f1f1;width:100%;height:100%}:host::ng-deep .asset-wrapper .asset-content__body .processing .icon{position:absolute;top:30%;left:42%;font-size:35px}:host::ng-deep .asset-wrapper .asset-content__body .processing .icon-img{position:absolute;top:30%;left:42%;font-size:35px;color:#f44336}:host::ng-deep .asset-wrapper .asset-content__body .processing .icon-doc{position:absolute;top:30%;left:42%;font-size:35px;color:#f44336}:host::ng-deep .asset-wrapper .asset-content__body .processing .processing-txt{position:absolute;top:55%;left:35%}:host::ng-deep .asset-wrapper .asset-content__body .processing .failed-image{width:27px;height:27px;-o-object-fit:contain;object-fit:contain}:host::ng-deep .asset-wrapper .asset-content__body .processing .failed-group{position:absolute;top:55%;left:20%}:host::ng-deep .asset-wrapper .asset-content__body .processing .btn-failed-group{position:absolute;top:70%;left:10%;font-size:12px}:host::ng-deep .asset-wrapper .asset-content__body .processing .btn-failed-group .failed-txt{color:#f44336}:host::ng-deep .asset-wrapper .asset-content__body .processing .btn-failed-group .btn-custom-upload{font-size:9px;border:0;color:#fff;background-color:#ffc107;border-radius:3px}:host::ng-deep .asset-wrapper .asset-content__body .processing .btn-failed-group .btn-custom-failed{font-size:9px;border:0;color:#fff;background-color:#f44336;border-radius:3px}:host::ng-deep .asset-wrapper .asset-content__body .processing .btn-failed-group .btn-custom-failed:hover,:host::ng-deep .asset-wrapper .asset-content__body .processing .btn-failed-group .btn-custom-upload:hover{opacity:.8}:host::ng-deep .asset-wrapper .asset-content__footer{display:flex;align-items:center;justify-content:space-between;padding:5px 8px}:host::ng-deep .asset-wrapper .asset-content__footer--info{max-width:calc(100% - 50px)}:host::ng-deep .asset-wrapper .asset-content__footer--info p{margin:0;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host::ng-deep .asset-wrapper .asset-content__footer--info .info{font-size:12px;color:#979797}:host::ng-deep .asset-wrapper .asset-content__footer--info .info .extension{text-transform:uppercase}:host::ng-deep .asset-wrapper .asset-content__footer--info.file-type__document{max-width:calc(100% - 70px)}:host::ng-deep .asset-wrapper .asset-content__footer--file-type{border-radius:5px;background-color:#d8d8d8;padding:2px 6px;font-size:12px}:host::ng-deep .asset-wrapper .asset-content:hover .edit-button{opacity:1!important}"]
279
+ }] }
280
+ ];
281
+ /** @nocollapse */
282
+ AssetItemComponent.ctorParameters = function () { return [
283
+ { type: MatDialog },
284
+ { type: DomSanitizer },
285
+ { type: AssetService },
286
+ { type: AssetManagementService },
287
+ { type: ChangeDetectorRef }
288
+ ]; };
289
+ AssetItemComponent.propDecorators = {
290
+ hasModifyPermission: [{ type: Input }],
291
+ hasAccessPermission: [{ type: Input }],
292
+ hasArchivePermission: [{ type: Input }],
293
+ asset: [{ type: Input }],
294
+ selectAsset: [{ type: Output }]
295
+ };
296
+ return AssetItemComponent;
297
+ }());
298
+ export { AssetItemComponent };
299
+ if (false) {
300
+ /** @type {?} */
301
+ AssetItemComponent.prototype.hasModifyPermission;
302
+ /** @type {?} */
303
+ AssetItemComponent.prototype.hasAccessPermission;
304
+ /** @type {?} */
305
+ AssetItemComponent.prototype.hasArchivePermission;
306
+ /** @type {?} */
307
+ AssetItemComponent.prototype.asset;
308
+ /** @type {?} */
309
+ AssetItemComponent.prototype.selectAsset;
310
+ /** @type {?} */
311
+ AssetItemComponent.prototype.base64PNG;
312
+ /** @type {?} */
313
+ AssetItemComponent.prototype.errorMessage;
314
+ /** @type {?} */
315
+ AssetItemComponent.prototype.selectedAssets;
316
+ /** @type {?} */
317
+ AssetItemComponent.prototype.currentFolder;
318
+ /** @type {?} */
319
+ AssetItemComponent.prototype.fileType;
320
+ /** @type {?} */
321
+ AssetItemComponent.prototype.backgroundProcessingNum;
322
+ /**
323
+ * @type {?}
324
+ * @private
325
+ */
326
+ AssetItemComponent.prototype.destroy$;
327
+ /**
328
+ * @type {?}
329
+ * @private
330
+ */
331
+ AssetItemComponent.prototype.dialog;
332
+ /**
333
+ * @type {?}
334
+ * @private
335
+ */
336
+ AssetItemComponent.prototype.domSanitizer;
337
+ /** @type {?} */
338
+ AssetItemComponent.prototype.assetService;
339
+ /**
340
+ * @type {?}
341
+ * @private
342
+ */
343
+ AssetItemComponent.prototype.svc;
344
+ /**
345
+ * @type {?}
346
+ * @private
347
+ */
348
+ AssetItemComponent.prototype.changeDetectorRef;
349
+ }
350
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcnMtcGsvYXNzZXQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3BhcnRpYWwvYXNzZXQtaXRlbS9hc3NldC1pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUUsT0FBTyxFQUFFLFVBQVUsRUFBRSx5QkFBeUIsRUFBRSxZQUFZLEVBQW1CLE1BQU0saUJBQWlCLENBQUM7QUFDdkcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFakY7SUFVRSw0QkFDVSxNQUFpQixFQUNqQixZQUEwQixFQUMzQixZQUEwQixFQUN6QixHQUEyQixFQUMzQixpQkFBb0M7UUFKcEMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMzQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUN6QixRQUFHLEdBQUgsR0FBRyxDQUF3QjtRQUMzQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBVHJDLHdCQUFtQixHQUFhLElBQUksQ0FBQztRQUNyQyx3QkFBbUIsR0FBYSxJQUFJLENBQUM7UUFDckMseUJBQW9CLEdBQWEsSUFBSSxDQUFDO1FBYXJDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUVoRCxjQUFTLEdBQUc7WUFDakIsR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDO1lBQ3ZELEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQztZQUN2RCxHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUM7WUFDdkQsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUMsV0FBVyxDQUFDO1NBQy9ELENBQUM7UUFFSyxtQkFBYyxHQUFzQixFQUFFLENBQUM7UUFFdkMsYUFBUSxHQUFHLFlBQVksQ0FBQztRQUN4Qiw0QkFBdUIsR0FBRyx5QkFBeUIsQ0FBQztRQUVuRCxhQUFRLEdBQXFCLElBQUksT0FBTyxFQUFFLENBQUM7UUFsQmpELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDOzs7O0lBbUJELHFDQUFROzs7SUFBUjtRQUFBLGlCQVNDO1FBUkMscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxZQUFZO2FBQ2QsYUFBYSxFQUFFO2FBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUzs7OztRQUFDLFVBQUMsT0FBTztZQUNqQixLQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztZQUM3QixLQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekMsQ0FBQyxFQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsc0JBQUksa0RBQWtCOzs7O1FBQXRCO1lBQUEsaUJBS0M7WUFKQyxPQUFPLENBQ0wsSUFBSSxDQUFDLGNBQWM7Z0JBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSTs7OztnQkFBQyxVQUFDLEtBQUssSUFBSyxPQUFBLEtBQUssQ0FBQyxPQUFPLEtBQUssS0FBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQXBDLENBQW9DLEVBQUMsQ0FDMUUsQ0FBQztRQUNKLENBQUM7OztPQUFBOzs7O0lBRU0scUNBQVE7OztJQUFmO1FBQ0UsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Ozs7SUFFTSxzQ0FBUzs7O0lBQWhCO1FBQUEsaUJBdUJDOztZQXRCTyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDdkQsU0FBUyxFQUFFLEtBQUs7WUFDaEIsSUFBSSxFQUFFO2dCQUNKLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87Z0JBQzNCLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGdDQUFnQztnQkFDakQsVUFBVSxFQUFFO29CQUNWLE1BQU0sRUFBRSxJQUFJLENBQUMsbUJBQW1CO29CQUNoQyxNQUFNLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtvQkFDaEMsT0FBTyxFQUFFLElBQUksQ0FBQyxvQkFBb0I7aUJBQ25DO2FBQ0Y7WUFDRCxVQUFVLEVBQUUsb0JBQW9CO1NBQ2pDLENBQUM7UUFDRixJQUFJLFNBQVMsRUFBRTtZQUNiLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTOzs7O1lBQUMsVUFBQyxHQUFHO2dCQUNwQyxJQUFJLEdBQUcsRUFBRTtvQkFDUCxLQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQzt3QkFDaEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxxQkFBcUI7cUJBQ3hDLENBQUMsQ0FBQztpQkFDSjtZQUNILENBQUMsRUFBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOzs7OztJQUVNLDBDQUFhOzs7O0lBQXBCLFVBQXFCLEtBQWlCO1FBQXRDLGlCQTJCQzs7WUExQk8sR0FBRyxHQUFHLEVBQUU7UUFDZCxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQzs7WUFDbEIsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQ3hELElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsTUFBTTtnQkFDWixHQUFHLEtBQUE7YUFDSjtZQUNELFVBQVUsRUFBRSxtQkFBbUI7WUFDL0IsU0FBUyxFQUFFLEtBQUs7U0FDakIsQ0FBQztRQUVGLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTOzs7O1FBQUMsVUFBQyxHQUFHO1lBQ3BDLElBQUksR0FBRyxFQUFFO2dCQUNQLEtBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO29CQUNoQixJQUFJLEVBQUUsV0FBVyxDQUFDLHFCQUFxQjtpQkFDeEMsQ0FBQyxDQUFDO2dCQUNILEtBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO29CQUNoQixJQUFJLEVBQUUsV0FBVyxDQUFDLHFCQUFxQjtpQkFDeEMsQ0FBQyxDQUFDO2dCQUNILEtBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO29CQUNoQixJQUFJLEVBQUUsV0FBVyxDQUFDLG1CQUFtQjtvQkFDckMsT0FBTyxFQUFFLEVBQUU7aUJBQ1osQ0FBQyxDQUFDO2dCQUNILEtBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2FBQzFCO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7OztJQUVNLHFDQUFROzs7O0lBQWYsVUFBZ0IsS0FBaUI7UUFBakMsaUJBMEJDOztZQXpCTyxHQUFHLEdBQUcsRUFBRTtRQUNkLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDOztZQUNsQixTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDeEQsSUFBSSxFQUFFO2dCQUNKLElBQUksRUFBRSxNQUFNO2dCQUNaLEdBQUcsS0FBQTthQUNKO1lBQ0QsVUFBVSxFQUFFLG1CQUFtQjtZQUMvQixTQUFTLEVBQUUsS0FBSztTQUNqQixDQUFDO1FBRUYsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVM7Ozs7UUFBQyxVQUFDLEdBQUc7WUFDcEMsSUFBSSxHQUFHLEVBQUU7Z0JBQ1AsS0FBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7b0JBQ2hCLElBQUksRUFBRSxXQUFXLENBQUMscUJBQXFCO2lCQUN4QyxDQUFDLENBQUM7Z0JBQ0gsS0FBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7b0JBQ2hCLElBQUksRUFBRSxXQUFXLENBQUMscUJBQXFCO2lCQUN4QyxDQUFDLENBQUM7Z0JBQ0gsS0FBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7b0JBQ2hCLElBQUksRUFBRSxXQUFXLENBQUMsbUJBQW1CO29CQUNyQyxPQUFPLEVBQUUsRUFBRTtpQkFDWixDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7SUFFTyw0Q0FBZTs7OztJQUF2QjtRQUFBLGlCQU1DO1FBTEMsTUFBTTs7OztRQUFDLFVBQUMsS0FBSyxJQUFLLE9BQUEsS0FBSyxDQUFDLGNBQWMsRUFBcEIsQ0FBb0IsRUFBQzthQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTOzs7O1FBQUMsVUFBQyxjQUFjO1lBQ3hCLEtBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3ZDLENBQUMsRUFBQyxDQUFDO0lBQ1AsQ0FBQzs7Ozs7SUFFTyw4Q0FBaUI7Ozs7SUFBekI7UUFBQSxpQkFvQkM7O1lBbkJPLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUN4RCxJQUFJLEVBQUU7Z0JBQ0osY0FBYyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTztnQkFDMUMsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFdBQVc7Z0JBQ3BELE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU87YUFDbkM7WUFDRCxVQUFVLEVBQUUsb0JBQW9CO1NBQ2pDLENBQUM7UUFFRixTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUzs7OztRQUFDLFVBQUMsR0FBRztZQUNwQyxJQUFJLEdBQUcsRUFBRTtnQkFDUCxLQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztvQkFDaEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxxQkFBcUI7aUJBQ3hDLENBQUMsQ0FBQztnQkFDSCxLQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztvQkFDaEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxxQkFBcUI7aUJBQ3hDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7O0lBRUQsd0NBQVc7OztJQUFYO1FBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOztnQkE5S0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLGlsSkFBMEM7O2lCQUUzQzs7OztnQkFqQlEsU0FBUztnQkFDVCxZQUFZO2dCQVNaLFlBQVk7Z0JBTlosc0JBQXNCO2dCQU43QixpQkFBaUI7OztzQ0FxQmhCLEtBQUs7c0NBQ0wsS0FBSzt1Q0FDTCxLQUFLO3dCQVdMLEtBQUs7OEJBRUwsTUFBTTs7SUEwSlQseUJBQUM7Q0FBQSxBQS9LRCxJQStLQztTQTFLWSxrQkFBa0I7OztJQUM3QixpREFBOEM7O0lBQzlDLGlEQUE4Qzs7SUFDOUMsa0RBQStDOztJQVcvQyxtQ0FBMkI7O0lBRTNCLHlDQUF1RDs7SUFFdkQsdUNBS0U7O0lBQ0YsMENBQTRCOztJQUM1Qiw0Q0FBOEM7O0lBQzlDLDJDQUFzQzs7SUFDdEMsc0NBQStCOztJQUMvQixxREFBMkQ7Ozs7O0lBRTNELHNDQUFtRDs7Ozs7SUF4QmpELG9DQUF5Qjs7Ozs7SUFDekIsMENBQWtDOztJQUNsQywwQ0FBaUM7Ozs7O0lBQ2pDLGlDQUFtQzs7Ozs7SUFDbkMsK0NBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQXNzZXRNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2Fzc2V0LW1hbmFnZW1lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IGZpbGVEZWZhdWx0LCBpbWFnZUNzdiwgaW1hZ2VQZGYsIGltYWdlWmlwIH0gZnJvbSAnLi4vLi4vLi4vY29udGFuc3QnO1xyXG5pbXBvcnQgeyBBc3NldE1vZGVsLCBCYWNrZ3JvdWRQcm9jZXNzaW5nU3RhdHVzLCBGaWxlVHlwZUVudW0sIEZvbGRlclRyZWVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEFjdGlvblR5cGVzLCBzZWxlY3QgfSBmcm9tICcuLi8uLi8uLi9zdG9yZSc7XHJcbmltcG9ydCB7IEFzc2V0RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vYXNzZXQtZGlhbG9nL2Fzc2V0LWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEZWxldGVEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9kZWxldGUtZGlhbG9nL2RlbGV0ZS1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXNzZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXNzZXQuc2VydmljZSc7XHJcbmltcG9ydCB7IFVwbG9hZERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL3VwbG9hZC1kaWFsb2cvdXBsb2FkLWRpYWxvZy5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYXNzZXQtaXRlbScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Fzc2V0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Fzc2V0LWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFzc2V0SXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBoYXNNb2RpZnlQZXJtaXNzaW9uPzogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgaGFzQWNjZXNzUGVybWlzc2lvbj86IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGhhc0FyY2hpdmVQZXJtaXNzaW9uPzogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXHJcbiAgICBwdWJsaWMgYXNzZXRTZXJ2aWNlOiBBc3NldFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHN2YzogQXNzZXRNYW5hZ2VtZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICB0aGlzLl9iaW5kU3Vic2NyaWJlcigpO1xyXG4gIH1cclxuICBASW5wdXQoKSBhc3NldDogQXNzZXRNb2RlbDtcclxuXHJcbiAgQE91dHB1dCgpIHNlbGVjdEFzc2V0ID0gbmV3IEV2ZW50RW1pdHRlcjxBc3NldE1vZGVsPigpO1xyXG5cclxuICBwdWJsaWMgYmFzZTY0UE5HID0ge1xyXG4gICAgcGRmOiB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKGltYWdlUGRmKSxcclxuICAgIHppcDogdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybChpbWFnZVppcCksXHJcbiAgICBjc3Y6IHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwoaW1hZ2VDc3YpLFxyXG4gICAgZGVmYXVsdDogdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybChmaWxlRGVmYXVsdCksXHJcbiAgfTtcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgcHVibGljIHNlbGVjdGVkQXNzZXRzOiBBcnJheTxBc3NldE1vZGVsPiA9IFtdO1xyXG4gIHB1YmxpYyBjdXJyZW50Rm9sZGVyOiBGb2xkZXJUcmVlTW9kZWw7XHJcbiAgcHVibGljIGZpbGVUeXBlID0gRmlsZVR5cGVFbnVtO1xyXG4gIHB1YmxpYyBiYWNrZ3JvdW5kUHJvY2Vzc2luZ051bSA9IEJhY2tncm91ZFByb2Nlc3NpbmdTdGF0dXM7XHJcblxyXG4gIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIC8vIGdldCBjdXJyZW50IGZvbGRlclxyXG4gICAgdGhpcy5hc3NldFNlcnZpY2VcclxuICAgICAgLmdldEZvbGRlckxpc3QoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGZvbGRlcnMpID0+IHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRGb2xkZXIgPSBmb2xkZXJzO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldCBjaGVja1NlbGVjdGVkQXNzZXQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLnNlbGVjdGVkQXNzZXRzICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRBc3NldHMuc29tZSgoYXNzZXQpID0+IGFzc2V0LkFzc2V0SWQgPT09IHRoaXMuYXNzZXQuQXNzZXRJZClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2UoKSB7XHJcbiAgICB0aGlzLnNlbGVjdEFzc2V0LmVtaXQodGhpcy5hc3NldCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZWRpdEFzc2V0KCkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihBc3NldERpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgYXNzZXRJZDogdGhpcy5hc3NldC5Bc3NldElkLFxyXG4gICAgICAgIG5hbWU6IHRoaXMuYXNzZXQuT3JpZ2luYWxGaWxlTmFtZVdpdGhvdXRFeHRlbnNpb24sXHJcbiAgICAgICAgcGVybWlzc2lvbjoge1xyXG4gICAgICAgICAgbW9kaWZ5OiB0aGlzLmhhc01vZGlmeVBlcm1pc3Npb24sXHJcbiAgICAgICAgICBhY2Nlc3M6IHRoaXMuaGFzQWNjZXNzUGVybWlzc2lvbixcclxuICAgICAgICAgIGFyY2hpdmU6IHRoaXMuaGFzQXJjaGl2ZVBlcm1pc3Npb24sXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBwYW5lbENsYXNzOiAnbGliLWRpYWxvZy0tbWVkaXVtJyxcclxuICAgIH0pO1xyXG4gICAgaWYgKGRpYWxvZ1JlZikge1xyXG4gICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgIHRoaXMuc3ZjLmRpc3BhdGNoKHtcclxuICAgICAgICAgICAgdHlwZTogQWN0aW9uVHlwZXMuUkVMT0FEX0NVUlJFTlRfQVNTRVRTLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblVwbG9hZEFnYWluKGFzc2V0OiBBc3NldE1vZGVsKSB7XHJcbiAgICBjb25zdCBpZHMgPSBbXTtcclxuICAgIGlkcy5wdXNoKGFzc2V0LkFzc2V0SWQpO1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihEZWxldGVEaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHR5cGU6ICdmaWxlJyxcclxuICAgICAgICBpZHMsXHJcbiAgICAgIH0sXHJcbiAgICAgIHBhbmVsQ2xhc3M6ICdsaWItZGlhbG9nLS1zbWFsbCcsXHJcbiAgICAgIGF1dG9Gb2N1czogZmFsc2UsXHJcbiAgICB9KTtcclxuXHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xyXG4gICAgICAgICAgdHlwZTogQWN0aW9uVHlwZXMuUkVMT0FEX0NVUlJFTlRfQVNTRVRTLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuc3ZjLmRpc3BhdGNoKHtcclxuICAgICAgICAgIHR5cGU6IEFjdGlvblR5cGVzLlJFTE9BRF9DVVJSRU5UX0ZPTERFUixcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XHJcbiAgICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5TRVRfU0VMRUNURURfQVNTRVRTLFxyXG4gICAgICAgICAgcGF5bG9hZDogW10sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5fb3BlblVwbG9hZERpYWxvZygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkRlbGV0ZShhc3NldDogQXNzZXRNb2RlbCkge1xyXG4gICAgY29uc3QgaWRzID0gW107XHJcbiAgICBpZHMucHVzaChhc3NldC5Bc3NldElkKTtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oRGVsZXRlRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICB0eXBlOiAnZmlsZScsXHJcbiAgICAgICAgaWRzLFxyXG4gICAgICB9LFxyXG4gICAgICBwYW5lbENsYXNzOiAnbGliLWRpYWxvZy0tc21hbGwnLFxyXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlLFxyXG4gICAgfSk7XHJcblxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgIHRoaXMuc3ZjLmRpc3BhdGNoKHtcclxuICAgICAgICAgIHR5cGU6IEFjdGlvblR5cGVzLlJFTE9BRF9DVVJSRU5UX0FTU0VUUyxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XHJcbiAgICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5SRUxPQURfQ1VSUkVOVF9GT0xERVIsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xyXG4gICAgICAgICAgdHlwZTogQWN0aW9uVHlwZXMuU0VUX1NFTEVDVEVEX0FTU0VUUyxcclxuICAgICAgICAgIHBheWxvYWQ6IFtdLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2JpbmRTdWJzY3JpYmVyKCkge1xyXG4gICAgc2VsZWN0KChzdGF0ZSkgPT4gc3RhdGUuc2VsZWN0ZWRBc3NldHMpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgoc2VsZWN0ZWRBc3NldHMpID0+IHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQXNzZXRzID0gc2VsZWN0ZWRBc3NldHM7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfb3BlblVwbG9hZERpYWxvZygpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVXBsb2FkRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBjdXJyZW50QXNzZXRJZDogdGhpcy5jdXJyZW50Rm9sZGVyLkFzc2V0SWQsXHJcbiAgICAgICAgZmlsZVR5cGU6IHRoaXMuYXNzZXRTZXJ2aWNlLmRpYWxvZ0NvbmZpZy5hbGxvd2VkVHlwZSxcclxuICAgICAgICBtYXhTaXplOiB0aGlzLmFzc2V0U2VydmljZS5tYXhTaXplXHJcbiAgICAgIH0sXHJcbiAgICAgIHBhbmVsQ2xhc3M6ICdsaWItZGlhbG9nLS1tZWRpdW0nLFxyXG4gICAgfSk7XHJcblxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgIHRoaXMuc3ZjLmRpc3BhdGNoKHtcclxuICAgICAgICAgIHR5cGU6IEFjdGlvblR5cGVzLlJFTE9BRF9DVVJSRU5UX0FTU0VUUyxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XHJcbiAgICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5SRUxPQURfQ1VSUkVOVF9GT0xERVIsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==