@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,278 +1,278 @@
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 { Injectable } from '@angular/core';
7
- import { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';
8
- import { AssetManagementService } from '../asset-management.service';
9
- import { DynamicFlatNode } from '../models';
10
- import { ActionTypes } from '../store';
11
- import { AssetService } from './asset.service';
12
- var NodeTreeService = /** @class */ (function () {
13
- function NodeTreeService(assetService, svc) {
14
- this.assetService = assetService;
15
- this.svc = svc;
16
- this.storedData$ = new BehaviorSubject([]);
17
- this.loading$ = new BehaviorSubject(false);
18
- this.initialData$ = new BehaviorSubject([]);
19
- }
20
- Object.defineProperty(NodeTreeService.prototype, "data", {
21
- get: /**
22
- * @return {?}
23
- */
24
- function () {
25
- return this.storedData$.getValue();
26
- },
27
- set: /**
28
- * @param {?} values
29
- * @return {?}
30
- */
31
- function (values) {
32
- this.storedData$.next(values);
33
- },
34
- enumerable: true,
35
- configurable: true
36
- });
37
- /**
38
- * @private
39
- * @param {?} id
40
- * @return {?}
41
- */
42
- NodeTreeService.prototype.fetchChildrenFolder = /**
43
- * @private
44
- * @param {?} id
45
- * @return {?}
46
- */
47
- function (id) {
48
- return tslib_1.__awaiter(this, void 0, void 0, function () {
49
- var result, err_1;
50
- return tslib_1.__generator(this, function (_a) {
51
- switch (_a.label) {
52
- case 0:
53
- _a.trys.push([0, 2, , 3]);
54
- return [4 /*yield*/, this.assetService.getChildrenFolders({ assetId: id, isFilter: false }).toPromise()];
55
- case 1:
56
- result = _a.sent();
57
- if (result) {
58
- return [2 /*return*/, result.Data];
59
- }
60
- return [3 /*break*/, 3];
61
- case 2:
62
- err_1 = _a.sent();
63
- return [3 /*break*/, 3];
64
- case 3: return [2 /*return*/];
65
- }
66
- });
67
- });
68
- };
69
- /** Initial data from database */
70
- /**
71
- * Initial data from database
72
- * @param {?} __0
73
- * @return {?}
74
- */
75
- NodeTreeService.prototype.initialData = /**
76
- * Initial data from database
77
- * @param {?} __0
78
- * @return {?}
79
- */
80
- function (_a) {
81
- var dispatchRootId = _a.dispatchRootId;
82
- return tslib_1.__awaiter(this, void 0, void 0, function () {
83
- var result, initData;
84
- var _this = this;
85
- return tslib_1.__generator(this, function (_b) {
86
- switch (_b.label) {
87
- case 0:
88
- if (dispatchRootId) {
89
- this.loading$.next(true);
90
- }
91
- return [4 /*yield*/, this.assetService.getChildrenFolders({ isFilter: false }).toPromise()];
92
- case 1:
93
- result = _b.sent();
94
- if (!result) {
95
- return [2 /*return*/];
96
- }
97
- if (dispatchRootId) {
98
- this.svc.dispatch({
99
- type: ActionTypes.SET_CURRENT_FOLDER_ID,
100
- payload: result.Data.AssetId,
101
- });
102
- this.svc.dispatch({
103
- type: ActionTypes.SET_CURRENT_FOLDER_HIERARCHY,
104
- payload: [],
105
- });
106
- }
107
- this.rootFolder = result.Data;
108
- initData = result.Data.Children.map((/**
109
- * @param {?} folder
110
- * @return {?}
111
- */
112
- function (folder) { return new DynamicFlatNode(folder, 0, _this.isExpandable(folder)); }));
113
- this.initialData$.next(initData);
114
- if (dispatchRootId) {
115
- this.loading$.next(false);
116
- }
117
- return [2 /*return*/, this.initialData$.getValue()];
118
- }
119
- });
120
- });
121
- };
122
- /**
123
- * @param {?} node
124
- * @return {?}
125
- */
126
- NodeTreeService.prototype.getChildren = /**
127
- * @param {?} node
128
- * @return {?}
129
- */
130
- function (node) {
131
- return tslib_1.__awaiter(this, void 0, void 0, function () {
132
- return tslib_1.__generator(this, function (_a) {
133
- switch (_a.label) {
134
- case 0: return [4 /*yield*/, this.fetchChildrenFolder(node.AssetId)];
135
- case 1: return [2 /*return*/, _a.sent()];
136
- }
137
- });
138
- });
139
- };
140
- /**
141
- * @param {?} node
142
- * @return {?}
143
- */
144
- NodeTreeService.prototype.isExpandable = /**
145
- * @param {?} node
146
- * @return {?}
147
- */
148
- function (node) {
149
- return node.HaveChildren;
150
- };
151
- /** Add asset to stored data */
152
- /**
153
- * Add asset to stored data
154
- * @param {?} asset
155
- * @param {?=} parentId
156
- * @return {?}
157
- */
158
- NodeTreeService.prototype.addNode = /**
159
- * Add asset to stored data
160
- * @param {?} asset
161
- * @param {?=} parentId
162
- * @return {?}
163
- */
164
- function (asset, parentId) {
165
- /** @type {?} */
166
- var data = tslib_1.__spread(this.data);
167
- /** @type {?} */
168
- var index = data.findIndex((/**
169
- * @param {?} node
170
- * @return {?}
171
- */
172
- function (node) { return node.AssetId === asset.AssetId; }));
173
- if (index < 0) {
174
- data = tslib_1.__spread(data, [tslib_1.__assign({}, asset, { ParentId: parentId ? parentId : null })]);
175
- }
176
- this.data = data;
177
- };
178
- /**
179
- * @param {?} id
180
- * @return {?}
181
- */
182
- NodeTreeService.prototype.updateBreadcrumb = /**
183
- * @param {?} id
184
- * @return {?}
185
- */
186
- function (id) {
187
- return tslib_1.__awaiter(this, void 0, void 0, function () {
188
- var folder, hierarchy;
189
- return tslib_1.__generator(this, function (_a) {
190
- folder = this.data.find((/**
191
- * @param {?} n
192
- * @return {?}
193
- */
194
- function (n) { return n.AssetId === id; }));
195
- if (folder) {
196
- hierarchy = this.getFolderHierarchy(folder);
197
- this.svc.dispatch({
198
- type: ActionTypes.SET_CURRENT_FOLDER_HIERARCHY,
199
- payload: hierarchy,
200
- });
201
- }
202
- return [2 /*return*/];
203
- });
204
- });
205
- };
206
- /**
207
- * @private
208
- * @param {?} node
209
- * @return {?}
210
- */
211
- NodeTreeService.prototype.getAssetParent = /**
212
- * @private
213
- * @param {?} node
214
- * @return {?}
215
- */
216
- function (node) {
217
- return this.data.find((/**
218
- * @param {?} n
219
- * @return {?}
220
- */
221
- function (n) { return n.AssetId === node.ParentId; }));
222
- };
223
- /**
224
- * @private
225
- * @param {?} node
226
- * @return {?}
227
- */
228
- NodeTreeService.prototype.getFolderHierarchy = /**
229
- * @private
230
- * @param {?} node
231
- * @return {?}
232
- */
233
- function (node) {
234
- if (!node) {
235
- return [];
236
- }
237
- /** @type {?} */
238
- var parentHierarchy = [];
239
- /** @type {?} */
240
- var parent = this.getAssetParent(node);
241
- while (parent) {
242
- parentHierarchy = tslib_1.__spread([parent], parentHierarchy);
243
- parent = this.getAssetParent(parent);
244
- }
245
- return tslib_1.__spread(parentHierarchy, [node]);
246
- };
247
- NodeTreeService.decorators = [
248
- { type: Injectable }
249
- ];
250
- /** @nocollapse */
251
- NodeTreeService.ctorParameters = function () { return [
252
- { type: AssetService },
253
- { type: AssetManagementService }
254
- ]; };
255
- return NodeTreeService;
256
- }());
257
- export { NodeTreeService };
258
- if (false) {
259
- /** @type {?} */
260
- NodeTreeService.prototype.storedData$;
261
- /** @type {?} */
262
- NodeTreeService.prototype.loading$;
263
- /** @type {?} */
264
- NodeTreeService.prototype.initialData$;
265
- /** @type {?} */
266
- NodeTreeService.prototype.rootFolder;
267
- /**
268
- * @type {?}
269
- * @private
270
- */
271
- NodeTreeService.prototype.assetService;
272
- /**
273
- * @type {?}
274
- * @private
275
- */
276
- NodeTreeService.prototype.svc;
277
- }
278
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS10cmVlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcnMtcGsvYXNzZXQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9ub2RlLXRyZWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBYyxlQUFlLEVBQThDLE1BQU0sV0FBVyxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DO0lBRUUseUJBQW9CLFlBQTBCLEVBQVUsR0FBMkI7UUFBL0QsaUJBQVksR0FBWixZQUFZLENBQWM7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUF3QjtRQUU1RSxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUMvQyxpQkFBWSxHQUF1QyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUpLLENBQUM7SUFPeEYsc0JBQUksaUNBQUk7Ozs7UUFBUjtZQUNFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyQyxDQUFDOzs7OztRQUNELFVBQVMsTUFBb0I7WUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEMsQ0FBQzs7O09BSEE7Ozs7OztJQUthLDZDQUFtQjs7Ozs7SUFBakMsVUFBa0MsRUFBVTs7Ozs7Ozt3QkFFekIscUJBQU0sSUFBSSxDQUFDLFlBQVks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Ozs7SUFHMUIsc0NBQTJEOztJQUMzRCxtQ0FBc0Q7O0lBQ3RELHVDQUFrRjs7SUFDbEYscUNBQThCOzs7OztJQUxsQix1Q0FBa0M7Ozs7O0lBQUUsOEJBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzL2ludGVybmFsL0JlaGF2aW9yU3ViamVjdCc7XHJcbmltcG9ydCB7IEFzc2V0TWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tICcuLi9hc3NldC1tYW5hZ2VtZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBc3NldE1vZGVsLCBEeW5hbWljRmxhdE5vZGUsIEZvbGRlclRyZWVNb2RlbCwgSUluaXRpYWxGb2xkZXJUcmVlT3B0aW9ucyB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEFjdGlvblR5cGVzIH0gZnJvbSAnLi4vc3RvcmUnO1xyXG5pbXBvcnQgeyBBc3NldFNlcnZpY2UgfSBmcm9tICcuL2Fzc2V0LnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTm9kZVRyZWVTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFzc2V0U2VydmljZTogQXNzZXRTZXJ2aWNlLCBwcml2YXRlIHN2YzogQXNzZXRNYW5hZ2VtZW50U2VydmljZSkgeyB9XHJcblxyXG4gIHB1YmxpYyBzdG9yZWREYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXNzZXRNb2RlbFtdPihbXSk7XHJcbiAgcHVibGljIGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgcHVibGljIGluaXRpYWxEYXRhJDogQmVoYXZpb3JTdWJqZWN0PER5bmFtaWNGbGF0Tm9kZVtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoW10pO1xyXG4gIHB1YmxpYyByb290Rm9sZGVyOiBBc3NldE1vZGVsO1xyXG5cclxuICBnZXQgZGF0YSgpOiBBc3NldE1vZGVsW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmVkRGF0YSQuZ2V0VmFsdWUoKTtcclxuICB9XHJcbiAgc2V0IGRhdGEodmFsdWVzOiBBc3NldE1vZGVsW10pIHtcclxuICAgIHRoaXMuc3RvcmVkRGF0YSQubmV4dCh2YWx1ZXMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBmZXRjaENoaWxkcmVuRm9sZGVyKGlkOiBzdHJpbmcpOiBQcm9taXNlPEZvbGRlclRyZWVNb2RlbD4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5hc3NldFNlcnZpY2UuZ2V0Q2hpbGRyZW5Gb2xkZXJzKHsgYXNzZXRJZDogaWQsIGlzRmlsdGVyOiBmYWxzZSB9KS50b1Byb21pc2UoKTtcclxuICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgIHJldHVybiByZXN1bHQuRGF0YTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZXJyKSB7IH1cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIC8qKiBJbml0aWFsIGRhdGEgZnJvbSBkYXRhYmFzZSAqL1xyXG4gIHB1YmxpYyBhc3luYyBpbml0aWFsRGF0YShcclxuICAgIHsgZGlzcGF0Y2hSb290SWQgfTogSUluaXRpYWxGb2xkZXJUcmVlT3B0aW9uc1xyXG4gICk6IFByb21pc2U8RHluYW1pY0ZsYXROb2RlW10+IHtcclxuICAgIGlmIChkaXNwYXRjaFJvb3RJZCkgeyB0aGlzLmxvYWRpbmckLm5leHQodHJ1ZSk7IH1cclxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYXNzZXRTZXJ2aWNlLmdldENoaWxkcmVuRm9sZGVycyh7IGlzRmlsdGVyOiBmYWxzZSB9KS50b1Byb21pc2UoKTtcclxuICAgIGlmICghcmVzdWx0KSB7IHJldHVybjsgfVxyXG4gICAgaWYgKGRpc3BhdGNoUm9vdElkKSB7XHJcbiAgICAgIHRoaXMuc3ZjLmRpc3BhdGNoKHtcclxuICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5TRVRfQ1VSUkVOVF9GT0xERVJfSUQsXHJcbiAgICAgICAgcGF5bG9hZDogcmVzdWx0LkRhdGEuQXNzZXRJZCxcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc3ZjLmRpc3BhdGNoKHtcclxuICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5TRVRfQ1VSUkVOVF9GT0xERVJfSElFUkFSQ0hZLFxyXG4gICAgICAgIHBheWxvYWQ6IFtdLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMucm9vdEZvbGRlciA9IHJlc3VsdC5EYXRhO1xyXG4gICAgY29uc3QgaW5pdERhdGEgPSByZXN1bHQuRGF0YS5DaGlsZHJlbi5tYXAoXHJcbiAgICAgIChmb2xkZXIpID0+IG5ldyBEeW5hbWljRmxhdE5vZGUoZm9sZGVyLCAwLCB0aGlzLmlzRXhwYW5kYWJsZShmb2xkZXIpKVxyXG4gICAgKTtcclxuICAgIHRoaXMuaW5pdGlhbERhdGEkLm5leHQoaW5pdERhdGEpO1xyXG5cclxuICAgIGlmIChkaXNwYXRjaFJvb3RJZCkgeyB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpOyB9XHJcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsRGF0YSQuZ2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRDaGlsZHJlbihub2RlOiBGb2xkZXJUcmVlTW9kZWwpOiBQcm9taXNlPEZvbGRlclRyZWVNb2RlbD4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZmV0Y2hDaGlsZHJlbkZvbGRlcihub2RlLkFzc2V0SWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzRXhwYW5kYWJsZShub2RlOiBGb2xkZXJUcmVlTW9kZWwpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBub2RlLkhhdmVDaGlsZHJlbjtcclxuICB9XHJcblxyXG4gIC8qKiBBZGQgYXNzZXQgdG8gc3RvcmVkIGRhdGEgKi9cclxuICBwdWJsaWMgYWRkTm9kZShhc3NldDogQXNzZXRNb2RlbCwgcGFyZW50SWQ/OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGxldCBkYXRhID0gWy4uLnRoaXMuZGF0YV07XHJcbiAgICBjb25zdCBpbmRleCA9IGRhdGEuZmluZEluZGV4KChub2RlKSA9PiBub2RlLkFzc2V0SWQgPT09IGFzc2V0LkFzc2V0SWQpO1xyXG4gICAgaWYgKGluZGV4IDwgMCkge1xyXG4gICAgICBkYXRhID0gWy4uLmRhdGEsIHsgLi4uYXNzZXQsIFBhcmVudElkOiBwYXJlbnRJZCA/IHBhcmVudElkIDogbnVsbCB9XTtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0YSA9IGRhdGE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgdXBkYXRlQnJlYWRjcnVtYihpZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBmb2xkZXIgPSB0aGlzLmRhdGEuZmluZCgobikgPT4gbi5Bc3NldElkID09PSBpZCk7XHJcbiAgICBpZiAoZm9sZGVyKSB7XHJcbiAgICAgIGNvbnN0IGhpZXJhcmNoeSA9IHRoaXMuZ2V0Rm9sZGVySGllcmFyY2h5KGZvbGRlcik7XHJcbiAgICAgIHRoaXMuc3ZjLmRpc3BhdGNoKHtcclxuICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5TRVRfQ1VSUkVOVF9GT0xERVJfSElFUkFSQ0hZLFxyXG4gICAgICAgIHBheWxvYWQ6IGhpZXJhcmNoeSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEFzc2V0UGFyZW50KG5vZGU6IEFzc2V0TW9kZWwpOiBBc3NldE1vZGVsIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGEuZmluZCgobikgPT4gbi5Bc3NldElkID09PSBub2RlLlBhcmVudElkKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Rm9sZGVySGllcmFyY2h5KG5vZGU6IEZvbGRlclRyZWVNb2RlbCk6IEFycmF5PEZvbGRlclRyZWVNb2RlbD4ge1xyXG4gICAgaWYgKCFub2RlKSB7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICAgIGxldCBwYXJlbnRIaWVyYXJjaHk6IEFycmF5PEZvbGRlclRyZWVNb2RlbD4gPSBbXTtcclxuICAgIGxldCBwYXJlbnQgPSB0aGlzLmdldEFzc2V0UGFyZW50KG5vZGUpO1xyXG4gICAgd2hpbGUgKHBhcmVudCkge1xyXG4gICAgICBwYXJlbnRIaWVyYXJjaHkgPSBbcGFyZW50LCAuLi5wYXJlbnRIaWVyYXJjaHldO1xyXG4gICAgICBwYXJlbnQgPSB0aGlzLmdldEFzc2V0UGFyZW50KHBhcmVudCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gWy4uLnBhcmVudEhpZXJhcmNoeSwgbm9kZV07XHJcbiAgfVxyXG59XHJcbiJdfQ==
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 { Injectable } from '@angular/core';
7
+ import { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';
8
+ import { AssetManagementService } from '../asset-management.service';
9
+ import { DynamicFlatNode } from '../models';
10
+ import { ActionTypes } from '../store';
11
+ import { AssetService } from './asset.service';
12
+ var NodeTreeService = /** @class */ (function () {
13
+ function NodeTreeService(assetService, svc) {
14
+ this.assetService = assetService;
15
+ this.svc = svc;
16
+ this.storedData$ = new BehaviorSubject([]);
17
+ this.loading$ = new BehaviorSubject(false);
18
+ this.initialData$ = new BehaviorSubject([]);
19
+ }
20
+ Object.defineProperty(NodeTreeService.prototype, "data", {
21
+ get: /**
22
+ * @return {?}
23
+ */
24
+ function () {
25
+ return this.storedData$.getValue();
26
+ },
27
+ set: /**
28
+ * @param {?} values
29
+ * @return {?}
30
+ */
31
+ function (values) {
32
+ this.storedData$.next(values);
33
+ },
34
+ enumerable: true,
35
+ configurable: true
36
+ });
37
+ /**
38
+ * @private
39
+ * @param {?} id
40
+ * @return {?}
41
+ */
42
+ NodeTreeService.prototype.fetchChildrenFolder = /**
43
+ * @private
44
+ * @param {?} id
45
+ * @return {?}
46
+ */
47
+ function (id) {
48
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
49
+ var result, err_1;
50
+ return tslib_1.__generator(this, function (_a) {
51
+ switch (_a.label) {
52
+ case 0:
53
+ _a.trys.push([0, 2, , 3]);
54
+ return [4 /*yield*/, this.assetService.getChildrenFolders({ assetId: id, isFilter: false }).toPromise()];
55
+ case 1:
56
+ result = _a.sent();
57
+ if (result) {
58
+ return [2 /*return*/, result.Data];
59
+ }
60
+ return [3 /*break*/, 3];
61
+ case 2:
62
+ err_1 = _a.sent();
63
+ return [3 /*break*/, 3];
64
+ case 3: return [2 /*return*/];
65
+ }
66
+ });
67
+ });
68
+ };
69
+ /** Initial data from database */
70
+ /**
71
+ * Initial data from database
72
+ * @param {?} __0
73
+ * @return {?}
74
+ */
75
+ NodeTreeService.prototype.initialData = /**
76
+ * Initial data from database
77
+ * @param {?} __0
78
+ * @return {?}
79
+ */
80
+ function (_a) {
81
+ var dispatchRootId = _a.dispatchRootId;
82
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
83
+ var result, initData;
84
+ var _this = this;
85
+ return tslib_1.__generator(this, function (_b) {
86
+ switch (_b.label) {
87
+ case 0:
88
+ if (dispatchRootId) {
89
+ this.loading$.next(true);
90
+ }
91
+ return [4 /*yield*/, this.assetService.getChildrenFolders({ isFilter: false }).toPromise()];
92
+ case 1:
93
+ result = _b.sent();
94
+ if (!result) {
95
+ return [2 /*return*/];
96
+ }
97
+ if (dispatchRootId) {
98
+ this.svc.dispatch({
99
+ type: ActionTypes.SET_CURRENT_FOLDER_ID,
100
+ payload: result.Data.AssetId,
101
+ });
102
+ this.svc.dispatch({
103
+ type: ActionTypes.SET_CURRENT_FOLDER_HIERARCHY,
104
+ payload: [],
105
+ });
106
+ }
107
+ this.rootFolder = result.Data;
108
+ initData = result.Data.Children.map((/**
109
+ * @param {?} folder
110
+ * @return {?}
111
+ */
112
+ function (folder) { return new DynamicFlatNode(folder, 0, _this.isExpandable(folder)); }));
113
+ this.initialData$.next(initData);
114
+ if (dispatchRootId) {
115
+ this.loading$.next(false);
116
+ }
117
+ return [2 /*return*/, this.initialData$.getValue()];
118
+ }
119
+ });
120
+ });
121
+ };
122
+ /**
123
+ * @param {?} node
124
+ * @return {?}
125
+ */
126
+ NodeTreeService.prototype.getChildren = /**
127
+ * @param {?} node
128
+ * @return {?}
129
+ */
130
+ function (node) {
131
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
132
+ return tslib_1.__generator(this, function (_a) {
133
+ switch (_a.label) {
134
+ case 0: return [4 /*yield*/, this.fetchChildrenFolder(node.AssetId)];
135
+ case 1: return [2 /*return*/, _a.sent()];
136
+ }
137
+ });
138
+ });
139
+ };
140
+ /**
141
+ * @param {?} node
142
+ * @return {?}
143
+ */
144
+ NodeTreeService.prototype.isExpandable = /**
145
+ * @param {?} node
146
+ * @return {?}
147
+ */
148
+ function (node) {
149
+ return node.HaveChildren;
150
+ };
151
+ /** Add asset to stored data */
152
+ /**
153
+ * Add asset to stored data
154
+ * @param {?} asset
155
+ * @param {?=} parentId
156
+ * @return {?}
157
+ */
158
+ NodeTreeService.prototype.addNode = /**
159
+ * Add asset to stored data
160
+ * @param {?} asset
161
+ * @param {?=} parentId
162
+ * @return {?}
163
+ */
164
+ function (asset, parentId) {
165
+ /** @type {?} */
166
+ var data = tslib_1.__spread(this.data);
167
+ /** @type {?} */
168
+ var index = data.findIndex((/**
169
+ * @param {?} node
170
+ * @return {?}
171
+ */
172
+ function (node) { return node.AssetId === asset.AssetId; }));
173
+ if (index < 0) {
174
+ data = tslib_1.__spread(data, [tslib_1.__assign({}, asset, { ParentId: parentId ? parentId : null })]);
175
+ }
176
+ this.data = data;
177
+ };
178
+ /**
179
+ * @param {?} id
180
+ * @return {?}
181
+ */
182
+ NodeTreeService.prototype.updateBreadcrumb = /**
183
+ * @param {?} id
184
+ * @return {?}
185
+ */
186
+ function (id) {
187
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
188
+ var folder, hierarchy;
189
+ return tslib_1.__generator(this, function (_a) {
190
+ folder = this.data.find((/**
191
+ * @param {?} n
192
+ * @return {?}
193
+ */
194
+ function (n) { return n.AssetId === id; }));
195
+ if (folder) {
196
+ hierarchy = this.getFolderHierarchy(folder);
197
+ this.svc.dispatch({
198
+ type: ActionTypes.SET_CURRENT_FOLDER_HIERARCHY,
199
+ payload: hierarchy,
200
+ });
201
+ }
202
+ return [2 /*return*/];
203
+ });
204
+ });
205
+ };
206
+ /**
207
+ * @private
208
+ * @param {?} node
209
+ * @return {?}
210
+ */
211
+ NodeTreeService.prototype.getAssetParent = /**
212
+ * @private
213
+ * @param {?} node
214
+ * @return {?}
215
+ */
216
+ function (node) {
217
+ return this.data.find((/**
218
+ * @param {?} n
219
+ * @return {?}
220
+ */
221
+ function (n) { return n.AssetId === node.ParentId; }));
222
+ };
223
+ /**
224
+ * @private
225
+ * @param {?} node
226
+ * @return {?}
227
+ */
228
+ NodeTreeService.prototype.getFolderHierarchy = /**
229
+ * @private
230
+ * @param {?} node
231
+ * @return {?}
232
+ */
233
+ function (node) {
234
+ if (!node) {
235
+ return [];
236
+ }
237
+ /** @type {?} */
238
+ var parentHierarchy = [];
239
+ /** @type {?} */
240
+ var parent = this.getAssetParent(node);
241
+ while (parent) {
242
+ parentHierarchy = tslib_1.__spread([parent], parentHierarchy);
243
+ parent = this.getAssetParent(parent);
244
+ }
245
+ return tslib_1.__spread(parentHierarchy, [node]);
246
+ };
247
+ NodeTreeService.decorators = [
248
+ { type: Injectable }
249
+ ];
250
+ /** @nocollapse */
251
+ NodeTreeService.ctorParameters = function () { return [
252
+ { type: AssetService },
253
+ { type: AssetManagementService }
254
+ ]; };
255
+ return NodeTreeService;
256
+ }());
257
+ export { NodeTreeService };
258
+ if (false) {
259
+ /** @type {?} */
260
+ NodeTreeService.prototype.storedData$;
261
+ /** @type {?} */
262
+ NodeTreeService.prototype.loading$;
263
+ /** @type {?} */
264
+ NodeTreeService.prototype.initialData$;
265
+ /** @type {?} */
266
+ NodeTreeService.prototype.rootFolder;
267
+ /**
268
+ * @type {?}
269
+ * @private
270
+ */
271
+ NodeTreeService.prototype.assetService;
272
+ /**
273
+ * @type {?}
274
+ * @private
275
+ */
276
+ NodeTreeService.prototype.svc;
277
+ }
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS10cmVlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcnMtcGsvYXNzZXQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9ub2RlLXRyZWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBYyxlQUFlLEVBQThDLE1BQU0sV0FBVyxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DO0lBRUUseUJBQW9CLFlBQTBCLEVBQVUsR0FBMkI7UUFBL0QsaUJBQVksR0FBWixZQUFZLENBQWM7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUF3QjtRQUU1RSxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUMvQyxpQkFBWSxHQUF1QyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUpLLENBQUM7SUFPeEYsc0JBQUksaUNBQUk7Ozs7UUFBUjtZQUNFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyQyxDQUFDOzs7OztRQUNELFVBQVMsTUFBb0I7WUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEMsQ0FBQzs7O09BSEE7Ozs7OztJQUthLDZDQUFtQjs7Ozs7SUFBakMsVUFBa0MsRUFBVTs7Ozs7Ozt3QkFFekIscUJBQU0sSUFBSSxDQUFDLFlBQVks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Ozs7SUFHMUIsc0NBQTJEOztJQUMzRCxtQ0FBc0Q7O0lBQ3RELHVDQUFrRjs7SUFDbEYscUNBQThCOzs7OztJQUxsQix1Q0FBa0M7Ozs7O0lBQUUsOEJBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcy9pbnRlcm5hbC9CZWhhdmlvclN1YmplY3QnO1xuaW1wb3J0IHsgQXNzZXRNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uL2Fzc2V0LW1hbmFnZW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBBc3NldE1vZGVsLCBEeW5hbWljRmxhdE5vZGUsIEZvbGRlclRyZWVNb2RlbCwgSUluaXRpYWxGb2xkZXJUcmVlT3B0aW9ucyB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBBY3Rpb25UeXBlcyB9IGZyb20gJy4uL3N0b3JlJztcbmltcG9ydCB7IEFzc2V0U2VydmljZSB9IGZyb20gJy4vYXNzZXQuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOb2RlVHJlZVNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFzc2V0U2VydmljZTogQXNzZXRTZXJ2aWNlLCBwcml2YXRlIHN2YzogQXNzZXRNYW5hZ2VtZW50U2VydmljZSkgeyB9XG5cbiAgcHVibGljIHN0b3JlZERhdGEkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBc3NldE1vZGVsW10+KFtdKTtcbiAgcHVibGljIGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyBpbml0aWFsRGF0YSQ6IEJlaGF2aW9yU3ViamVjdDxEeW5hbWljRmxhdE5vZGVbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKTtcbiAgcHVibGljIHJvb3RGb2xkZXI6IEFzc2V0TW9kZWw7XG5cbiAgZ2V0IGRhdGEoKTogQXNzZXRNb2RlbFtdIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZWREYXRhJC5nZXRWYWx1ZSgpO1xuICB9XG4gIHNldCBkYXRhKHZhbHVlczogQXNzZXRNb2RlbFtdKSB7XG4gICAgdGhpcy5zdG9yZWREYXRhJC5uZXh0KHZhbHVlcyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGZldGNoQ2hpbGRyZW5Gb2xkZXIoaWQ6IHN0cmluZyk6IFByb21pc2U8Rm9sZGVyVHJlZU1vZGVsPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYXNzZXRTZXJ2aWNlLmdldENoaWxkcmVuRm9sZGVycyh7IGFzc2V0SWQ6IGlkLCBpc0ZpbHRlcjogZmFsc2UgfSkudG9Qcm9taXNlKCk7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHJldHVybiByZXN1bHQuRGF0YTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHsgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKiBJbml0aWFsIGRhdGEgZnJvbSBkYXRhYmFzZSAqL1xuICBwdWJsaWMgYXN5bmMgaW5pdGlhbERhdGEoXG4gICAgeyBkaXNwYXRjaFJvb3RJZCB9OiBJSW5pdGlhbEZvbGRlclRyZWVPcHRpb25zXG4gICk6IFByb21pc2U8RHluYW1pY0ZsYXROb2RlW10+IHtcbiAgICBpZiAoZGlzcGF0Y2hSb290SWQpIHsgdGhpcy5sb2FkaW5nJC5uZXh0KHRydWUpOyB9XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5hc3NldFNlcnZpY2UuZ2V0Q2hpbGRyZW5Gb2xkZXJzKHsgaXNGaWx0ZXI6IGZhbHNlIH0pLnRvUHJvbWlzZSgpO1xuICAgIGlmICghcmVzdWx0KSB7IHJldHVybjsgfVxuICAgIGlmIChkaXNwYXRjaFJvb3RJZCkge1xuICAgICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5TRVRfQ1VSUkVOVF9GT0xERVJfSUQsXG4gICAgICAgIHBheWxvYWQ6IHJlc3VsdC5EYXRhLkFzc2V0SWQsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuc3ZjLmRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogQWN0aW9uVHlwZXMuU0VUX0NVUlJFTlRfRk9MREVSX0hJRVJBUkNIWSxcbiAgICAgICAgcGF5bG9hZDogW10sXG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5yb290Rm9sZGVyID0gcmVzdWx0LkRhdGE7XG4gICAgY29uc3QgaW5pdERhdGEgPSByZXN1bHQuRGF0YS5DaGlsZHJlbi5tYXAoXG4gICAgICAoZm9sZGVyKSA9PiBuZXcgRHluYW1pY0ZsYXROb2RlKGZvbGRlciwgMCwgdGhpcy5pc0V4cGFuZGFibGUoZm9sZGVyKSlcbiAgICApO1xuICAgIHRoaXMuaW5pdGlhbERhdGEkLm5leHQoaW5pdERhdGEpO1xuXG4gICAgaWYgKGRpc3BhdGNoUm9vdElkKSB7IHRoaXMubG9hZGluZyQubmV4dChmYWxzZSk7IH1cbiAgICByZXR1cm4gdGhpcy5pbml0aWFsRGF0YSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRDaGlsZHJlbihub2RlOiBGb2xkZXJUcmVlTW9kZWwpOiBQcm9taXNlPEZvbGRlclRyZWVNb2RlbD4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmZldGNoQ2hpbGRyZW5Gb2xkZXIobm9kZS5Bc3NldElkKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0V4cGFuZGFibGUobm9kZTogRm9sZGVyVHJlZU1vZGVsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG5vZGUuSGF2ZUNoaWxkcmVuO1xuICB9XG5cbiAgLyoqIEFkZCBhc3NldCB0byBzdG9yZWQgZGF0YSAqL1xuICBwdWJsaWMgYWRkTm9kZShhc3NldDogQXNzZXRNb2RlbCwgcGFyZW50SWQ/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBsZXQgZGF0YSA9IFsuLi50aGlzLmRhdGFdO1xuICAgIGNvbnN0IGluZGV4ID0gZGF0YS5maW5kSW5kZXgoKG5vZGUpID0+IG5vZGUuQXNzZXRJZCA9PT0gYXNzZXQuQXNzZXRJZCk7XG4gICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgZGF0YSA9IFsuLi5kYXRhLCB7IC4uLmFzc2V0LCBQYXJlbnRJZDogcGFyZW50SWQgPyBwYXJlbnRJZCA6IG51bGwgfV07XG4gICAgfVxuICAgIHRoaXMuZGF0YSA9IGRhdGE7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdXBkYXRlQnJlYWRjcnVtYihpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgZm9sZGVyID0gdGhpcy5kYXRhLmZpbmQoKG4pID0+IG4uQXNzZXRJZCA9PT0gaWQpO1xuICAgIGlmIChmb2xkZXIpIHtcbiAgICAgIGNvbnN0IGhpZXJhcmNoeSA9IHRoaXMuZ2V0Rm9sZGVySGllcmFyY2h5KGZvbGRlcik7XG4gICAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6IEFjdGlvblR5cGVzLlNFVF9DVVJSRU5UX0ZPTERFUl9ISUVSQVJDSFksXG4gICAgICAgIHBheWxvYWQ6IGhpZXJhcmNoeSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0QXNzZXRQYXJlbnQobm9kZTogQXNzZXRNb2RlbCk6IEFzc2V0TW9kZWwge1xuICAgIHJldHVybiB0aGlzLmRhdGEuZmluZCgobikgPT4gbi5Bc3NldElkID09PSBub2RlLlBhcmVudElkKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Rm9sZGVySGllcmFyY2h5KG5vZGU6IEZvbGRlclRyZWVNb2RlbCk6IEFycmF5PEZvbGRlclRyZWVNb2RlbD4ge1xuICAgIGlmICghbm9kZSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBsZXQgcGFyZW50SGllcmFyY2h5OiBBcnJheTxGb2xkZXJUcmVlTW9kZWw+ID0gW107XG4gICAgbGV0IHBhcmVudCA9IHRoaXMuZ2V0QXNzZXRQYXJlbnQobm9kZSk7XG4gICAgd2hpbGUgKHBhcmVudCkge1xuICAgICAgcGFyZW50SGllcmFyY2h5ID0gW3BhcmVudCwgLi4ucGFyZW50SGllcmFyY2h5XTtcbiAgICAgIHBhcmVudCA9IHRoaXMuZ2V0QXNzZXRQYXJlbnQocGFyZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIFsuLi5wYXJlbnRIaWVyYXJjaHksIG5vZGVdO1xuICB9XG59XG4iXX0=