@vendure/admin-ui 2.2.4 → 2.2.6

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 (46) hide show
  1. package/catalog/components/product-detail/product-detail.component.d.ts +1 -4
  2. package/catalog/components/product-variant-list/product-variant-list.component.d.ts +1 -1
  3. package/catalog/providers/product-detail/product-detail.service.d.ts +1 -3
  4. package/core/common/version.d.ts +1 -1
  5. package/core/extension/register-data-table-component.d.ts +1 -1
  6. package/core/shared/components/dropdown/dropdown-menu.component.d.ts +5 -2
  7. package/core/shared/components/facet-value-selector/facet-value-selector.component.d.ts +1 -9
  8. package/core/shared/components/order-state-label/order-state-label.component.d.ts +1 -1
  9. package/core/shared/components/timeline-entry/timeline-entry.component.d.ts +2 -1
  10. package/core/shared/dynamic-form-inputs/default-form-inputs.d.ts +1 -1
  11. package/esm2022/catalog/catalog.module.mjs +7 -7
  12. package/esm2022/catalog/components/facet-detail/facet-detail.component.mjs +11 -8
  13. package/esm2022/catalog/components/generate-product-variants/generate-product-variants.component.mjs +2 -1
  14. package/esm2022/catalog/components/product-detail/product-detail.component.mjs +1 -14
  15. package/esm2022/catalog/components/product-options-editor/product-options-editor.component.mjs +6 -2
  16. package/esm2022/catalog/providers/product-detail/product-detail.service.mjs +43 -27
  17. package/esm2022/core/common/version.mjs +2 -2
  18. package/esm2022/core/extension/register-data-table-component.mjs +2 -2
  19. package/esm2022/core/shared/components/asset-file-input/asset-file-input.component.mjs +1 -1
  20. package/esm2022/core/shared/components/asset-gallery/asset-gallery.component.mjs +2 -2
  21. package/esm2022/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.mjs +2 -2
  22. package/esm2022/core/shared/components/dropdown/dropdown-menu.component.mjs +29 -6
  23. package/esm2022/core/shared/components/facet-value-selector/facet-value-selector.component.mjs +2 -10
  24. package/esm2022/core/shared/components/timeline-entry/timeline-entry.component.mjs +5 -3
  25. package/esm2022/core/shared/components/zone-selector/zone-selector.component.mjs +2 -2
  26. package/esm2022/core/shared/shared.module.mjs +1 -1
  27. package/esm2022/customer/components/customer-history/customer-history-entry-host.component.mjs +1 -1
  28. package/esm2022/customer/components/customer-history/customer-history.component.mjs +3 -3
  29. package/esm2022/customer/customer.routes.mjs +2 -2
  30. package/esm2022/marketing/marketing.module.mjs +2 -2
  31. package/esm2022/order/components/order-history/order-history-entry-host.component.mjs +1 -1
  32. package/esm2022/order/components/order-history/order-history.component.mjs +3 -3
  33. package/esm2022/settings/components/channel-detail/channel-detail.component.mjs +22 -3
  34. package/fesm2022/vendure-admin-ui-catalog.mjs +64 -53
  35. package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
  36. package/fesm2022/vendure-admin-ui-core.mjs +40 -23
  37. package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
  38. package/fesm2022/vendure-admin-ui-customer.mjs +4 -4
  39. package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
  40. package/fesm2022/vendure-admin-ui-marketing.mjs +1 -1
  41. package/fesm2022/vendure-admin-ui-marketing.mjs.map +1 -1
  42. package/fesm2022/vendure-admin-ui-order.mjs +3 -3
  43. package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
  44. package/fesm2022/vendure-admin-ui-settings.mjs +20 -1
  45. package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
  46. package/package.json +14 -14
@@ -153,49 +153,65 @@ export class ProductDetailService {
153
153
  return forkJoin(updateOperations);
154
154
  }));
155
155
  }
156
- updateProductOption(input, product, languageCode) {
157
- const variants$ = input.autoUpdate
156
+ updateProductOptions(inputs, autoUpdateProductNames, product, languageCode) {
157
+ const variants$ = autoUpdateProductNames
158
158
  ? this.dataService.product
159
159
  .getProductVariantsForProduct({}, product.id)
160
160
  .mapSingle(({ productVariants }) => productVariants.items)
161
161
  : of([]);
162
162
  return variants$.pipe(mergeMap(variants => {
163
163
  let updateProductVariantNames$ = of([]);
164
- if (input.autoUpdate) {
165
- // Update any ProductVariants' names which include the option name
166
- let oldOptionName;
167
- const newOptionName = findTranslation(input, languageCode)?.name;
168
- if (!newOptionName) {
169
- updateProductVariantNames$ = of([]);
164
+ if (autoUpdateProductNames) {
165
+ const replacementMap = new Map();
166
+ for (const input of inputs) {
167
+ const newOptionName = findTranslation(input, languageCode)?.name;
168
+ let oldOptionName;
169
+ for (const variant of variants) {
170
+ if (oldOptionName) {
171
+ continue;
172
+ }
173
+ if (variant.options.map(o => o.id).includes(input.id)) {
174
+ if (!oldOptionName) {
175
+ oldOptionName = findTranslation(variant.options.find(o => o.id === input.id), languageCode)?.name;
176
+ }
177
+ }
178
+ }
179
+ if (oldOptionName && newOptionName) {
180
+ replacementMap.set(oldOptionName, newOptionName);
181
+ }
170
182
  }
171
183
  const variantsToUpdate = [];
172
- for (const variant of variants) {
173
- if (variant.options.map(o => o.id).includes(input.id)) {
174
- if (!oldOptionName) {
175
- oldOptionName = findTranslation(variant.options.find(o => o.id === input.id), languageCode)?.name;
184
+ if (replacementMap.size) {
185
+ const oldOptionNames = Array.from(replacementMap.keys());
186
+ for (const variant of variants) {
187
+ const variantName = findTranslation(variant, languageCode)?.name;
188
+ if (!variantName) {
189
+ continue;
176
190
  }
177
- const variantName = findTranslation(variant, languageCode)?.name || '';
178
- if (oldOptionName && newOptionName && variantName.includes(oldOptionName)) {
179
- variantsToUpdate.push({
180
- id: variant.id,
181
- translations: [
182
- {
183
- languageCode,
184
- name: replaceLast(variantName, oldOptionName, newOptionName),
185
- },
186
- ],
187
- });
191
+ if (!oldOptionNames.some(oldOptionName => variantName.includes(oldOptionName))) {
192
+ continue;
188
193
  }
194
+ const updatedVariantName = oldOptionNames.reduce((name, oldOptionName) => replaceLast(name, oldOptionName, replacementMap.get(oldOptionName)), variantName);
195
+ variantsToUpdate.push({
196
+ id: variant.id,
197
+ translations: [
198
+ {
199
+ languageCode,
200
+ name: updatedVariantName,
201
+ },
202
+ ],
203
+ });
189
204
  }
190
205
  }
191
206
  if (variantsToUpdate.length) {
192
207
  updateProductVariantNames$ =
193
208
  this.dataService.product.updateProductVariants(variantsToUpdate);
194
209
  }
210
+ else {
211
+ updateProductVariantNames$ = of([]);
212
+ }
195
213
  }
196
- return this.dataService.product
197
- .updateProductOption(input)
198
- .pipe(mergeMap(() => updateProductVariantNames$));
214
+ return forkJoin(inputs.map(input => this.dataService.product.updateProductOption(input))).pipe(mergeMap(() => updateProductVariantNames$));
199
215
  }));
200
216
  }
201
217
  deleteProductVariant(id, productId) {
@@ -217,4 +233,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
217
233
  providedIn: 'root',
218
234
  }]
219
235
  }], ctorParameters: () => [{ type: i1.DataService }] });
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1kZXRhaWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvcHJvdmlkZXJzL3Byb2R1Y3QtZGV0YWlsL3Byb2R1Y3QtZGV0YWlsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBSUgsY0FBYyxFQUVkLGVBQWUsR0FTbEIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUU3Qzs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sb0JBQW9CO0lBQzdCLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQUcsQ0FBQztJQUVoRCxnQkFBZ0I7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUTthQUMzQixnQkFBZ0IsRUFBRTthQUNsQixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQzthQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELHlCQUF5QixDQUNyQixLQUF5QixFQUN6QixvQkFBaUQsRUFDakQsWUFBMEI7UUFFMUIsTUFBTSxjQUFjLEdBQUcsSUFB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QUFDO2dCQUNoRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDbEUsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMzRCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7OEdBbFFRLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGNBRmpCLE1BQU07OzJGQUVULG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBDcmVhdGVQcm9kdWN0SW5wdXQsXHJcbiAgICBDcmVhdGVQcm9kdWN0VmFyaWFudElucHV0LFxyXG4gICAgRGF0YVNlcnZpY2UsXHJcbiAgICBEZWxldGlvblJlc3VsdCxcclxuICAgIEZhY2V0V2l0aFZhbHVlc0ZyYWdtZW50LFxyXG4gICAgZmluZFRyYW5zbGF0aW9uLFxyXG4gICAgR2V0UHJvZHVjdERldGFpbFF1ZXJ5LFxyXG4gICAgR2V0UHJvZHVjdFdpdGhWYXJpYW50c1F1ZXJ5LFxyXG4gICAgTGFuZ3VhZ2VDb2RlLFxyXG4gICAgVXBkYXRlUHJvZHVjdElucHV0LFxyXG4gICAgVXBkYXRlUHJvZHVjdE11dGF0aW9uLFxyXG4gICAgVXBkYXRlUHJvZHVjdE9wdGlvbklucHV0LFxyXG4gICAgVXBkYXRlUHJvZHVjdFZhcmlhbnRJbnB1dCxcclxuICAgIFVwZGF0ZVByb2R1Y3RWYXJpYW50c011dGF0aW9uLFxyXG59IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyBub3JtYWxpemVTdHJpbmcgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL25vcm1hbGl6ZS1zdHJpbmcnO1xyXG5pbXBvcnQgeyBub3ROdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC11dGlscyc7XHJcbmltcG9ydCB7IGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIG1lcmdlTWFwLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQ3JlYXRlUHJvZHVjdFZhcmlhbnRzQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9nZW5lcmF0ZS1wcm9kdWN0LXZhcmlhbnRzL2dlbmVyYXRlLXByb2R1Y3QtdmFyaWFudHMuY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7IHJlcGxhY2VMYXN0IH0gZnJvbSAnLi9yZXBsYWNlLWxhc3QnO1xyXG5cclxuLyoqXHJcbiAqIEhhbmRsZXMgdGhlIGxvZ2ljIGZvciBtYWtpbmcgdGhlIEFQSSBjYWxscyB0byBwZXJmb3JtIENSVUQgb3BlcmF0aW9ucyBvbiBhIFByb2R1Y3QgYW5kIGl0cyByZWxhdGVkXHJcbiAqIGVudGl0aWVzLiBUaGlzIGxvZ2ljIHdhcyBleHRyYWN0ZWQgb3V0IG9mIHRoZSBjb21wb25lbnQgYmVjYXVzZSBpdCBiZWNhbWUgdG9vIGxhcmdlIGFuZCBoYXJkIHRvIGZvbGxvdy5cclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2R1Y3REZXRhaWxTZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlKSB7fVxyXG5cclxuICAgIGdldFRheENhdGVnb3JpZXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2Uuc2V0dGluZ3NcclxuICAgICAgICAgICAgLmdldFRheENhdGVnb3JpZXMoKVxyXG4gICAgICAgICAgICAubWFwU2luZ2xlKGRhdGEgPT4gZGF0YS50YXhDYXRlZ29yaWVzLml0ZW1zKVxyXG4gICAgICAgICAgICAucGlwZShzaGFyZVJlcGxheSgxKSk7XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlUHJvZHVjdFdpdGhWYXJpYW50cyhcclxuICAgICAgICBpbnB1dDogQ3JlYXRlUHJvZHVjdElucHV0LFxyXG4gICAgICAgIGNyZWF0ZVZhcmlhbnRzQ29uZmlnOiBDcmVhdGVQcm9kdWN0VmFyaWFudHNDb25maWcsXHJcbiAgICAgICAgbGFuZ3VhZ2VDb2RlOiBMYW5ndWFnZUNvZGUsXHJcbiAgICApIHtcclxuICAgICAgICBjb25zdCBjcmVhdGVQcm9kdWN0JCA9IHRoaXMuZGF0YVNlcnZpY2UucHJvZHVjdC5jcmVhdGVQcm9kdWN0KGlucHV0KTtcclxuICAgICAgICBjb25zdCBub25FbXB0eU9wdGlvbkdyb3VwcyA9IGNyZWF0ZVZhcmlhbnRzQ29uZmlnLmdyb3Vwcy5maWx0ZXIoZyA9PiAwIDwgZy52YWx1ZXMubGVuZ3RoKTtcclxuICAgICAgICBjb25zdCBjcmVhdGVPcHRpb25Hcm91cHMkID0gdGhpcy5jcmVhdGVQcm9kdWN0T3B0aW9uR3JvdXBzKG5vbkVtcHR5T3B0aW9uR3JvdXBzLCBsYW5ndWFnZUNvZGUpO1xyXG5cclxuICAgICAgICByZXR1cm4gZm9ya0pvaW4oY3JlYXRlUHJvZHVjdCQsIGNyZWF0ZU9wdGlvbkdyb3VwcyQpLnBpcGUoXHJcbiAgICAgICAgICAgIG1lcmdlTWFwKChbeyBjcmVhdGVQcm9kdWN0IH0sIG9wdGlvbkdyb3Vwc10pID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGFkZE9wdGlvbnNUb1Byb2R1Y3QkID0gb3B0aW9uR3JvdXBzLmxlbmd0aFxyXG4gICAgICAgICAgICAgICAgICAgID8gZm9ya0pvaW4oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uR3JvdXBzLm1hcChvcHRpb25Hcm91cCA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3QuYWRkT3B0aW9uR3JvdXBUb1Byb2R1Y3Qoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdElkOiBjcmVhdGVQcm9kdWN0LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uR3JvdXBJZDogb3B0aW9uR3JvdXAuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgOiBvZihbXSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYWRkT3B0aW9uc1RvUHJvZHVjdCQucGlwZShtYXAoKCkgPT4gKHsgY3JlYXRlUHJvZHVjdCwgb3B0aW9uR3JvdXBzIH0pKSk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBtZXJnZU1hcCgoeyBjcmVhdGVQcm9kdWN0LCBvcHRpb25Hcm91cHMgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdmFyaWFudHMgPSBjcmVhdGVWYXJpYW50c0NvbmZpZy52YXJpYW50cy5tYXAodiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uSWRzID0gb3B0aW9uR3JvdXBzLmxlbmd0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHYub3B0aW9uVmFsdWVzLm1hcCgob3B0aW9uTmFtZSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gb3B0aW9uR3JvdXBzW2luZGV4XS5vcHRpb25zLmZpbmQobyA9PiBvLm5hbWUgPT09IG9wdGlvbk5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBDb3VsZCBub3QgZmluZCBhIG1hdGNoaW5nIFByb2R1Y3RPcHRpb24gXCIke29wdGlvbk5hbWV9XCIgd2hlbiBjcmVhdGluZyB2YXJpYW50YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi5pZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnYsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbklkcyxcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0gb3B0aW9uR3JvdXBzLm1hcChvZyA9PiBvZy5vcHRpb25zKS5yZWR1Y2UoKGZsYXQsIG8pID0+IFsuLi5mbGF0LCAuLi5vXSwgW10pO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlUHJvZHVjdFZhcmlhbnRzKFxyXG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZVByb2R1Y3QsXHJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudHMsXHJcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyxcclxuICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZUNvZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlVmFyaWFudHNDb25maWcuc3RvY2tMb2NhdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVQcm9kdWN0T3B0aW9uR3JvdXBzKGdyb3VwczogQXJyYXk8eyBuYW1lOiBzdHJpbmc7IHZhbHVlczogc3RyaW5nW10gfT4sIGxhbmd1YWdlQ29kZTogTGFuZ3VhZ2VDb2RlKSB7XHJcbiAgICAgICAgcmV0dXJuIGdyb3Vwcy5sZW5ndGhcclxuICAgICAgICAgICAgPyBmb3JrSm9pbihcclxuICAgICAgICAgICAgICAgICAgZ3JvdXBzLm1hcChjID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAuY3JlYXRlUHJvZHVjdE9wdGlvbkdyb3Vwcyh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU6IG5vcm1hbGl6ZVN0cmluZyhjLm5hbWUsICctJyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uczogW3sgbGFuZ3VhZ2VDb2RlLCBuYW1lOiBjLm5hbWUgfV0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IGMudmFsdWVzLm1hcCh2ID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBub3JtYWxpemVTdHJpbmcodiwgJy0nKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uczogW3sgbGFuZ3VhZ2VDb2RlLCBuYW1lOiB2IH1dLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAucGlwZShtYXAoZGF0YSA9PiBkYXRhLmNyZWF0ZVByb2R1Y3RPcHRpb25Hcm91cCkpLFxyXG4gICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgOiBvZihbXSk7XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlUHJvZHVjdFZhcmlhbnRzKFxyXG4gICAgICAgIHByb2R1Y3Q6IHsgbmFtZTogc3RyaW5nOyBpZDogc3RyaW5nIH0sXHJcbiAgICAgICAgdmFyaWFudERhdGE6IEFycmF5PHsgcHJpY2U6IG51bWJlcjsgc2t1OiBzdHJpbmc7IHN0b2NrOiBudW1iZXI7IG9wdGlvbklkczogc3RyaW5nW10gfT4sXHJcbiAgICAgICAgb3B0aW9uczogQXJyYXk8eyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmcgfT4sXHJcbiAgICAgICAgbGFuZ3VhZ2VDb2RlOiBMYW5ndWFnZUNvZGUsXHJcbiAgICAgICAgc3RvY2tMb2NhdGlvbklkOiBzdHJpbmcsXHJcbiAgICApIHtcclxuICAgICAgICBjb25zdCB2YXJpYW50czogQ3JlYXRlUHJvZHVjdFZhcmlhbnRJbnB1dFtdID0gdmFyaWFudERhdGEubWFwKHYgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBuYW1lID0gb3B0aW9ucy5sZW5ndGhcclxuICAgICAgICAgICAgICAgID8gYCR7cHJvZHVjdC5uYW1lfSAke3Yub3B0aW9uSWRzXHJcbiAgICAgICAgICAgICAgICAgICAgICAubWFwKGlkID0+IG9wdGlvbnMuZmluZChvID0+IG8uaWQgPT09IGlkKSlcclxuICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIobm90TnVsbE9yVW5kZWZpbmVkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgLm1hcChvID0+IG8ubmFtZSlcclxuICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCcgJyl9YFxyXG4gICAgICAgICAgICAgICAgOiBwcm9kdWN0Lm5hbWU7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBwcm9kdWN0SWQ6IHByb2R1Y3QuaWQsXHJcbiAgICAgICAgICAgICAgICBwcmljZTogdi5wcmljZSxcclxuICAgICAgICAgICAgICAgIHNrdTogdi5za3UsXHJcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlQ29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgIHN0b2NrTGV2ZWxzOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9ja0xvY2F0aW9uSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0b2NrT25IYW5kOiB2LnN0b2NrLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgICAgb3B0aW9uSWRzOiB2Lm9wdGlvbklkcyxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0LmNyZWF0ZVByb2R1Y3RWYXJpYW50cyh2YXJpYW50cykucGlwZShcclxuICAgICAgICAgICAgbWFwKCh7IGNyZWF0ZVByb2R1Y3RWYXJpYW50cyB9KSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgY3JlYXRlUHJvZHVjdFZhcmlhbnRzLFxyXG4gICAgICAgICAgICAgICAgcHJvZHVjdElkOiBwcm9kdWN0LmlkLFxyXG4gICAgICAgICAgICB9KSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVQcm9kdWN0KHVwZGF0ZU9wdGlvbnM6IHtcclxuICAgICAgICBwcm9kdWN0OiBOb25OdWxsYWJsZTxHZXRQcm9kdWN0RGV0YWlsUXVlcnlbJ3Byb2R1Y3QnXT47XHJcbiAgICAgICAgbGFuZ3VhZ2VDb2RlOiBMYW5ndWFnZUNvZGU7XHJcbiAgICAgICAgYXV0b1VwZGF0ZTogYm9vbGVhbjtcclxuICAgICAgICBwcm9kdWN0SW5wdXQ/OiBVcGRhdGVQcm9kdWN0SW5wdXQ7XHJcbiAgICAgICAgdmFyaWFudHNJbnB1dD86IFVwZGF0ZVByb2R1Y3RWYXJpYW50SW5wdXRbXTtcclxuICAgIH0pIHtcclxuICAgICAgICBjb25zdCB7IHByb2R1Y3QsIGxhbmd1YWdlQ29kZSwgYXV0b1VwZGF0ZSwgcHJvZHVjdElucHV0LCB2YXJpYW50c0lucHV0IH0gPSB1cGRhdGVPcHRpb25zO1xyXG4gICAgICAgIGNvbnN0IHVwZGF0ZU9wZXJhdGlvbnM6IEFycmF5PE9ic2VydmFibGU8VXBkYXRlUHJvZHVjdE11dGF0aW9uIHwgVXBkYXRlUHJvZHVjdFZhcmlhbnRzTXV0YXRpb24+PiA9IFtdO1xyXG4gICAgICAgIGNvbnN0IHVwZGF0ZVZhcmlhbnRzSW5wdXQgPSB2YXJpYW50c0lucHV0IHx8IFtdO1xyXG5cclxuICAgICAgICBjb25zdCB2YXJpYW50cyQgPSBhdXRvVXBkYXRlXHJcbiAgICAgICAgICAgID8gdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0XHJcbiAgICAgICAgICAgICAgICAgIC5nZXRQcm9kdWN0VmFyaWFudHNGb3JQcm9kdWN0KHt9LCBwcm9kdWN0LmlkKVxyXG4gICAgICAgICAgICAgICAgICAubWFwU2luZ2xlKCh7IHByb2R1Y3RWYXJpYW50cyB9KSA9PiBwcm9kdWN0VmFyaWFudHMuaXRlbXMpXHJcbiAgICAgICAgICAgIDogb2YoW10pO1xyXG5cclxuICAgICAgICByZXR1cm4gdmFyaWFudHMkLnBpcGUoXHJcbiAgICAgICAgICAgIG1lcmdlTWFwKHZhcmlhbnRzID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChwcm9kdWN0SW5wdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVPcGVyYXRpb25zLnB1c2godGhpcy5kYXRhU2VydmljZS5wcm9kdWN0LnVwZGF0ZVByb2R1Y3QocHJvZHVjdElucHV0KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvZHVjdE9sZE5hbWUgPSBmaW5kVHJhbnNsYXRpb24ocHJvZHVjdCwgbGFuZ3VhZ2VDb2RlKT8ubmFtZSA/PyAnJztcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcm9kdWN0TmV3TmFtZSA9IGZpbmRUcmFuc2xhdGlvbihwcm9kdWN0SW5wdXQsIGxhbmd1YWdlQ29kZSk/Lm5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb2R1Y3ROZXdOYW1lICYmIHByb2R1Y3RPbGROYW1lICE9PSBwcm9kdWN0TmV3TmFtZSAmJiBhdXRvVXBkYXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgdmFyaWFudCBvZiB2YXJpYW50cykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFZhcmlhbnROYW1lID0gZmluZFRyYW5zbGF0aW9uKHZhcmlhbnQsIGxhbmd1YWdlQ29kZSk/Lm5hbWUgfHwgJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFyaWFudElucHV0OiBVcGRhdGVQcm9kdWN0VmFyaWFudElucHV0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdWYXJpYW50SW5wdXQgPSB1cGRhdGVWYXJpYW50c0lucHV0LmZpbmQoaSA9PiBpLmlkID09PSB2YXJpYW50LmlkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ1ZhcmlhbnRJbnB1dCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnRJbnB1dCA9IGV4aXN0aW5nVmFyaWFudElucHV0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50SW5wdXQgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiB2YXJpYW50LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbnM6IFt7IGxhbmd1YWdlQ29kZSwgbmFtZTogY3VycmVudFZhcmlhbnROYW1lIH1dLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlVmFyaWFudHNJbnB1dC5wdXNoKHZhcmlhbnRJbnB1dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YXJpYW50VHJhbnNsYXRpb24gPSBmaW5kVHJhbnNsYXRpb24odmFyaWFudElucHV0LCBsYW5ndWFnZUNvZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhcmlhbnRUcmFuc2xhdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YXJpYW50VHJhbnNsYXRpb24ubmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50VHJhbnNsYXRpb24ubmFtZSA9IHJlcGxhY2VMYXN0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudFRyYW5zbGF0aW9uLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0T2xkTmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3ROZXdOYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSB2YXJpYW50IHRyYW5zbGF0aW9uIHdhcyBmYWxzeSwgd2hpY2ggb2NjdXJzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gZGVmaW5pbmcgdGhlIHByb2R1Y3QgbmFtZSBmb3IgYSBuZXcgdHJhbnNsYXRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGFuZ3VhZ2UgdGhhdCBoYWQgbm90IHlldCBiZWVuIGRlZmluZWQuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnRUcmFuc2xhdGlvbi5uYW1lID0gW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdE5ld05hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi52YXJpYW50Lm9wdGlvbnMubWFwKG8gPT4gby5uYW1lKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXS5qb2luKCcgJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHVwZGF0ZVZhcmlhbnRzSW5wdXQubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlT3BlcmF0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3QudXBkYXRlUHJvZHVjdFZhcmlhbnRzKHVwZGF0ZVZhcmlhbnRzSW5wdXQpLFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZm9ya0pvaW4odXBkYXRlT3BlcmF0aW9ucyk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlUHJvZHVjdE9wdGlvbihcclxuICAgICAgICBpbnB1dDogVXBkYXRlUHJvZHVjdE9wdGlvbklucHV0ICYgeyBhdXRvVXBkYXRlOiBib29sZWFuIH0sXHJcbiAgICAgICAgcHJvZHVjdDogTm9uTnVsbGFibGU8R2V0UHJvZHVjdERldGFpbFF1ZXJ5Wydwcm9kdWN0J10+LFxyXG4gICAgICAgIGxhbmd1YWdlQ29kZTogTGFuZ3VhZ2VDb2RlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgY29uc3QgdmFyaWFudHMkID0gaW5wdXQuYXV0b1VwZGF0ZVxyXG4gICAgICAgICAgICA/IHRoaXMuZGF0YVNlcnZpY2UucHJvZHVjdFxyXG4gICAgICAgICAgICAgICAgICAuZ2V0UHJvZHVjdFZhcmlhbnRzRm9yUHJvZHVjdCh7fSwgcHJvZHVjdC5pZClcclxuICAgICAgICAgICAgICAgICAgLm1hcFNpbmdsZSgoeyBwcm9kdWN0VmFyaWFudHMgfSkgPT4gcHJvZHVjdFZhcmlhbnRzLml0ZW1zKVxyXG4gICAgICAgICAgICA6IG9mKFtdKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHZhcmlhbnRzJC5waXBlKFxyXG4gICAgICAgICAgICBtZXJnZU1hcCh2YXJpYW50cyA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdXBkYXRlUHJvZHVjdFZhcmlhbnROYW1lcyQ6IE9ic2VydmFibGU8YW55PiA9IG9mKFtdKTtcclxuICAgICAgICAgICAgICAgIGlmIChpbnB1dC5hdXRvVXBkYXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIGFueSBQcm9kdWN0VmFyaWFudHMnIG5hbWVzIHdoaWNoIGluY2x1ZGUgdGhlIG9wdGlvbiBuYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IG9sZE9wdGlvbk5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdPcHRpb25OYW1lID0gZmluZFRyYW5zbGF0aW9uKGlucHV0LCBsYW5ndWFnZUNvZGUpPy5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghbmV3T3B0aW9uTmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVQcm9kdWN0VmFyaWFudE5hbWVzJCA9IG9mKFtdKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFyaWFudHNUb1VwZGF0ZTogVXBkYXRlUHJvZHVjdFZhcmlhbnRJbnB1dFtdID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCB2YXJpYW50IG9mIHZhcmlhbnRzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YXJpYW50Lm9wdGlvbnMubWFwKG8gPT4gby5pZCkuaW5jbHVkZXMoaW5wdXQuaWQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW9sZE9wdGlvbk5hbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRPcHRpb25OYW1lID0gZmluZFRyYW5zbGF0aW9uKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50Lm9wdGlvbnMuZmluZChvID0+IG8uaWQgPT09IGlucHV0LmlkKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk/Lm5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YXJpYW50TmFtZSA9IGZpbmRUcmFuc2xhdGlvbih2YXJpYW50LCBsYW5ndWFnZUNvZGUpPy5uYW1lIHx8ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9sZE9wdGlvbk5hbWUgJiYgbmV3T3B0aW9uTmFtZSAmJiB2YXJpYW50TmFtZS5pbmNsdWRlcyhvbGRPcHRpb25OYW1lKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnRzVG9VcGRhdGUucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiB2YXJpYW50LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZUNvZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogcmVwbGFjZUxhc3QodmFyaWFudE5hbWUsIG9sZE9wdGlvbk5hbWUsIG5ld09wdGlvbk5hbWUpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodmFyaWFudHNUb1VwZGF0ZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlUHJvZHVjdFZhcmlhbnROYW1lcyQgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0LnVwZGF0ZVByb2R1Y3RWYXJpYW50cyh2YXJpYW50c1RvVXBkYXRlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0XHJcbiAgICAgICAgICAgICAgICAgICAgLnVwZGF0ZVByb2R1Y3RPcHRpb24oaW5wdXQpXHJcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUobWVyZ2VNYXAoKCkgPT4gdXBkYXRlUHJvZHVjdFZhcmlhbnROYW1lcyQpKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBkZWxldGVQcm9kdWN0VmFyaWFudChpZDogc3RyaW5nLCBwcm9kdWN0SWQ6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3QuZGVsZXRlUHJvZHVjdFZhcmlhbnQoaWQpLnBpcGUoXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcChyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5kZWxldGVQcm9kdWN0VmFyaWFudC5yZXN1bHQgPT09IERlbGV0aW9uUmVzdWx0LkRFTEVURUQpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0LmdldFByb2R1Y3QocHJvZHVjdElkKS5zaW5nbGUkO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihyZXN1bHQuZGVsZXRlUHJvZHVjdFZhcmlhbnQubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIl19
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1kZXRhaWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvcHJvdmlkZXJzL3Byb2R1Y3QtZGV0YWlsL3Byb2R1Y3QtZGV0YWlsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBSUgsY0FBYyxFQUVkLGVBQWUsR0FTbEIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUU3Qzs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sb0JBQW9CO0lBQzdCLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQUcsQ0FBQztJQUVoRCxnQkFBZ0I7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUTthQUMzQixnQkFBZ0IsRUFBRTthQUNsQixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQzthQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELHlCQUF5QixDQUNyQixLQUF5QixFQUN6QixvQkFBaUQsRUFDakQsWUFBMEI7UUFFMUIsTUFBTSxjQUFjLEdBQUcsSUFB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OzsyRkFFVCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgQ3JlYXRlUHJvZHVjdElucHV0LFxyXG4gICAgQ3JlYXRlUHJvZHVjdFZhcmlhbnRJbnB1dCxcclxuICAgIERhdGFTZXJ2aWNlLFxyXG4gICAgRGVsZXRpb25SZXN1bHQsXHJcbiAgICBGYWNldFdpdGhWYWx1ZXNGcmFnbWVudCxcclxuICAgIGZpbmRUcmFuc2xhdGlvbixcclxuICAgIEdldFByb2R1Y3REZXRhaWxRdWVyeSxcclxuICAgIEdldFByb2R1Y3RXaXRoVmFyaWFudHNRdWVyeSxcclxuICAgIExhbmd1YWdlQ29kZSxcclxuICAgIFVwZGF0ZVByb2R1Y3RJbnB1dCxcclxuICAgIFVwZGF0ZVByb2R1Y3RNdXRhdGlvbixcclxuICAgIFVwZGF0ZVByb2R1Y3RPcHRpb25JbnB1dCxcclxuICAgIFVwZGF0ZVByb2R1Y3RWYXJpYW50SW5wdXQsXHJcbiAgICBVcGRhdGVQcm9kdWN0VmFyaWFudHNNdXRhdGlvbixcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgbm9ybWFsaXplU3RyaW5nIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9ub3JtYWxpemUtc3RyaW5nJztcclxuaW1wb3J0IHsgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBtZXJnZU1hcCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IENyZWF0ZVByb2R1Y3RWYXJpYW50c0NvbmZpZyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZ2VuZXJhdGUtcHJvZHVjdC12YXJpYW50cy9nZW5lcmF0ZS1wcm9kdWN0LXZhcmlhbnRzLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyByZXBsYWNlTGFzdCB9IGZyb20gJy4vcmVwbGFjZS1sYXN0JztcclxuXHJcbi8qKlxyXG4gKiBIYW5kbGVzIHRoZSBsb2dpYyBmb3IgbWFraW5nIHRoZSBBUEkgY2FsbHMgdG8gcGVyZm9ybSBDUlVEIG9wZXJhdGlvbnMgb24gYSBQcm9kdWN0IGFuZCBpdHMgcmVsYXRlZFxyXG4gKiBlbnRpdGllcy4gVGhpcyBsb2dpYyB3YXMgZXh0cmFjdGVkIG91dCBvZiB0aGUgY29tcG9uZW50IGJlY2F1c2UgaXQgYmVjYW1lIHRvbyBsYXJnZSBhbmQgaGFyZCB0byBmb2xsb3cuXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9kdWN0RGV0YWlsU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSkge31cclxuXHJcbiAgICBnZXRUYXhDYXRlZ29yaWVzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLnNldHRpbmdzXHJcbiAgICAgICAgICAgIC5nZXRUYXhDYXRlZ29yaWVzKClcclxuICAgICAgICAgICAgLm1hcFNpbmdsZShkYXRhID0+IGRhdGEudGF4Q2F0ZWdvcmllcy5pdGVtcylcclxuICAgICAgICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZVByb2R1Y3RXaXRoVmFyaWFudHMoXHJcbiAgICAgICAgaW5wdXQ6IENyZWF0ZVByb2R1Y3RJbnB1dCxcclxuICAgICAgICBjcmVhdGVWYXJpYW50c0NvbmZpZzogQ3JlYXRlUHJvZHVjdFZhcmlhbnRzQ29uZmlnLFxyXG4gICAgICAgIGxhbmd1YWdlQ29kZTogTGFuZ3VhZ2VDb2RlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgY29uc3QgY3JlYXRlUHJvZHVjdCQgPSB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3QuY3JlYXRlUHJvZHVjdChpbnB1dCk7XHJcbiAgICAgICAgY29uc3Qgbm9uRW1wdHlPcHRpb25Hcm91cHMgPSBjcmVhdGVWYXJpYW50c0NvbmZpZy5ncm91cHMuZmlsdGVyKGcgPT4gMCA8IGcudmFsdWVzLmxlbmd0aCk7XHJcbiAgICAgICAgY29uc3QgY3JlYXRlT3B0aW9uR3JvdXBzJCA9IHRoaXMuY3JlYXRlUHJvZHVjdE9wdGlvbkdyb3Vwcyhub25FbXB0eU9wdGlvbkdyb3VwcywgbGFuZ3VhZ2VDb2RlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGZvcmtKb2luKGNyZWF0ZVByb2R1Y3QkLCBjcmVhdGVPcHRpb25Hcm91cHMkKS5waXBlKFxyXG4gICAgICAgICAgICBtZXJnZU1hcCgoW3sgY3JlYXRlUHJvZHVjdCB9LCBvcHRpb25Hcm91cHNdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBhZGRPcHRpb25zVG9Qcm9kdWN0JCA9IG9wdGlvbkdyb3Vwcy5sZW5ndGhcclxuICAgICAgICAgICAgICAgICAgICA/IGZvcmtKb2luKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbkdyb3Vwcy5tYXAob3B0aW9uR3JvdXAgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0LmFkZE9wdGlvbkdyb3VwVG9Qcm9kdWN0KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RJZDogY3JlYXRlUHJvZHVjdC5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbkdyb3VwSWQ6IG9wdGlvbkdyb3VwLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgIDogb2YoW10pO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFkZE9wdGlvbnNUb1Byb2R1Y3QkLnBpcGUobWFwKCgpID0+ICh7IGNyZWF0ZVByb2R1Y3QsIG9wdGlvbkdyb3VwcyB9KSkpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbWVyZ2VNYXAoKHsgY3JlYXRlUHJvZHVjdCwgb3B0aW9uR3JvdXBzIH0pID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHZhcmlhbnRzID0gY3JlYXRlVmFyaWFudHNDb25maWcudmFyaWFudHMubWFwKHYgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbklkcyA9IG9wdGlvbkdyb3Vwcy5sZW5ndGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyB2Lm9wdGlvblZhbHVlcy5tYXAoKG9wdGlvbk5hbWUsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IG9wdGlvbkdyb3Vwc1tpbmRleF0ub3B0aW9ucy5maW5kKG8gPT4gby5uYW1lID09PSBvcHRpb25OYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFvcHRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgQ291bGQgbm90IGZpbmQgYSBtYXRjaGluZyBQcm9kdWN0T3B0aW9uIFwiJHtvcHRpb25OYW1lfVwiIHdoZW4gY3JlYXRpbmcgdmFyaWFudGAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24uaWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBbXTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi52LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25JZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IG9wdGlvbkdyb3Vwcy5tYXAob2cgPT4gb2cub3B0aW9ucykucmVkdWNlKChmbGF0LCBvKSA9PiBbLi4uZmxhdCwgLi4ub10sIFtdKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVByb2R1Y3RWYXJpYW50cyhcclxuICAgICAgICAgICAgICAgICAgICBjcmVhdGVQcm9kdWN0LFxyXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnRzLFxyXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMsXHJcbiAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VDb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZVZhcmlhbnRzQ29uZmlnLnN0b2NrTG9jYXRpb25JZCxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlUHJvZHVjdE9wdGlvbkdyb3Vwcyhncm91cHM6IEFycmF5PHsgbmFtZTogc3RyaW5nOyB2YWx1ZXM6IHN0cmluZ1tdIH0+LCBsYW5ndWFnZUNvZGU6IExhbmd1YWdlQ29kZSkge1xyXG4gICAgICAgIHJldHVybiBncm91cHMubGVuZ3RoXHJcbiAgICAgICAgICAgID8gZm9ya0pvaW4oXHJcbiAgICAgICAgICAgICAgICAgIGdyb3Vwcy5tYXAoYyA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmNyZWF0ZVByb2R1Y3RPcHRpb25Hcm91cHMoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiBub3JtYWxpemVTdHJpbmcoYy5uYW1lLCAnLScpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbnM6IFt7IGxhbmd1YWdlQ29kZSwgbmFtZTogYy5uYW1lIH1dLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBjLnZhbHVlcy5tYXAodiA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZTogbm9ybWFsaXplU3RyaW5nKHYsICctJyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbnM6IFt7IGxhbmd1YWdlQ29kZSwgbmFtZTogdiB9XSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUobWFwKGRhdGEgPT4gZGF0YS5jcmVhdGVQcm9kdWN0T3B0aW9uR3JvdXApKSxcclxuICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIDogb2YoW10pO1xyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZVByb2R1Y3RWYXJpYW50cyhcclxuICAgICAgICBwcm9kdWN0OiB7IG5hbWU6IHN0cmluZzsgaWQ6IHN0cmluZyB9LFxyXG4gICAgICAgIHZhcmlhbnREYXRhOiBBcnJheTx7IHByaWNlOiBudW1iZXI7IHNrdTogc3RyaW5nOyBzdG9jazogbnVtYmVyOyBvcHRpb25JZHM6IHN0cmluZ1tdIH0+LFxyXG4gICAgICAgIG9wdGlvbnM6IEFycmF5PHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nIH0+LFxyXG4gICAgICAgIGxhbmd1YWdlQ29kZTogTGFuZ3VhZ2VDb2RlLFxyXG4gICAgICAgIHN0b2NrTG9jYXRpb25JZDogc3RyaW5nLFxyXG4gICAgKSB7XHJcbiAgICAgICAgY29uc3QgdmFyaWFudHM6IENyZWF0ZVByb2R1Y3RWYXJpYW50SW5wdXRbXSA9IHZhcmlhbnREYXRhLm1hcCh2ID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbmFtZSA9IG9wdGlvbnMubGVuZ3RoXHJcbiAgICAgICAgICAgICAgICA/IGAke3Byb2R1Y3QubmFtZX0gJHt2Lm9wdGlvbklkc1xyXG4gICAgICAgICAgICAgICAgICAgICAgLm1hcChpZCA9PiBvcHRpb25zLmZpbmQobyA9PiBvLmlkID09PSBpZCkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKG5vdE51bGxPclVuZGVmaW5lZClcclxuICAgICAgICAgICAgICAgICAgICAgIC5tYXAobyA9PiBvLm5hbWUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAuam9pbignICcpfWBcclxuICAgICAgICAgICAgICAgIDogcHJvZHVjdC5uYW1lO1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgcHJvZHVjdElkOiBwcm9kdWN0LmlkLFxyXG4gICAgICAgICAgICAgICAgcHJpY2U6IHYucHJpY2UsXHJcbiAgICAgICAgICAgICAgICBza3U6IHYuc2t1LFxyXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRpb25zOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZUNvZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICBzdG9ja0xldmVsczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RvY2tMb2NhdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9ja09uSGFuZDogdi5zdG9jayxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgIG9wdGlvbklkczogdi5vcHRpb25JZHMsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UucHJvZHVjdC5jcmVhdGVQcm9kdWN0VmFyaWFudHModmFyaWFudHMpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgoeyBjcmVhdGVQcm9kdWN0VmFyaWFudHMgfSkgPT4gKHtcclxuICAgICAgICAgICAgICAgIGNyZWF0ZVByb2R1Y3RWYXJpYW50cyxcclxuICAgICAgICAgICAgICAgIHByb2R1Y3RJZDogcHJvZHVjdC5pZCxcclxuICAgICAgICAgICAgfSkpLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlUHJvZHVjdCh1cGRhdGVPcHRpb25zOiB7XHJcbiAgICAgICAgcHJvZHVjdDogTm9uTnVsbGFibGU8R2V0UHJvZHVjdERldGFpbFF1ZXJ5Wydwcm9kdWN0J10+O1xyXG4gICAgICAgIGxhbmd1YWdlQ29kZTogTGFuZ3VhZ2VDb2RlO1xyXG4gICAgICAgIGF1dG9VcGRhdGU6IGJvb2xlYW47XHJcbiAgICAgICAgcHJvZHVjdElucHV0PzogVXBkYXRlUHJvZHVjdElucHV0O1xyXG4gICAgICAgIHZhcmlhbnRzSW5wdXQ/OiBVcGRhdGVQcm9kdWN0VmFyaWFudElucHV0W107XHJcbiAgICB9KSB7XHJcbiAgICAgICAgY29uc3QgeyBwcm9kdWN0LCBsYW5ndWFnZUNvZGUsIGF1dG9VcGRhdGUsIHByb2R1Y3RJbnB1dCwgdmFyaWFudHNJbnB1dCB9ID0gdXBkYXRlT3B0aW9ucztcclxuICAgICAgICBjb25zdCB1cGRhdGVPcGVyYXRpb25zOiBBcnJheTxPYnNlcnZhYmxlPFVwZGF0ZVByb2R1Y3RNdXRhdGlvbiB8IFVwZGF0ZVByb2R1Y3RWYXJpYW50c011dGF0aW9uPj4gPSBbXTtcclxuICAgICAgICBjb25zdCB1cGRhdGVWYXJpYW50c0lucHV0ID0gdmFyaWFudHNJbnB1dCB8fCBbXTtcclxuXHJcbiAgICAgICAgY29uc3QgdmFyaWFudHMkID0gYXV0b1VwZGF0ZVxyXG4gICAgICAgICAgICA/IHRoaXMuZGF0YVNlcnZpY2UucHJvZHVjdFxyXG4gICAgICAgICAgICAgICAgICAuZ2V0UHJvZHVjdFZhcmlhbnRzRm9yUHJvZHVjdCh7fSwgcHJvZHVjdC5pZClcclxuICAgICAgICAgICAgICAgICAgLm1hcFNpbmdsZSgoeyBwcm9kdWN0VmFyaWFudHMgfSkgPT4gcHJvZHVjdFZhcmlhbnRzLml0ZW1zKVxyXG4gICAgICAgICAgICA6IG9mKFtdKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHZhcmlhbnRzJC5waXBlKFxyXG4gICAgICAgICAgICBtZXJnZU1hcCh2YXJpYW50cyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocHJvZHVjdElucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlT3BlcmF0aW9ucy5wdXNoKHRoaXMuZGF0YVNlcnZpY2UucHJvZHVjdC51cGRhdGVQcm9kdWN0KHByb2R1Y3RJbnB1dCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb2R1Y3RPbGROYW1lID0gZmluZFRyYW5zbGF0aW9uKHByb2R1Y3QsIGxhbmd1YWdlQ29kZSk/Lm5hbWUgPz8gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvZHVjdE5ld05hbWUgPSBmaW5kVHJhbnNsYXRpb24ocHJvZHVjdElucHV0LCBsYW5ndWFnZUNvZGUpPy5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChwcm9kdWN0TmV3TmFtZSAmJiBwcm9kdWN0T2xkTmFtZSAhPT0gcHJvZHVjdE5ld05hbWUgJiYgYXV0b1VwZGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHZhcmlhbnQgb2YgdmFyaWFudHMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRWYXJpYW50TmFtZSA9IGZpbmRUcmFuc2xhdGlvbih2YXJpYW50LCBsYW5ndWFnZUNvZGUpPy5uYW1lIHx8ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhcmlhbnRJbnB1dDogVXBkYXRlUHJvZHVjdFZhcmlhbnRJbnB1dDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nVmFyaWFudElucHV0ID0gdXBkYXRlVmFyaWFudHNJbnB1dC5maW5kKGkgPT4gaS5pZCA9PT0gdmFyaWFudC5pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXhpc3RpbmdWYXJpYW50SW5wdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50SW5wdXQgPSBleGlzdGluZ1ZhcmlhbnRJbnB1dDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudElucHV0ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogdmFyaWFudC5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25zOiBbeyBsYW5ndWFnZUNvZGUsIG5hbWU6IGN1cnJlbnRWYXJpYW50TmFtZSB9XSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVZhcmlhbnRzSW5wdXQucHVzaCh2YXJpYW50SW5wdXQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFyaWFudFRyYW5zbGF0aW9uID0gZmluZFRyYW5zbGF0aW9uKHZhcmlhbnRJbnB1dCwgbGFuZ3VhZ2VDb2RlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YXJpYW50VHJhbnNsYXRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFyaWFudFRyYW5zbGF0aW9uLm5hbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudFRyYW5zbGF0aW9uLm5hbWUgPSByZXBsYWNlTGFzdChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnRUcmFuc2xhdGlvbi5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdE9sZE5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0TmV3TmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgdmFyaWFudCB0cmFuc2xhdGlvbiB3YXMgZmFsc3ksIHdoaWNoIG9jY3Vyc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3aGVuIGRlZmluaW5nIHRoZSBwcm9kdWN0IG5hbWUgZm9yIGEgbmV3IHRyYW5zbGF0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxhbmd1YWdlIHRoYXQgaGFkIG5vdCB5ZXQgYmVlbiBkZWZpbmVkLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50VHJhbnNsYXRpb24ubmFtZSA9IFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3ROZXdOYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udmFyaWFudC5vcHRpb25zLm1hcChvID0+IG8ubmFtZSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0uam9pbignICcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICh1cGRhdGVWYXJpYW50c0lucHV0Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZU9wZXJhdGlvbnMucHVzaChcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0LnVwZGF0ZVByb2R1Y3RWYXJpYW50cyh1cGRhdGVWYXJpYW50c0lucHV0KSxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZvcmtKb2luKHVwZGF0ZU9wZXJhdGlvbnMpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVByb2R1Y3RPcHRpb25zKFxyXG4gICAgICAgIGlucHV0czogVXBkYXRlUHJvZHVjdE9wdGlvbklucHV0W10sXHJcbiAgICAgICAgYXV0b1VwZGF0ZVByb2R1Y3ROYW1lczogYm9vbGVhbixcclxuICAgICAgICBwcm9kdWN0OiBOb25OdWxsYWJsZTxHZXRQcm9kdWN0RGV0YWlsUXVlcnlbJ3Byb2R1Y3QnXT4sXHJcbiAgICAgICAgbGFuZ3VhZ2VDb2RlOiBMYW5ndWFnZUNvZGUsXHJcbiAgICApIHtcclxuICAgICAgICBjb25zdCB2YXJpYW50cyQgPSBhdXRvVXBkYXRlUHJvZHVjdE5hbWVzXHJcbiAgICAgICAgICAgID8gdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0XHJcbiAgICAgICAgICAgICAgICAgIC5nZXRQcm9kdWN0VmFyaWFudHNGb3JQcm9kdWN0KHt9LCBwcm9kdWN0LmlkKVxyXG4gICAgICAgICAgICAgICAgICAubWFwU2luZ2xlKCh7IHByb2R1Y3RWYXJpYW50cyB9KSA9PiBwcm9kdWN0VmFyaWFudHMuaXRlbXMpXHJcbiAgICAgICAgICAgIDogb2YoW10pO1xyXG5cclxuICAgICAgICByZXR1cm4gdmFyaWFudHMkLnBpcGUoXHJcbiAgICAgICAgICAgIG1lcmdlTWFwKHZhcmlhbnRzID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCB1cGRhdGVQcm9kdWN0VmFyaWFudE5hbWVzJDogT2JzZXJ2YWJsZTxhbnk+ID0gb2YoW10pO1xyXG4gICAgICAgICAgICAgICAgaWYgKGF1dG9VcGRhdGVQcm9kdWN0TmFtZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXBsYWNlbWVudE1hcCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgaW5wdXQgb2YgaW5wdXRzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld09wdGlvbk5hbWUgPSBmaW5kVHJhbnNsYXRpb24oaW5wdXQsIGxhbmd1YWdlQ29kZSk/Lm5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvbGRPcHRpb25OYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgdmFyaWFudCBvZiB2YXJpYW50cykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9sZE9wdGlvbk5hbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YXJpYW50Lm9wdGlvbnMubWFwKG8gPT4gby5pZCkuaW5jbHVkZXMoaW5wdXQuaWQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFvbGRPcHRpb25OYW1lKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZE9wdGlvbk5hbWUgPSBmaW5kVHJhbnNsYXRpb24oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50Lm9wdGlvbnMuZmluZChvID0+IG8uaWQgPT09IGlucHV0LmlkKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlQ29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKT8ubmFtZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9sZE9wdGlvbk5hbWUgJiYgbmV3T3B0aW9uTmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZW1lbnRNYXAuc2V0KG9sZE9wdGlvbk5hbWUsIG5ld09wdGlvbk5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YXJpYW50c1RvVXBkYXRlOiBVcGRhdGVQcm9kdWN0VmFyaWFudElucHV0W10gPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnRNYXAuc2l6ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvbGRPcHRpb25OYW1lcyA9IEFycmF5LmZyb20ocmVwbGFjZW1lbnRNYXAua2V5cygpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCB2YXJpYW50IG9mIHZhcmlhbnRzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YXJpYW50TmFtZSA9IGZpbmRUcmFuc2xhdGlvbih2YXJpYW50LCBsYW5ndWFnZUNvZGUpPy5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF2YXJpYW50TmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFvbGRPcHRpb25OYW1lcy5zb21lKG9sZE9wdGlvbk5hbWUgPT4gdmFyaWFudE5hbWUuaW5jbHVkZXMob2xkT3B0aW9uTmFtZSkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkVmFyaWFudE5hbWUgPSBvbGRPcHRpb25OYW1lcy5yZWR1Y2UoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5hbWUsIG9sZE9wdGlvbk5hbWUpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VMYXN0KG5hbWUsIG9sZE9wdGlvbk5hbWUsIHJlcGxhY2VtZW50TWFwLmdldChvbGRPcHRpb25OYW1lKSEpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnROYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnRzVG9VcGRhdGUucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHZhcmlhbnQuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25zOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlQ29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHVwZGF0ZWRWYXJpYW50TmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhcmlhbnRzVG9VcGRhdGUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVByb2R1Y3RWYXJpYW50TmFtZXMkID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YVNlcnZpY2UucHJvZHVjdC51cGRhdGVQcm9kdWN0VmFyaWFudHModmFyaWFudHNUb1VwZGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlUHJvZHVjdFZhcmlhbnROYW1lcyQgPSBvZihbXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZvcmtKb2luKFxyXG4gICAgICAgICAgICAgICAgICAgIGlucHV0cy5tYXAoaW5wdXQgPT4gdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0LnVwZGF0ZVByb2R1Y3RPcHRpb24oaW5wdXQpKSxcclxuICAgICAgICAgICAgICAgICkucGlwZShtZXJnZU1hcCgoKSA9PiB1cGRhdGVQcm9kdWN0VmFyaWFudE5hbWVzJCkpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZVByb2R1Y3RWYXJpYW50KGlkOiBzdHJpbmcsIHByb2R1Y3RJZDogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UucHJvZHVjdC5kZWxldGVQcm9kdWN0VmFyaWFudChpZCkucGlwZShcclxuICAgICAgICAgICAgc3dpdGNoTWFwKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmRlbGV0ZVByb2R1Y3RWYXJpYW50LnJlc3VsdCA9PT0gRGVsZXRpb25SZXN1bHQuREVMRVRFRCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3QuZ2V0UHJvZHVjdChwcm9kdWN0SWQpLnNpbmdsZSQ7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHJlc3VsdC5kZWxldGVQcm9kdWN0VmFyaWFudC5tZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by the set-version.js script.
2
- export const ADMIN_UI_VERSION = '2.2.4';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tbW9uL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEF1dG8tZ2VuZXJhdGVkIGJ5IHRoZSBzZXQtdmVyc2lvbi5qcyBzY3JpcHQuXG5leHBvcnQgY29uc3QgQURNSU5fVUlfVkVSU0lPTiA9ICcyLjIuNCc7XG4iXX0=
2
+ export const ADMIN_UI_VERSION = '2.2.6';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tbW9uL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEF1dG8tZ2VuZXJhdGVkIGJ5IHRoZSBzZXQtdmVyc2lvbi5qcyBzY3JpcHQuXG5leHBvcnQgY29uc3QgQURNSU5fVUlfVkVSU0lPTiA9ICcyLjIuNic7XG4iXX0=
@@ -3,7 +3,7 @@ import { DataTableCustomComponentService, } from '../shared/components/data-tabl
3
3
  /**
4
4
  * @description
5
5
  * Allows you to override the default component used to render the data of a particular column in a DataTable.
6
- * The component should implement the {@link CustomDataTableColumnComponent} interface. The tableId and columnId can
6
+ * The component should implement the {@link CustomColumnComponent} interface. The tableId and columnId can
7
7
  * be determined by pressing `ctrl + u` when running the Admin UI in dev mode.
8
8
  *
9
9
  * @example
@@ -48,4 +48,4 @@ export function registerDataTableComponent(config) {
48
48
  deps: [DataTableCustomComponentService],
49
49
  };
50
50
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItZGF0YS10YWJsZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2V4dGVuc2lvbi9yZWdpc3Rlci1kYXRhLXRhYmxlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFFSCwrQkFBK0IsR0FDbEMsTUFBTSx1RUFBdUUsQ0FBQztBQUUvRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFDRztBQUNILE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxNQUFnQztJQUN2RSxPQUFPO1FBQ0gsT0FBTyxFQUFFLGVBQWU7UUFDeEIsS0FBSyxFQUFFLElBQUk7UUFDWCxVQUFVLEVBQUUsQ0FBQywrQkFBZ0UsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQ25GLCtCQUErQixDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BFLENBQUM7UUFDRCxJQUFJLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztLQUMxQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgRGF0YVRhYmxlQ29tcG9uZW50Q29uZmlnLFxyXG4gICAgRGF0YVRhYmxlQ3VzdG9tQ29tcG9uZW50U2VydmljZSxcclxufSBmcm9tICcuLi9zaGFyZWQvY29tcG9uZW50cy9kYXRhLXRhYmxlLTIvZGF0YS10YWJsZS1jdXN0b20tY29tcG9uZW50LnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBBbGxvd3MgeW91IHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGNvbXBvbmVudCB1c2VkIHRvIHJlbmRlciB0aGUgZGF0YSBvZiBhIHBhcnRpY3VsYXIgY29sdW1uIGluIGEgRGF0YVRhYmxlLlxyXG4gKiBUaGUgY29tcG9uZW50IHNob3VsZCBpbXBsZW1lbnQgdGhlIHtAbGluayBDdXN0b21EYXRhVGFibGVDb2x1bW5Db21wb25lbnR9IGludGVyZmFjZS4gVGhlIHRhYmxlSWQgYW5kIGNvbHVtbklkIGNhblxyXG4gKiBiZSBkZXRlcm1pbmVkIGJ5IHByZXNzaW5nIGBjdHJsICsgdWAgd2hlbiBydW5uaW5nIHRoZSBBZG1pbiBVSSBpbiBkZXYgbW9kZS5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgdHMgdGl0bGU9XCJjb21wb25lbnRzL2N1c3RvbS10YWJsZS5jb21wb25lbnQudHNcIlxyXG4gKiBpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnXFxAYW5ndWxhci9jb3JlJztcclxuICogaW1wb3J0IHsgQ3VzdG9tQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnXFxAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuICpcclxuICogXFxAQ29tcG9uZW50KHtcclxuICogICAgIHNlbGVjdG9yOiAnY3VzdG9tLXNsdWctY29tcG9uZW50JyxcclxuICogICAgIHRlbXBsYXRlOiBgXHJcbiAqICAgICAgICAgPGEgW2hyZWZdPVwiJ2h0dHBzOi8vZXhhbXBsZS5jb20vcHJvZHVjdHMvJyArIHJvd0l0ZW0uc2x1Z1wiIHRhcmdldD1cIl9ibGFua1wiPnt7IHJvd0l0ZW0uc2x1ZyB9fTwvYT5cclxuICogICAgIGAsXHJcbiAqICAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gKiB9KVxyXG4gKiBleHBvcnQgY2xhc3MgQ3VzdG9tVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBDdXN0b21Db2x1bW5Db21wb25lbnQge1xyXG4gKiAgICAgXFxASW5wdXQoKSByb3dJdGVtOiBhbnk7XHJcbiAqIH1cclxuICogYGBgXHJcbiAqXHJcbiAqIGBgYHRzIHRpdGxlPVwicHJvdmlkZXJzLnRzXCJcclxuICogaW1wb3J0IHsgcmVnaXN0ZXJEYXRhVGFibGVDb21wb25lbnQgfSBmcm9tICdcXEB2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG4gKiBpbXBvcnQgeyBDdXN0b21UYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20tdGFibGUuY29tcG9uZW50JztcclxuICpcclxuICogZXhwb3J0IGRlZmF1bHQgW1xyXG4gKiAgICAgcmVnaXN0ZXJEYXRhVGFibGVDb21wb25lbnQoe1xyXG4gKiAgICAgICAgIGNvbXBvbmVudDogQ3VzdG9tVGFibGVDb21wb25lbnQsXHJcbiAqICAgICAgICAgdGFibGVJZDogJ3Byb2R1Y3QtbGlzdCcsXHJcbiAqICAgICAgICAgY29sdW1uSWQ6ICdzbHVnJyxcclxuICogICAgIH0pLFxyXG4gKiBdO1xyXG4gKiBgYGBcclxuICpcclxuICogQGRvY3NDYXRlZ29yeSBjdXN0b20tdGFibGUtY29tcG9uZW50c1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRGF0YVRhYmxlQ29tcG9uZW50KGNvbmZpZzogRGF0YVRhYmxlQ29tcG9uZW50Q29uZmlnKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICB1c2VGYWN0b3J5OiAoZGF0YVRhYmxlQ3VzdG9tQ29tcG9uZW50U2VydmljZTogRGF0YVRhYmxlQ3VzdG9tQ29tcG9uZW50U2VydmljZSkgPT4gKCkgPT4ge1xyXG4gICAgICAgICAgICBkYXRhVGFibGVDdXN0b21Db21wb25lbnRTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KGNvbmZpZyk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBkZXBzOiBbRGF0YVRhYmxlQ3VzdG9tQ29tcG9uZW50U2VydmljZV0sXHJcbiAgICB9O1xyXG59XHJcbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItZGF0YS10YWJsZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2V4dGVuc2lvbi9yZWdpc3Rlci1kYXRhLXRhYmxlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFFSCwrQkFBK0IsR0FDbEMsTUFBTSx1RUFBdUUsQ0FBQztBQUUvRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFDRztBQUNILE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxNQUFnQztJQUN2RSxPQUFPO1FBQ0gsT0FBTyxFQUFFLGVBQWU7UUFDeEIsS0FBSyxFQUFFLElBQUk7UUFDWCxVQUFVLEVBQUUsQ0FBQywrQkFBZ0UsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQ25GLCtCQUErQixDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BFLENBQUM7UUFDRCxJQUFJLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztLQUMxQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBEYXRhVGFibGVDb21wb25lbnRDb25maWcsXG4gICAgRGF0YVRhYmxlQ3VzdG9tQ29tcG9uZW50U2VydmljZSxcbn0gZnJvbSAnLi4vc2hhcmVkL2NvbXBvbmVudHMvZGF0YS10YWJsZS0yL2RhdGEtdGFibGUtY3VzdG9tLWNvbXBvbmVudC5zZXJ2aWNlJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFsbG93cyB5b3UgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgY29tcG9uZW50IHVzZWQgdG8gcmVuZGVyIHRoZSBkYXRhIG9mIGEgcGFydGljdWxhciBjb2x1bW4gaW4gYSBEYXRhVGFibGUuXG4gKiBUaGUgY29tcG9uZW50IHNob3VsZCBpbXBsZW1lbnQgdGhlIHtAbGluayBDdXN0b21Db2x1bW5Db21wb25lbnR9IGludGVyZmFjZS4gVGhlIHRhYmxlSWQgYW5kIGNvbHVtbklkIGNhblxuICogYmUgZGV0ZXJtaW5lZCBieSBwcmVzc2luZyBgY3RybCArIHVgIHdoZW4gcnVubmluZyB0aGUgQWRtaW4gVUkgaW4gZGV2IG1vZGUuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzIHRpdGxlPVwiY29tcG9uZW50cy9jdXN0b20tdGFibGUuY29tcG9uZW50LnRzXCJcbiAqIGltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdcXEBhbmd1bGFyL2NvcmUnO1xuICogaW1wb3J0IHsgQ3VzdG9tQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnXFxAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcbiAqXG4gKiBcXEBDb21wb25lbnQoe1xuICogICAgIHNlbGVjdG9yOiAnY3VzdG9tLXNsdWctY29tcG9uZW50JyxcbiAqICAgICB0ZW1wbGF0ZTogYFxuICogICAgICAgICA8YSBbaHJlZl09XCInaHR0cHM6Ly9leGFtcGxlLmNvbS9wcm9kdWN0cy8nICsgcm93SXRlbS5zbHVnXCIgdGFyZ2V0PVwiX2JsYW5rXCI+e3sgcm93SXRlbS5zbHVnIH19PC9hPlxuICogICAgIGAsXG4gKiAgICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQ3VzdG9tVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBDdXN0b21Db2x1bW5Db21wb25lbnQge1xuICogICAgIFxcQElucHV0KCkgcm93SXRlbTogYW55O1xuICogfVxuICogYGBgXG4gKlxuICogYGBgdHMgdGl0bGU9XCJwcm92aWRlcnMudHNcIlxuICogaW1wb3J0IHsgcmVnaXN0ZXJEYXRhVGFibGVDb21wb25lbnQgfSBmcm9tICdcXEB2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xuICogaW1wb3J0IHsgQ3VzdG9tVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tLXRhYmxlLmNvbXBvbmVudCc7XG4gKlxuICogZXhwb3J0IGRlZmF1bHQgW1xuICogICAgIHJlZ2lzdGVyRGF0YVRhYmxlQ29tcG9uZW50KHtcbiAqICAgICAgICAgY29tcG9uZW50OiBDdXN0b21UYWJsZUNvbXBvbmVudCxcbiAqICAgICAgICAgdGFibGVJZDogJ3Byb2R1Y3QtbGlzdCcsXG4gKiAgICAgICAgIGNvbHVtbklkOiAnc2x1ZycsXG4gKiAgICAgfSksXG4gKiBdO1xuICogYGBgXG4gKlxuICogQGRvY3NDYXRlZ29yeSBjdXN0b20tdGFibGUtY29tcG9uZW50c1xuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJEYXRhVGFibGVDb21wb25lbnQoY29uZmlnOiBEYXRhVGFibGVDb21wb25lbnRDb25maWcpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB1c2VGYWN0b3J5OiAoZGF0YVRhYmxlQ3VzdG9tQ29tcG9uZW50U2VydmljZTogRGF0YVRhYmxlQ3VzdG9tQ29tcG9uZW50U2VydmljZSkgPT4gKCkgPT4ge1xuICAgICAgICAgICAgZGF0YVRhYmxlQ3VzdG9tQ29tcG9uZW50U2VydmljZS5yZWdpc3RlckN1c3RvbUNvbXBvbmVudChjb25maWcpO1xuICAgICAgICB9LFxuICAgICAgICBkZXBzOiBbRGF0YVRhYmxlQ3VzdG9tQ29tcG9uZW50U2VydmljZV0sXG4gICAgfTtcbn1cbiJdfQ==
@@ -94,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
94
94
  type: HostListener,
95
95
  args: ['document:dragleave', ['$event']]
96
96
  }] } });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtZmlsZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LWZpbGUtaW5wdXQvYXNzZXQtZmlsZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LWZpbGUtaW5wdXQvYXNzZXQtZmlsZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7QUFJdEU7O0dBRUc7QUFPSCxNQUFNLE9BQU8sdUJBQXVCO0lBa0JoQyxZQUFvQixZQUFpQztRQUFqQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFqQnJEOzs7V0FHRztRQUNNLG1CQUFjLEdBQUcsTUFBTSxDQUFDO1FBQ3hCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ25ELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsa0JBQWEsR0FBRztZQUNaLFVBQVUsRUFBRSxDQUFDO1lBQ2IsV0FBVyxFQUFFLENBQUM7WUFDZCxRQUFRLEVBQUUsQ0FBQztZQUNYLFNBQVMsRUFBRSxDQUFDO1NBQ2YsQ0FBQztJQUdzRCxDQUFDO0lBRXpELFFBQVE7UUFDSixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBR0QsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxrR0FBa0c7SUFFbEcsV0FBVyxDQUFDLEtBQVU7UUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUIsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsS0FBVTtRQUNqQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGtHQUFrRztJQUNsRyxNQUFNLENBQUMsS0FBVTtRQUNiLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFtQixLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ3pGLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUN2QixNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQVk7UUFDZixNQUFNLEtBQUssR0FBSSxLQUFLLENBQUMsTUFBMkIsQ0FBQyxLQUFLLENBQUM7UUFDdkQsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM3QyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG1CQUFtQjtRQUN2QixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQWdCLENBQUM7UUFDMUUsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNULE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUM1QyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM5QyxDQUFDO0lBQ0wsQ0FBQzs4R0ExRVEsdUJBQXVCO2tHQUF2Qix1QkFBdUIsd1JDdEJwQyxpbUNBMkJBOzsyRkRMYSx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0ksc0JBQXNCLG1CQUdmLHVCQUF1QixDQUFDLE1BQU07d0ZBT3RDLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQW1CUCxXQUFXO3NCQURWLFlBQVk7dUJBQUMsb0JBQW9CO2dCQVFsQyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xuXG5pbXBvcnQgeyBTZXJ2ZXJDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS9zZXJ2ZXItY29uZmlnJztcblxuLyoqXG4gKiBBIGNvbXBvbmVudCBmb3Igc2VsZWN0aW5nIGZpbGVzIHRvIHVwbG9hZCBhcyBuZXcgQXNzZXRzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Zkci1hc3NldC1maWxlLWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXNzZXQtZmlsZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYXNzZXQtZmlsZS1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBc3NldEZpbGVJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqXG4gICAgICogQ1NTIHNlbGVjdG9yIG9mIHRoZSBET00gZWxlbWVudCB3aGljaCB3aWxsIGJlIG1hc2tlZCBieSB0aGUgZmlsZVxuICAgICAqIGRyb3Agem9uZS4gRGVmYXVsdHMgdG8gYGJvZHlgLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIGRyb3Bab25lVGFyZ2V0ID0gJ2JvZHknO1xuICAgIEBJbnB1dCgpIHVwbG9hZGluZyA9IGZhbHNlO1xuICAgIEBPdXRwdXQoKSBzZWxlY3RGaWxlcyA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZVtdPigpO1xuICAgIGRyYWdnaW5nID0gZmFsc2U7XG4gICAgb3ZlckRyb3Bab25lID0gZmFsc2U7XG4gICAgZHJvcFpvbmVTdHlsZSA9IHtcbiAgICAgICAgJ3dpZHRoLnB4JzogMCxcbiAgICAgICAgJ2hlaWdodC5weCc6IDAsXG4gICAgICAgICd0b3AucHgnOiAwLFxuICAgICAgICAnbGVmdC5weCc6IDAsXG4gICAgfTtcbiAgICBhY2NlcHQ6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VydmVyQ29uZmlnOiBTZXJ2ZXJDb25maWdTZXJ2aWNlKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuYWNjZXB0ID0gdGhpcy5zZXJ2ZXJDb25maWcuc2VydmVyQ29uZmlnLnBlcm1pdHRlZEFzc2V0VHlwZXMuam9pbignLCcpO1xuICAgICAgICB0aGlzLmZpdERyb3Bab25lVG9UYXJnZXQoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpkcmFnZW50ZXInKVxuICAgIG9uRHJhZ0VudGVyKCkge1xuICAgICAgICB0aGlzLmRyYWdnaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5maXREcm9wWm9uZVRvVGFyZ2V0KCk7XG4gICAgfVxuXG4gICAgLy8gRHJhZ0V2ZW50IGlzIG5vdCBzdXBwb3J0ZWQgaW4gU2FmYXJpLCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3ZlbmR1cmUtZWNvbW1lcmNlL3ZlbmR1cmUvcHVsbC8yODRcbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpkcmFnbGVhdmUnLCBbJyRldmVudCddKVxuICAgIG9uRHJhZ0xlYXZlKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgaWYgKCFldmVudC5jbGllbnRYICYmICFldmVudC5jbGllbnRZKSB7XG4gICAgICAgICAgICB0aGlzLmRyYWdnaW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcmV2ZW50aW5nIHRoaXMgZXZlbnQgaXMgcmVxdWlyZWQgdG8gbWFrZSBkcm9wcGluZyB3b3JrLlxuICAgICAqIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvSFRNTF9EcmFnX2FuZF9Ecm9wX0FQSSNEZWZpbmVfYV9kcm9wX3pvbmVcbiAgICAgKi9cbiAgICBvbkRyYWdPdmVyKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICAvLyBEcmFnRXZlbnQgaXMgbm90IHN1cHBvcnRlZCBpbiBTYWZhcmksIHNlZSBodHRwczovL2dpdGh1Yi5jb20vdmVuZHVyZS1lY29tbWVyY2UvdmVuZHVyZS9wdWxsLzI4NFxuICAgIG9uRHJvcChldmVudDogYW55KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuZHJhZ2dpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vdmVyRHJvcFpvbmUgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgZmlsZXMgPSBBcnJheS5mcm9tPERhdGFUcmFuc2Zlckl0ZW0+KGV2ZW50LmRhdGFUcmFuc2ZlciA/IGV2ZW50LmRhdGFUcmFuc2Zlci5pdGVtcyA6IFtdKVxuICAgICAgICAgICAgLm1hcChpID0+IGkuZ2V0QXNGaWxlKCkpXG4gICAgICAgICAgICAuZmlsdGVyKG5vdE51bGxPclVuZGVmaW5lZCk7XG4gICAgICAgIHRoaXMuc2VsZWN0RmlsZXMuZW1pdChmaWxlcyk7XG4gICAgfVxuXG4gICAgc2VsZWN0KGV2ZW50OiBFdmVudCkge1xuICAgICAgICBjb25zdCBmaWxlcyA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuZmlsZXM7XG4gICAgICAgIGlmIChmaWxlcykge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RGaWxlcy5lbWl0KEFycmF5LmZyb20oZmlsZXMpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZml0RHJvcFpvbmVUb1RhcmdldCgpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmRyb3Bab25lVGFyZ2V0KSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgaWYgKHRhcmdldCkge1xuICAgICAgICAgICAgY29uc3QgcmVjdCA9IHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIHRoaXMuZHJvcFpvbmVTdHlsZVsnd2lkdGgucHgnXSA9IHJlY3Qud2lkdGg7XG4gICAgICAgICAgICB0aGlzLmRyb3Bab25lU3R5bGVbJ2hlaWdodC5weCddID0gcmVjdC5oZWlnaHQ7XG4gICAgICAgICAgICB0aGlzLmRyb3Bab25lU3R5bGVbJ3RvcC5weCddID0gcmVjdC50b3A7XG4gICAgICAgICAgICB0aGlzLmRyb3Bab25lU3R5bGVbJ2xlZnQucHgnXSA9IHJlY3QubGVmdDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxpbnB1dCB0eXBlPVwiZmlsZVwiIGNsYXNzPVwiZmlsZS1pbnB1dFwiICNmaWxlSW5wdXQgKGNoYW5nZSk9XCJzZWxlY3QoJGV2ZW50KVwiIG11bHRpcGxlIFthY2NlcHRdPVwiYWNjZXB0XCIgLz5cclxuPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiIFtkaXNhYmxlZF09XCJ1cGxvYWRpbmdcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ1cGxvYWRpbmc7IGVsc2Ugc2VsZWN0YWJsZVwiPlxyXG4gICAgICAgIDxjbHItc3Bpbm5lciBjbHJJbmxpbmU+PC9jbHItc3Bpbm5lcj5cclxuICAgICAgICB7eyAnYXNzZXQudXBsb2FkaW5nJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctdGVtcGxhdGUgI3NlbGVjdGFibGU+XHJcbiAgICAgICAgPGNsci1pY29uIHNoYXBlPVwidXBsb2FkLWNsb3VkXCI+PC9jbHItaWNvbj5cclxuICAgICAgICB7eyAnYXNzZXQudXBsb2FkLWFzc2V0cycgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvYnV0dG9uPlxyXG48ZGl2XHJcbiAgICBjbGFzcz1cImRyb3Atem9uZVwiXHJcbiAgICBbbmdTdHlsZV09XCJkcm9wWm9uZVN0eWxlXCJcclxuICAgIFtjbGFzcy52aXNpYmxlXT1cImRyYWdnaW5nXCJcclxuICAgIFtjbGFzcy5kcmFnZ2luZy1vdmVyXT1cIm92ZXJEcm9wWm9uZVwiXHJcbiAgICAoZHJhZ2VudGVyKT1cIm92ZXJEcm9wWm9uZSA9IHRydWVcIlxyXG4gICAgKGRyYWdsZWF2ZSk9XCJvdmVyRHJvcFpvbmUgPSBmYWxzZVwiXHJcbiAgICAoZHJhZ292ZXIpPVwib25EcmFnT3ZlcigkZXZlbnQpXCJcclxuICAgIChkcm9wKT1cIm9uRHJvcCgkZXZlbnQpXCJcclxuICAgICNkcm9wWm9uZVxyXG4+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZHJvcC1sYWJlbFwiIChkcmFnZW50ZXIpPVwib3ZlckRyb3Bab25lID0gdHJ1ZVwiPlxyXG4gICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInVwbG9hZC1jbG91ZFwiIHNpemU9XCIzMlwiPjwvY2xyLWljb24+XHJcbiAgICAgICAge3sgJ2NhdGFsb2cuZHJvcC1maWxlcy10by11cGxvYWQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtZmlsZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LWZpbGUtaW5wdXQvYXNzZXQtZmlsZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LWZpbGUtaW5wdXQvYXNzZXQtZmlsZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7QUFJdEU7O0dBRUc7QUFPSCxNQUFNLE9BQU8sdUJBQXVCO0lBa0JoQyxZQUFvQixZQUFpQztRQUFqQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFqQnJEOzs7V0FHRztRQUNNLG1CQUFjLEdBQUcsTUFBTSxDQUFDO1FBQ3hCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ25ELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsa0JBQWEsR0FBRztZQUNaLFVBQVUsRUFBRSxDQUFDO1lBQ2IsV0FBVyxFQUFFLENBQUM7WUFDZCxRQUFRLEVBQUUsQ0FBQztZQUNYLFNBQVMsRUFBRSxDQUFDO1NBQ2YsQ0FBQztJQUdzRCxDQUFDO0lBRXpELFFBQVE7UUFDSixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBR0QsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxrR0FBa0c7SUFFbEcsV0FBVyxDQUFDLEtBQVU7UUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUIsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsS0FBVTtRQUNqQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGtHQUFrRztJQUNsRyxNQUFNLENBQUMsS0FBVTtRQUNiLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFtQixLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ3pGLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUN2QixNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQVk7UUFDZixNQUFNLEtBQUssR0FBSSxLQUFLLENBQUMsTUFBMkIsQ0FBQyxLQUFLLENBQUM7UUFDdkQsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM3QyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG1CQUFtQjtRQUN2QixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQWdCLENBQUM7UUFDMUUsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNULE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUM1QyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM5QyxDQUFDO0lBQ0wsQ0FBQzs4R0ExRVEsdUJBQXVCO2tHQUF2Qix1QkFBdUIsd1JDdEJwQyxpbUNBMkJBOzsyRkRMYSx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0ksc0JBQXNCLG1CQUdmLHVCQUF1QixDQUFDLE1BQU07d0ZBT3RDLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQW1CUCxXQUFXO3NCQURWLFlBQVk7dUJBQUMsb0JBQW9CO2dCQVFsQyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBIb3N0TGlzdGVuZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uSW5pdCxcclxuICAgIE91dHB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xyXG5cclxuaW1wb3J0IHsgU2VydmVyQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RhdGEvc2VydmVyLWNvbmZpZyc7XHJcblxyXG4vKipcclxuICogQSBjb21wb25lbnQgZm9yIHNlbGVjdGluZyBmaWxlcyB0byB1cGxvYWQgYXMgbmV3IEFzc2V0cy5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItYXNzZXQtZmlsZS1pbnB1dCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXNzZXQtZmlsZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9hc3NldC1maWxlLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFzc2V0RmlsZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIC8qKlxyXG4gICAgICogQ1NTIHNlbGVjdG9yIG9mIHRoZSBET00gZWxlbWVudCB3aGljaCB3aWxsIGJlIG1hc2tlZCBieSB0aGUgZmlsZVxyXG4gICAgICogZHJvcCB6b25lLiBEZWZhdWx0cyB0byBgYm9keWAuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIGRyb3Bab25lVGFyZ2V0ID0gJ2JvZHknO1xyXG4gICAgQElucHV0KCkgdXBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICBAT3V0cHV0KCkgc2VsZWN0RmlsZXMgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVbXT4oKTtcclxuICAgIGRyYWdnaW5nID0gZmFsc2U7XHJcbiAgICBvdmVyRHJvcFpvbmUgPSBmYWxzZTtcclxuICAgIGRyb3Bab25lU3R5bGUgPSB7XHJcbiAgICAgICAgJ3dpZHRoLnB4JzogMCxcclxuICAgICAgICAnaGVpZ2h0LnB4JzogMCxcclxuICAgICAgICAndG9wLnB4JzogMCxcclxuICAgICAgICAnbGVmdC5weCc6IDAsXHJcbiAgICB9O1xyXG4gICAgYWNjZXB0OiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2ZXJDb25maWc6IFNlcnZlckNvbmZpZ1NlcnZpY2UpIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5hY2NlcHQgPSB0aGlzLnNlcnZlckNvbmZpZy5zZXJ2ZXJDb25maWcucGVybWl0dGVkQXNzZXRUeXBlcy5qb2luKCcsJyk7XHJcbiAgICAgICAgdGhpcy5maXREcm9wWm9uZVRvVGFyZ2V0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6ZHJhZ2VudGVyJylcclxuICAgIG9uRHJhZ0VudGVyKCkge1xyXG4gICAgICAgIHRoaXMuZHJhZ2dpbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZml0RHJvcFpvbmVUb1RhcmdldCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIERyYWdFdmVudCBpcyBub3Qgc3VwcG9ydGVkIGluIFNhZmFyaSwgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS92ZW5kdXJlLWVjb21tZXJjZS92ZW5kdXJlL3B1bGwvMjg0XHJcbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpkcmFnbGVhdmUnLCBbJyRldmVudCddKVxyXG4gICAgb25EcmFnTGVhdmUoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIGlmICghZXZlbnQuY2xpZW50WCAmJiAhZXZlbnQuY2xpZW50WSkge1xyXG4gICAgICAgICAgICB0aGlzLmRyYWdnaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJldmVudGluZyB0aGlzIGV2ZW50IGlzIHJlcXVpcmVkIHRvIG1ha2UgZHJvcHBpbmcgd29yay5cclxuICAgICAqIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvSFRNTF9EcmFnX2FuZF9Ecm9wX0FQSSNEZWZpbmVfYV9kcm9wX3pvbmVcclxuICAgICAqL1xyXG4gICAgb25EcmFnT3ZlcihldmVudDogYW55KSB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBEcmFnRXZlbnQgaXMgbm90IHN1cHBvcnRlZCBpbiBTYWZhcmksIHNlZSBodHRwczovL2dpdGh1Yi5jb20vdmVuZHVyZS1lY29tbWVyY2UvdmVuZHVyZS9wdWxsLzI4NFxyXG4gICAgb25Ecm9wKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIHRoaXMuZHJhZ2dpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm92ZXJEcm9wWm9uZSA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IGZpbGVzID0gQXJyYXkuZnJvbTxEYXRhVHJhbnNmZXJJdGVtPihldmVudC5kYXRhVHJhbnNmZXIgPyBldmVudC5kYXRhVHJhbnNmZXIuaXRlbXMgOiBbXSlcclxuICAgICAgICAgICAgLm1hcChpID0+IGkuZ2V0QXNGaWxlKCkpXHJcbiAgICAgICAgICAgIC5maWx0ZXIobm90TnVsbE9yVW5kZWZpbmVkKTtcclxuICAgICAgICB0aGlzLnNlbGVjdEZpbGVzLmVtaXQoZmlsZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdChldmVudDogRXZlbnQpIHtcclxuICAgICAgICBjb25zdCBmaWxlcyA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuZmlsZXM7XHJcbiAgICAgICAgaWYgKGZpbGVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0RmlsZXMuZW1pdChBcnJheS5mcm9tKGZpbGVzKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZml0RHJvcFpvbmVUb1RhcmdldCgpIHtcclxuICAgICAgICBjb25zdCB0YXJnZXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuZHJvcFpvbmVUYXJnZXQpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgIGlmICh0YXJnZXQpIHtcclxuICAgICAgICAgICAgY29uc3QgcmVjdCA9IHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICAgICAgdGhpcy5kcm9wWm9uZVN0eWxlWyd3aWR0aC5weCddID0gcmVjdC53aWR0aDtcclxuICAgICAgICAgICAgdGhpcy5kcm9wWm9uZVN0eWxlWydoZWlnaHQucHgnXSA9IHJlY3QuaGVpZ2h0O1xyXG4gICAgICAgICAgICB0aGlzLmRyb3Bab25lU3R5bGVbJ3RvcC5weCddID0gcmVjdC50b3A7XHJcbiAgICAgICAgICAgIHRoaXMuZHJvcFpvbmVTdHlsZVsnbGVmdC5weCddID0gcmVjdC5sZWZ0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8aW5wdXQgdHlwZT1cImZpbGVcIiBjbGFzcz1cImZpbGUtaW5wdXRcIiAjZmlsZUlucHV0IChjaGFuZ2UpPVwic2VsZWN0KCRldmVudClcIiBtdWx0aXBsZSBbYWNjZXB0XT1cImFjY2VwdFwiIC8+XHJcbjxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIiBbZGlzYWJsZWRdPVwidXBsb2FkaW5nXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidXBsb2FkaW5nOyBlbHNlIHNlbGVjdGFibGVcIj5cclxuICAgICAgICA8Y2xyLXNwaW5uZXIgY2xySW5saW5lPjwvY2xyLXNwaW5uZXI+XHJcbiAgICAgICAge3sgJ2Fzc2V0LnVwbG9hZGluZycgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLXRlbXBsYXRlICNzZWxlY3RhYmxlPlxyXG4gICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInVwbG9hZC1jbG91ZFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAge3sgJ2Fzc2V0LnVwbG9hZC1hc3NldHMnIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L2J1dHRvbj5cclxuPGRpdlxyXG4gICAgY2xhc3M9XCJkcm9wLXpvbmVcIlxyXG4gICAgW25nU3R5bGVdPVwiZHJvcFpvbmVTdHlsZVwiXHJcbiAgICBbY2xhc3MudmlzaWJsZV09XCJkcmFnZ2luZ1wiXHJcbiAgICBbY2xhc3MuZHJhZ2dpbmctb3Zlcl09XCJvdmVyRHJvcFpvbmVcIlxyXG4gICAgKGRyYWdlbnRlcik9XCJvdmVyRHJvcFpvbmUgPSB0cnVlXCJcclxuICAgIChkcmFnbGVhdmUpPVwib3ZlckRyb3Bab25lID0gZmFsc2VcIlxyXG4gICAgKGRyYWdvdmVyKT1cIm9uRHJhZ092ZXIoJGV2ZW50KVwiXHJcbiAgICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiXHJcbiAgICAjZHJvcFpvbmVcclxuPlxyXG4gICAgPGRpdiBjbGFzcz1cImRyb3AtbGFiZWxcIiAoZHJhZ2VudGVyKT1cIm92ZXJEcm9wWm9uZSA9IHRydWVcIj5cclxuICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJ1cGxvYWQtY2xvdWRcIiBzaXplPVwiMzJcIj48L2Nsci1pY29uPlxyXG4gICAgICAgIHt7ICdjYXRhbG9nLmRyb3AtZmlsZXMtdG8tdXBsb2FkJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -75,11 +75,11 @@ export class AssetGalleryComponent {
75
75
  event.stopPropagation();
76
76
  }
77
77
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: AssetGalleryComponent, deps: [{ token: i1.ModalService }], target: i0.ɵɵFactoryTarget.Component }); }
78
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: AssetGalleryComponent, selector: "vdr-asset-gallery", inputs: { assets: "assets", multiSelect: "multiSelect", canDelete: "canDelete" }, outputs: { selectionChange: "selectionChange", deleteAssets: "deleteAssets", editAssetClick: "editAssetClick" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"gallery\">\r\n <div\r\n class=\"card\"\r\n *ngFor=\"let asset of assets\"\r\n (click)=\"toggleSelection(asset, $event)\"\r\n [class.selected]=\"isSelected(asset)\"\r\n >\r\n <div class=\"card-img\">\r\n <vdr-select-toggle\r\n [selected]=\"isSelected(asset)\"\r\n [disabled]=\"true\"\r\n [hiddenWhenOff]=\"true\"\r\n ></vdr-select-toggle>\r\n <img class=\"asset-thumb\" [src]=\"asset | assetPreview : 'thumb'\" />\r\n </div>\r\n <div class=\"detail\">\r\n <vdr-entity-info\r\n [entity]=\"asset\"\r\n [small]=\"true\"\r\n (click)=\"entityInfoClick($event)\"\r\n ></vdr-entity-info>\r\n <span [title]=\"asset.name\">{{ asset.name }}</span>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"info-bar\">\r\n <div class=\"card\">\r\n <div class=\"card-img\">\r\n <div class=\"placeholder\" *ngIf=\"selectionManager.selection.length === 0\">\r\n <clr-icon shape=\"image\" size=\"128\"></clr-icon>\r\n <div>{{ 'catalog.no-selection' | translate }}</div>\r\n </div>\r\n <img\r\n class=\"preview\"\r\n *ngIf=\"selectionManager.selection.length >= 1\"\r\n [src]=\"lastSelected().preview + '?preset=medium'\"\r\n />\r\n </div>\r\n <div class=\"card-block details\" *ngIf=\"selectionManager.selection.length >= 1\">\r\n <div class=\"name\">{{ lastSelected().name }}</div>\r\n <div>{{ 'asset.original-asset-size' | translate }}: {{ lastSelected().fileSize | filesize }}</div>\r\n\r\n <ng-container *ngIf=\"selectionManager.selection.length === 1\">\r\n <vdr-chip *ngFor=\"let tag of lastSelected().tags\" [colorFrom]=\"tag.value\"\r\n ><clr-icon shape=\"tag\" class=\"mr2\"></clr-icon> {{ tag.value }}</vdr-chip\r\n >\r\n </ng-container>\r\n <div *ngIf=\"selectionManager.selection.length === 1\">\r\n <a [routerLink]=\"['/catalog/assets/', lastSelected().id]\" (click)=\"editAssetClick.emit()\" class=\"button-ghost\">\r\n <clr-icon shape=\"pencil\"></clr-icon> {{ 'common.edit' | translate }}\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </div>\r\n <div *ngIf=\"selectionManager.selection.length === 1\">\r\n <button (click)=\"previewAsset(lastSelected())\" class=\"button-small mt-1\">\r\n <clr-icon shape=\"eye\"></clr-icon> {{ 'asset.preview' | translate }}\r\n </button>\r\n </div>\r\n <div *ngIf=\"canDelete\">\r\n <button (click)=\"deleteAssets.emit(selectionManager.selection)\" class=\"button-small mt-1\">\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </div>\r\n <div class=\"mt-1\" *ngIf=\"selectionManager.selection.length === 1\">\r\n <vdr-asset-preview-links class=\"\" [asset]=\"lastSelected()\"></vdr-asset-preview-links>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card stack\" [class.visible]=\"selectionManager.selection.length > 1\"></div>\r\n <div class=\"selection-count\" [class.visible]=\"selectionManager.selection.length > 1\">\r\n {{ 'asset.assets-selected-count' | translate : { count: selectionManager.selection.length } }}\r\n <ul>\r\n <li *ngFor=\"let asset of selectionManager.selection\">{{ asset.name }}</li>\r\n </ul>\r\n </div>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column-reverse}@media screen and (min-width: 992px){:host{flex-direction:row}}.gallery{flex:1;display:grid;grid-template-columns:repeat(auto-fill,150px);grid-template-rows:repeat(auto-fill,180px);grid-gap:10px 20px}.gallery .card:hover{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.card{margin-top:0;position:relative}img.asset-thumb{aspect-ratio:1}vdr-select-toggle{position:absolute;top:-12px;left:-12px}vdr-select-toggle ::ng-deep .toggle{box-shadow:0 5px 5px -4px #000000bf}.card.selected{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.card.selected .selected-checkbox{opacity:1}.detail{display:flex;align-items:center;gap:4px;font-size:12px;margin:3px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.detail vdr-entity-info{height:16px}.info-bar{padding:0 6px;overflow-y:auto}@media screen and (min-width: 992px){.info-bar{width:25%}}.info-bar .card{z-index:1}.info-bar .stack{z-index:0;opacity:0;transform:perspective(500px) translateZ(0) translateY(-16px);height:16px;transition:transform .3s,opacity 0s .3s;background-color:#fff}.info-bar .stack.visible{opacity:1;transform:perspective(500px) translateZ(-44px) translateY(0);background-color:var(--color-component-bg-100);transition:transform .3s,color .3s}.info-bar .selection-count{opacity:0;position:relative;text-align:center;visibility:hidden;transition:opacity .3s,visibility 0s .3s}.info-bar .selection-count.visible{opacity:1;visibility:visible;transition:opacity .3s,visibility 0s}.info-bar .selection-count ul{text-align:start;list-style-type:none;margin-inline-start:12px}.info-bar .selection-count ul li{font-size:12px}.info-bar .placeholder{text-align:center;color:var(--color-grey-300)}.info-bar .preview img{max-width:100%}.info-bar .details{font-size:12px;word-break:break-all}.info-bar .name{line-height:14px;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i2.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i5.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { kind: "component", type: i6.SelectToggleComponent, selector: "vdr-select-toggle", inputs: ["size", "selected", "hiddenWhenOff", "disabled", "label"], outputs: ["selectedChange"] }, { kind: "component", type: i7.EntityInfoComponent, selector: "vdr-entity-info", inputs: ["small", "entity"] }, { kind: "component", type: i8.AssetPreviewLinksComponent, selector: "vdr-asset-preview-links", inputs: ["asset"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }, { kind: "pipe", type: i10.FileSizePipe, name: "filesize" }, { kind: "pipe", type: i11.AssetPreviewPipe, name: "assetPreview" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
78
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: AssetGalleryComponent, selector: "vdr-asset-gallery", inputs: { assets: "assets", multiSelect: "multiSelect", canDelete: "canDelete" }, outputs: { selectionChange: "selectionChange", deleteAssets: "deleteAssets", editAssetClick: "editAssetClick" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"gallery\">\r\n <div\r\n class=\"card\"\r\n *ngFor=\"let asset of assets\"\r\n (click)=\"toggleSelection(asset, $event)\"\r\n [class.selected]=\"isSelected(asset)\"\r\n >\r\n <div class=\"card-img\">\r\n <vdr-select-toggle\r\n [selected]=\"isSelected(asset)\"\r\n [disabled]=\"true\"\r\n [hiddenWhenOff]=\"true\"\r\n ></vdr-select-toggle>\r\n <img class=\"asset-thumb\" [src]=\"asset | assetPreview : 'thumb'\" />\r\n </div>\r\n <div class=\"detail\">\r\n <vdr-entity-info\r\n [entity]=\"asset\"\r\n [small]=\"true\"\r\n (click)=\"entityInfoClick($event)\"\r\n ></vdr-entity-info>\r\n <span [title]=\"asset.name\">{{ asset.name }}</span>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"info-bar\">\r\n <div class=\"card\">\r\n <div class=\"card-img\">\r\n <div class=\"placeholder\" *ngIf=\"selectionManager.selection.length === 0\">\r\n <clr-icon shape=\"image\" size=\"128\"></clr-icon>\r\n <div>{{ 'catalog.no-selection' | translate }}</div>\r\n </div>\r\n <img\r\n class=\"preview\"\r\n *ngIf=\"selectionManager.selection.length >= 1\"\r\n [src]=\"lastSelected().preview + '?preset=medium'\"\r\n />\r\n </div>\r\n <div class=\"card-block details\" *ngIf=\"selectionManager.selection.length >= 1\">\r\n <div class=\"name\">{{ lastSelected().name }}</div>\r\n <div>{{ 'asset.original-asset-size' | translate }}: {{ lastSelected().fileSize | filesize }}</div>\r\n\r\n <ng-container *ngIf=\"selectionManager.selection.length === 1\">\r\n <vdr-chip *ngFor=\"let tag of lastSelected().tags\" [colorFrom]=\"tag.value\"\r\n ><clr-icon shape=\"tag\" class=\"mr2\"></clr-icon> {{ tag.value }}</vdr-chip\r\n >\r\n </ng-container>\r\n <div *ngIf=\"selectionManager.selection.length === 1\">\r\n <a [routerLink]=\"['/catalog/assets/', lastSelected().id]\" (click)=\"editAssetClick.emit()\" class=\"button-ghost\">\r\n <clr-icon shape=\"pencil\"></clr-icon> {{ 'common.edit' | translate }}\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </div>\r\n <div *ngIf=\"selectionManager.selection.length === 1\">\r\n <button (click)=\"previewAsset(lastSelected())\" class=\"button-small mt-1\">\r\n <clr-icon shape=\"eye\"></clr-icon> {{ 'asset.preview' | translate }}\r\n </button>\r\n </div>\r\n <div *ngIf=\"canDelete\">\r\n <button (click)=\"deleteAssets.emit(selectionManager.selection)\" class=\"button-small mt-1\">\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </div>\r\n <div class=\"mt-1\" *ngIf=\"selectionManager.selection.length === 1\">\r\n <vdr-asset-preview-links class=\"\" [asset]=\"lastSelected()\"></vdr-asset-preview-links>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card stack\" [class.visible]=\"selectionManager.selection.length > 1\"></div>\r\n <div class=\"selection-count\" [class.visible]=\"selectionManager.selection.length > 1\">\r\n {{ 'asset.assets-selected-count' | translate : { count: selectionManager.selection.length } }}\r\n <ul>\r\n <li *ngFor=\"let asset of selectionManager.selection\">{{ asset.name }}</li>\r\n </ul>\r\n </div>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column-reverse}@media screen and (min-width: 992px){:host{flex-direction:row}}.gallery{flex:1;display:grid;grid-template-columns:repeat(auto-fill,150px);grid-gap:10px 20px}.gallery .card:hover{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.card{margin-top:0;position:relative}img.asset-thumb{aspect-ratio:1}vdr-select-toggle{position:absolute;top:-12px;left:-12px}vdr-select-toggle ::ng-deep .toggle{box-shadow:0 5px 5px -4px #000000bf}.card.selected{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.card.selected .selected-checkbox{opacity:1}.detail{display:flex;align-items:normal;gap:4px;min-height:24px;font-size:12px;margin:3px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.info-bar{padding:0 6px;overflow-y:auto}@media screen and (min-width: 992px){.info-bar{width:25%}}.info-bar .card{z-index:1}.info-bar .stack{z-index:0;opacity:0;transform:perspective(500px) translateZ(0) translateY(-16px);height:16px;transition:transform .3s,opacity 0s .3s;background-color:#fff}.info-bar .stack.visible{opacity:1;transform:perspective(500px) translateZ(-44px) translateY(0);background-color:var(--color-component-bg-100);transition:transform .3s,color .3s}.info-bar .selection-count{opacity:0;position:relative;text-align:center;visibility:hidden;transition:opacity .3s,visibility 0s .3s}.info-bar .selection-count.visible{opacity:1;visibility:visible;transition:opacity .3s,visibility 0s}.info-bar .selection-count ul{text-align:start;list-style-type:none;margin-inline-start:12px}.info-bar .selection-count ul li{font-size:12px}.info-bar .placeholder{text-align:center;color:var(--color-grey-300)}.info-bar .preview img{max-width:100%}.info-bar .details{font-size:12px;word-break:break-all}.info-bar .name{line-height:14px;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i2.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i5.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { kind: "component", type: i6.SelectToggleComponent, selector: "vdr-select-toggle", inputs: ["size", "selected", "hiddenWhenOff", "disabled", "label"], outputs: ["selectedChange"] }, { kind: "component", type: i7.EntityInfoComponent, selector: "vdr-entity-info", inputs: ["small", "entity"] }, { kind: "component", type: i8.AssetPreviewLinksComponent, selector: "vdr-asset-preview-links", inputs: ["asset"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }, { kind: "pipe", type: i10.FileSizePipe, name: "filesize" }, { kind: "pipe", type: i11.AssetPreviewPipe, name: "assetPreview" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
79
79
  }
80
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: AssetGalleryComponent, decorators: [{
81
81
  type: Component,
82
- args: [{ selector: 'vdr-asset-gallery', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"gallery\">\r\n <div\r\n class=\"card\"\r\n *ngFor=\"let asset of assets\"\r\n (click)=\"toggleSelection(asset, $event)\"\r\n [class.selected]=\"isSelected(asset)\"\r\n >\r\n <div class=\"card-img\">\r\n <vdr-select-toggle\r\n [selected]=\"isSelected(asset)\"\r\n [disabled]=\"true\"\r\n [hiddenWhenOff]=\"true\"\r\n ></vdr-select-toggle>\r\n <img class=\"asset-thumb\" [src]=\"asset | assetPreview : 'thumb'\" />\r\n </div>\r\n <div class=\"detail\">\r\n <vdr-entity-info\r\n [entity]=\"asset\"\r\n [small]=\"true\"\r\n (click)=\"entityInfoClick($event)\"\r\n ></vdr-entity-info>\r\n <span [title]=\"asset.name\">{{ asset.name }}</span>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"info-bar\">\r\n <div class=\"card\">\r\n <div class=\"card-img\">\r\n <div class=\"placeholder\" *ngIf=\"selectionManager.selection.length === 0\">\r\n <clr-icon shape=\"image\" size=\"128\"></clr-icon>\r\n <div>{{ 'catalog.no-selection' | translate }}</div>\r\n </div>\r\n <img\r\n class=\"preview\"\r\n *ngIf=\"selectionManager.selection.length >= 1\"\r\n [src]=\"lastSelected().preview + '?preset=medium'\"\r\n />\r\n </div>\r\n <div class=\"card-block details\" *ngIf=\"selectionManager.selection.length >= 1\">\r\n <div class=\"name\">{{ lastSelected().name }}</div>\r\n <div>{{ 'asset.original-asset-size' | translate }}: {{ lastSelected().fileSize | filesize }}</div>\r\n\r\n <ng-container *ngIf=\"selectionManager.selection.length === 1\">\r\n <vdr-chip *ngFor=\"let tag of lastSelected().tags\" [colorFrom]=\"tag.value\"\r\n ><clr-icon shape=\"tag\" class=\"mr2\"></clr-icon> {{ tag.value }}</vdr-chip\r\n >\r\n </ng-container>\r\n <div *ngIf=\"selectionManager.selection.length === 1\">\r\n <a [routerLink]=\"['/catalog/assets/', lastSelected().id]\" (click)=\"editAssetClick.emit()\" class=\"button-ghost\">\r\n <clr-icon shape=\"pencil\"></clr-icon> {{ 'common.edit' | translate }}\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </div>\r\n <div *ngIf=\"selectionManager.selection.length === 1\">\r\n <button (click)=\"previewAsset(lastSelected())\" class=\"button-small mt-1\">\r\n <clr-icon shape=\"eye\"></clr-icon> {{ 'asset.preview' | translate }}\r\n </button>\r\n </div>\r\n <div *ngIf=\"canDelete\">\r\n <button (click)=\"deleteAssets.emit(selectionManager.selection)\" class=\"button-small mt-1\">\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </div>\r\n <div class=\"mt-1\" *ngIf=\"selectionManager.selection.length === 1\">\r\n <vdr-asset-preview-links class=\"\" [asset]=\"lastSelected()\"></vdr-asset-preview-links>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card stack\" [class.visible]=\"selectionManager.selection.length > 1\"></div>\r\n <div class=\"selection-count\" [class.visible]=\"selectionManager.selection.length > 1\">\r\n {{ 'asset.assets-selected-count' | translate : { count: selectionManager.selection.length } }}\r\n <ul>\r\n <li *ngFor=\"let asset of selectionManager.selection\">{{ asset.name }}</li>\r\n </ul>\r\n </div>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column-reverse}@media screen and (min-width: 992px){:host{flex-direction:row}}.gallery{flex:1;display:grid;grid-template-columns:repeat(auto-fill,150px);grid-template-rows:repeat(auto-fill,180px);grid-gap:10px 20px}.gallery .card:hover{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.card{margin-top:0;position:relative}img.asset-thumb{aspect-ratio:1}vdr-select-toggle{position:absolute;top:-12px;left:-12px}vdr-select-toggle ::ng-deep .toggle{box-shadow:0 5px 5px -4px #000000bf}.card.selected{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.card.selected .selected-checkbox{opacity:1}.detail{display:flex;align-items:center;gap:4px;font-size:12px;margin:3px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.detail vdr-entity-info{height:16px}.info-bar{padding:0 6px;overflow-y:auto}@media screen and (min-width: 992px){.info-bar{width:25%}}.info-bar .card{z-index:1}.info-bar .stack{z-index:0;opacity:0;transform:perspective(500px) translateZ(0) translateY(-16px);height:16px;transition:transform .3s,opacity 0s .3s;background-color:#fff}.info-bar .stack.visible{opacity:1;transform:perspective(500px) translateZ(-44px) translateY(0);background-color:var(--color-component-bg-100);transition:transform .3s,color .3s}.info-bar .selection-count{opacity:0;position:relative;text-align:center;visibility:hidden;transition:opacity .3s,visibility 0s .3s}.info-bar .selection-count.visible{opacity:1;visibility:visible;transition:opacity .3s,visibility 0s}.info-bar .selection-count ul{text-align:start;list-style-type:none;margin-inline-start:12px}.info-bar .selection-count ul li{font-size:12px}.info-bar .placeholder{text-align:center;color:var(--color-grey-300)}.info-bar .preview img{max-width:100%}.info-bar .details{font-size:12px;word-break:break-all}.info-bar .name{line-height:14px;font-weight:700}\n"] }]
82
+ args: [{ selector: 'vdr-asset-gallery', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"gallery\">\r\n <div\r\n class=\"card\"\r\n *ngFor=\"let asset of assets\"\r\n (click)=\"toggleSelection(asset, $event)\"\r\n [class.selected]=\"isSelected(asset)\"\r\n >\r\n <div class=\"card-img\">\r\n <vdr-select-toggle\r\n [selected]=\"isSelected(asset)\"\r\n [disabled]=\"true\"\r\n [hiddenWhenOff]=\"true\"\r\n ></vdr-select-toggle>\r\n <img class=\"asset-thumb\" [src]=\"asset | assetPreview : 'thumb'\" />\r\n </div>\r\n <div class=\"detail\">\r\n <vdr-entity-info\r\n [entity]=\"asset\"\r\n [small]=\"true\"\r\n (click)=\"entityInfoClick($event)\"\r\n ></vdr-entity-info>\r\n <span [title]=\"asset.name\">{{ asset.name }}</span>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"info-bar\">\r\n <div class=\"card\">\r\n <div class=\"card-img\">\r\n <div class=\"placeholder\" *ngIf=\"selectionManager.selection.length === 0\">\r\n <clr-icon shape=\"image\" size=\"128\"></clr-icon>\r\n <div>{{ 'catalog.no-selection' | translate }}</div>\r\n </div>\r\n <img\r\n class=\"preview\"\r\n *ngIf=\"selectionManager.selection.length >= 1\"\r\n [src]=\"lastSelected().preview + '?preset=medium'\"\r\n />\r\n </div>\r\n <div class=\"card-block details\" *ngIf=\"selectionManager.selection.length >= 1\">\r\n <div class=\"name\">{{ lastSelected().name }}</div>\r\n <div>{{ 'asset.original-asset-size' | translate }}: {{ lastSelected().fileSize | filesize }}</div>\r\n\r\n <ng-container *ngIf=\"selectionManager.selection.length === 1\">\r\n <vdr-chip *ngFor=\"let tag of lastSelected().tags\" [colorFrom]=\"tag.value\"\r\n ><clr-icon shape=\"tag\" class=\"mr2\"></clr-icon> {{ tag.value }}</vdr-chip\r\n >\r\n </ng-container>\r\n <div *ngIf=\"selectionManager.selection.length === 1\">\r\n <a [routerLink]=\"['/catalog/assets/', lastSelected().id]\" (click)=\"editAssetClick.emit()\" class=\"button-ghost\">\r\n <clr-icon shape=\"pencil\"></clr-icon> {{ 'common.edit' | translate }}\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </div>\r\n <div *ngIf=\"selectionManager.selection.length === 1\">\r\n <button (click)=\"previewAsset(lastSelected())\" class=\"button-small mt-1\">\r\n <clr-icon shape=\"eye\"></clr-icon> {{ 'asset.preview' | translate }}\r\n </button>\r\n </div>\r\n <div *ngIf=\"canDelete\">\r\n <button (click)=\"deleteAssets.emit(selectionManager.selection)\" class=\"button-small mt-1\">\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </div>\r\n <div class=\"mt-1\" *ngIf=\"selectionManager.selection.length === 1\">\r\n <vdr-asset-preview-links class=\"\" [asset]=\"lastSelected()\"></vdr-asset-preview-links>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card stack\" [class.visible]=\"selectionManager.selection.length > 1\"></div>\r\n <div class=\"selection-count\" [class.visible]=\"selectionManager.selection.length > 1\">\r\n {{ 'asset.assets-selected-count' | translate : { count: selectionManager.selection.length } }}\r\n <ul>\r\n <li *ngFor=\"let asset of selectionManager.selection\">{{ asset.name }}</li>\r\n </ul>\r\n </div>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column-reverse}@media screen and (min-width: 992px){:host{flex-direction:row}}.gallery{flex:1;display:grid;grid-template-columns:repeat(auto-fill,150px);grid-gap:10px 20px}.gallery .card:hover{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.card{margin-top:0;position:relative}img.asset-thumb{aspect-ratio:1}vdr-select-toggle{position:absolute;top:-12px;left:-12px}vdr-select-toggle ::ng-deep .toggle{box-shadow:0 5px 5px -4px #000000bf}.card.selected{box-shadow:0 .125rem 0 0 var(--color-primary-500);border:1px solid var(--color-primary-500)}.card.selected .selected-checkbox{opacity:1}.detail{display:flex;align-items:normal;gap:4px;min-height:24px;font-size:12px;margin:3px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.info-bar{padding:0 6px;overflow-y:auto}@media screen and (min-width: 992px){.info-bar{width:25%}}.info-bar .card{z-index:1}.info-bar .stack{z-index:0;opacity:0;transform:perspective(500px) translateZ(0) translateY(-16px);height:16px;transition:transform .3s,opacity 0s .3s;background-color:#fff}.info-bar .stack.visible{opacity:1;transform:perspective(500px) translateZ(-44px) translateY(0);background-color:var(--color-component-bg-100);transition:transform .3s,color .3s}.info-bar .selection-count{opacity:0;position:relative;text-align:center;visibility:hidden;transition:opacity .3s,visibility 0s .3s}.info-bar .selection-count.visible{opacity:1;visibility:visible;transition:opacity .3s,visibility 0s}.info-bar .selection-count ul{text-align:start;list-style-type:none;margin-inline-start:12px}.info-bar .selection-count ul li{font-size:12px}.info-bar .placeholder{text-align:center;color:var(--color-grey-300)}.info-bar .preview img{max-width:100%}.info-bar .details{font-size:12px;word-break:break-all}.info-bar .name{line-height:14px;font-weight:700}\n"] }]
83
83
  }], ctorParameters: () => [{ type: i1.ModalService }], propDecorators: { assets: [{
84
84
  type: Input
85
85
  }], multiSelect: [{
@@ -129,11 +129,11 @@ export class AssetPickerDialogComponent {
129
129
  });
130
130
  }
131
131
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: AssetPickerDialogComponent, deps: [{ token: i1.DataService }, { token: i2.NotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
132
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: AssetPickerDialogComponent, selector: "vdr-asset-picker-dialog", viewQueries: [{ propertyName: "assetSearchInputComponent", first: true, predicate: ["assetSearchInputComponent"], descendants: true }, { propertyName: "assetGalleryComponent", first: true, predicate: ["assetGalleryComponent"], descendants: true }], ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n <div class=\"title-row\">\r\n <span>{{ 'asset.select-assets' | translate }}</span>\r\n <div class=\"flex-spacer\"></div>\r\n <vdr-asset-file-input\r\n class=\"ml3\"\r\n (selectFiles)=\"createAssets($event)\"\r\n [uploading]=\"uploading\"\r\n dropZoneTarget=\".modal-content\"\r\n ></vdr-asset-file-input>\r\n </div>\r\n</ng-template>\r\n<vdr-asset-search-input\r\n class=\"mb-2\"\r\n [tags]=\"allTags$ | async\"\r\n (searchTermChange)=\"searchTerm$.next($event)\"\r\n (tagsChange)=\"filterByTags$.next($event)\"\r\n #assetSearchInputComponent\r\n></vdr-asset-search-input>\r\n<vdr-asset-gallery\r\n [assets]=\"(assets$ | async)! | paginate: paginationConfig\"\r\n [multiSelect]=\"multiSelect\"\r\n (selectionChange)=\"selection = $event\"\r\n (editAssetClick)=\"cancel()\"\r\n #assetGalleryComponent\r\n></vdr-asset-gallery>\r\n\r\n<div class=\"paging-controls\">\r\n <vdr-items-per-page-controls\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n (itemsPerPageChange)=\"itemsPerPageChange($event)\"\r\n ></vdr-items-per-page-controls>\r\n\r\n <vdr-pagination-controls\r\n [currentPage]=\"paginationConfig.currentPage\"\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n [totalItems]=\"paginationConfig.totalItems\"\r\n (pageChange)=\"pageChange($event)\"\r\n ></vdr-pagination-controls>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"select()\" class=\"btn btn-primary\" [disabled]=\"selection.length === 0\">\r\n {{ 'asset.add-asset-with-count' | translate: { count: selection.length } }}\r\n </button>\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;overflow-y:auto}.title-row{display:flex;align-items:center;justify-content:space-between}vdr-asset-gallery{flex:1}.paging-controls{padding-top:6px;border-top:1px solid var(--color-component-border-100);display:flex;justify-content:space-between;flex-shrink:0}\n"], dependencies: [{ kind: "component", type: i3.AssetSearchInputComponent, selector: "vdr-asset-search-input", inputs: ["tags"], outputs: ["searchTermChange", "tagsChange"] }, { kind: "component", type: i4.ItemsPerPageControlsComponent, selector: "vdr-items-per-page-controls", inputs: ["itemsPerPage"], outputs: ["itemsPerPageChange"] }, { kind: "component", type: i5.PaginationControlsComponent, selector: "vdr-pagination-controls", inputs: ["id", "currentPage", "itemsPerPage", "totalItems"], outputs: ["pageChange"] }, { kind: "directive", type: i6.DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: i7.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "component", type: i8.AssetFileInputComponent, selector: "vdr-asset-file-input", inputs: ["dropZoneTarget", "uploading"], outputs: ["selectFiles"] }, { kind: "component", type: i9.AssetGalleryComponent, selector: "vdr-asset-gallery", inputs: ["assets", "multiSelect", "canDelete"], outputs: ["selectionChange", "deleteAssets", "editAssetClick"] }, { kind: "pipe", type: i10.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.PaginatePipe, name: "paginate" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
132
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: AssetPickerDialogComponent, selector: "vdr-asset-picker-dialog", viewQueries: [{ propertyName: "assetSearchInputComponent", first: true, predicate: ["assetSearchInputComponent"], descendants: true }, { propertyName: "assetGalleryComponent", first: true, predicate: ["assetGalleryComponent"], descendants: true }], ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n <div class=\"title-row\">\r\n <span>{{ 'asset.select-assets' | translate }}</span>\r\n <div class=\"flex-spacer\"></div>\r\n <vdr-asset-file-input\r\n class=\"ml3\"\r\n (selectFiles)=\"createAssets($event)\"\r\n [uploading]=\"uploading\"\r\n dropZoneTarget=\".modal-content\"\r\n ></vdr-asset-file-input>\r\n </div>\r\n</ng-template>\r\n<vdr-asset-search-input\r\n class=\"mb-2\"\r\n [tags]=\"allTags$ | async\"\r\n (searchTermChange)=\"searchTerm$.next($event)\"\r\n (tagsChange)=\"filterByTags$.next($event)\"\r\n #assetSearchInputComponent\r\n></vdr-asset-search-input>\r\n<vdr-asset-gallery\r\n [assets]=\"(assets$ | async)! | paginate: paginationConfig\"\r\n [multiSelect]=\"multiSelect\"\r\n (selectionChange)=\"selection = $event\"\r\n (editAssetClick)=\"cancel()\"\r\n #assetGalleryComponent\r\n></vdr-asset-gallery>\r\n\r\n<div class=\"paging-controls\">\r\n <vdr-items-per-page-controls\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n (itemsPerPageChange)=\"itemsPerPageChange($event)\"\r\n ></vdr-items-per-page-controls>\r\n\r\n <vdr-pagination-controls\r\n [currentPage]=\"paginationConfig.currentPage\"\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n [totalItems]=\"paginationConfig.totalItems\"\r\n (pageChange)=\"pageChange($event)\"\r\n ></vdr-pagination-controls>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"select()\" class=\"btn btn-primary\" [disabled]=\"selection.length === 0\">\r\n {{ 'asset.add-asset-with-count' | translate: { count: selection.length } }}\r\n </button>\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;overflow-y:auto}.title-row{display:flex;align-items:center;justify-content:space-between}vdr-asset-gallery{flex:1}.paging-controls{padding-top:6px;margin-top:12px;margin-bottom:12px;border-top:1px solid var(--color-component-border-100);display:flex;justify-content:space-between;flex-shrink:0}\n"], dependencies: [{ kind: "component", type: i3.AssetSearchInputComponent, selector: "vdr-asset-search-input", inputs: ["tags"], outputs: ["searchTermChange", "tagsChange"] }, { kind: "component", type: i4.ItemsPerPageControlsComponent, selector: "vdr-items-per-page-controls", inputs: ["itemsPerPage"], outputs: ["itemsPerPageChange"] }, { kind: "component", type: i5.PaginationControlsComponent, selector: "vdr-pagination-controls", inputs: ["id", "currentPage", "itemsPerPage", "totalItems"], outputs: ["pageChange"] }, { kind: "directive", type: i6.DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: i7.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "component", type: i8.AssetFileInputComponent, selector: "vdr-asset-file-input", inputs: ["dropZoneTarget", "uploading"], outputs: ["selectFiles"] }, { kind: "component", type: i9.AssetGalleryComponent, selector: "vdr-asset-gallery", inputs: ["assets", "multiSelect", "canDelete"], outputs: ["selectionChange", "deleteAssets", "editAssetClick"] }, { kind: "pipe", type: i10.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.PaginatePipe, name: "paginate" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
133
133
  }
134
134
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: AssetPickerDialogComponent, decorators: [{
135
135
  type: Component,
136
- args: [{ selector: 'vdr-asset-picker-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\r\n <div class=\"title-row\">\r\n <span>{{ 'asset.select-assets' | translate }}</span>\r\n <div class=\"flex-spacer\"></div>\r\n <vdr-asset-file-input\r\n class=\"ml3\"\r\n (selectFiles)=\"createAssets($event)\"\r\n [uploading]=\"uploading\"\r\n dropZoneTarget=\".modal-content\"\r\n ></vdr-asset-file-input>\r\n </div>\r\n</ng-template>\r\n<vdr-asset-search-input\r\n class=\"mb-2\"\r\n [tags]=\"allTags$ | async\"\r\n (searchTermChange)=\"searchTerm$.next($event)\"\r\n (tagsChange)=\"filterByTags$.next($event)\"\r\n #assetSearchInputComponent\r\n></vdr-asset-search-input>\r\n<vdr-asset-gallery\r\n [assets]=\"(assets$ | async)! | paginate: paginationConfig\"\r\n [multiSelect]=\"multiSelect\"\r\n (selectionChange)=\"selection = $event\"\r\n (editAssetClick)=\"cancel()\"\r\n #assetGalleryComponent\r\n></vdr-asset-gallery>\r\n\r\n<div class=\"paging-controls\">\r\n <vdr-items-per-page-controls\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n (itemsPerPageChange)=\"itemsPerPageChange($event)\"\r\n ></vdr-items-per-page-controls>\r\n\r\n <vdr-pagination-controls\r\n [currentPage]=\"paginationConfig.currentPage\"\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n [totalItems]=\"paginationConfig.totalItems\"\r\n (pageChange)=\"pageChange($event)\"\r\n ></vdr-pagination-controls>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"select()\" class=\"btn btn-primary\" [disabled]=\"selection.length === 0\">\r\n {{ 'asset.add-asset-with-count' | translate: { count: selection.length } }}\r\n </button>\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;overflow-y:auto}.title-row{display:flex;align-items:center;justify-content:space-between}vdr-asset-gallery{flex:1}.paging-controls{padding-top:6px;border-top:1px solid var(--color-component-border-100);display:flex;justify-content:space-between;flex-shrink:0}\n"] }]
136
+ args: [{ selector: 'vdr-asset-picker-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\r\n <div class=\"title-row\">\r\n <span>{{ 'asset.select-assets' | translate }}</span>\r\n <div class=\"flex-spacer\"></div>\r\n <vdr-asset-file-input\r\n class=\"ml3\"\r\n (selectFiles)=\"createAssets($event)\"\r\n [uploading]=\"uploading\"\r\n dropZoneTarget=\".modal-content\"\r\n ></vdr-asset-file-input>\r\n </div>\r\n</ng-template>\r\n<vdr-asset-search-input\r\n class=\"mb-2\"\r\n [tags]=\"allTags$ | async\"\r\n (searchTermChange)=\"searchTerm$.next($event)\"\r\n (tagsChange)=\"filterByTags$.next($event)\"\r\n #assetSearchInputComponent\r\n></vdr-asset-search-input>\r\n<vdr-asset-gallery\r\n [assets]=\"(assets$ | async)! | paginate: paginationConfig\"\r\n [multiSelect]=\"multiSelect\"\r\n (selectionChange)=\"selection = $event\"\r\n (editAssetClick)=\"cancel()\"\r\n #assetGalleryComponent\r\n></vdr-asset-gallery>\r\n\r\n<div class=\"paging-controls\">\r\n <vdr-items-per-page-controls\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n (itemsPerPageChange)=\"itemsPerPageChange($event)\"\r\n ></vdr-items-per-page-controls>\r\n\r\n <vdr-pagination-controls\r\n [currentPage]=\"paginationConfig.currentPage\"\r\n [itemsPerPage]=\"paginationConfig.itemsPerPage\"\r\n [totalItems]=\"paginationConfig.totalItems\"\r\n (pageChange)=\"pageChange($event)\"\r\n ></vdr-pagination-controls>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"select()\" class=\"btn btn-primary\" [disabled]=\"selection.length === 0\">\r\n {{ 'asset.add-asset-with-count' | translate: { count: selection.length } }}\r\n </button>\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;overflow-y:auto}.title-row{display:flex;align-items:center;justify-content:space-between}vdr-asset-gallery{flex:1}.paging-controls{padding-top:6px;margin-top:12px;margin-bottom:12px;border-top:1px solid var(--color-component-border-100);display:flex;justify-content:space-between;flex-shrink:0}\n"] }]
137
137
  }], ctorParameters: () => [{ type: i1.DataService }, { type: i2.NotificationService }], propDecorators: { assetSearchInputComponent: [{
138
138
  type: ViewChild,
139
139
  args: ['assetSearchInputComponent']