@rs-pk/asset-management 1.0.25 → 1.0.26

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 +6436 -6436
  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 +169 -169
  7. package/esm2015/lib/asset-management.module.js +178 -178
  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 -398
  11. package/esm2015/lib/components/partial/asset-item/asset-item.component.js +316 -316
  12. package/esm2015/lib/components/partial/asset-list/asset-list.component.js +285 -285
  13. package/esm2015/lib/components/partial/asset-management-dialog/asset-management-dialog.component.js +110 -110
  14. package/esm2015/lib/components/partial/asset-wrapper/asset-wrapper.component.js +119 -119
  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 -126
  21. package/esm2015/lib/components/partial/folder-list/folder-list.component.js +81 -81
  22. package/esm2015/lib/components/partial/node-details/node-details.component.js +417 -417
  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 +151 -151
  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 +184 -184
  62. package/esm5/lib/asset-management.module.js +179 -179
  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 -440
  66. package/esm5/lib/components/partial/asset-item/asset-item.component.js +350 -350
  67. package/esm5/lib/components/partial/asset-list/asset-list.component.js +318 -318
  68. package/esm5/lib/components/partial/asset-management-dialog/asset-management-dialog.component.js +125 -125
  69. package/esm5/lib/components/partial/asset-wrapper/asset-wrapper.component.js +137 -137
  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 -138
  76. package/esm5/lib/components/partial/folder-list/folder-list.component.js +94 -94
  77. package/esm5/lib/components/partial/node-details/node-details.component.js +458 -458
  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 +170 -170
  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 +5635 -5635
  117. package/fesm2015/rs-pk-asset-management.js.map +1 -1
  118. package/fesm5/rs-pk-asset-management.js +6441 -6441
  119. package/fesm5/rs-pk-asset-management.js.map +1 -1
  120. package/lib/asset-management.component.d.ts +25 -25
  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 -65
  125. package/lib/components/partial/asset-item/asset-item.component.d.ts +40 -40
  126. package/lib/components/partial/asset-list/asset-list.component.d.ts +27 -27
  127. package/lib/components/partial/asset-management-dialog/asset-management-dialog.component.d.ts +17 -17
  128. package/lib/components/partial/asset-wrapper/asset-wrapper.component.d.ts +23 -23
  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 -17
  135. package/lib/components/partial/folder-list/folder-list.component.d.ts +14 -14
  136. package/lib/components/partial/node-details/node-details.component.d.ts +32 -32
  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 +73 -73
  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 -2
  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,318 +1,318 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import * as tslib_1 from "tslib";
6
- import { Component, Input, ViewChild, } from '@angular/core';
7
- import { MatPaginator } from '@angular/material/paginator';
8
- import { of } from 'rxjs/internal/observable/of';
9
- import { Subject } from 'rxjs/internal/Subject';
10
- import { switchMap, takeUntil } from 'rxjs/operators';
11
- import { AssetManagementService } from '../../../asset-management.service';
12
- import { BackgroudProcessingStatus } from '../../../models';
13
- import { AssetService } from '../../../services/asset.service';
14
- import { ActionTypes } from '../../../store/actions.action';
15
- import { select } from '../../../store/reducer';
16
- var AssetListComponent = /** @class */ (function () {
17
- function AssetListComponent(assetService, svc) {
18
- this.assetService = assetService;
19
- this.svc = svc;
20
- this.hasModifyPermission = true;
21
- this.hasAccessPermission = true;
22
- this.hasArchivePermission = true;
23
- this.backgroundProcessingNum = BackgroudProcessingStatus;
24
- this.unsubscribe$ = new Subject();
25
- this.selectedAssets = [];
26
- }
27
- /**
28
- * @return {?}
29
- */
30
- AssetListComponent.prototype.ngOnInit = /**
31
- * @return {?}
32
- */
33
- function () {
34
- this.bindSubscriber();
35
- };
36
- /**
37
- * @param {?} changes
38
- * @return {?}
39
- */
40
- AssetListComponent.prototype.ngOnChanges = /**
41
- * @param {?} changes
42
- * @return {?}
43
- */
44
- function (changes) {
45
- var _this = this;
46
- if (changes.assets) {
47
- // Check if asset is uploading
48
- if (this.assets && this.assets.find((/**
49
- * @param {?} x
50
- * @return {?}
51
- */
52
- function (x) { return x.BackgroudProcessingStatus === _this.backgroundProcessingNum.InProcessing; }))) {
53
- this._resetUploadingAssets();
54
- }
55
- ;
56
- this.paginator.pageIndex = this.assetService.pageIndex;
57
- this.paginator.pageSize = this.assetService.pageSize;
58
- this.paginator.length = this.assetService.fileTotal;
59
- }
60
- };
61
- /**
62
- * @param {?} event
63
- * @return {?}
64
- */
65
- AssetListComponent.prototype.onSelectAsset = /**
66
- * @param {?} event
67
- * @return {?}
68
- */
69
- function (event) {
70
- /** @type {?} */
71
- var index = this.selectedAssets.findIndex((/**
72
- * @param {?} asset
73
- * @return {?}
74
- */
75
- function (asset) { return asset.AssetId === event.AssetId; }));
76
- /** @type {?} */
77
- var newSelectedAssets = index > -1
78
- ? this.selectedAssets.filter((/**
79
- * @param {?} asset
80
- * @param {?} i
81
- * @return {?}
82
- */
83
- function (asset, i) { return index !== i; }))
84
- : tslib_1.__spread(this.selectedAssets, [event]);
85
- this.svc.dispatch({
86
- type: ActionTypes.SET_SELECTED_ASSETS,
87
- payload: newSelectedAssets,
88
- });
89
- };
90
- /**
91
- * @private
92
- * @return {?}
93
- */
94
- AssetListComponent.prototype.bindSubscriber = /**
95
- * @private
96
- * @return {?}
97
- */
98
- function () {
99
- var _this = this;
100
- select((/**
101
- * @param {?} state
102
- * @return {?}
103
- */
104
- function (state) { return state.deletedAssetId; }))
105
- .pipe(takeUntil(this.unsubscribe$))
106
- .subscribe((/**
107
- * @param {?} id
108
- * @return {?}
109
- */
110
- function (id) {
111
- if (_this.selectedAssets && _this.selectedAssets.length) {
112
- /** @type {?} */
113
- var newSelectedAssets = _this.selectedAssets.filter((/**
114
- * @param {?} asset
115
- * @return {?}
116
- */
117
- function (asset) { return asset.AssetId !== id; }));
118
- _this.svc.dispatch({
119
- type: ActionTypes.SET_SELECTED_ASSETS,
120
- payload: newSelectedAssets,
121
- });
122
- }
123
- }));
124
- select((/**
125
- * @param {?} state
126
- * @return {?}
127
- */
128
- function (state) { return state.currentFolderId; }))
129
- .pipe(takeUntil(this.unsubscribe$))
130
- .subscribe((/**
131
- * @param {?} currentFolderId
132
- * @return {?}
133
- */
134
- function (currentFolderId) {
135
- _this.currentFolderId = currentFolderId;
136
- _this.svc.dispatch({
137
- type: ActionTypes.SET_SELECTED_ASSETS,
138
- payload: [],
139
- });
140
- }));
141
- select((/**
142
- * @param {?} state
143
- * @return {?}
144
- */
145
- function (state) { return state.selectedAssets; }))
146
- .pipe(takeUntil(this.unsubscribe$))
147
- .subscribe((/**
148
- * @param {?} selectedAssets
149
- * @return {?}
150
- */
151
- function (selectedAssets) {
152
- _this.selectedAssets = selectedAssets;
153
- }));
154
- select((/**
155
- * @param {?} state
156
- * @return {?}
157
- */
158
- function (state) { return state.reloadCurrentAssets; }))
159
- .pipe(takeUntil(this.unsubscribe$), switchMap((/**
160
- * @param {?} res
161
- * @return {?}
162
- */
163
- function (res) { return of(res); })))
164
- .subscribe((/**
165
- * @return {?}
166
- */
167
- function () {
168
- _this.fetchChildrenAssets();
169
- }));
170
- };
171
- /**
172
- * @param {?=} event
173
- * @return {?}
174
- */
175
- AssetListComponent.prototype.pageChange = /**
176
- * @param {?=} event
177
- * @return {?}
178
- */
179
- function (event) {
180
- this.assetService.pageSize = event.pageSize;
181
- this.assetService.pageIndex = event.pageIndex;
182
- this.fetchChildrenAssets();
183
- };
184
- /**
185
- * @private
186
- * @return {?}
187
- */
188
- AssetListComponent.prototype.fetchChildrenAssets = /**
189
- * @private
190
- * @return {?}
191
- */
192
- function () {
193
- var _this = this;
194
- if (!this.currentFolderId) {
195
- return;
196
- }
197
- this.svc.dispatch({
198
- type: ActionTypes.SET_GLOBAL_LOADING,
199
- payload: true,
200
- });
201
- this.assetService
202
- .getChildrenAssets({ assetId: this.currentFolderId })
203
- .pipe(takeUntil(this.unsubscribe$))
204
- .subscribe((/**
205
- * @param {?} res
206
- * @return {?}
207
- */
208
- function (res) {
209
- _this.assetService.setAssetList(res.Data.Children, res.Meta);
210
- }))
211
- .add((/**
212
- * @return {?}
213
- */
214
- function () {
215
- _this.svc.dispatch({
216
- type: ActionTypes.SET_GLOBAL_LOADING,
217
- payload: false,
218
- });
219
- }));
220
- };
221
- /**
222
- * @private
223
- * @return {?}
224
- */
225
- AssetListComponent.prototype._resetUploadingAssets = /**
226
- * @private
227
- * @return {?}
228
- */
229
- function () {
230
- var _this = this;
231
- /** @type {?} */
232
- var reload = setInterval((/**
233
- * @return {?}
234
- */
235
- function () {
236
- _this.fetchChildrenAssets();
237
- if (_this.assets.find((/**
238
- * @param {?} x
239
- * @return {?}
240
- */
241
- function (x) { return x.BackgroudProcessingStatus === _this.backgroundProcessingNum.Processed; }))) {
242
- clearInterval(reload);
243
- }
244
- console.log('Upload Successfully!'); // interval will be cleared after completing this whole block
245
- }), 5000);
246
- };
247
- /**
248
- * @return {?}
249
- */
250
- AssetListComponent.prototype.ngOnDestroy = /**
251
- * @return {?}
252
- */
253
- function () {
254
- this.unsubscribe$.next();
255
- this.unsubscribe$.complete();
256
- };
257
- AssetListComponent.decorators = [
258
- { type: Component, args: [{
259
- selector: 'lib-asset-list',
260
- template: "<div class=\"asset-container\">\r\n <div class=\"asset-heading\">\r\n <h6 class=\"asset-heading__title\">Files</h6>\r\n <lib-sort-items\r\n [hidden]=\"!assets?.length\"\r\n class=\"asset-heading__sort\"\r\n ></lib-sort-items>\r\n </div>\r\n <ng-container *ngIf=\"assets && !assets.length; else assetsTemplate\">\r\n <div class=\"asset-empty\">\r\n <span>This asset is empty.</span>\r\n </div>\r\n </ng-container>\r\n <ng-template #assetsTemplate>\r\n <div class=\"asset-list\">\r\n <lib-asset-item\r\n class=\"asset-list__item\"\r\n *ngFor=\"let asset of assets\"\r\n [asset]=\"asset\"\r\n (selectAsset)=\"onSelectAsset($event)\"\r\n [hasModifyPermission]=\"hasModifyPermission\"\r\n [hasAccessPermission]=\"hasAccessPermission\"\r\n [hasArchivePermission]=\"hasArchivePermission\"\r\n >\r\n </lib-asset-item>\r\n </div>\r\n </ng-template>\r\n <div [hidden]=\"!assets?.length\">\r\n <mat-paginator\r\n #paginator\r\n [pageSizeOptions]=\"[12, 24, 60, 120]\"\r\n (page)=\"pageChange($event)\"\r\n [showFirstLastButtons]=\"true\"\r\n >\r\n </mat-paginator>\r\n </div>\r\n</div>\r\n",
261
- styles: [":host::ng-deep .asset-container .asset-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}:host::ng-deep .asset-container .asset-heading__title{margin-bottom:0;color:#979797}:host::ng-deep .asset-container .asset-list{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:stretch;margin:0 -5px}:host::ng-deep .asset-container .asset-list__item{width:25%}@media only screen and (max-width:1200px){:host::ng-deep .asset-container .asset-list__item{width:calc(100% / 3)}}@media only screen and (max-width:960px){:host::ng-deep .asset-container .asset-list__item{width:50%}}:host::ng-deep .asset-container .asset-empty{text-align:center;color:#979797;font-size:14px}"]
262
- }] }
263
- ];
264
- /** @nocollapse */
265
- AssetListComponent.ctorParameters = function () { return [
266
- { type: AssetService },
267
- { type: AssetManagementService }
268
- ]; };
269
- AssetListComponent.propDecorators = {
270
- hasModifyPermission: [{ type: Input }],
271
- hasAccessPermission: [{ type: Input }],
272
- hasArchivePermission: [{ type: Input }],
273
- paginator: [{ type: ViewChild, args: [MatPaginator, { static: true },] }],
274
- assets: [{ type: Input }]
275
- };
276
- return AssetListComponent;
277
- }());
278
- export { AssetListComponent };
279
- if (false) {
280
- /** @type {?} */
281
- AssetListComponent.prototype.hasModifyPermission;
282
- /** @type {?} */
283
- AssetListComponent.prototype.hasAccessPermission;
284
- /** @type {?} */
285
- AssetListComponent.prototype.hasArchivePermission;
286
- /** @type {?} */
287
- AssetListComponent.prototype.paginator;
288
- /** @type {?} */
289
- AssetListComponent.prototype.assets;
290
- /** @type {?} */
291
- AssetListComponent.prototype.backgroundProcessingNum;
292
- /**
293
- * @type {?}
294
- * @private
295
- */
296
- AssetListComponent.prototype.unsubscribe$;
297
- /**
298
- * @type {?}
299
- * @private
300
- */
301
- AssetListComponent.prototype.currentFolderId;
302
- /**
303
- * @type {?}
304
- * @private
305
- */
306
- AssetListComponent.prototype.selectedAssets;
307
- /**
308
- * @type {?}
309
- * @private
310
- */
311
- AssetListComponent.prototype.assetService;
312
- /**
313
- * @type {?}
314
- * @private
315
- */
316
- AssetListComponent.prototype.svc;
317
- }
318
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcnMtcGsvYXNzZXQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3BhcnRpYWwvYXNzZXQtbGlzdC9hc3NldC1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUtMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFhLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBYyx5QkFBeUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWhEO0lBVUUsNEJBQ1UsWUFBMEIsRUFDMUIsR0FBMkI7UUFEM0IsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsUUFBRyxHQUFILEdBQUcsQ0FBd0I7UUFONUIsd0JBQW1CLEdBQWEsSUFBSSxDQUFDO1FBQ3JDLHdCQUFtQixHQUFhLElBQUksQ0FBQztRQUNyQyx5QkFBb0IsR0FBYSxJQUFJLENBQUM7UUFVeEMsNEJBQXVCLEdBQUcseUJBQXlCLENBQUM7UUFFbkQsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRW5DLG1C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SUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDOztnQkEzSUYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLDJzQ0FBMEM7O2lCQUUzQzs7OztnQkFSUSxZQUFZO2dCQUZaLHNCQUFzQjs7O3NDQVk1QixLQUFLO3NDQUNMLEtBQUs7dUNBQ0wsS0FBSzs0QkFPTCxTQUFTLFNBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTt5QkFDeEMsS0FBSzs7SUE0SFIseUJBQUM7Q0FBQSxBQTVJRCxJQTRJQztTQXZJWSxrQkFBa0I7OztJQUM3QixpREFBOEM7O0lBQzlDLGlEQUE4Qzs7SUFDOUMsa0RBQStDOztJQU8vQyx1Q0FBbUU7O0lBQ25FLG9DQUE4Qjs7SUFFOUIscURBQTJEOzs7OztJQUUzRCwwQ0FBMkM7Ozs7O0lBQzNDLDZDQUFnQzs7Ozs7SUFDaEMsNENBQStDOzs7OztJQVg3QywwQ0FBa0M7Ozs7O0lBQ2xDLGlDQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IsIFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL29mJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMvaW50ZXJuYWwvU3ViamVjdCc7XHJcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBc3NldE1hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXNzZXQtbWFuYWdlbWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXNzZXRNb2RlbCwgQmFja2dyb3VkUHJvY2Vzc2luZ1N0YXR1cyB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEFzc2V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Fzc2V0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY3Rpb25UeXBlcyB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2FjdGlvbnMuYWN0aW9uJztcclxuaW1wb3J0IHsgc2VsZWN0IH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvcmVkdWNlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1hc3NldC1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXNzZXQtbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYXNzZXQtbGlzdC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXNzZXRMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgaGFzTW9kaWZ5UGVybWlzc2lvbj86IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGhhc0FjY2Vzc1Blcm1pc3Npb24/OiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBoYXNBcmNoaXZlUGVybWlzc2lvbj86IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXNzZXRTZXJ2aWNlOiBBc3NldFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHN2YzogQXNzZXRNYW5hZ2VtZW50U2VydmljZVxyXG4gICkge31cclxuXHJcbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IsIHsgc3RhdGljOiB0cnVlIH0pIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xyXG4gIEBJbnB1dCgpIGFzc2V0czogQXNzZXRNb2RlbFtdO1xyXG5cclxuICBwdWJsaWMgYmFja2dyb3VuZFByb2Nlc3NpbmdOdW0gPSBCYWNrZ3JvdWRQcm9jZXNzaW5nU3RhdHVzO1xyXG5cclxuICBwcml2YXRlIHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBjdXJyZW50Rm9sZGVySWQ6IHN0cmluZztcclxuICBwcml2YXRlIHNlbGVjdGVkQXNzZXRzOiBBcnJheTxBc3NldE1vZGVsPiA9IFtdO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuYmluZFN1YnNjcmliZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzLmFzc2V0cykge1xyXG4gICAgICAvLyBDaGVjayBpZiBhc3NldCBpcyB1cGxvYWRpbmdcclxuICAgICAgaWYgKHRoaXMuYXNzZXRzICYmIHRoaXMuYXNzZXRzLmZpbmQoeCA9PiB4LkJhY2tncm91ZFByb2Nlc3NpbmdTdGF0dXMgPT09IHRoaXMuYmFja2dyb3VuZFByb2Nlc3NpbmdOdW0uSW5Qcm9jZXNzaW5nKSkge1xyXG4gICAgICAgIHRoaXMuX3Jlc2V0VXBsb2FkaW5nQXNzZXRzKCk7XHJcbiAgICAgIH07XHJcblxyXG4gICAgICB0aGlzLnBhZ2luYXRvci5wYWdlSW5kZXggPSB0aGlzLmFzc2V0U2VydmljZS5wYWdlSW5kZXg7XHJcbiAgICAgIHRoaXMucGFnaW5hdG9yLnBhZ2VTaXplID0gdGhpcy5hc3NldFNlcnZpY2UucGFnZVNpemU7XHJcbiAgICAgIHRoaXMucGFnaW5hdG9yLmxlbmd0aCA9IHRoaXMuYXNzZXRTZXJ2aWNlLmZpbGVUb3RhbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNlbGVjdEFzc2V0KGV2ZW50OiBBc3NldE1vZGVsKSB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRBc3NldHMuZmluZEluZGV4KFxyXG4gICAgICAoYXNzZXQpID0+IGFzc2V0LkFzc2V0SWQgPT09IGV2ZW50LkFzc2V0SWRcclxuICAgICk7XHJcbiAgICBjb25zdCBuZXdTZWxlY3RlZEFzc2V0czogQXNzZXRNb2RlbFtdID1cclxuICAgICAgaW5kZXggPiAtMVxyXG4gICAgICAgID8gdGhpcy5zZWxlY3RlZEFzc2V0cy5maWx0ZXIoKGFzc2V0LCBpKSA9PiBpbmRleCAhPT0gaSlcclxuICAgICAgICA6IFsuLi50aGlzLnNlbGVjdGVkQXNzZXRzLCBldmVudF07XHJcblxyXG4gICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xyXG4gICAgICB0eXBlOiBBY3Rpb25UeXBlcy5TRVRfU0VMRUNURURfQVNTRVRTLFxyXG4gICAgICBwYXlsb2FkOiBuZXdTZWxlY3RlZEFzc2V0cyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBiaW5kU3Vic2NyaWJlcigpIHtcclxuICAgIHNlbGVjdCgoc3RhdGUpID0+IHN0YXRlLmRlbGV0ZWRBc3NldElkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChpZCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkQXNzZXRzICYmIHRoaXMuc2VsZWN0ZWRBc3NldHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZEFzc2V0cyA9IHRoaXMuc2VsZWN0ZWRBc3NldHMuZmlsdGVyKFxyXG4gICAgICAgICAgICAoYXNzZXQpID0+IGFzc2V0LkFzc2V0SWQgIT09IGlkXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xyXG4gICAgICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5TRVRfU0VMRUNURURfQVNTRVRTLFxyXG4gICAgICAgICAgICBwYXlsb2FkOiBuZXdTZWxlY3RlZEFzc2V0cyxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgc2VsZWN0KChzdGF0ZSkgPT4gc3RhdGUuY3VycmVudEZvbGRlcklkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChjdXJyZW50Rm9sZGVySWQpID0+IHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRGb2xkZXJJZCA9IGN1cnJlbnRGb2xkZXJJZDtcclxuICAgICAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XHJcbiAgICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5TRVRfU0VMRUNURURfQVNTRVRTLFxyXG4gICAgICAgICAgcGF5bG9hZDogW10sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHNlbGVjdCgoc3RhdGUpID0+IHN0YXRlLnNlbGVjdGVkQXNzZXRzKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChzZWxlY3RlZEFzc2V0cykgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRBc3NldHMgPSBzZWxlY3RlZEFzc2V0cztcclxuICAgICAgfSk7XHJcblxyXG4gICAgc2VsZWN0KChzdGF0ZSkgPT4gc3RhdGUucmVsb2FkQ3VycmVudEFzc2V0cylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSxcclxuICAgICAgICBzd2l0Y2hNYXAoKHJlcykgPT4gb2YocmVzKSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmZldGNoQ2hpbGRyZW5Bc3NldHMoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcGFnZUNoYW5nZShldmVudD86IFBhZ2VFdmVudCkge1xyXG4gICAgdGhpcy5hc3NldFNlcnZpY2UucGFnZVNpemUgPSBldmVudC5wYWdlU2l6ZTtcclxuICAgIHRoaXMuYXNzZXRTZXJ2aWNlLnBhZ2VJbmRleCA9IGV2ZW50LnBhZ2VJbmRleDtcclxuICAgIHRoaXMuZmV0Y2hDaGlsZHJlbkFzc2V0cygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmZXRjaENoaWxkcmVuQXNzZXRzKCkge1xyXG4gICAgaWYgKCF0aGlzLmN1cnJlbnRGb2xkZXJJZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XHJcbiAgICAgIHR5cGU6IEFjdGlvblR5cGVzLlNFVF9HTE9CQUxfTE9BRElORyxcclxuICAgICAgcGF5bG9hZDogdHJ1ZSxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYXNzZXRTZXJ2aWNlXHJcbiAgICAgIC5nZXRDaGlsZHJlbkFzc2V0cyh7IGFzc2V0SWQ6IHRoaXMuY3VycmVudEZvbGRlcklkIH0pXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgIHRoaXMuYXNzZXRTZXJ2aWNlLnNldEFzc2V0TGlzdChyZXMuRGF0YS5DaGlsZHJlbiwgcmVzLk1ldGEpO1xyXG4gICAgICB9KVxyXG4gICAgICAuYWRkKCgpID0+IHtcclxuICAgICAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XHJcbiAgICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5TRVRfR0xPQkFMX0xPQURJTkcsXHJcbiAgICAgICAgICBwYXlsb2FkOiBmYWxzZSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9yZXNldFVwbG9hZGluZ0Fzc2V0cyAoKSB7XHJcbiAgICBjb25zdCByZWxvYWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZmV0Y2hDaGlsZHJlbkFzc2V0cygpO1xyXG4gICAgICBpZiAodGhpcy5hc3NldHMuZmluZCh4ID0+IHguQmFja2dyb3VkUHJvY2Vzc2luZ1N0YXR1cyA9PT0gdGhpcy5iYWNrZ3JvdW5kUHJvY2Vzc2luZ051bS5Qcm9jZXNzZWQpKSB7XHJcbiAgICAgICAgY2xlYXJJbnRlcnZhbChyZWxvYWQpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUubG9nKCdVcGxvYWQgU3VjY2Vzc2Z1bGx5IScpOyAvLyBpbnRlcnZhbCB3aWxsIGJlIGNsZWFyZWQgYWZ0ZXIgY29tcGxldGluZyB0aGlzIHdob2xlIGJsb2NrXHJcbiAgICB9LCA1MDAwKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xyXG4gICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIl19
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import * as tslib_1 from "tslib";
6
+ import { Component, Input, ViewChild, } from '@angular/core';
7
+ import { MatPaginator } from '@angular/material/paginator';
8
+ import { of } from 'rxjs/internal/observable/of';
9
+ import { Subject } from 'rxjs/internal/Subject';
10
+ import { switchMap, takeUntil } from 'rxjs/operators';
11
+ import { AssetManagementService } from '../../../asset-management.service';
12
+ import { BackgroudProcessingStatus } from '../../../models';
13
+ import { AssetService } from '../../../services/asset.service';
14
+ import { ActionTypes } from '../../../store/actions.action';
15
+ import { select } from '../../../store/reducer';
16
+ var AssetListComponent = /** @class */ (function () {
17
+ function AssetListComponent(assetService, svc) {
18
+ this.assetService = assetService;
19
+ this.svc = svc;
20
+ this.hasModifyPermission = true;
21
+ this.hasAccessPermission = true;
22
+ this.hasArchivePermission = true;
23
+ this.backgroundProcessingNum = BackgroudProcessingStatus;
24
+ this.unsubscribe$ = new Subject();
25
+ this.selectedAssets = [];
26
+ }
27
+ /**
28
+ * @return {?}
29
+ */
30
+ AssetListComponent.prototype.ngOnInit = /**
31
+ * @return {?}
32
+ */
33
+ function () {
34
+ this.bindSubscriber();
35
+ };
36
+ /**
37
+ * @param {?} changes
38
+ * @return {?}
39
+ */
40
+ AssetListComponent.prototype.ngOnChanges = /**
41
+ * @param {?} changes
42
+ * @return {?}
43
+ */
44
+ function (changes) {
45
+ var _this = this;
46
+ if (changes.assets) {
47
+ // Check if asset is uploading
48
+ if (this.assets && this.assets.find((/**
49
+ * @param {?} x
50
+ * @return {?}
51
+ */
52
+ function (x) { return x.BackgroudProcessingStatus === _this.backgroundProcessingNum.InProcessing; }))) {
53
+ this._resetUploadingAssets();
54
+ }
55
+ ;
56
+ this.paginator.pageIndex = this.assetService.pageIndex;
57
+ this.paginator.pageSize = this.assetService.pageSize;
58
+ this.paginator.length = this.assetService.fileTotal;
59
+ }
60
+ };
61
+ /**
62
+ * @param {?} event
63
+ * @return {?}
64
+ */
65
+ AssetListComponent.prototype.onSelectAsset = /**
66
+ * @param {?} event
67
+ * @return {?}
68
+ */
69
+ function (event) {
70
+ /** @type {?} */
71
+ var index = this.selectedAssets.findIndex((/**
72
+ * @param {?} asset
73
+ * @return {?}
74
+ */
75
+ function (asset) { return asset.AssetId === event.AssetId; }));
76
+ /** @type {?} */
77
+ var newSelectedAssets = index > -1
78
+ ? this.selectedAssets.filter((/**
79
+ * @param {?} asset
80
+ * @param {?} i
81
+ * @return {?}
82
+ */
83
+ function (asset, i) { return index !== i; }))
84
+ : tslib_1.__spread(this.selectedAssets, [event]);
85
+ this.svc.dispatch({
86
+ type: ActionTypes.SET_SELECTED_ASSETS,
87
+ payload: newSelectedAssets,
88
+ });
89
+ };
90
+ /**
91
+ * @private
92
+ * @return {?}
93
+ */
94
+ AssetListComponent.prototype.bindSubscriber = /**
95
+ * @private
96
+ * @return {?}
97
+ */
98
+ function () {
99
+ var _this = this;
100
+ select((/**
101
+ * @param {?} state
102
+ * @return {?}
103
+ */
104
+ function (state) { return state.deletedAssetId; }))
105
+ .pipe(takeUntil(this.unsubscribe$))
106
+ .subscribe((/**
107
+ * @param {?} id
108
+ * @return {?}
109
+ */
110
+ function (id) {
111
+ if (_this.selectedAssets && _this.selectedAssets.length) {
112
+ /** @type {?} */
113
+ var newSelectedAssets = _this.selectedAssets.filter((/**
114
+ * @param {?} asset
115
+ * @return {?}
116
+ */
117
+ function (asset) { return asset.AssetId !== id; }));
118
+ _this.svc.dispatch({
119
+ type: ActionTypes.SET_SELECTED_ASSETS,
120
+ payload: newSelectedAssets,
121
+ });
122
+ }
123
+ }));
124
+ select((/**
125
+ * @param {?} state
126
+ * @return {?}
127
+ */
128
+ function (state) { return state.currentFolderId; }))
129
+ .pipe(takeUntil(this.unsubscribe$))
130
+ .subscribe((/**
131
+ * @param {?} currentFolderId
132
+ * @return {?}
133
+ */
134
+ function (currentFolderId) {
135
+ _this.currentFolderId = currentFolderId;
136
+ _this.svc.dispatch({
137
+ type: ActionTypes.SET_SELECTED_ASSETS,
138
+ payload: [],
139
+ });
140
+ }));
141
+ select((/**
142
+ * @param {?} state
143
+ * @return {?}
144
+ */
145
+ function (state) { return state.selectedAssets; }))
146
+ .pipe(takeUntil(this.unsubscribe$))
147
+ .subscribe((/**
148
+ * @param {?} selectedAssets
149
+ * @return {?}
150
+ */
151
+ function (selectedAssets) {
152
+ _this.selectedAssets = selectedAssets;
153
+ }));
154
+ select((/**
155
+ * @param {?} state
156
+ * @return {?}
157
+ */
158
+ function (state) { return state.reloadCurrentAssets; }))
159
+ .pipe(takeUntil(this.unsubscribe$), switchMap((/**
160
+ * @param {?} res
161
+ * @return {?}
162
+ */
163
+ function (res) { return of(res); })))
164
+ .subscribe((/**
165
+ * @return {?}
166
+ */
167
+ function () {
168
+ _this.fetchChildrenAssets();
169
+ }));
170
+ };
171
+ /**
172
+ * @param {?=} event
173
+ * @return {?}
174
+ */
175
+ AssetListComponent.prototype.pageChange = /**
176
+ * @param {?=} event
177
+ * @return {?}
178
+ */
179
+ function (event) {
180
+ this.assetService.pageSize = event.pageSize;
181
+ this.assetService.pageIndex = event.pageIndex;
182
+ this.fetchChildrenAssets();
183
+ };
184
+ /**
185
+ * @private
186
+ * @return {?}
187
+ */
188
+ AssetListComponent.prototype.fetchChildrenAssets = /**
189
+ * @private
190
+ * @return {?}
191
+ */
192
+ function () {
193
+ var _this = this;
194
+ if (!this.currentFolderId) {
195
+ return;
196
+ }
197
+ this.svc.dispatch({
198
+ type: ActionTypes.SET_GLOBAL_LOADING,
199
+ payload: true,
200
+ });
201
+ this.assetService
202
+ .getChildrenAssets({ assetId: this.currentFolderId })
203
+ .pipe(takeUntil(this.unsubscribe$))
204
+ .subscribe((/**
205
+ * @param {?} res
206
+ * @return {?}
207
+ */
208
+ function (res) {
209
+ _this.assetService.setAssetList(res.Data.Children, res.Meta);
210
+ }))
211
+ .add((/**
212
+ * @return {?}
213
+ */
214
+ function () {
215
+ _this.svc.dispatch({
216
+ type: ActionTypes.SET_GLOBAL_LOADING,
217
+ payload: false,
218
+ });
219
+ }));
220
+ };
221
+ /**
222
+ * @private
223
+ * @return {?}
224
+ */
225
+ AssetListComponent.prototype._resetUploadingAssets = /**
226
+ * @private
227
+ * @return {?}
228
+ */
229
+ function () {
230
+ var _this = this;
231
+ /** @type {?} */
232
+ var reload = setInterval((/**
233
+ * @return {?}
234
+ */
235
+ function () {
236
+ _this.fetchChildrenAssets();
237
+ if (_this.assets.find((/**
238
+ * @param {?} x
239
+ * @return {?}
240
+ */
241
+ function (x) { return x.BackgroudProcessingStatus === _this.backgroundProcessingNum.Processed; }))) {
242
+ clearInterval(reload);
243
+ }
244
+ console.log('Upload Successfully!'); // interval will be cleared after completing this whole block
245
+ }), 5000);
246
+ };
247
+ /**
248
+ * @return {?}
249
+ */
250
+ AssetListComponent.prototype.ngOnDestroy = /**
251
+ * @return {?}
252
+ */
253
+ function () {
254
+ this.unsubscribe$.next();
255
+ this.unsubscribe$.complete();
256
+ };
257
+ AssetListComponent.decorators = [
258
+ { type: Component, args: [{
259
+ selector: 'lib-asset-list',
260
+ template: "<div class=\"asset-container\">\n <div class=\"asset-heading\">\n <h6 class=\"asset-heading__title\">Files</h6>\n <lib-sort-items\n [hidden]=\"!assets?.length\"\n class=\"asset-heading__sort\"\n ></lib-sort-items>\n </div>\n <ng-container *ngIf=\"assets && !assets.length; else assetsTemplate\">\n <div class=\"asset-empty\">\n <span>This asset is empty.</span>\n </div>\n </ng-container>\n <ng-template #assetsTemplate>\n <div class=\"asset-list\">\n <lib-asset-item\n class=\"asset-list__item\"\n *ngFor=\"let asset of assets\"\n [asset]=\"asset\"\n (selectAsset)=\"onSelectAsset($event)\"\n [hasModifyPermission]=\"hasModifyPermission\"\n [hasAccessPermission]=\"hasAccessPermission\"\n [hasArchivePermission]=\"hasArchivePermission\"\n >\n </lib-asset-item>\n </div>\n </ng-template>\n <div [hidden]=\"!assets?.length\">\n <mat-paginator\n #paginator\n [pageSizeOptions]=\"[12, 24, 60, 120]\"\n (page)=\"pageChange($event)\"\n [showFirstLastButtons]=\"true\"\n >\n </mat-paginator>\n </div>\n</div>\n",
261
+ styles: [":host::ng-deep .asset-container .asset-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}:host::ng-deep .asset-container .asset-heading__title{margin-bottom:0;color:#979797}:host::ng-deep .asset-container .asset-list{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:stretch;margin:0 -5px}:host::ng-deep .asset-container .asset-list__item{width:25%}@media only screen and (max-width:1200px){:host::ng-deep .asset-container .asset-list__item{width:calc(100% / 3)}}@media only screen and (max-width:960px){:host::ng-deep .asset-container .asset-list__item{width:50%}}:host::ng-deep .asset-container .asset-empty{text-align:center;color:#979797;font-size:14px}"]
262
+ }] }
263
+ ];
264
+ /** @nocollapse */
265
+ AssetListComponent.ctorParameters = function () { return [
266
+ { type: AssetService },
267
+ { type: AssetManagementService }
268
+ ]; };
269
+ AssetListComponent.propDecorators = {
270
+ hasModifyPermission: [{ type: Input }],
271
+ hasAccessPermission: [{ type: Input }],
272
+ hasArchivePermission: [{ type: Input }],
273
+ paginator: [{ type: ViewChild, args: [MatPaginator, { static: true },] }],
274
+ assets: [{ type: Input }]
275
+ };
276
+ return AssetListComponent;
277
+ }());
278
+ export { AssetListComponent };
279
+ if (false) {
280
+ /** @type {?} */
281
+ AssetListComponent.prototype.hasModifyPermission;
282
+ /** @type {?} */
283
+ AssetListComponent.prototype.hasAccessPermission;
284
+ /** @type {?} */
285
+ AssetListComponent.prototype.hasArchivePermission;
286
+ /** @type {?} */
287
+ AssetListComponent.prototype.paginator;
288
+ /** @type {?} */
289
+ AssetListComponent.prototype.assets;
290
+ /** @type {?} */
291
+ AssetListComponent.prototype.backgroundProcessingNum;
292
+ /**
293
+ * @type {?}
294
+ * @private
295
+ */
296
+ AssetListComponent.prototype.unsubscribe$;
297
+ /**
298
+ * @type {?}
299
+ * @private
300
+ */
301
+ AssetListComponent.prototype.currentFolderId;
302
+ /**
303
+ * @type {?}
304
+ * @private
305
+ */
306
+ AssetListComponent.prototype.selectedAssets;
307
+ /**
308
+ * @type {?}
309
+ * @private
310
+ */
311
+ AssetListComponent.prototype.assetService;
312
+ /**
313
+ * @type {?}
314
+ * @private
315
+ */
316
+ AssetListComponent.prototype.svc;
317
+ }
318
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcnMtcGsvYXNzZXQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3BhcnRpYWwvYXNzZXQtbGlzdC9hc3NldC1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUtMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFhLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBYyx5QkFBeUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWhEO0lBVUUsNEJBQ1UsWUFBMEIsRUFDMUIsR0FBMkI7UUFEM0IsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsUUFBRyxHQUFILEdBQUcsQ0FBd0I7UUFONUIsd0JBQW1CLEdBQWEsSUFBSSxDQUFDO1FBQ3JDLHdCQUFtQixHQUFhLElBQUksQ0FBQztRQUNyQyx5QkFBb0IsR0FBYSxJQUFJLENBQUM7UUFVeEMsNEJBQXVCLEdBQUcseUJBQXlCLENBQUM7UUFFbkQsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRW5DLG1C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SUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDOztnQkEzSUYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLGlvQ0FBMEM7O2lCQUUzQzs7OztnQkFSUSxZQUFZO2dCQUZaLHNCQUFzQjs7O3NDQVk1QixLQUFLO3NDQUNMLEtBQUs7dUNBQ0wsS0FBSzs0QkFPTCxTQUFTLFNBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTt5QkFDeEMsS0FBSzs7SUE0SFIseUJBQUM7Q0FBQSxBQTVJRCxJQTRJQztTQXZJWSxrQkFBa0I7OztJQUM3QixpREFBOEM7O0lBQzlDLGlEQUE4Qzs7SUFDOUMsa0RBQStDOztJQU8vQyx1Q0FBbUU7O0lBQ25FLG9DQUE4Qjs7SUFFOUIscURBQTJEOzs7OztJQUUzRCwwQ0FBMkM7Ozs7O0lBQzNDLDZDQUFnQzs7Ozs7SUFDaEMsNENBQStDOzs7OztJQVg3QywwQ0FBa0M7Ozs7O0lBQ2xDLGlDQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IsIFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9vZic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcy9pbnRlcm5hbC9TdWJqZWN0JztcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQXNzZXRNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2Fzc2V0LW1hbmFnZW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBBc3NldE1vZGVsLCBCYWNrZ3JvdWRQcm9jZXNzaW5nU3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEFzc2V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Fzc2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aW9uVHlwZXMgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9hY3Rpb25zLmFjdGlvbic7XG5pbXBvcnQgeyBzZWxlY3QgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9yZWR1Y2VyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWFzc2V0LWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXNzZXQtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Fzc2V0LWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQXNzZXRMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGhhc01vZGlmeVBlcm1pc3Npb24/OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgaGFzQWNjZXNzUGVybWlzc2lvbj86IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBoYXNBcmNoaXZlUGVybWlzc2lvbj86IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXNzZXRTZXJ2aWNlOiBBc3NldFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdmM6IEFzc2V0TWFuYWdlbWVudFNlcnZpY2VcbiAgKSB7fVxuXG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yLCB7IHN0YXRpYzogdHJ1ZSB9KSBwYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcbiAgQElucHV0KCkgYXNzZXRzOiBBc3NldE1vZGVsW107XG5cbiAgcHVibGljIGJhY2tncm91bmRQcm9jZXNzaW5nTnVtID0gQmFja2dyb3VkUHJvY2Vzc2luZ1N0YXR1cztcblxuICBwcml2YXRlIHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgY3VycmVudEZvbGRlcklkOiBzdHJpbmc7XG4gIHByaXZhdGUgc2VsZWN0ZWRBc3NldHM6IEFycmF5PEFzc2V0TW9kZWw+ID0gW107XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5iaW5kU3Vic2NyaWJlcigpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLmFzc2V0cykge1xuICAgICAgLy8gQ2hlY2sgaWYgYXNzZXQgaXMgdXBsb2FkaW5nXG4gICAgICBpZiAodGhpcy5hc3NldHMgJiYgdGhpcy5hc3NldHMuZmluZCh4ID0+IHguQmFja2dyb3VkUHJvY2Vzc2luZ1N0YXR1cyA9PT0gdGhpcy5iYWNrZ3JvdW5kUHJvY2Vzc2luZ051bS5JblByb2Nlc3NpbmcpKSB7XG4gICAgICAgIHRoaXMuX3Jlc2V0VXBsb2FkaW5nQXNzZXRzKCk7XG4gICAgICB9O1xuXG4gICAgICB0aGlzLnBhZ2luYXRvci5wYWdlSW5kZXggPSB0aGlzLmFzc2V0U2VydmljZS5wYWdlSW5kZXg7XG4gICAgICB0aGlzLnBhZ2luYXRvci5wYWdlU2l6ZSA9IHRoaXMuYXNzZXRTZXJ2aWNlLnBhZ2VTaXplO1xuICAgICAgdGhpcy5wYWdpbmF0b3IubGVuZ3RoID0gdGhpcy5hc3NldFNlcnZpY2UuZmlsZVRvdGFsO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdEFzc2V0KGV2ZW50OiBBc3NldE1vZGVsKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkQXNzZXRzLmZpbmRJbmRleChcbiAgICAgIChhc3NldCkgPT4gYXNzZXQuQXNzZXRJZCA9PT0gZXZlbnQuQXNzZXRJZFxuICAgICk7XG4gICAgY29uc3QgbmV3U2VsZWN0ZWRBc3NldHM6IEFzc2V0TW9kZWxbXSA9XG4gICAgICBpbmRleCA+IC0xXG4gICAgICAgID8gdGhpcy5zZWxlY3RlZEFzc2V0cy5maWx0ZXIoKGFzc2V0LCBpKSA9PiBpbmRleCAhPT0gaSlcbiAgICAgICAgOiBbLi4udGhpcy5zZWxlY3RlZEFzc2V0cywgZXZlbnRdO1xuXG4gICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xuICAgICAgdHlwZTogQWN0aW9uVHlwZXMuU0VUX1NFTEVDVEVEX0FTU0VUUyxcbiAgICAgIHBheWxvYWQ6IG5ld1NlbGVjdGVkQXNzZXRzLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBiaW5kU3Vic2NyaWJlcigpIHtcbiAgICBzZWxlY3QoKHN0YXRlKSA9PiBzdGF0ZS5kZWxldGVkQXNzZXRJZClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAuc3Vic2NyaWJlKChpZCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEFzc2V0cyAmJiB0aGlzLnNlbGVjdGVkQXNzZXRzLmxlbmd0aCkge1xuICAgICAgICAgIGNvbnN0IG5ld1NlbGVjdGVkQXNzZXRzID0gdGhpcy5zZWxlY3RlZEFzc2V0cy5maWx0ZXIoXG4gICAgICAgICAgICAoYXNzZXQpID0+IGFzc2V0LkFzc2V0SWQgIT09IGlkXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XG4gICAgICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5TRVRfU0VMRUNURURfQVNTRVRTLFxuICAgICAgICAgICAgcGF5bG9hZDogbmV3U2VsZWN0ZWRBc3NldHMsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgc2VsZWN0KChzdGF0ZSkgPT4gc3RhdGUuY3VycmVudEZvbGRlcklkKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGN1cnJlbnRGb2xkZXJJZCkgPT4ge1xuICAgICAgICB0aGlzLmN1cnJlbnRGb2xkZXJJZCA9IGN1cnJlbnRGb2xkZXJJZDtcbiAgICAgICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6IEFjdGlvblR5cGVzLlNFVF9TRUxFQ1RFRF9BU1NFVFMsXG4gICAgICAgICAgcGF5bG9hZDogW10sXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICBzZWxlY3QoKHN0YXRlKSA9PiBzdGF0ZS5zZWxlY3RlZEFzc2V0cylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAuc3Vic2NyaWJlKChzZWxlY3RlZEFzc2V0cykgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkQXNzZXRzID0gc2VsZWN0ZWRBc3NldHM7XG4gICAgICB9KTtcblxuICAgIHNlbGVjdCgoc3RhdGUpID0+IHN0YXRlLnJlbG9hZEN1cnJlbnRBc3NldHMpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSxcbiAgICAgICAgc3dpdGNoTWFwKChyZXMpID0+IG9mKHJlcykpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5mZXRjaENoaWxkcmVuQXNzZXRzKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBwYWdlQ2hhbmdlKGV2ZW50PzogUGFnZUV2ZW50KSB7XG4gICAgdGhpcy5hc3NldFNlcnZpY2UucGFnZVNpemUgPSBldmVudC5wYWdlU2l6ZTtcbiAgICB0aGlzLmFzc2V0U2VydmljZS5wYWdlSW5kZXggPSBldmVudC5wYWdlSW5kZXg7XG4gICAgdGhpcy5mZXRjaENoaWxkcmVuQXNzZXRzKCk7XG4gIH1cblxuICBwcml2YXRlIGZldGNoQ2hpbGRyZW5Bc3NldHMoKSB7XG4gICAgaWYgKCF0aGlzLmN1cnJlbnRGb2xkZXJJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XG4gICAgICB0eXBlOiBBY3Rpb25UeXBlcy5TRVRfR0xPQkFMX0xPQURJTkcsXG4gICAgICBwYXlsb2FkOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hc3NldFNlcnZpY2VcbiAgICAgIC5nZXRDaGlsZHJlbkFzc2V0cyh7IGFzc2V0SWQ6IHRoaXMuY3VycmVudEZvbGRlcklkIH0pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuYXNzZXRTZXJ2aWNlLnNldEFzc2V0TGlzdChyZXMuRGF0YS5DaGlsZHJlbiwgcmVzLk1ldGEpO1xuICAgICAgfSlcbiAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XG4gICAgICAgICAgdHlwZTogQWN0aW9uVHlwZXMuU0VUX0dMT0JBTF9MT0FESU5HLFxuICAgICAgICAgIHBheWxvYWQ6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVzZXRVcGxvYWRpbmdBc3NldHMgKCkge1xuICAgIGNvbnN0IHJlbG9hZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIHRoaXMuZmV0Y2hDaGlsZHJlbkFzc2V0cygpO1xuICAgICAgaWYgKHRoaXMuYXNzZXRzLmZpbmQoeCA9PiB4LkJhY2tncm91ZFByb2Nlc3NpbmdTdGF0dXMgPT09IHRoaXMuYmFja2dyb3VuZFByb2Nlc3NpbmdOdW0uUHJvY2Vzc2VkKSkge1xuICAgICAgICBjbGVhckludGVydmFsKHJlbG9hZCk7XG4gICAgICB9XG4gICAgICBjb25zb2xlLmxvZygnVXBsb2FkIFN1Y2Nlc3NmdWxseSEnKTsgLy8gaW50ZXJ2YWwgd2lsbCBiZSBjbGVhcmVkIGFmdGVyIGNvbXBsZXRpbmcgdGhpcyB3aG9sZSBibG9ja1xuICAgIH0sIDUwMDApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==