@vendure/admin-ui 2.0.5 → 2.0.7

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 (113) hide show
  1. package/catalog/components/collection-detail/collection-detail.component.d.ts +3 -1
  2. package/catalog/components/create-product-variant-dialog/create-product-variant-dialog.component.d.ts +6 -4
  3. package/catalog/components/facet-detail/facet-detail.component.d.ts +3 -1
  4. package/catalog/components/product-detail/product-detail.component.d.ts +3 -1
  5. package/catalog/components/stock-location-detail/stock-location-detail.component.d.ts +3 -1
  6. package/core/common/utilities/custom-field-default-value.d.ts +6 -0
  7. package/core/common/version.d.ts +1 -1
  8. package/core/providers/dashboard-widget/dashboard-widget.service.d.ts +4 -1
  9. package/core/providers/data-table/data-table-filter-collection.d.ts +10 -6
  10. package/core/providers/data-table/data-table-filter.d.ts +13 -2
  11. package/core/public_api.d.ts +1 -0
  12. package/customer/components/customer-detail/customer-detail.component.d.ts +3 -1
  13. package/customer/components/customer-group-detail/customer-group-detail.component.d.ts +3 -1
  14. package/customer/components/customer-list/customer-list.component.d.ts +1 -0
  15. package/dashboard/components/dashboard/dashboard.component.d.ts +4 -1
  16. package/esm2022/catalog/components/asset-detail/asset-detail.component.mjs +3 -3
  17. package/esm2022/catalog/components/collection-data-table/collection-data-table.component.mjs +3 -3
  18. package/esm2022/catalog/components/collection-detail/collection-detail.component.mjs +3 -3
  19. package/esm2022/catalog/components/collection-list/collection-list.component.mjs +2 -1
  20. package/esm2022/catalog/components/create-product-variant-dialog/create-product-variant-dialog.component.mjs +8 -5
  21. package/esm2022/catalog/components/facet-detail/facet-detail.component.mjs +3 -3
  22. package/esm2022/catalog/components/facet-list/facet-list.component.mjs +2 -1
  23. package/esm2022/catalog/components/product-detail/product-detail.component.mjs +5 -5
  24. package/esm2022/catalog/components/product-list/product-list.component.mjs +2 -7
  25. package/esm2022/catalog/components/product-variant-detail/product-variant-detail.component.mjs +4 -4
  26. package/esm2022/catalog/components/product-variant-list/product-variant-list.component.mjs +2 -7
  27. package/esm2022/catalog/components/product-variants-editor/product-variants-editor.component.mjs +7 -5
  28. package/esm2022/catalog/components/stock-location-detail/stock-location-detail.component.mjs +3 -3
  29. package/esm2022/catalog/components/stock-location-list/stock-location-list.component.mjs +2 -7
  30. package/esm2022/core/common/utilities/create-updated-translatable.mjs +5 -23
  31. package/esm2022/core/common/utilities/custom-field-default-value.mjs +28 -0
  32. package/esm2022/core/common/version.mjs +2 -2
  33. package/esm2022/core/components/channel-switcher/channel-switcher.component.mjs +3 -3
  34. package/esm2022/core/data/data.module.mjs +1 -1
  35. package/esm2022/core/providers/dashboard-widget/dashboard-widget.service.mjs +5 -5
  36. package/esm2022/core/providers/dashboard-widget/register-dashboard-widget.mjs +1 -1
  37. package/esm2022/core/providers/data-table/data-table-filter-collection.mjs +51 -22
  38. package/esm2022/core/providers/data-table/data-table-filter.mjs +8 -1
  39. package/esm2022/core/providers/local-storage/local-storage.service.mjs +1 -1
  40. package/esm2022/core/public_api.mjs +2 -1
  41. package/esm2022/core/shared/components/affixed-input/affixed-input.component.mjs +2 -2
  42. package/esm2022/core/shared/components/asset-gallery/asset-gallery.component.mjs +3 -3
  43. package/esm2022/core/shared/components/card/card.component.mjs +1 -1
  44. package/esm2022/core/shared/components/chip/chip.component.mjs +2 -2
  45. package/esm2022/core/shared/components/data-table-2/data-table2.component.mjs +3 -3
  46. package/esm2022/core/shared/components/data-table-filter-label/data-table-filter-label.component.mjs +3 -3
  47. package/esm2022/core/shared/components/data-table-filters/data-table-filters.component.mjs +23 -4
  48. package/esm2022/core/shared/components/facet-value-chip/facet-value-chip.component.mjs +2 -2
  49. package/esm2022/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.mjs +2 -2
  50. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.mjs +2 -2
  51. package/esm2022/customer/components/customer-detail/customer-detail.component.mjs +3 -3
  52. package/esm2022/customer/components/customer-group-detail/customer-group-detail.component.mjs +3 -3
  53. package/esm2022/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.mjs +3 -2
  54. package/esm2022/customer/components/customer-group-list/customer-group-list.component.mjs +2 -1
  55. package/esm2022/customer/components/customer-list/customer-list.component.mjs +34 -30
  56. package/esm2022/dashboard/components/dashboard/dashboard.component.mjs +4 -4
  57. package/esm2022/dashboard/components/dashboard-widget/dashboard-widget.component.mjs +1 -1
  58. package/esm2022/marketing/components/promotion-detail/promotion-detail.component.mjs +3 -3
  59. package/esm2022/marketing/components/promotion-list/promotion-list.component.mjs +2 -1
  60. package/esm2022/order/components/fulfill-order-dialog/fulfill-order-dialog.component.mjs +5 -3
  61. package/esm2022/order/components/order-data-table/order-data-table.component.mjs +3 -3
  62. package/esm2022/order/components/order-detail/order-detail.component.mjs +15 -13
  63. package/esm2022/order/components/order-list/order-list.component.mjs +2 -1
  64. package/esm2022/settings/components/admin-detail/admin-detail.component.mjs +3 -3
  65. package/esm2022/settings/components/administrator-list/administrator-list.component.mjs +2 -1
  66. package/esm2022/settings/components/channel-detail/channel-detail.component.mjs +10 -10
  67. package/esm2022/settings/components/channel-list/channel-list.component.mjs +2 -1
  68. package/esm2022/settings/components/country-detail/country-detail.component.mjs +3 -3
  69. package/esm2022/settings/components/country-list/country-list.component.mjs +3 -2
  70. package/esm2022/settings/components/global-settings/global-settings.component.mjs +3 -3
  71. package/esm2022/settings/components/payment-method-detail/payment-method-detail.component.mjs +3 -3
  72. package/esm2022/settings/components/payment-method-list/payment-method-list.component.mjs +2 -1
  73. package/esm2022/settings/components/profile/profile.component.mjs +3 -3
  74. package/esm2022/settings/components/role-list/role-list.component.mjs +2 -1
  75. package/esm2022/settings/components/seller-detail/seller-detail.component.mjs +3 -3
  76. package/esm2022/settings/components/seller-list/seller-list.component.mjs +2 -1
  77. package/esm2022/settings/components/shipping-method-detail/shipping-method-detail.component.mjs +3 -3
  78. package/esm2022/settings/components/shipping-method-list/shipping-method-list.component.mjs +2 -1
  79. package/esm2022/settings/components/tax-category-detail/tax-category-detail.component.mjs +3 -3
  80. package/esm2022/settings/components/tax-category-list/tax-category-list.component.mjs +2 -1
  81. package/esm2022/settings/components/tax-rate-detail/tax-rate-detail.component.mjs +3 -3
  82. package/esm2022/settings/components/tax-rate-list/tax-rate-list.component.mjs +2 -1
  83. package/esm2022/settings/components/zone-detail/zone-detail.component.mjs +3 -3
  84. package/esm2022/settings/components/zone-list/zone-list.component.mjs +2 -1
  85. package/fesm2022/vendure-admin-ui-catalog.mjs +30 -39
  86. package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
  87. package/fesm2022/vendure-admin-ui-core.mjs +131 -68
  88. package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
  89. package/fesm2022/vendure-admin-ui-customer.mjs +34 -29
  90. package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
  91. package/fesm2022/vendure-admin-ui-dashboard.mjs +3 -3
  92. package/fesm2022/vendure-admin-ui-dashboard.mjs.map +1 -1
  93. package/fesm2022/vendure-admin-ui-marketing.mjs +3 -2
  94. package/fesm2022/vendure-admin-ui-marketing.mjs.map +1 -1
  95. package/fesm2022/vendure-admin-ui-order.mjs +21 -16
  96. package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
  97. package/fesm2022/vendure-admin-ui-settings.mjs +30 -20
  98. package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
  99. package/marketing/components/promotion-detail/promotion-detail.component.d.ts +3 -1
  100. package/order/components/order-detail/order-detail.component.d.ts +3 -1
  101. package/package.json +2 -2
  102. package/settings/components/admin-detail/admin-detail.component.d.ts +3 -1
  103. package/settings/components/channel-detail/channel-detail.component.d.ts +5 -3
  104. package/settings/components/country-detail/country-detail.component.d.ts +3 -1
  105. package/settings/components/global-settings/global-settings.component.d.ts +3 -1
  106. package/settings/components/payment-method-detail/payment-method-detail.component.d.ts +3 -1
  107. package/settings/components/profile/profile.component.d.ts +3 -1
  108. package/settings/components/seller-detail/seller-detail.component.d.ts +3 -1
  109. package/settings/components/shipping-method-detail/shipping-method-detail.component.d.ts +3 -1
  110. package/settings/components/tax-category-detail/tax-category-detail.component.d.ts +3 -1
  111. package/settings/components/tax-rate-detail/tax-rate-detail.component.d.ts +3 -1
  112. package/settings/components/zone-detail/zone-detail.component.d.ts +3 -1
  113. package/static/i18n-messages/it.json +169 -169
@@ -1,5 +1,5 @@
1
- import { assertNever } from '@vendure/common/lib/shared-utils';
2
1
  import { findTranslation } from './find-translation';
2
+ import { getDefaultValue } from './custom-field-default-value';
3
3
  /**
4
4
  * When updating an entity which has translations, the value from the form will pertain to the current
5
5
  * languageCode. This function ensures that the "translations" array is correctly set based on the
@@ -20,7 +20,9 @@ export function createUpdatedTranslatable(options) {
20
20
  }
21
21
  else {
22
22
  newCustomFields[field.name] =
23
- value === '' ? getDefaultValue(field.type) : value;
23
+ value === ''
24
+ ? getDefaultValue(field.type, field.nullable ?? true)
25
+ : value;
24
26
  }
25
27
  }
26
28
  newTranslation.customFields = newTranslatedCustomFields;
@@ -40,26 +42,6 @@ export function createUpdatedTranslatable(options) {
40
42
  }
41
43
  return newTranslatable;
42
44
  }
43
- function getDefaultValue(type) {
44
- switch (type) {
45
- case 'localeString':
46
- case 'string':
47
- case 'text':
48
- case 'localeText':
49
- return '';
50
- case 'boolean':
51
- return false;
52
- case 'float':
53
- case 'int':
54
- return 0;
55
- case 'datetime':
56
- return new Date();
57
- case 'relation':
58
- return null;
59
- default:
60
- assertNever(type);
61
- }
62
- }
63
45
  /**
64
46
  * Returns a shallow clone of `obj` with any properties contained in `patch` overwriting
65
47
  * those of `obj`.
@@ -73,4 +55,4 @@ function patchObject(obj, patch) {
73
55
  });
74
56
  return clone;
75
57
  }
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXVwZGF0ZWQtdHJhbnNsYXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9jb21tb24vdXRpbGl0aWVzL2NyZWF0ZS11cGRhdGVkLXRyYW5zbGF0YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFJL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBY3JEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBQ3JDLE9BQXFDO0lBRXJDLE1BQU0sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUNyRyxNQUFNLGtCQUFrQixHQUNwQixlQUFlLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxJQUFJLGtCQUFrQixJQUFLLEVBQVUsQ0FBQztJQUNyRixNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN0RSxNQUFNLGVBQWUsR0FBdUIsRUFBRSxDQUFDO0lBQy9DLE1BQU0seUJBQXlCLEdBQXVCLEVBQUUsQ0FBQztJQUN6RCxJQUFJLGlCQUFpQixJQUFJLGFBQWEsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLEVBQUU7UUFDbkUsS0FBSyxNQUFNLEtBQUssSUFBSSxpQkFBaUIsRUFBRTtZQUNuQyxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssY0FBYyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssWUFBWSxFQUFFO2dCQUM5RCx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO2FBQ2pEO2lCQUFNO2dCQUNILGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO29CQUN2QixLQUFLLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2FBQzdFO1NBQ0o7UUFDRCxjQUFjLENBQUMsWUFBWSxHQUFHLHlCQUF5QixDQUFDO0tBQzNEO0lBQ0QsTUFBTSxlQUFlLEdBQUc7UUFDcEIsR0FBSSxXQUFXLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBUztRQUNwRCxHQUFHLEVBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO0tBQ2hFLENBQUM7SUFDRixJQUFJLGlCQUFpQixFQUFFO1FBQ25CLGVBQWUsQ0FBQyxZQUFZLEdBQUcsZUFBZSxDQUFDO0tBQ2xEO0lBQ0QsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFDZCxlQUFlLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0tBQ2pFO1NBQU07UUFDSCxlQUFlLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztLQUNyRDtJQUNELE9BQU8sZUFBZSxDQUFDO0FBQzNCLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxJQUFxQjtJQUMxQyxRQUFRLElBQUksRUFBRTtRQUNWLEtBQUssY0FBYyxDQUFDO1FBQ3BCLEtBQUssUUFBUSxDQUFDO1FBQ2QsS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLFlBQVk7WUFDYixPQUFPLEVBQUUsQ0FBQztRQUNkLEtBQUssU0FBUztZQUNWLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLEtBQUssT0FBTyxDQUFDO1FBQ2IsS0FBSyxLQUFLO1lBQ04sT0FBTyxDQUFDLENBQUM7UUFDYixLQUFLLFVBQVU7WUFDWCxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdEIsS0FBSyxVQUFVO1lBQ1gsT0FBTyxJQUFJLENBQUM7UUFDaEI7WUFDSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDekI7QUFDTCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxXQUFXLENBQW1DLEdBQU0sRUFBRSxLQUE2QjtJQUN4RixNQUFNLEtBQUssR0FBUSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMxQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUM3QixJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDM0IsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMzQjtJQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1c3RvbUZpZWxkc09iamVjdCwgQ3VzdG9tRmllbGRUeXBlIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdHlwZXMnO1xyXG5pbXBvcnQgeyBhc3NlcnROZXZlciB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLXV0aWxzJztcclxuXHJcbmltcG9ydCB7IEN1c3RvbUZpZWxkQ29uZmlnLCBMYW5ndWFnZUNvZGUgfSBmcm9tICcuLi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5cclxuaW1wb3J0IHsgZmluZFRyYW5zbGF0aW9uIH0gZnJvbSAnLi9maW5kLXRyYW5zbGF0aW9uJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNsYXRhYmxlVXBkYXRlT3B0aW9uczxUIGV4dGVuZHMgeyB0cmFuc2xhdGlvbnM6IGFueVtdIH0gJiBNYXlIYXZlQ3VzdG9tRmllbGRzPiB7XHJcbiAgICB0cmFuc2xhdGFibGU6IFQ7XHJcbiAgICB1cGRhdGVkRmllbGRzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xyXG4gICAgbGFuZ3VhZ2VDb2RlOiBMYW5ndWFnZUNvZGU7XHJcbiAgICBjdXN0b21GaWVsZENvbmZpZz86IEN1c3RvbUZpZWxkQ29uZmlnW107XHJcbiAgICBkZWZhdWx0VHJhbnNsYXRpb24/OiBQYXJ0aWFsPFRbJ3RyYW5zbGF0aW9ucyddW251bWJlcl0+O1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBNYXlIYXZlQ3VzdG9tRmllbGRzID0ge1xyXG4gICAgY3VzdG9tRmllbGRzPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBXaGVuIHVwZGF0aW5nIGFuIGVudGl0eSB3aGljaCBoYXMgdHJhbnNsYXRpb25zLCB0aGUgdmFsdWUgZnJvbSB0aGUgZm9ybSB3aWxsIHBlcnRhaW4gdG8gdGhlIGN1cnJlbnRcclxuICogbGFuZ3VhZ2VDb2RlLiBUaGlzIGZ1bmN0aW9uIGVuc3VyZXMgdGhhdCB0aGUgXCJ0cmFuc2xhdGlvbnNcIiBhcnJheSBpcyBjb3JyZWN0bHkgc2V0IGJhc2VkIG9uIHRoZVxyXG4gKiBleGlzdGluZyBsYW5ndWFnZXMgYW5kIHRoZSB1cGRhdGVkIHZhbHVlcyBpbiB0aGUgc3BlY2lmaWVkIGxhbmd1YWdlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVVwZGF0ZWRUcmFuc2xhdGFibGU8VCBleHRlbmRzIHsgdHJhbnNsYXRpb25zOiBhbnlbXSB9ICYgTWF5SGF2ZUN1c3RvbUZpZWxkcz4oXHJcbiAgICBvcHRpb25zOiBUcmFuc2xhdGFibGVVcGRhdGVPcHRpb25zPFQ+LFxyXG4pOiBUIHtcclxuICAgIGNvbnN0IHsgdHJhbnNsYXRhYmxlLCB1cGRhdGVkRmllbGRzLCBsYW5ndWFnZUNvZGUsIGN1c3RvbUZpZWxkQ29uZmlnLCBkZWZhdWx0VHJhbnNsYXRpb24gfSA9IG9wdGlvbnM7XHJcbiAgICBjb25zdCBjdXJyZW50VHJhbnNsYXRpb24gPVxyXG4gICAgICAgIGZpbmRUcmFuc2xhdGlvbih0cmFuc2xhdGFibGUsIGxhbmd1YWdlQ29kZSkgfHwgZGVmYXVsdFRyYW5zbGF0aW9uIHx8ICh7fSBhcyBhbnkpO1xyXG4gICAgY29uc3QgaW5kZXggPSB0cmFuc2xhdGFibGUudHJhbnNsYXRpb25zPy5pbmRleE9mKGN1cnJlbnRUcmFuc2xhdGlvbik7XHJcbiAgICBjb25zdCBuZXdUcmFuc2xhdGlvbiA9IHBhdGNoT2JqZWN0KGN1cnJlbnRUcmFuc2xhdGlvbiwgdXBkYXRlZEZpZWxkcyk7XHJcbiAgICBjb25zdCBuZXdDdXN0b21GaWVsZHM6IEN1c3RvbUZpZWxkc09iamVjdCA9IHt9O1xyXG4gICAgY29uc3QgbmV3VHJhbnNsYXRlZEN1c3RvbUZpZWxkczogQ3VzdG9tRmllbGRzT2JqZWN0ID0ge307XHJcbiAgICBpZiAoY3VzdG9tRmllbGRDb25maWcgJiYgdXBkYXRlZEZpZWxkcy5oYXNPd25Qcm9wZXJ0eSgnY3VzdG9tRmllbGRzJykpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGN1c3RvbUZpZWxkQ29uZmlnKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdXBkYXRlZEZpZWxkcy5jdXN0b21GaWVsZHNbZmllbGQubmFtZV07XHJcbiAgICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSAnbG9jYWxlU3RyaW5nJyB8fCBmaWVsZC50eXBlID09PSAnbG9jYWxlVGV4dCcpIHtcclxuICAgICAgICAgICAgICAgIG5ld1RyYW5zbGF0ZWRDdXN0b21GaWVsZHNbZmllbGQubmFtZV0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIG5ld0N1c3RvbUZpZWxkc1tmaWVsZC5uYW1lXSA9XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT09ICcnID8gZ2V0RGVmYXVsdFZhbHVlKGZpZWxkLnR5cGUgYXMgQ3VzdG9tRmllbGRUeXBlKSA6IHZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG5ld1RyYW5zbGF0aW9uLmN1c3RvbUZpZWxkcyA9IG5ld1RyYW5zbGF0ZWRDdXN0b21GaWVsZHM7XHJcbiAgICB9XHJcbiAgICBjb25zdCBuZXdUcmFuc2xhdGFibGUgPSB7XHJcbiAgICAgICAgLi4uKHBhdGNoT2JqZWN0KHRyYW5zbGF0YWJsZSwgdXBkYXRlZEZpZWxkcykgYXMgYW55KSxcclxuICAgICAgICAuLi57IHRyYW5zbGF0aW9uczogdHJhbnNsYXRhYmxlLnRyYW5zbGF0aW9ucz8uc2xpY2UoKSA/PyBbXSB9LFxyXG4gICAgfTtcclxuICAgIGlmIChjdXN0b21GaWVsZENvbmZpZykge1xyXG4gICAgICAgIG5ld1RyYW5zbGF0YWJsZS5jdXN0b21GaWVsZHMgPSBuZXdDdXN0b21GaWVsZHM7XHJcbiAgICB9XHJcbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgbmV3VHJhbnNsYXRhYmxlLnRyYW5zbGF0aW9ucy5zcGxpY2UoaW5kZXgsIDEsIG5ld1RyYW5zbGF0aW9uKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmV3VHJhbnNsYXRhYmxlLnRyYW5zbGF0aW9ucy5wdXNoKG5ld1RyYW5zbGF0aW9uKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXdUcmFuc2xhdGFibGU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldERlZmF1bHRWYWx1ZSh0eXBlOiBDdXN0b21GaWVsZFR5cGUpOiBhbnkge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnbG9jYWxlU3RyaW5nJzpcclxuICAgICAgICBjYXNlICdzdHJpbmcnOlxyXG4gICAgICAgIGNhc2UgJ3RleHQnOlxyXG4gICAgICAgIGNhc2UgJ2xvY2FsZVRleHQnOlxyXG4gICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICBjYXNlICdmbG9hdCc6XHJcbiAgICAgICAgY2FzZSAnaW50JzpcclxuICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgY2FzZSAnZGF0ZXRpbWUnOlxyXG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoKTtcclxuICAgICAgICBjYXNlICdyZWxhdGlvbic6XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGFzc2VydE5ldmVyKHR5cGUpO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJucyBhIHNoYWxsb3cgY2xvbmUgb2YgYG9iamAgd2l0aCBhbnkgcHJvcGVydGllcyBjb250YWluZWQgaW4gYHBhdGNoYCBvdmVyd3JpdGluZ1xyXG4gKiB0aG9zZSBvZiBgb2JqYC5cclxuICovXHJcbmZ1bmN0aW9uIHBhdGNoT2JqZWN0PFQgZXh0ZW5kcyB7IFtrZXk6IHN0cmluZ106IGFueSB9PihvYmo6IFQsIHBhdGNoOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogVCB7XHJcbiAgICBjb25zdCBjbG9uZTogYW55ID0gT2JqZWN0LmFzc2lnbih7fSwgb2JqKTtcclxuICAgIE9iamVjdC5rZXlzKGNsb25lKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgaWYgKHBhdGNoLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICAgICAgY2xvbmVba2V5XSA9IHBhdGNoW2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gY2xvbmU7XHJcbn1cclxuIl19
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXVwZGF0ZWQtdHJhbnNsYXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9jb21tb24vdXRpbGl0aWVzL2NyZWF0ZS11cGRhdGVkLXRyYW5zbGF0YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBYy9EOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBQ3JDLE9BQXFDO0lBRXJDLE1BQU0sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUNyRyxNQUFNLGtCQUFrQixHQUNwQixlQUFlLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxJQUFJLGtCQUFrQixJQUFLLEVBQVUsQ0FBQztJQUNyRixNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN0RSxNQUFNLGVBQWUsR0FBdUIsRUFBRSxDQUFDO0lBQy9DLE1BQU0seUJBQXlCLEdBQXVCLEVBQUUsQ0FBQztJQUN6RCxJQUFJLGlCQUFpQixJQUFJLGFBQWEsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLEVBQUU7UUFDbkUsS0FBSyxNQUFNLEtBQUssSUFBSSxpQkFBaUIsRUFBRTtZQUNuQyxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssY0FBYyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssWUFBWSxFQUFFO2dCQUM5RCx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO2FBQ2pEO2lCQUFNO2dCQUNILGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO29CQUN2QixLQUFLLEtBQUssRUFBRTt3QkFDUixDQUFDLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUF1QixFQUFFLEtBQUssQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDO3dCQUN4RSxDQUFDLENBQUMsS0FBSyxDQUFDO2FBQ25CO1NBQ0o7UUFDRCxjQUFjLENBQUMsWUFBWSxHQUFHLHlCQUF5QixDQUFDO0tBQzNEO0lBQ0QsTUFBTSxlQUFlLEdBQUc7UUFDcEIsR0FBSSxXQUFXLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBUztRQUNwRCxHQUFHLEVBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO0tBQ2hFLENBQUM7SUFDRixJQUFJLGlCQUFpQixFQUFFO1FBQ25CLGVBQWUsQ0FBQyxZQUFZLEdBQUcsZUFBZSxDQUFDO0tBQ2xEO0lBQ0QsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFDZCxlQUFlLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0tBQ2pFO1NBQU07UUFDSCxlQUFlLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztLQUNyRDtJQUNELE9BQU8sZUFBZSxDQUFDO0FBQzNCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLFdBQVcsQ0FBbUMsR0FBTSxFQUFFLEtBQTZCO0lBQ3hGLE1BQU0sS0FBSyxHQUFRLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQzdCLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMzQixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzNCO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tRmllbGRzT2JqZWN0LCBDdXN0b21GaWVsZFR5cGUgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC10eXBlcyc7XHJcblxyXG5pbXBvcnQgeyBDdXN0b21GaWVsZENvbmZpZywgTGFuZ3VhZ2VDb2RlIH0gZnJvbSAnLi4vZ2VuZXJhdGVkLXR5cGVzJztcclxuXHJcbmltcG9ydCB7IGZpbmRUcmFuc2xhdGlvbiB9IGZyb20gJy4vZmluZC10cmFuc2xhdGlvbic7XHJcbmltcG9ydCB7IGdldERlZmF1bHRWYWx1ZSB9IGZyb20gJy4vY3VzdG9tLWZpZWxkLWRlZmF1bHQtdmFsdWUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2xhdGFibGVVcGRhdGVPcHRpb25zPFQgZXh0ZW5kcyB7IHRyYW5zbGF0aW9uczogYW55W10gfSAmIE1heUhhdmVDdXN0b21GaWVsZHM+IHtcclxuICAgIHRyYW5zbGF0YWJsZTogVDtcclxuICAgIHVwZGF0ZWRGaWVsZHM6IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbiAgICBsYW5ndWFnZUNvZGU6IExhbmd1YWdlQ29kZTtcclxuICAgIGN1c3RvbUZpZWxkQ29uZmlnPzogQ3VzdG9tRmllbGRDb25maWdbXTtcclxuICAgIGRlZmF1bHRUcmFuc2xhdGlvbj86IFBhcnRpYWw8VFsndHJhbnNsYXRpb25zJ11bbnVtYmVyXT47XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE1heUhhdmVDdXN0b21GaWVsZHMgPSB7XHJcbiAgICBjdXN0b21GaWVsZHM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIFdoZW4gdXBkYXRpbmcgYW4gZW50aXR5IHdoaWNoIGhhcyB0cmFuc2xhdGlvbnMsIHRoZSB2YWx1ZSBmcm9tIHRoZSBmb3JtIHdpbGwgcGVydGFpbiB0byB0aGUgY3VycmVudFxyXG4gKiBsYW5ndWFnZUNvZGUuIFRoaXMgZnVuY3Rpb24gZW5zdXJlcyB0aGF0IHRoZSBcInRyYW5zbGF0aW9uc1wiIGFycmF5IGlzIGNvcnJlY3RseSBzZXQgYmFzZWQgb24gdGhlXHJcbiAqIGV4aXN0aW5nIGxhbmd1YWdlcyBhbmQgdGhlIHVwZGF0ZWQgdmFsdWVzIGluIHRoZSBzcGVjaWZpZWQgbGFuZ3VhZ2UuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVXBkYXRlZFRyYW5zbGF0YWJsZTxUIGV4dGVuZHMgeyB0cmFuc2xhdGlvbnM6IGFueVtdIH0gJiBNYXlIYXZlQ3VzdG9tRmllbGRzPihcclxuICAgIG9wdGlvbnM6IFRyYW5zbGF0YWJsZVVwZGF0ZU9wdGlvbnM8VD4sXHJcbik6IFQge1xyXG4gICAgY29uc3QgeyB0cmFuc2xhdGFibGUsIHVwZGF0ZWRGaWVsZHMsIGxhbmd1YWdlQ29kZSwgY3VzdG9tRmllbGRDb25maWcsIGRlZmF1bHRUcmFuc2xhdGlvbiB9ID0gb3B0aW9ucztcclxuICAgIGNvbnN0IGN1cnJlbnRUcmFuc2xhdGlvbiA9XHJcbiAgICAgICAgZmluZFRyYW5zbGF0aW9uKHRyYW5zbGF0YWJsZSwgbGFuZ3VhZ2VDb2RlKSB8fCBkZWZhdWx0VHJhbnNsYXRpb24gfHwgKHt9IGFzIGFueSk7XHJcbiAgICBjb25zdCBpbmRleCA9IHRyYW5zbGF0YWJsZS50cmFuc2xhdGlvbnM/LmluZGV4T2YoY3VycmVudFRyYW5zbGF0aW9uKTtcclxuICAgIGNvbnN0IG5ld1RyYW5zbGF0aW9uID0gcGF0Y2hPYmplY3QoY3VycmVudFRyYW5zbGF0aW9uLCB1cGRhdGVkRmllbGRzKTtcclxuICAgIGNvbnN0IG5ld0N1c3RvbUZpZWxkczogQ3VzdG9tRmllbGRzT2JqZWN0ID0ge307XHJcbiAgICBjb25zdCBuZXdUcmFuc2xhdGVkQ3VzdG9tRmllbGRzOiBDdXN0b21GaWVsZHNPYmplY3QgPSB7fTtcclxuICAgIGlmIChjdXN0b21GaWVsZENvbmZpZyAmJiB1cGRhdGVkRmllbGRzLmhhc093blByb3BlcnR5KCdjdXN0b21GaWVsZHMnKSkge1xyXG4gICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgY3VzdG9tRmllbGRDb25maWcpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB1cGRhdGVkRmllbGRzLmN1c3RvbUZpZWxkc1tmaWVsZC5uYW1lXTtcclxuICAgICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdsb2NhbGVTdHJpbmcnIHx8IGZpZWxkLnR5cGUgPT09ICdsb2NhbGVUZXh0Jykge1xyXG4gICAgICAgICAgICAgICAgbmV3VHJhbnNsYXRlZEN1c3RvbUZpZWxkc1tmaWVsZC5uYW1lXSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbmV3Q3VzdG9tRmllbGRzW2ZpZWxkLm5hbWVdID1cclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gJydcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBnZXREZWZhdWx0VmFsdWUoZmllbGQudHlwZSBhcyBDdXN0b21GaWVsZFR5cGUsIGZpZWxkLm51bGxhYmxlID8/IHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgbmV3VHJhbnNsYXRpb24uY3VzdG9tRmllbGRzID0gbmV3VHJhbnNsYXRlZEN1c3RvbUZpZWxkcztcclxuICAgIH1cclxuICAgIGNvbnN0IG5ld1RyYW5zbGF0YWJsZSA9IHtcclxuICAgICAgICAuLi4ocGF0Y2hPYmplY3QodHJhbnNsYXRhYmxlLCB1cGRhdGVkRmllbGRzKSBhcyBhbnkpLFxyXG4gICAgICAgIC4uLnsgdHJhbnNsYXRpb25zOiB0cmFuc2xhdGFibGUudHJhbnNsYXRpb25zPy5zbGljZSgpID8/IFtdIH0sXHJcbiAgICB9O1xyXG4gICAgaWYgKGN1c3RvbUZpZWxkQ29uZmlnKSB7XHJcbiAgICAgICAgbmV3VHJhbnNsYXRhYmxlLmN1c3RvbUZpZWxkcyA9IG5ld0N1c3RvbUZpZWxkcztcclxuICAgIH1cclxuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcclxuICAgICAgICBuZXdUcmFuc2xhdGFibGUudHJhbnNsYXRpb25zLnNwbGljZShpbmRleCwgMSwgbmV3VHJhbnNsYXRpb24pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdUcmFuc2xhdGFibGUudHJhbnNsYXRpb25zLnB1c2gobmV3VHJhbnNsYXRpb24pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ld1RyYW5zbGF0YWJsZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgYSBzaGFsbG93IGNsb25lIG9mIGBvYmpgIHdpdGggYW55IHByb3BlcnRpZXMgY29udGFpbmVkIGluIGBwYXRjaGAgb3ZlcndyaXRpbmdcclxuICogdGhvc2Ugb2YgYG9iamAuXHJcbiAqL1xyXG5mdW5jdGlvbiBwYXRjaE9iamVjdDxUIGV4dGVuZHMgeyBba2V5OiBzdHJpbmddOiBhbnkgfT4ob2JqOiBULCBwYXRjaDogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IFQge1xyXG4gICAgY29uc3QgY2xvbmU6IGFueSA9IE9iamVjdC5hc3NpZ24oe30sIG9iaik7XHJcbiAgICBPYmplY3Qua2V5cyhjbG9uZSkuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgIGlmIChwYXRjaC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgICAgIGNsb25lW2tleV0gPSBwYXRjaFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGNsb25lO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { assertNever } from '@vendure/common/lib/shared-utils';
2
+ export function getCustomFieldsDefaults(customFieldConfig) {
3
+ return customFieldConfig.reduce((hash, field) => ({
4
+ ...hash,
5
+ [field.name]: getDefaultValue(field.type, field.nullable ?? undefined),
6
+ }), {});
7
+ }
8
+ export function getDefaultValue(type, isNullable) {
9
+ switch (type) {
10
+ case 'localeString':
11
+ case 'string':
12
+ case 'text':
13
+ case 'localeText':
14
+ return '';
15
+ case 'boolean':
16
+ return false;
17
+ case 'float':
18
+ case 'int':
19
+ return isNullable ? null : 0;
20
+ case 'datetime':
21
+ return isNullable ? null : new Date();
22
+ case 'relation':
23
+ return null;
24
+ default:
25
+ assertNever(type);
26
+ }
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWZpZWxkLWRlZmF1bHQtdmFsdWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2NvbW1vbi91dGlsaXRpZXMvY3VzdG9tLWZpZWxkLWRlZmF1bHQtdmFsdWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRy9ELE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxpQkFBc0M7SUFHMUUsT0FBTyxpQkFBaUIsQ0FBQyxNQUFNLENBQzNCLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNkLEdBQUcsSUFBSTtRQUNQLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBdUIsRUFBRSxLQUFLLENBQUMsUUFBUSxJQUFJLFNBQVMsQ0FBQztLQUM1RixDQUFDLEVBQ0YsRUFBRSxDQUNMLENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFxQixFQUFFLFVBQW9CO0lBQ3ZFLFFBQVEsSUFBSSxFQUFFO1FBQ1YsS0FBSyxjQUFjLENBQUM7UUFDcEIsS0FBSyxRQUFRLENBQUM7UUFDZCxLQUFLLE1BQU0sQ0FBQztRQUNaLEtBQUssWUFBWTtZQUNiLE9BQU8sRUFBRSxDQUFDO1FBQ2QsS0FBSyxTQUFTO1lBQ1YsT0FBTyxLQUFLLENBQUM7UUFDakIsS0FBSyxPQUFPLENBQUM7UUFDYixLQUFLLEtBQUs7WUFDTixPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakMsS0FBSyxVQUFVO1lBQ1gsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMxQyxLQUFLLFVBQVU7WUFDWCxPQUFPLElBQUksQ0FBQztRQUNoQjtZQUNJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN6QjtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXN0b21GaWVsZFR5cGUgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC10eXBlcyc7XHJcbmltcG9ydCB7IGFzc2VydE5ldmVyIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xyXG5pbXBvcnQgeyBDdXN0b21GaWVsZENvbmZpZyB9IGZyb20gJy4uL2dlbmVyYXRlZC10eXBlcyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3VzdG9tRmllbGRzRGVmYXVsdHMoY3VzdG9tRmllbGRDb25maWc6IEN1c3RvbUZpZWxkQ29uZmlnW10pOiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBSZXR1cm5UeXBlPHR5cGVvZiBnZXREZWZhdWx0VmFsdWU+O1xyXG59IHtcclxuICAgIHJldHVybiBjdXN0b21GaWVsZENvbmZpZy5yZWR1Y2UoXHJcbiAgICAgICAgKGhhc2gsIGZpZWxkKSA9PiAoe1xyXG4gICAgICAgICAgICAuLi5oYXNoLFxyXG4gICAgICAgICAgICBbZmllbGQubmFtZV06IGdldERlZmF1bHRWYWx1ZShmaWVsZC50eXBlIGFzIEN1c3RvbUZpZWxkVHlwZSwgZmllbGQubnVsbGFibGUgPz8gdW5kZWZpbmVkKSxcclxuICAgICAgICB9KSxcclxuICAgICAgICB7fSxcclxuICAgICk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0VmFsdWUodHlwZTogQ3VzdG9tRmllbGRUeXBlLCBpc051bGxhYmxlPzogYm9vbGVhbikge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnbG9jYWxlU3RyaW5nJzpcclxuICAgICAgICBjYXNlICdzdHJpbmcnOlxyXG4gICAgICAgIGNhc2UgJ3RleHQnOlxyXG4gICAgICAgIGNhc2UgJ2xvY2FsZVRleHQnOlxyXG4gICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICBjYXNlICdmbG9hdCc6XHJcbiAgICAgICAgY2FzZSAnaW50JzpcclxuICAgICAgICAgICAgcmV0dXJuIGlzTnVsbGFibGUgPyBudWxsIDogMDtcclxuICAgICAgICBjYXNlICdkYXRldGltZSc6XHJcbiAgICAgICAgICAgIHJldHVybiBpc051bGxhYmxlID8gbnVsbCA6IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgY2FzZSAncmVsYXRpb24nOlxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBhc3NlcnROZXZlcih0eXBlKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by the set-version.js script.
2
- export const ADMIN_UI_VERSION = '2.0.5';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tbW9uL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEF1dG8tZ2VuZXJhdGVkIGJ5IHRoZSBzZXQtdmVyc2lvbi5qcyBzY3JpcHQuXG5leHBvcnQgY29uc3QgQURNSU5fVUlfVkVSU0lPTiA9ICcyLjAuNSc7XG4iXX0=
2
+ export const ADMIN_UI_VERSION = '2.0.7';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tbW9uL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEF1dG8tZ2VuZXJhdGVkIGJ5IHRoZSBzZXQtdmVyc2lvbi5qcyBzY3JpcHQuXG5leHBvcnQgY29uc3QgQURNSU5fVUlfVkVSU0lPTiA9ICcyLjAuNyc7XG4iXX0=
@@ -41,10 +41,10 @@ export class ChannelSwitcherComponent {
41
41
  this.channelService.setActiveChannel(channelId).subscribe(() => this.filterControl.patchValue(''));
42
42
  }
43
43
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: ChannelSwitcherComponent, deps: [{ token: i1.DataService }, { token: i2.ChannelService }], target: i0.ɵɵFactoryTarget.Component }); }
44
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: ChannelSwitcherComponent, selector: "vdr-channel-switcher", ngImport: i0, template: "<ng-container>\r\n <vdr-dropdown>\r\n <button class=\"active-channel m-auto\" vdrDropdownTrigger>\r\n <vdr-channel-badge [channelCode]=\"activeChannelCode$ | async\"></vdr-channel-badge>\r\n <span class=\"channel-label\">{{\r\n activeChannelCode$ | async | channelCodeToLabel | translate\r\n }}</span>\r\n <span class=\"trigger\"><clr-icon shape=\"ellipsis-vertical\"></clr-icon></span>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <input\r\n *ngIf=\"((channelCount$ | async) || 0) >= displayFilterThreshold\"\r\n [formControl]=\"filterControl\"\r\n type=\"text\"\r\n class=\"ml2 mr2\"\r\n [placeholder]=\"'common.filter' | translate\"\r\n />\r\n <button\r\n *ngFor=\"let channel of channels$ | async\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"setActiveChannel(channel.id)\"\r\n >\r\n <vdr-channel-badge [channelCode]=\"channel.code\"></vdr-channel-badge>\r\n {{ channel.code | channelCodeToLabel | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n</ng-container>\r\n", styles: [":host{display:block;align-items:center;height:2.5rem}.active-channel{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-xs);color:var(--color-left-nav-text);background-color:var(--color-channel-switcher-bg);border:none;cursor:pointer;width:100%;border-radius:var(--border-radius-lg);padding:var(--space-unit) calc(var(--space-unit) * 2);transition:background-color .1s,color .1s}.active-channel:hover{background-color:var(--color-channel-switcher-hover-bg);color:var(--color-left-nav-text-hover)}.active-channel clr-icon{color:var(--color-left-nav-text)}.channel-label{margin:0 3px;overflow:hidden;flex:1;white-space:nowrap;text-overflow:ellipsis}\n"], dependencies: [{ 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.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "component", type: i7.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i8.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i9.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: i10.DropdownItemDirective, selector: "[vdrDropdownItem]" }, { kind: "component", type: i11.ChannelBadgeComponent, selector: "vdr-channel-badge", inputs: ["channelCode"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }, { kind: "pipe", type: i13.ChannelLabelPipe, name: "channelCodeToLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
44
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: ChannelSwitcherComponent, selector: "vdr-channel-switcher", ngImport: i0, template: "<ng-container>\r\n <vdr-dropdown>\r\n <button class=\"active-channel m-auto\" vdrDropdownTrigger>\r\n <vdr-channel-badge [channelCode]=\"activeChannelCode$ | async\"></vdr-channel-badge>\r\n <span class=\"channel-label\">{{\r\n activeChannelCode$ | async | channelCodeToLabel | translate\r\n }}</span>\r\n <span class=\"trigger\"><clr-icon shape=\"ellipsis-vertical\" size=\"12\"></clr-icon></span>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <input\r\n *ngIf=\"((channelCount$ | async) || 0) >= displayFilterThreshold\"\r\n [formControl]=\"filterControl\"\r\n type=\"text\"\r\n class=\"ml2 mr2\"\r\n [placeholder]=\"'common.filter' | translate\"\r\n />\r\n <button\r\n *ngFor=\"let channel of channels$ | async\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"setActiveChannel(channel.id)\"\r\n >\r\n <vdr-channel-badge [channelCode]=\"channel.code\"></vdr-channel-badge>\r\n {{ channel.code | channelCodeToLabel | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n</ng-container>\r\n", styles: [":host{display:block;align-items:center;height:2.5rem}.active-channel{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-xs);color:var(--color-left-nav-text);background-color:var(--color-channel-switcher-bg);border:none;cursor:pointer;width:100%;border-radius:var(--border-radius-lg);padding:var(--space-unit) calc(var(--space-unit) * 2);transition:background-color .1s,color .1s}.active-channel:hover{background-color:var(--color-channel-switcher-hover-bg);color:var(--color-left-nav-text-hover)}.active-channel clr-icon{color:var(--color-left-nav-text)}.channel-label{margin:0 3px;overflow:hidden;flex:1;white-space:nowrap;text-overflow:ellipsis}\n"], dependencies: [{ 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.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "component", type: i7.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i8.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i9.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: i10.DropdownItemDirective, selector: "[vdrDropdownItem]" }, { kind: "component", type: i11.ChannelBadgeComponent, selector: "vdr-channel-badge", inputs: ["channelCode"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }, { kind: "pipe", type: i13.ChannelLabelPipe, name: "channelCodeToLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
45
45
  }
46
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: ChannelSwitcherComponent, decorators: [{
47
47
  type: Component,
48
- args: [{ selector: 'vdr-channel-switcher', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container>\r\n <vdr-dropdown>\r\n <button class=\"active-channel m-auto\" vdrDropdownTrigger>\r\n <vdr-channel-badge [channelCode]=\"activeChannelCode$ | async\"></vdr-channel-badge>\r\n <span class=\"channel-label\">{{\r\n activeChannelCode$ | async | channelCodeToLabel | translate\r\n }}</span>\r\n <span class=\"trigger\"><clr-icon shape=\"ellipsis-vertical\"></clr-icon></span>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <input\r\n *ngIf=\"((channelCount$ | async) || 0) >= displayFilterThreshold\"\r\n [formControl]=\"filterControl\"\r\n type=\"text\"\r\n class=\"ml2 mr2\"\r\n [placeholder]=\"'common.filter' | translate\"\r\n />\r\n <button\r\n *ngFor=\"let channel of channels$ | async\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"setActiveChannel(channel.id)\"\r\n >\r\n <vdr-channel-badge [channelCode]=\"channel.code\"></vdr-channel-badge>\r\n {{ channel.code | channelCodeToLabel | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n</ng-container>\r\n", styles: [":host{display:block;align-items:center;height:2.5rem}.active-channel{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-xs);color:var(--color-left-nav-text);background-color:var(--color-channel-switcher-bg);border:none;cursor:pointer;width:100%;border-radius:var(--border-radius-lg);padding:var(--space-unit) calc(var(--space-unit) * 2);transition:background-color .1s,color .1s}.active-channel:hover{background-color:var(--color-channel-switcher-hover-bg);color:var(--color-left-nav-text-hover)}.active-channel clr-icon{color:var(--color-left-nav-text)}.channel-label{margin:0 3px;overflow:hidden;flex:1;white-space:nowrap;text-overflow:ellipsis}\n"] }]
48
+ args: [{ selector: 'vdr-channel-switcher', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container>\r\n <vdr-dropdown>\r\n <button class=\"active-channel m-auto\" vdrDropdownTrigger>\r\n <vdr-channel-badge [channelCode]=\"activeChannelCode$ | async\"></vdr-channel-badge>\r\n <span class=\"channel-label\">{{\r\n activeChannelCode$ | async | channelCodeToLabel | translate\r\n }}</span>\r\n <span class=\"trigger\"><clr-icon shape=\"ellipsis-vertical\" size=\"12\"></clr-icon></span>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <input\r\n *ngIf=\"((channelCount$ | async) || 0) >= displayFilterThreshold\"\r\n [formControl]=\"filterControl\"\r\n type=\"text\"\r\n class=\"ml2 mr2\"\r\n [placeholder]=\"'common.filter' | translate\"\r\n />\r\n <button\r\n *ngFor=\"let channel of channels$ | async\"\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"setActiveChannel(channel.id)\"\r\n >\r\n <vdr-channel-badge [channelCode]=\"channel.code\"></vdr-channel-badge>\r\n {{ channel.code | channelCodeToLabel | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n</ng-container>\r\n", styles: [":host{display:block;align-items:center;height:2.5rem}.active-channel{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-xs);color:var(--color-left-nav-text);background-color:var(--color-channel-switcher-bg);border:none;cursor:pointer;width:100%;border-radius:var(--border-radius-lg);padding:var(--space-unit) calc(var(--space-unit) * 2);transition:background-color .1s,color .1s}.active-channel:hover{background-color:var(--color-channel-switcher-hover-bg);color:var(--color-left-nav-text-hover)}.active-channel clr-icon{color:var(--color-left-nav-text)}.channel-label{margin:0 3px;overflow:hidden;flex:1;white-space:nowrap;text-overflow:ellipsis}\n"] }]
49
49
  }], ctorParameters: function () { return [{ type: i1.DataService }, { type: i2.ChannelService }]; } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbC1zd2l0Y2hlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2NvbXBvbmVudHMvY2hhbm5lbC1zd2l0Y2hlci9jaGFubmVsLXN3aXRjaGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tcG9uZW50cy9jaGFubmVsLXN3aXRjaGVyL2NoYW5uZWwtc3dpdGNoZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFZeEQsTUFBTSxPQUFPLHdCQUF3QjtJQU1qQyxZQUFvQixXQUF3QixFQUFVLGNBQThCO1FBQWhFLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBTDNFLDJCQUFzQixHQUFHLEVBQUUsQ0FBQztRQUdyQyxrQkFBYSxHQUFHLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFNEMsQ0FBQztJQUV4RixRQUFRO1FBQ0osTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQVMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDdkQsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVU7WUFDbEMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDaEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUN0RTtZQUNILENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FDdEIsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0RSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU07YUFDekMsVUFBVSxFQUFFO2FBQ1osU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBQy9GLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxTQUFpQjtRQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7OEdBNUJRLHdCQUF3QjtrR0FBeEIsd0JBQXdCLDREQ2hCckMsbTBDQTZCQTs7MkZEYmEsd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNJLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xyXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBDdXJyZW50VXNlckNoYW5uZWwgfSBmcm9tICcuLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDaGFubmVsU2VydmljZSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9jaGFubmVsL2NoYW5uZWwuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWNoYW5uZWwtc3dpdGNoZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NoYW5uZWwtc3dpdGNoZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY2hhbm5lbC1zd2l0Y2hlci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGFubmVsU3dpdGNoZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgcmVhZG9ubHkgZGlzcGxheUZpbHRlclRocmVzaG9sZCA9IDEwO1xyXG4gICAgY2hhbm5lbHMkOiBPYnNlcnZhYmxlPEN1cnJlbnRVc2VyQ2hhbm5lbFtdPjtcclxuICAgIGNoYW5uZWxDb3VudCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcclxuICAgIGZpbHRlckNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnKTtcclxuICAgIGFjdGl2ZUNoYW5uZWxDb2RlJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsIHByaXZhdGUgY2hhbm5lbFNlcnZpY2U6IENoYW5uZWxTZXJ2aWNlKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGNvbnN0IGNoYW5uZWxzJCA9IHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50LnVzZXJTdGF0dXMoKS5tYXBTdHJlYW0oZGF0YSA9PiBkYXRhLnVzZXJTdGF0dXMuY2hhbm5lbHMpO1xyXG4gICAgICAgIGNvbnN0IGZpbHRlclRlcm0kID0gdGhpcy5maWx0ZXJDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlPHN0cmluZz4oc3RhcnRXaXRoKCcnKSk7XHJcbiAgICAgICAgdGhpcy5jaGFubmVscyQgPSBjb21iaW5lTGF0ZXN0KGNoYW5uZWxzJCwgZmlsdGVyVGVybSQpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgoW2NoYW5uZWxzLCBmaWx0ZXJUZXJtXSkgPT4gZmlsdGVyVGVybVxyXG4gICAgICAgICAgICAgICAgICAgID8gY2hhbm5lbHMuZmlsdGVyKGMgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjLmNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJUZXJtLnRvTG9jYWxlTG93ZXJDYXNlKCkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgIDogY2hhbm5lbHMpLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5jaGFubmVsQ291bnQkID0gY2hhbm5lbHMkLnBpcGUobWFwKGNoYW5uZWxzID0+IGNoYW5uZWxzLmxlbmd0aCkpO1xyXG4gICAgICAgIGNvbnN0IGFjdGl2ZUNoYW5uZWwkID0gdGhpcy5kYXRhU2VydmljZS5jbGllbnRcclxuICAgICAgICAgICAgLnVzZXJTdGF0dXMoKVxyXG4gICAgICAgICAgICAubWFwU3RyZWFtKGRhdGEgPT4gZGF0YS51c2VyU3RhdHVzLmNoYW5uZWxzLmZpbmQoYyA9PiBjLmlkID09PSBkYXRhLnVzZXJTdGF0dXMuYWN0aXZlQ2hhbm5lbElkKSlcclxuICAgICAgICAgICAgLnBpcGUoZmlsdGVyKG5vdE51bGxPclVuZGVmaW5lZCkpO1xyXG4gICAgICAgIHRoaXMuYWN0aXZlQ2hhbm5lbENvZGUkID0gYWN0aXZlQ2hhbm5lbCQucGlwZShtYXAoY2hhbm5lbCA9PiBjaGFubmVsLmNvZGUpKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRBY3RpdmVDaGFubmVsKGNoYW5uZWxJZDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5jaGFubmVsU2VydmljZS5zZXRBY3RpdmVDaGFubmVsKGNoYW5uZWxJZCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuZmlsdGVyQ29udHJvbC5wYXRjaFZhbHVlKCcnKSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lcj5cclxuICAgIDx2ZHItZHJvcGRvd24+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImFjdGl2ZS1jaGFubmVsIG0tYXV0b1wiIHZkckRyb3Bkb3duVHJpZ2dlcj5cclxuICAgICAgICAgICAgPHZkci1jaGFubmVsLWJhZGdlIFtjaGFubmVsQ29kZV09XCJhY3RpdmVDaGFubmVsQ29kZSQgfCBhc3luY1wiPjwvdmRyLWNoYW5uZWwtYmFkZ2U+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hhbm5lbC1sYWJlbFwiPnt7XHJcbiAgICAgICAgICAgICAgICBhY3RpdmVDaGFubmVsQ29kZSQgfCBhc3luYyB8IGNoYW5uZWxDb2RlVG9MYWJlbCB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cmlnZ2VyXCI+PGNsci1pY29uIHNoYXBlPVwiZWxsaXBzaXMtdmVydGljYWxcIj48L2Nsci1pY29uPjwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8dmRyLWRyb3Bkb3duLW1lbnUgdmRyUG9zaXRpb249XCJib3R0b20tcmlnaHRcIj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIigoY2hhbm5lbENvdW50JCB8IGFzeW5jKSB8fCAwKSA+PSBkaXNwbGF5RmlsdGVyVGhyZXNob2xkXCJcclxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmaWx0ZXJDb250cm9sXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWwyIG1yMlwiXHJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ2NvbW1vbi5maWx0ZXInIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNoYW5uZWwgb2YgY2hhbm5lbHMkIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICB2ZHJEcm9wZG93bkl0ZW1cclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVDaGFubmVsKGNoYW5uZWwuaWQpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPHZkci1jaGFubmVsLWJhZGdlIFtjaGFubmVsQ29kZV09XCJjaGFubmVsLmNvZGVcIj48L3Zkci1jaGFubmVsLWJhZGdlPlxyXG4gICAgICAgICAgICAgICAge3sgY2hhbm5lbC5jb2RlIHwgY2hhbm5lbENvZGVUb0xhYmVsIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvdmRyLWRyb3Bkb3duLW1lbnU+XHJcbiAgICA8L3Zkci1kcm9wZG93bj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbC1zd2l0Y2hlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2NvbXBvbmVudHMvY2hhbm5lbC1zd2l0Y2hlci9jaGFubmVsLXN3aXRjaGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tcG9uZW50cy9jaGFubmVsLXN3aXRjaGVyL2NoYW5uZWwtc3dpdGNoZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFZeEQsTUFBTSxPQUFPLHdCQUF3QjtJQU1qQyxZQUFvQixXQUF3QixFQUFVLGNBQThCO1FBQWhFLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBTDNFLDJCQUFzQixHQUFHLEVBQUUsQ0FBQztRQUdyQyxrQkFBYSxHQUFHLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFNEMsQ0FBQztJQUV4RixRQUFRO1FBQ0osTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQVMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDdkQsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVU7WUFDbEMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDaEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUN0RTtZQUNILENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FDdEIsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0RSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU07YUFDekMsVUFBVSxFQUFFO2FBQ1osU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBQy9GLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxTQUFpQjtRQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7OEdBNUJRLHdCQUF3QjtrR0FBeEIsd0JBQXdCLDREQ2hCckMsKzBDQTZCQTs7MkZEYmEsd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNJLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xyXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBDdXJyZW50VXNlckNoYW5uZWwgfSBmcm9tICcuLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDaGFubmVsU2VydmljZSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9jaGFubmVsL2NoYW5uZWwuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWNoYW5uZWwtc3dpdGNoZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NoYW5uZWwtc3dpdGNoZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY2hhbm5lbC1zd2l0Y2hlci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGFubmVsU3dpdGNoZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgcmVhZG9ubHkgZGlzcGxheUZpbHRlclRocmVzaG9sZCA9IDEwO1xyXG4gICAgY2hhbm5lbHMkOiBPYnNlcnZhYmxlPEN1cnJlbnRVc2VyQ2hhbm5lbFtdPjtcclxuICAgIGNoYW5uZWxDb3VudCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcclxuICAgIGZpbHRlckNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnKTtcclxuICAgIGFjdGl2ZUNoYW5uZWxDb2RlJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsIHByaXZhdGUgY2hhbm5lbFNlcnZpY2U6IENoYW5uZWxTZXJ2aWNlKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGNvbnN0IGNoYW5uZWxzJCA9IHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50LnVzZXJTdGF0dXMoKS5tYXBTdHJlYW0oZGF0YSA9PiBkYXRhLnVzZXJTdGF0dXMuY2hhbm5lbHMpO1xyXG4gICAgICAgIGNvbnN0IGZpbHRlclRlcm0kID0gdGhpcy5maWx0ZXJDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlPHN0cmluZz4oc3RhcnRXaXRoKCcnKSk7XHJcbiAgICAgICAgdGhpcy5jaGFubmVscyQgPSBjb21iaW5lTGF0ZXN0KGNoYW5uZWxzJCwgZmlsdGVyVGVybSQpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgoW2NoYW5uZWxzLCBmaWx0ZXJUZXJtXSkgPT4gZmlsdGVyVGVybVxyXG4gICAgICAgICAgICAgICAgICAgID8gY2hhbm5lbHMuZmlsdGVyKGMgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjLmNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJUZXJtLnRvTG9jYWxlTG93ZXJDYXNlKCkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgIDogY2hhbm5lbHMpLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5jaGFubmVsQ291bnQkID0gY2hhbm5lbHMkLnBpcGUobWFwKGNoYW5uZWxzID0+IGNoYW5uZWxzLmxlbmd0aCkpO1xyXG4gICAgICAgIGNvbnN0IGFjdGl2ZUNoYW5uZWwkID0gdGhpcy5kYXRhU2VydmljZS5jbGllbnRcclxuICAgICAgICAgICAgLnVzZXJTdGF0dXMoKVxyXG4gICAgICAgICAgICAubWFwU3RyZWFtKGRhdGEgPT4gZGF0YS51c2VyU3RhdHVzLmNoYW5uZWxzLmZpbmQoYyA9PiBjLmlkID09PSBkYXRhLnVzZXJTdGF0dXMuYWN0aXZlQ2hhbm5lbElkKSlcclxuICAgICAgICAgICAgLnBpcGUoZmlsdGVyKG5vdE51bGxPclVuZGVmaW5lZCkpO1xyXG4gICAgICAgIHRoaXMuYWN0aXZlQ2hhbm5lbENvZGUkID0gYWN0aXZlQ2hhbm5lbCQucGlwZShtYXAoY2hhbm5lbCA9PiBjaGFubmVsLmNvZGUpKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRBY3RpdmVDaGFubmVsKGNoYW5uZWxJZDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5jaGFubmVsU2VydmljZS5zZXRBY3RpdmVDaGFubmVsKGNoYW5uZWxJZCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuZmlsdGVyQ29udHJvbC5wYXRjaFZhbHVlKCcnKSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lcj5cclxuICAgIDx2ZHItZHJvcGRvd24+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImFjdGl2ZS1jaGFubmVsIG0tYXV0b1wiIHZkckRyb3Bkb3duVHJpZ2dlcj5cclxuICAgICAgICAgICAgPHZkci1jaGFubmVsLWJhZGdlIFtjaGFubmVsQ29kZV09XCJhY3RpdmVDaGFubmVsQ29kZSQgfCBhc3luY1wiPjwvdmRyLWNoYW5uZWwtYmFkZ2U+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hhbm5lbC1sYWJlbFwiPnt7XHJcbiAgICAgICAgICAgICAgICBhY3RpdmVDaGFubmVsQ29kZSQgfCBhc3luYyB8IGNoYW5uZWxDb2RlVG9MYWJlbCB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cmlnZ2VyXCI+PGNsci1pY29uIHNoYXBlPVwiZWxsaXBzaXMtdmVydGljYWxcIiBzaXplPVwiMTJcIj48L2Nsci1pY29uPjwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8dmRyLWRyb3Bkb3duLW1lbnUgdmRyUG9zaXRpb249XCJib3R0b20tcmlnaHRcIj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIigoY2hhbm5lbENvdW50JCB8IGFzeW5jKSB8fCAwKSA+PSBkaXNwbGF5RmlsdGVyVGhyZXNob2xkXCJcclxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmaWx0ZXJDb250cm9sXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWwyIG1yMlwiXHJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ2NvbW1vbi5maWx0ZXInIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNoYW5uZWwgb2YgY2hhbm5lbHMkIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICB2ZHJEcm9wZG93bkl0ZW1cclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmVDaGFubmVsKGNoYW5uZWwuaWQpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPHZkci1jaGFubmVsLWJhZGdlIFtjaGFubmVsQ29kZV09XCJjaGFubmVsLmNvZGVcIj48L3Zkci1jaGFubmVsLWJhZGdlPlxyXG4gICAgICAgICAgICAgICAge3sgY2hhbm5lbC5jb2RlIHwgY2hhbm5lbENvZGVUb0xhYmVsIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvdmRyLWRyb3Bkb3duLW1lbnU+XHJcbiAgICA8L3Zkci1kcm9wZG93bj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
@@ -131,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImpor
131
131
  ],
132
132
  }]
133
133
  }] });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2RhdGEvZGF0YS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBdUIsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFdkYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcs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QW1CO1lBQ25CO2dCQUNJLE9BQU8sRUFBRSxjQUFjO2dCQUN2QixVQUFVLEVBQUUsWUFBWTtnQkFDeEIsSUFBSSxFQUFFLENBQUMsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQzthQUN0RDtZQUNELEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ3pFO2dCQUNJLE9BQU8sRUFBRSxlQUFlO2dCQUN4QixLQUFLLEVBQUUsSUFBSTtnQkFDWCxVQUFVLEVBQUUsNkJBQTZCO2dCQUN6QyxJQUFJLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQzthQUM5QjtTQUNKLFlBcEJTLGdCQUFnQixFQUFFLFlBQVk7OzJGQXNCL0IsVUFBVTtrQkF2QnRCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO29CQUN6QyxPQUFPLEVBQUUsRUFBRTtvQkFDWCxZQUFZLEVBQUUsRUFBRTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNQLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkI7NEJBQ0ksT0FBTyxFQUFFLGNBQWM7NEJBQ3ZCLFVBQVUsRUFBRSxZQUFZOzRCQUN4QixJQUFJLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDO3lCQUN0RDt3QkFDRCxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTt3QkFDekU7NEJBQ0ksT0FBTyxFQUFFLGVBQWU7NEJBQ3hCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFVBQVUsRUFBRSw2QkFBNkI7NEJBQ3pDLElBQUksRUFBRSxDQUFDLG1CQUFtQixDQUFDO3lCQUM5QjtxQkFDSjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUsIEhUVFBfSU5URVJDRVBUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBJbmplY3RvciwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwb2xsb0NsaWVudE9wdGlvbnMsIEluTWVtb3J5Q2FjaGUgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcbmltcG9ydCB7IHNldENvbnRleHQgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9saW5rL2NvbnRleHQnO1xuaW1wb3J0IHsgQXBvbGxvTGluayB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2xpbmsvY29yZSc7XG5pbXBvcnQgeyBBcG9sbG9Nb2R1bGUsIEFQT0xMT19PUFRJT05TIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xuaW1wb3J0IHsgY3JlYXRlVXBsb2FkTGluayB9IGZyb20gJ2Fwb2xsby11cGxvYWQtY2xpZW50JztcblxuaW1wb3J0IHsgZ2V0QXBwQ29uZmlnIH0gZnJvbSAnLi4vYXBwLmNvbmZpZyc7XG5pbXBvcnQgeyBpbnRyb3NwZWN0aW9uUmVzdWx0IH0gZnJvbSAnLi4vY29tbW9uL2ludHJvc3BlY3Rpb24tcmVzdWx0LXdyYXBwZXInO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3Byb3ZpZGVycy9sb2NhbC1zdG9yYWdlL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XG5cbmltcG9ydCB7IENoZWNrSm9ic0xpbmsgfSBmcm9tICcuL2NoZWNrLWpvYnMtbGluayc7XG5pbXBvcnQgeyBnZXRDbGllbnREZWZhdWx0cyB9IGZyb20gJy4vY2xpZW50LXN0YXRlL2NsaWVudC1kZWZhdWx0cyc7XG5pbXBvcnQgeyBjbGllbnRSZXNvbHZlcnMgfSBmcm9tICcuL2NsaWVudC1zdGF0ZS9jbGllbnQtcmVzb2x2ZXJzJztcbmltcG9ydCB7IEdFVF9DTElFTlRfU1RBVEUgfSBmcm9tICcuL2RlZmluaXRpb25zL2NsaWVudC1kZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBPbWl0VHlwZW5hbWVMaW5rIH0gZnJvbSAnLi9vbWl0LXR5cGVuYW1lLWxpbmsnO1xuaW1wb3J0IHsgQmFzZURhdGFTZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvYmFzZS1kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmV0Y2hBZGFwdGVyIH0gZnJvbSAnLi9wcm92aWRlcnMvZmV0Y2gtYWRhcHRlcic7XG5pbXBvcnQgeyBEZWZhdWx0SW50ZXJjZXB0b3IgfSBmcm9tICcuL3Byb3ZpZGVycy9pbnRlcmNlcHRvcic7XG5pbXBvcnQgeyBpbml0aWFsaXplU2VydmVyQ29uZmlnU2VydmljZSwgU2VydmVyQ29uZmlnU2VydmljZSB9IGZyb20gJy4vc2VydmVyLWNvbmZpZyc7XG5pbXBvcnQgeyBnZXRTZXJ2ZXJMb2NhdGlvbiB9IGZyb20gJy4vdXRpbHMvZ2V0LXNlcnZlci1sb2NhdGlvbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBcG9sbG8oXG4gICAgbG9jYWxTdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSxcbiAgICBmZXRjaEFkYXB0ZXI6IEZldGNoQWRhcHRlcixcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4pOiBBcG9sbG9DbGllbnRPcHRpb25zPGFueT4ge1xuICAgIGNvbnN0IHsgYWRtaW5BcGlQYXRoLCB0b2tlbk1ldGhvZCwgY2hhbm5lbFRva2VuS2V5IH0gPSBnZXRBcHBDb25maWcoKTtcbiAgICBjb25zdCBzZXJ2ZXJMb2NhdGlvbiA9IGdldFNlcnZlckxvY2F0aW9uKCk7XG4gICAgY29uc3QgYXBvbGxvQ2FjaGUgPSBuZXcgSW5NZW1vcnlDYWNoZSh7XG4gICAgICAgIHBvc3NpYmxlVHlwZXM6IGludHJvc3BlY3Rpb25SZXN1bHQucG9zc2libGVUeXBlcyxcbiAgICAgICAgdHlwZVBvbGljaWVzOiB7XG4gICAgICAgICAgICBHbG9iYWxTZXR0aW5nczoge1xuICAgICAgICAgICAgICAgIGZpZWxkczoge1xuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJDb25maWc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlOiAoZXhpc3RpbmcsIGluY29taW5nKSA9PiAoeyAuLi5leGlzdGluZywgLi4uaW5jb21pbmcgfSksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBGYWNldDoge1xuICAgICAgICAgICAgICAgIGZpZWxkczoge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlOiAoZXhpc3RpbmcsIGluY29taW5nKSA9PiBpbmNvbWluZyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICB9KTtcbiAgICBhcG9sbG9DYWNoZS53cml0ZVF1ZXJ5KHtcbiAgICAgICAgcXVlcnk6IEdFVF9DTElFTlRfU1RBVEUsXG4gICAgICAgIGRhdGE6IGdldENsaWVudERlZmF1bHRzKGxvY2FsU3RvcmFnZVNlcnZpY2UpLFxuICAgIH0pO1xuXG4gICAgaWYgKCFmYWxzZSkge1xuICAgICAgICAvLyBUT0RPOiBlbmFibGUgb25seSBmb3IgZGV2IG1vZGVcbiAgICAgICAgLy8gbWFrZSB0aGUgQXBvbGxvIENhY2hlIGluc3BlY3RhYmxlIGluIHRoZSBjb25zb2xlIGZvciBkZWJ1ZyBwdXJwb3Nlc1xuICAgICAgICAod2luZG93IGFzIGFueSlbJ2Fwb2xsb0NhY2hlJ10gPSBhcG9sbG9DYWNoZTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbGluazogQXBvbGxvTGluay5mcm9tKFtcbiAgICAgICAgICAgIG5ldyBPbWl0VHlwZW5hbWVMaW5rKCksXG4gICAgICAgICAgICBuZXcgQ2hlY2tKb2JzTGluayhpbmplY3RvciksXG4gICAgICAgICAgICBzZXRDb250ZXh0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgICAgICAgICAgICAgY29uc3QgY2hhbm5lbFRva2VuID0gbG9jYWxTdG9yYWdlU2VydmljZS5nZXQoJ2FjdGl2ZUNoYW5uZWxUb2tlbicpO1xuICAgICAgICAgICAgICAgIGlmIChjaGFubmVsVG9rZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyc1tjaGFubmVsVG9rZW5LZXkgPz8gJ3ZlbmR1cmUtdG9rZW4nXSA9IGNoYW5uZWxUb2tlbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRva2VuTWV0aG9kID09PSAnYmVhcmVyJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhdXRoVG9rZW4gPSBsb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldCgnYXV0aFRva2VuJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhdXRoVG9rZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnMuYXV0aG9yaXphdGlvbiA9IGBCZWFyZXIgJHthdXRoVG9rZW59YDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBoZWFkZXJzIH07XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNyZWF0ZVVwbG9hZExpbmsoe1xuICAgICAgICAgICAgICAgIHVyaTogYCR7c2VydmVyTG9jYXRpb259LyR7YWRtaW5BcGlQYXRofWAsXG4gICAgICAgICAgICAgICAgZmV0Y2g6IGZldGNoQWRhcHRlci5mZXRjaCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICBdKSxcbiAgICAgICAgY2FjaGU6IGFwb2xsb0NhY2hlLFxuICAgICAgICByZXNvbHZlcnM6IGNsaWVudFJlc29sdmVycyxcbiAgICB9O1xufVxuXG4vLyBMaXN0IG9mIGFsbCBFVSBjb3VudHJpZXNcblxuLyoqXG4gKiBUaGUgRGF0YU1vZHVsZSBpcyByZXNwb25zaWJsZSBmb3IgYWxsIEFQSSBjYWxscyAqYW5kKiBzZXJ2ZXMgYXMgdGhlIHNvdXJjZSBvZiB0cnV0aCBmb3IgZ2xvYmFsIGFwcFxuICogc3RhdGUgdmlhIHRoZSBhcG9sbG8tbGluay1zdGF0ZSBwYWNrYWdlLlxuICovXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtIdHRwQ2xpZW50TW9kdWxlLCBBcG9sbG9Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtdLFxuICAgIGRlY2xhcmF0aW9uczogW10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIEJhc2VEYXRhU2VydmljZSxcbiAgICAgICAgRGF0YVNlcnZpY2UsXG4gICAgICAgIEZldGNoQWRhcHRlcixcbiAgICAgICAgU2VydmVyQ29uZmlnU2VydmljZSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQVBPTExPX09QVElPTlMsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBjcmVhdGVBcG9sbG8sXG4gICAgICAgICAgICBkZXBzOiBbTG9jYWxTdG9yYWdlU2VydmljZSwgRmV0Y2hBZGFwdGVyLCBJbmplY3Rvcl0sXG4gICAgICAgIH0sXG4gICAgICAgIHsgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsIHVzZUNsYXNzOiBEZWZhdWx0SW50ZXJjZXB0b3IsIG11bHRpOiB0cnVlIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogaW5pdGlhbGl6ZVNlcnZlckNvbmZpZ1NlcnZpY2UsXG4gICAgICAgICAgICBkZXBzOiBbU2VydmVyQ29uZmlnU2VydmljZV0sXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0YU1vZHVsZSB7fVxuIl19
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2RhdGEvZGF0YS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBdUIsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFdkYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcs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QW1CO1lBQ25CO2dCQUNJLE9BQU8sRUFBRSxjQUFjO2dCQUN2QixVQUFVLEVBQUUsWUFBWTtnQkFDeEIsSUFBSSxFQUFFLENBQUMsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQzthQUN0RDtZQUNELEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ3pFO2dCQUNJLE9BQU8sRUFBRSxlQUFlO2dCQUN4QixLQUFLLEVBQUUsSUFBSTtnQkFDWCxVQUFVLEVBQUUsNkJBQTZCO2dCQUN6QyxJQUFJLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQzthQUM5QjtTQUNKLFlBcEJTLGdCQUFnQixFQUFFLFlBQVk7OzJGQXNCL0IsVUFBVTtrQkF2QnRCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO29CQUN6QyxPQUFPLEVBQUUsRUFBRTtvQkFDWCxZQUFZLEVBQUUsRUFBRTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNQLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkI7NEJBQ0ksT0FBTyxFQUFFLGNBQWM7NEJBQ3ZCLFVBQVUsRUFBRSxZQUFZOzRCQUN4QixJQUFJLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDO3lCQUN0RDt3QkFDRCxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTt3QkFDekU7NEJBQ0ksT0FBTyxFQUFFLGVBQWU7NEJBQ3hCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFVBQVUsRUFBRSw2QkFBNkI7NEJBQ3pDLElBQUksRUFBRSxDQUFDLG1CQUFtQixDQUFDO3lCQUM5QjtxQkFDSjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUsIEhUVFBfSU5URVJDRVBUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIEluamVjdG9yLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcG9sbG9DbGllbnRPcHRpb25zLCBJbk1lbW9yeUNhY2hlIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XHJcbmltcG9ydCB7IHNldENvbnRleHQgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9saW5rL2NvbnRleHQnO1xyXG5pbXBvcnQgeyBBcG9sbG9MaW5rIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvbGluay9jb3JlJztcclxuaW1wb3J0IHsgQXBvbGxvTW9kdWxlLCBBUE9MTE9fT1BUSU9OUyB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcclxuaW1wb3J0IHsgY3JlYXRlVXBsb2FkTGluayB9IGZyb20gJ2Fwb2xsby11cGxvYWQtY2xpZW50JztcclxuXHJcbmltcG9ydCB7IGdldEFwcENvbmZpZyB9IGZyb20gJy4uL2FwcC5jb25maWcnO1xyXG5pbXBvcnQgeyBpbnRyb3NwZWN0aW9uUmVzdWx0IH0gZnJvbSAnLi4vY29tbW9uL2ludHJvc3BlY3Rpb24tcmVzdWx0LXdyYXBwZXInO1xyXG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vcHJvdmlkZXJzL2xvY2FsLXN0b3JhZ2UvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IENoZWNrSm9ic0xpbmsgfSBmcm9tICcuL2NoZWNrLWpvYnMtbGluayc7XHJcbmltcG9ydCB7IGdldENsaWVudERlZmF1bHRzIH0gZnJvbSAnLi9jbGllbnQtc3RhdGUvY2xpZW50LWRlZmF1bHRzJztcclxuaW1wb3J0IHsgY2xpZW50UmVzb2x2ZXJzIH0gZnJvbSAnLi9jbGllbnQtc3RhdGUvY2xpZW50LXJlc29sdmVycyc7XHJcbmltcG9ydCB7IEdFVF9DTElFTlRfU1RBVEUgfSBmcm9tICcuL2RlZmluaXRpb25zL2NsaWVudC1kZWZpbml0aW9ucyc7XHJcbmltcG9ydCB7IE9taXRUeXBlbmFtZUxpbmsgfSBmcm9tICcuL29taXQtdHlwZW5hbWUtbGluayc7XHJcbmltcG9ydCB7IEJhc2VEYXRhU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL2Jhc2UtZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGZXRjaEFkYXB0ZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9mZXRjaC1hZGFwdGVyJztcclxuaW1wb3J0IHsgRGVmYXVsdEludGVyY2VwdG9yIH0gZnJvbSAnLi9wcm92aWRlcnMvaW50ZXJjZXB0b3InO1xyXG5pbXBvcnQgeyBpbml0aWFsaXplU2VydmVyQ29uZmlnU2VydmljZSwgU2VydmVyQ29uZmlnU2VydmljZSB9IGZyb20gJy4vc2VydmVyLWNvbmZpZyc7XHJcbmltcG9ydCB7IGdldFNlcnZlckxvY2F0aW9uIH0gZnJvbSAnLi91dGlscy9nZXQtc2VydmVyLWxvY2F0aW9uJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBcG9sbG8oXHJcbiAgICBsb2NhbFN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgZmV0Y2hBZGFwdGVyOiBGZXRjaEFkYXB0ZXIsXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbik6IEFwb2xsb0NsaWVudE9wdGlvbnM8YW55PiB7XHJcbiAgICBjb25zdCB7IGFkbWluQXBpUGF0aCwgdG9rZW5NZXRob2QsIGNoYW5uZWxUb2tlbktleSB9ID0gZ2V0QXBwQ29uZmlnKCk7XHJcbiAgICBjb25zdCBzZXJ2ZXJMb2NhdGlvbiA9IGdldFNlcnZlckxvY2F0aW9uKCk7XHJcbiAgICBjb25zdCBhcG9sbG9DYWNoZSA9IG5ldyBJbk1lbW9yeUNhY2hlKHtcclxuICAgICAgICBwb3NzaWJsZVR5cGVzOiBpbnRyb3NwZWN0aW9uUmVzdWx0LnBvc3NpYmxlVHlwZXMsXHJcbiAgICAgICAgdHlwZVBvbGljaWVzOiB7XHJcbiAgICAgICAgICAgIEdsb2JhbFNldHRpbmdzOiB7XHJcbiAgICAgICAgICAgICAgICBmaWVsZHM6IHtcclxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJDb25maWc6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWVyZ2U6IChleGlzdGluZywgaW5jb21pbmcpID0+ICh7IC4uLmV4aXN0aW5nLCAuLi5pbmNvbWluZyB9KSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgRmFjZXQ6IHtcclxuICAgICAgICAgICAgICAgIGZpZWxkczoge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXJnZTogKGV4aXN0aW5nLCBpbmNvbWluZykgPT4gaW5jb21pbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgIH0pO1xyXG4gICAgYXBvbGxvQ2FjaGUud3JpdGVRdWVyeSh7XHJcbiAgICAgICAgcXVlcnk6IEdFVF9DTElFTlRfU1RBVEUsXHJcbiAgICAgICAgZGF0YTogZ2V0Q2xpZW50RGVmYXVsdHMobG9jYWxTdG9yYWdlU2VydmljZSksXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoIWZhbHNlKSB7XHJcbiAgICAgICAgLy8gVE9ETzogZW5hYmxlIG9ubHkgZm9yIGRldiBtb2RlXHJcbiAgICAgICAgLy8gbWFrZSB0aGUgQXBvbGxvIENhY2hlIGluc3BlY3RhYmxlIGluIHRoZSBjb25zb2xlIGZvciBkZWJ1ZyBwdXJwb3Nlc1xyXG4gICAgICAgICh3aW5kb3cgYXMgYW55KVsnYXBvbGxvQ2FjaGUnXSA9IGFwb2xsb0NhY2hlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBsaW5rOiBBcG9sbG9MaW5rLmZyb20oW1xyXG4gICAgICAgICAgICBuZXcgT21pdFR5cGVuYW1lTGluaygpLFxyXG4gICAgICAgICAgICBuZXcgQ2hlY2tKb2JzTGluayhpbmplY3RvciksXHJcbiAgICAgICAgICAgIHNldENvbnRleHQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY2hhbm5lbFRva2VuID0gbG9jYWxTdG9yYWdlU2VydmljZS5nZXQoJ2FjdGl2ZUNoYW5uZWxUb2tlbicpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNoYW5uZWxUb2tlbikge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnNbY2hhbm5lbFRva2VuS2V5ID8/ICd2ZW5kdXJlLXRva2VuJ10gPSBjaGFubmVsVG9rZW47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodG9rZW5NZXRob2QgPT09ICdiZWFyZXInKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYXV0aFRva2VuID0gbG9jYWxTdG9yYWdlU2VydmljZS5nZXQoJ2F1dGhUb2tlbicpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhdXRoVG9rZW4pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycy5hdXRob3JpemF0aW9uID0gYEJlYXJlciAke2F1dGhUb2tlbn1gO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGhlYWRlcnMgfTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIGNyZWF0ZVVwbG9hZExpbmsoe1xyXG4gICAgICAgICAgICAgICAgdXJpOiBgJHtzZXJ2ZXJMb2NhdGlvbn0vJHthZG1pbkFwaVBhdGh9YCxcclxuICAgICAgICAgICAgICAgIGZldGNoOiBmZXRjaEFkYXB0ZXIuZmV0Y2gsXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgIF0pLFxyXG4gICAgICAgIGNhY2hlOiBhcG9sbG9DYWNoZSxcclxuICAgICAgICByZXNvbHZlcnM6IGNsaWVudFJlc29sdmVycyxcclxuICAgIH07XHJcbn1cclxuXHJcbi8vIExpc3Qgb2YgYWxsIEVVIGNvdW50cmllc1xyXG5cclxuLyoqXHJcbiAqIFRoZSBEYXRhTW9kdWxlIGlzIHJlc3BvbnNpYmxlIGZvciBhbGwgQVBJIGNhbGxzICphbmQqIHNlcnZlcyBhcyB0aGUgc291cmNlIG9mIHRydXRoIGZvciBnbG9iYWwgYXBwXHJcbiAqIHN0YXRlIHZpYSB0aGUgYXBvbGxvLWxpbmstc3RhdGUgcGFja2FnZS5cclxuICovXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbSHR0cENsaWVudE1vZHVsZSwgQXBvbGxvTW9kdWxlXSxcclxuICAgIGV4cG9ydHM6IFtdLFxyXG4gICAgZGVjbGFyYXRpb25zOiBbXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIEJhc2VEYXRhU2VydmljZSxcclxuICAgICAgICBEYXRhU2VydmljZSxcclxuICAgICAgICBGZXRjaEFkYXB0ZXIsXHJcbiAgICAgICAgU2VydmVyQ29uZmlnU2VydmljZSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IEFQT0xMT19PUFRJT05TLFxyXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBjcmVhdGVBcG9sbG8sXHJcbiAgICAgICAgICAgIGRlcHM6IFtMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBGZXRjaEFkYXB0ZXIsIEluamVjdG9yXSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHsgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsIHVzZUNsYXNzOiBEZWZhdWx0SW50ZXJjZXB0b3IsIG11bHRpOiB0cnVlIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBpbml0aWFsaXplU2VydmVyQ29uZmlnU2VydmljZSxcclxuICAgICAgICAgICAgZGVwczogW1NlcnZlckNvbmZpZ1NlcnZpY2VdLFxyXG4gICAgICAgIH0sXHJcbiAgICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0YU1vZHVsZSB7fVxyXG4iXX0=
@@ -15,12 +15,12 @@ export class DashboardWidgetService {
15
15
  }
16
16
  this.registry.set(id, config);
17
17
  }
18
- getAvailableIds(currentUserPermissions) {
18
+ getAvailableWidgets(currentUserPermissions) {
19
19
  const hasAllPermissions = (requiredPerms, userPerms) => requiredPerms.every(p => userPerms.includes(p));
20
20
  return [...this.registry.entries()]
21
- .filter(([id, config]) => (!config.requiresPermissions ||
22
- hasAllPermissions(config.requiresPermissions, currentUserPermissions)))
23
- .map(([id]) => id);
21
+ .filter(([id, config]) => !config.requiresPermissions ||
22
+ hasAllPermissions(config.requiresPermissions, currentUserPermissions))
23
+ .map(([id, config]) => ({ id, config }));
24
24
  }
25
25
  getWidgetById(id) {
26
26
  return this.registry.get(id);
@@ -88,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImpor
88
88
  providedIn: 'root',
89
89
  }]
90
90
  }] });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLXdpZGdldC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9wcm92aWRlcnMvZGFzaGJvYXJkLXdpZGdldC9kYXNoYm9hcmQtd2lkZ2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFXdEU7O0dBRUc7QUFJSCxNQUFNLE9BQU8sc0JBQXNCO0lBSG5DO1FBSVksYUFBUSxHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO1FBQ3BELGNBQVMsR0FBMkIsRUFBRSxDQUFDO0tBK0ZsRDtJQTdGRyxjQUFjLENBQUMsRUFBVSxFQUFFLE1BQTZCO1FBQ3BELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1NBQzVFO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxlQUFlLENBQUMsc0JBQW9DO1FBQ2hELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxhQUF1QixFQUFFLFNBQW1CLEVBQVcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFckksT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUM5QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FDbEIsQ0FBQyxNQUFN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LElBQUksR0FBRyxHQUF5QixFQUFFLENBQUM7UUFDbkMsS0FBSyxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxrQkFBa0IsRUFBRTtZQUNwRCxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDM0QsSUFBSSxFQUFFLEdBQUcsT0FBTyxHQUFHLEtBQUssRUFBRTtnQkFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDakIsR0FBRyxHQUFHLEVBQUUsQ0FBQzthQUNaO1lBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUNuQztRQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakIsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs4R0FoR1Esc0JBQXNCO2tIQUF0QixzQkFBc0IsY0FGbkIsTUFBTTs7MkZBRVQsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xyXG5cclxuaW1wb3J0IHsgUGVybWlzc2lvbiB9IGZyb20gJy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIERhc2hib2FyZFdpZGdldENvbmZpZyxcclxuICAgIERhc2hib2FyZFdpZGdldFdpZHRoLFxyXG4gICAgV2lkZ2V0TGF5b3V0LFxyXG4gICAgV2lkZ2V0TGF5b3V0RGVmaW5pdGlvbixcclxufSBmcm9tICcuL2Rhc2hib2FyZC13aWRnZXQtdHlwZXMnO1xyXG5cclxuLyoqXHJcbiAqIFJlc3BvbnNpYmxlIGZvciByZWdpc3RlcmluZyBkYXNoYm9hcmQgd2lkZ2V0IGNvbXBvbmVudHMgYW5kIHF1ZXJ5aW5nIGZvciBsYXlvdXRzLlxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkV2lkZ2V0U2VydmljZSB7XHJcbiAgICBwcml2YXRlIHJlZ2lzdHJ5ID0gbmV3IE1hcDxzdHJpbmcsIERhc2hib2FyZFdpZGdldENvbmZpZz4oKTtcclxuICAgIHByaXZhdGUgbGF5b3V0RGVmOiBXaWRnZXRMYXlvdXREZWZpbml0aW9uID0gW107XHJcblxyXG4gICAgcmVnaXN0ZXJXaWRnZXQoaWQ6IHN0cmluZywgY29uZmlnOiBEYXNoYm9hcmRXaWRnZXRDb25maWcpIHtcclxuICAgICAgICBpZiAodGhpcy5yZWdpc3RyeS5oYXMoaWQpKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQSBkYXNoYm9hcmQgd2lkZ2V0IHdpdGggdGhlIGlkIFwiJHtpZH1cIiBhbHJlYWR5IGV4aXN0c2ApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5yZWdpc3RyeS5zZXQoaWQsIGNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QXZhaWxhYmxlSWRzKGN1cnJlbnRVc2VyUGVybWlzc2lvbnM6IFBlcm1pc3Npb25bXSk6IHN0cmluZ1tdIHtcclxuICAgICAgICBjb25zdCBoYXNBbGxQZXJtaXNzaW9ucyA9IChyZXF1aXJlZFBlcm1zOiBzdHJpbmdbXSwgdXNlclBlcm1zOiBzdHJpbmdbXSk6IGJvb2xlYW4gPT4gcmVxdWlyZWRQZXJtcy5ldmVyeShwID0+IHVzZXJQZXJtcy5pbmNsdWRlcyhwKSk7XHJcblxyXG4gICAgICAgIHJldHVybiBbLi4udGhpcy5yZWdpc3RyeS5lbnRyaWVzKCldXHJcbiAgICAgICAgICAgIC5maWx0ZXIoKFtpZCwgY29uZmlnXSkgPT4gKFxyXG4gICAgICAgICAgICAgICAgICAgICFjb25maWcucmVxdWlyZXNQZXJtaXNzaW9ucyB8fFxyXG4gICAgICAgICAgICAgICAgICAgIGhhc0FsbFBlcm1pc3Npb25zKGNvbmZpZy5yZXF1aXJlc1Blcm1pc3Npb25zLCBjdXJyZW50VXNlclBlcm1pc3Npb25zKVxyXG4gICAgICAgICAgICAgICAgKSlcclxuICAgICAgICAgICAgLm1hcCgoW2lkXSkgPT4gaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFdpZGdldEJ5SWQoaWQ6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5LmdldChpZCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RGVmYXVsdExheW91dChsYXlvdXQ6IFdpZGdldExheW91dERlZmluaXRpb24pIHtcclxuICAgICAgICB0aGlzLmxheW91dERlZiA9IGxheW91dDtcclxuICAgIH1cclxuXHJcbiAgICBnZXREZWZhdWx0TGF5b3V0KCk6IFdpZGdldExheW91dERlZmluaXRpb24ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxheW91dERlZjtcclxuICAgIH1cclxuXHJcbiAgICBnZXRXaWRnZXRMYXlvdXQobGF5b3V0RGVmPzogV2lkZ2V0TGF5b3V0RGVmaW5pdGlvbik6IFdpZGdldExheW91dCB7XHJcbiAgICAgICAgY29uc3QgaW50ZXJtZWRpYXRlTGF5b3V0ID0gKGxheW91dERlZiB8fCB0aGlzLmxheW91dERlZilcclxuICAgICAgICAgICAgLm1hcCgoeyBpZCwgd2lkdGggfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5yZWdpc3RyeS5nZXQoaWQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFjb25maWcpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pZE5vdEZvdW5kKGlkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGlkLCBjb25maWcsIHdpZHRoOiB0aGlzLmdldFZhbGlkV2lkdGgoaWQsIGNvbmZpZywgd2lkdGgpIH07XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5maWx0ZXIobm90TnVsbE9yVW5kZWZpbmVkKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRMYXlvdXQoaW50ZXJtZWRpYXRlTGF5b3V0KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlkTm90Rm91bmQoaWQ6IHN0cmluZyk6IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcclxuICAgICAgICBjb25zb2xlLmVycm9yKFxyXG4gICAgICAgICAgICBgTm8gZGFzaGJvYXJkIHdpZGdldCB3YXMgZm91bmQgd2l0aCB0aGUgaWQgXCIke2lkfVwiXFxuQXZhaWxhYmxlIGlkczogJHtbLi4udGhpcy5yZWdpc3RyeS5rZXlzKCldXHJcbiAgICAgICAgICAgICAgICAubWFwKF9pZCA9PiBgXCIke19pZH1cImApXHJcbiAgICAgICAgICAgICAgICAuam9pbignLCAnKX1gLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0VmFsaWRXaWR0aChcclxuICAgICAgICBpZDogc3RyaW5nLFxyXG4gICAgICAgIGNvbmZpZzogRGFzaGJvYXJkV2lkZ2V0Q29uZmlnLFxyXG4gICAgICAgIHRhcmdldFdpZHRoOiBEYXNoYm9hcmRXaWRnZXRXaWR0aCxcclxuICAgICk6IERhc2hib2FyZFdpZGdldFdpZHRoIHtcclxuICAgICAgICBsZXQgYWRqdXN0ZWRXaWR0aCA9IHRhcmdldFdpZHRoO1xyXG4gICAgICAgIGNvbnN0IHN1cHBvcnRlZFdpZHRocyA9IGNvbmZpZy5zdXBwb3J0ZWRXaWR0aHM/Lmxlbmd0aFxyXG4gICAgICAgICAgICA/IGNvbmZpZy5zdXBwb3J0ZWRXaWR0aHNcclxuICAgICAgICAgICAgOiAoWzMsIDQsIDYsIDgsIDEyXSBhcyBEYXNoYm9hcmRXaWRnZXRXaWR0aFtdKTtcclxuICAgICAgICBpZiAoIXN1cHBvcnRlZFdpZHRocy5pbmNsdWRlcyh0YXJnZXRXaWR0aCkpIHtcclxuICAgICAgICAgICAgLy8gRmFsbCBiYWNrIHRvIHRoZSBsYXJnZXN0IHN1cHBvcnRlZCB3aWR0aFxyXG4gICAgICAgICAgICBjb25zdCBzb3J0ZWRXaWR0aHMgPSBzdXBwb3J0ZWRXaWR0aHMuc29ydCgoYSwgYikgPT4gYSAtIGIpO1xyXG4gICAgICAgICAgICBjb25zdCBmYWxsYmFja1dpZHRoID0gc3VwcG9ydGVkV2lkdGhzW3NvcnRlZFdpZHRocy5sZW5ndGggLSAxXTtcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcclxuICAgICAgICAgICAgICAgIGBUaGUgXCIke2lkfVwiIHdpZGdldCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgd2lkdGggKCR7dGFyZ2V0V2lkdGh9KS5cXG5TdXBwb3J0ZWQgd2lkdGhzIGFyZTogWyR7c29ydGVkV2lkdGhzLmpvaW4oXHJcbiAgICAgICAgICAgICAgICAgICAgJywgJyxcclxuICAgICAgICAgICAgICAgICl9XS5cXG5Vc2luZyAoJHtmYWxsYmFja1dpZHRofSkgaW5zdGVhZC5gLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBhZGp1c3RlZFdpZHRoID0gZmFsbGJhY2tXaWR0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGFkanVzdGVkV2lkdGg7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBidWlsZExheW91dChpbnRlcm1lZGlhdGVMYXlvdXQ6IFdpZGdldExheW91dFtudW1iZXJdKTogV2lkZ2V0TGF5b3V0IHtcclxuICAgICAgICBjb25zdCBsYXlvdXQ6IFdpZGdldExheW91dCA9IFtdO1xyXG4gICAgICAgIGxldCByb3c6IFdpZGdldExheW91dFtudW1iZXJdID0gW107XHJcbiAgICAgICAgZm9yIChjb25zdCB7IGlkLCBjb25maWcsIHdpZHRoIH0gb2YgaW50ZXJtZWRpYXRlTGF5b3V0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJvd1NpemUgPSByb3cucmVkdWNlKChzaXplLCBjKSA9PiBzaXplICsgYy53aWR0aCwgMCk7XHJcbiAgICAgICAgICAgIGlmICgxMiA8IHJvd1NpemUgKyB3aWR0aCkge1xyXG4gICAgICAgICAgICAgICAgbGF5b3V0LnB1c2gocm93KTtcclxuICAgICAgICAgICAgICAgIHJvdyA9IFtdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJvdy5wdXNoKHsgaWQsIGNvbmZpZywgd2lkdGggfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxheW91dC5wdXNoKHJvdyk7XHJcbiAgICAgICAgcmV0dXJuIGxheW91dDtcclxuICAgIH1cclxufVxyXG4iXX0=
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLXdpZGdldC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9wcm92aWRlcnMvZGFzaGJvYXJkLXdpZGdldC9kYXNoYm9hcmQtd2lkZ2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFXdEU7O0dBRUc7QUFJSCxNQUFNLE9BQU8sc0JBQXNCO0lBSG5DO1FBSVksYUFBUSxHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO1FBQ3BELGNBQVMsR0FBMkIsRUFBRSxDQUFDO0tBbUdsRDtJQWpHRyxjQUFjLENBQUMsRUFBVSxFQUFFLE1BQTZCO1FBQ3BELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1NBQzVFO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxtQkFBbUIsQ0FDZixzQkFBb0M7UUFFcEMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLGFBQXVCLEVBQUUsU0FBbUIsRUFBVyxFQUFFLENBQ2hGLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFcEQsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUM5QixNQUFNLENBQ0gsQ0FBQyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLENBQ2IsQ0FBQyxNQUFNLENBQUMsbUJBQW1CO1lBQzNCLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxzQkFBc0IsQ0FBQyxDQUM1RTthQUNBLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsYUFBYSxDQUFDLEVBQVU7UUFDcEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBOEI7UUFDM0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7SUFDNUIsQ0FBQztJQUVELGdCQUFnQjtRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsZUFBZSxDQUFDLFNBQWtDO1FBQzlDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQzthQUNuRCxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzlCO1lBQ0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hFLENBQUMsQ0FBQzthQUNELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRWhDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTyxVQUFVLENBQUMsRUFBVTtRQUN6QixzQ0FBc0M7UUFDdEMsT0FBTyxDQUFDLEtBQUssQ0FDVCw4Q0FBOEMsRUFBRSxxQkFBcUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDekYsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQzthQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDcEIsQ0FBQztRQUNGLE9BQU87SUFDWCxDQUFDO0lBRU8sYUFBYSxDQUNqQixFQUFVLEVBQ1YsTUFBNkIsRUFDN0IsV0FBaUM7UUFFakMsSUFBSSxhQUFhLEdBQUcsV0FBVyxDQUFDO1FBQ2hDLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLEVBQUUsTUFBTTtZQUNsRCxDQUFDLENBQUMsTUFBTSxDQUFDLGVBQWU7WUFDeEIsQ0FBQyxDQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBNEIsQ0FBQztRQUNuRCxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN4QywyQ0FBMkM7WUFDM0MsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMzRCxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMvRCxzQ0FBc0M7WUFDdEMsT0FBTyxDQUFDLEtBQUssQ0FDVCxRQUFRLEVBQUUsa0RBQWtELFdBQVcsOEJBQThCLFlBQVksQ0FBQyxJQUFJLENBQ2xILElBQUksQ0FDUCxjQUFjLGFBQWEsWUFBWSxDQUMzQyxDQUFDO1lBQ0YsYUFBYSxHQUFHLGFBQWEsQ0FBQztTQUNqQztRQUNELE9BQU8sYUFBYSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxXQUFXLENBQUMsa0JBQXdDO1FBQ3hELE1BQU0sTUFBTSxHQUFpQixFQUFFLENBQUM7UUFDaEMsSUFBSSxHQUFHLEdBQXlCLEVBQUUsQ0FBQztRQUNuQyxLQUFLLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLGtCQUFrQixFQUFFO1lBQ3BELE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMzRCxJQUFJLEVBQUUsR0FBRyxPQUFPLEdBQUcsS0FBSyxFQUFFO2dCQUN0QixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNqQixHQUFHLEdBQUcsRUFBRSxDQUFDO2FBQ1o7WUFDRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQ25DO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQixPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDOzhHQXBHUSxzQkFBc0I7a0hBQXRCLHNCQUFzQixjQUZuQixNQUFNOzsyRkFFVCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBub3ROdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC11dGlscyc7XHJcblxyXG5pbXBvcnQgeyBQZXJtaXNzaW9uIH0gZnJvbSAnLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgRGFzaGJvYXJkV2lkZ2V0Q29uZmlnLFxyXG4gICAgRGFzaGJvYXJkV2lkZ2V0V2lkdGgsXHJcbiAgICBXaWRnZXRMYXlvdXQsXHJcbiAgICBXaWRnZXRMYXlvdXREZWZpbml0aW9uLFxyXG59IGZyb20gJy4vZGFzaGJvYXJkLXdpZGdldC10eXBlcyc7XHJcblxyXG4vKipcclxuICogUmVzcG9uc2libGUgZm9yIHJlZ2lzdGVyaW5nIGRhc2hib2FyZCB3aWRnZXQgY29tcG9uZW50cyBhbmQgcXVlcnlpbmcgZm9yIGxheW91dHMuXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRXaWRnZXRTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgcmVnaXN0cnkgPSBuZXcgTWFwPHN0cmluZywgRGFzaGJvYXJkV2lkZ2V0Q29uZmlnPigpO1xyXG4gICAgcHJpdmF0ZSBsYXlvdXREZWY6IFdpZGdldExheW91dERlZmluaXRpb24gPSBbXTtcclxuXHJcbiAgICByZWdpc3RlcldpZGdldChpZDogc3RyaW5nLCBjb25maWc6IERhc2hib2FyZFdpZGdldENvbmZpZykge1xyXG4gICAgICAgIGlmICh0aGlzLnJlZ2lzdHJ5LmhhcyhpZCkpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBIGRhc2hib2FyZCB3aWRnZXQgd2l0aCB0aGUgaWQgXCIke2lkfVwiIGFscmVhZHkgZXhpc3RzYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnJlZ2lzdHJ5LnNldChpZCwgY29uZmlnKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRBdmFpbGFibGVXaWRnZXRzKFxyXG4gICAgICAgIGN1cnJlbnRVc2VyUGVybWlzc2lvbnM6IFBlcm1pc3Npb25bXSxcclxuICAgICk6IEFycmF5PHsgaWQ6IHN0cmluZzsgY29uZmlnOiBEYXNoYm9hcmRXaWRnZXRDb25maWcgfT4ge1xyXG4gICAgICAgIGNvbnN0IGhhc0FsbFBlcm1pc3Npb25zID0gKHJlcXVpcmVkUGVybXM6IHN0cmluZ1tdLCB1c2VyUGVybXM6IHN0cmluZ1tdKTogYm9vbGVhbiA9PlxyXG4gICAgICAgICAgICByZXF1aXJlZFBlcm1zLmV2ZXJ5KHAgPT4gdXNlclBlcm1zLmluY2x1ZGVzKHApKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIFsuLi50aGlzLnJlZ2lzdHJ5LmVudHJpZXMoKV1cclxuICAgICAgICAgICAgLmZpbHRlcihcclxuICAgICAgICAgICAgICAgIChbaWQsIGNvbmZpZ10pID0+XHJcbiAgICAgICAgICAgICAgICAgICAgIWNvbmZpZy5yZXF1aXJlc1Blcm1pc3Npb25zIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgaGFzQWxsUGVybWlzc2lvbnMoY29uZmlnLnJlcXVpcmVzUGVybWlzc2lvbnMsIGN1cnJlbnRVc2VyUGVybWlzc2lvbnMpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5tYXAoKFtpZCwgY29uZmlnXSkgPT4gKHsgaWQsIGNvbmZpZyB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0V2lkZ2V0QnlJZChpZDogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0cnkuZ2V0KGlkKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXREZWZhdWx0TGF5b3V0KGxheW91dDogV2lkZ2V0TGF5b3V0RGVmaW5pdGlvbikge1xyXG4gICAgICAgIHRoaXMubGF5b3V0RGVmID0gbGF5b3V0O1xyXG4gICAgfVxyXG5cclxuICAgIGdldERlZmF1bHRMYXlvdXQoKTogV2lkZ2V0TGF5b3V0RGVmaW5pdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0RGVmO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFdpZGdldExheW91dChsYXlvdXREZWY/OiBXaWRnZXRMYXlvdXREZWZpbml0aW9uKTogV2lkZ2V0TGF5b3V0IHtcclxuICAgICAgICBjb25zdCBpbnRlcm1lZGlhdGVMYXlvdXQgPSAobGF5b3V0RGVmIHx8IHRoaXMubGF5b3V0RGVmKVxyXG4gICAgICAgICAgICAubWFwKCh7IGlkLCB3aWR0aCB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLnJlZ2lzdHJ5LmdldChpZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWNvbmZpZykge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmlkTm90Rm91bmQoaWQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWQsIGNvbmZpZywgd2lkdGg6IHRoaXMuZ2V0VmFsaWRXaWR0aChpZCwgY29uZmlnLCB3aWR0aCkgfTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmZpbHRlcihub3ROdWxsT3JVbmRlZmluZWQpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5idWlsZExheW91dChpbnRlcm1lZGlhdGVMYXlvdXQpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaWROb3RGb3VuZChpZDogc3RyaW5nKTogdW5kZWZpbmVkIHtcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXHJcbiAgICAgICAgICAgIGBObyBkYXNoYm9hcmQgd2lkZ2V0IHdhcyBmb3VuZCB3aXRoIHRoZSBpZCBcIiR7aWR9XCJcXG5BdmFpbGFibGUgaWRzOiAke1suLi50aGlzLnJlZ2lzdHJ5LmtleXMoKV1cclxuICAgICAgICAgICAgICAgIC5tYXAoX2lkID0+IGBcIiR7X2lkfVwiYClcclxuICAgICAgICAgICAgICAgIC5qb2luKCcsICcpfWAsXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRWYWxpZFdpZHRoKFxyXG4gICAgICAgIGlkOiBzdHJpbmcsXHJcbiAgICAgICAgY29uZmlnOiBEYXNoYm9hcmRXaWRnZXRDb25maWcsXHJcbiAgICAgICAgdGFyZ2V0V2lkdGg6IERhc2hib2FyZFdpZGdldFdpZHRoLFxyXG4gICAgKTogRGFzaGJvYXJkV2lkZ2V0V2lkdGgge1xyXG4gICAgICAgIGxldCBhZGp1c3RlZFdpZHRoID0gdGFyZ2V0V2lkdGg7XHJcbiAgICAgICAgY29uc3Qgc3VwcG9ydGVkV2lkdGhzID0gY29uZmlnLnN1cHBvcnRlZFdpZHRocz8ubGVuZ3RoXHJcbiAgICAgICAgICAgID8gY29uZmlnLnN1cHBvcnRlZFdpZHRoc1xyXG4gICAgICAgICAgICA6IChbMywgNCwgNiwgOCwgMTJdIGFzIERhc2hib2FyZFdpZGdldFdpZHRoW10pO1xyXG4gICAgICAgIGlmICghc3VwcG9ydGVkV2lkdGhzLmluY2x1ZGVzKHRhcmdldFdpZHRoKSkge1xyXG4gICAgICAgICAgICAvLyBGYWxsIGJhY2sgdG8gdGhlIGxhcmdlc3Qgc3VwcG9ydGVkIHdpZHRoXHJcbiAgICAgICAgICAgIGNvbnN0IHNvcnRlZFdpZHRocyA9IHN1cHBvcnRlZFdpZHRocy5zb3J0KChhLCBiKSA9PiBhIC0gYik7XHJcbiAgICAgICAgICAgIGNvbnN0IGZhbGxiYWNrV2lkdGggPSBzdXBwb3J0ZWRXaWR0aHNbc29ydGVkV2lkdGhzLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxyXG4gICAgICAgICAgICAgICAgYFRoZSBcIiR7aWR9XCIgd2lkZ2V0IGRvZXMgbm90IHN1cHBvcnQgdGhlIHNwZWNpZmllZCB3aWR0aCAoJHt0YXJnZXRXaWR0aH0pLlxcblN1cHBvcnRlZCB3aWR0aHMgYXJlOiBbJHtzb3J0ZWRXaWR0aHMuam9pbihcclxuICAgICAgICAgICAgICAgICAgICAnLCAnLFxyXG4gICAgICAgICAgICAgICAgKX1dLlxcblVzaW5nICgke2ZhbGxiYWNrV2lkdGh9KSBpbnN0ZWFkLmAsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGFkanVzdGVkV2lkdGggPSBmYWxsYmFja1dpZHRoO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYWRqdXN0ZWRXaWR0aDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGJ1aWxkTGF5b3V0KGludGVybWVkaWF0ZUxheW91dDogV2lkZ2V0TGF5b3V0W251bWJlcl0pOiBXaWRnZXRMYXlvdXQge1xyXG4gICAgICAgIGNvbnN0IGxheW91dDogV2lkZ2V0TGF5b3V0ID0gW107XHJcbiAgICAgICAgbGV0IHJvdzogV2lkZ2V0TGF5b3V0W251bWJlcl0gPSBbXTtcclxuICAgICAgICBmb3IgKGNvbnN0IHsgaWQsIGNvbmZpZywgd2lkdGggfSBvZiBpbnRlcm1lZGlhdGVMYXlvdXQpIHtcclxuICAgICAgICAgICAgY29uc3Qgcm93U2l6ZSA9IHJvdy5yZWR1Y2UoKHNpemUsIGMpID0+IHNpemUgKyBjLndpZHRoLCAwKTtcclxuICAgICAgICAgICAgaWYgKDEyIDwgcm93U2l6ZSArIHdpZHRoKSB7XHJcbiAgICAgICAgICAgICAgICBsYXlvdXQucHVzaChyb3cpO1xyXG4gICAgICAgICAgICAgICAgcm93ID0gW107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcm93LnB1c2goeyBpZCwgY29uZmlnLCB3aWR0aCB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGF5b3V0LnB1c2gocm93KTtcclxuICAgICAgICByZXR1cm4gbGF5b3V0O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -29,4 +29,4 @@ export function setDashboardWidgetLayout(layoutDef) {
29
29
  deps: [DashboardWidgetService],
30
30
  };
31
31
  }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItZGFzaGJvYXJkLXdpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvcHJvdmlkZXJzL2Rhc2hib2FyZC13aWRnZXQvcmVnaXN0ZXItZGFzaGJvYXJkLXdpZGdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUdqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVwRTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUFDLEVBQVUsRUFBRSxNQUE2QjtJQUM3RSxPQUFPO1FBQ0gsT0FBTyxFQUFFLGVBQWU7UUFDeEIsS0FBSyxFQUFFLElBQUk7UUFDWCxVQUFVLEVBQUUsQ0FBQyxzQkFBOEMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQ2pFLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLHNCQUFzQixDQUFDO0tBQ2pDLENBQUM7QUFDTixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFDLFNBQWlDO0lBQ3RFLE9BQU87UUFDSCxPQUFPLEVBQUUsZUFBZTtRQUN4QixLQUFLLEVBQUUsSUFBSTtRQUNYLFVBQVUsRUFBRSxDQUFDLHNCQUE4QyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7WUFDakUsc0JBQXNCLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLHNCQUFzQixDQUFDO0tBQ2pDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBGYWN0b3J5UHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRGFzaGJvYXJkV2lkZ2V0Q29uZmlnLCBXaWRnZXRMYXlvdXREZWZpbml0aW9uIH0gZnJvbSAnLi9kYXNoYm9hcmQtd2lkZ2V0LXR5cGVzJztcbmltcG9ydCB7IERhc2hib2FyZFdpZGdldFNlcnZpY2UgfSBmcm9tICcuL2Rhc2hib2FyZC13aWRnZXQuc2VydmljZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBSZWdpc3RlcnMgYSBkYXNoYm9hcmQgd2lkZ2V0LiBPbmNlIHJlZ2lzdGVyZWQsIHRoZSB3aWRnZXQgY2FuIGJlIHNldCBhcyBwYXJ0IG9mIHRoZSBkZWZhdWx0XG4gKiAodXNpbmcge0BsaW5rIHNldERhc2hib2FyZFdpZGdldExheW91dH0pLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJEYXNoYm9hcmRXaWRnZXQoaWQ6IHN0cmluZywgY29uZmlnOiBEYXNoYm9hcmRXaWRnZXRDb25maWcpOiBGYWN0b3J5UHJvdmlkZXIge1xuICAgIHJldHVybiB7XG4gICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIHVzZUZhY3Rvcnk6IChkYXNoYm9hcmRXaWRnZXRTZXJ2aWNlOiBEYXNoYm9hcmRXaWRnZXRTZXJ2aWNlKSA9PiAoKSA9PiB7XG4gICAgICAgICAgICBkYXNoYm9hcmRXaWRnZXRTZXJ2aWNlLnJlZ2lzdGVyV2lkZ2V0KGlkLCBjb25maWcpO1xuICAgICAgICB9LFxuICAgICAgICBkZXBzOiBbRGFzaGJvYXJkV2lkZ2V0U2VydmljZV0sXG4gICAgfTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFNldHMgdGhlIGRlZmF1bHQgd2lkZ2V0IGxheW91dCBmb3IgdGhlIEFkbWluIFVJIGRhc2hib2FyZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldERhc2hib2FyZFdpZGdldExheW91dChsYXlvdXREZWY6IFdpZGdldExheW91dERlZmluaXRpb24pOiBGYWN0b3J5UHJvdmlkZXIge1xuICAgIHJldHVybiB7XG4gICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIHVzZUZhY3Rvcnk6IChkYXNoYm9hcmRXaWRnZXRTZXJ2aWNlOiBEYXNoYm9hcmRXaWRnZXRTZXJ2aWNlKSA9PiAoKSA9PiB7XG4gICAgICAgICAgICBkYXNoYm9hcmRXaWRnZXRTZXJ2aWNlLnNldERlZmF1bHRMYXlvdXQobGF5b3V0RGVmKTtcbiAgICAgICAgfSxcbiAgICAgICAgZGVwczogW0Rhc2hib2FyZFdpZGdldFNlcnZpY2VdLFxuICAgIH07XG59XG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItZGFzaGJvYXJkLXdpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvcHJvdmlkZXJzL2Rhc2hib2FyZC13aWRnZXQvcmVnaXN0ZXItZGFzaGJvYXJkLXdpZGdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUdqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVwRTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUFDLEVBQVUsRUFBRSxNQUE2QjtJQUM3RSxPQUFPO1FBQ0gsT0FBTyxFQUFFLGVBQWU7UUFDeEIsS0FBSyxFQUFFLElBQUk7UUFDWCxVQUFVLEVBQUUsQ0FBQyxzQkFBOEMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQ2pFLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLHNCQUFzQixDQUFDO0tBQ2pDLENBQUM7QUFDTixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFDLFNBQWlDO0lBQ3RFLE9BQU87UUFDSCxPQUFPLEVBQUUsZUFBZTtRQUN4QixLQUFLLEVBQUUsSUFBSTtRQUNYLFVBQVUsRUFBRSxDQUFDLHNCQUE4QyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7WUFDakUsc0JBQXNCLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLHNCQUFzQixDQUFDO0tBQ2pDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBGYWN0b3J5UHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IERhc2hib2FyZFdpZGdldENvbmZpZywgV2lkZ2V0TGF5b3V0RGVmaW5pdGlvbiB9IGZyb20gJy4vZGFzaGJvYXJkLXdpZGdldC10eXBlcyc7XHJcbmltcG9ydCB7IERhc2hib2FyZFdpZGdldFNlcnZpY2UgfSBmcm9tICcuL2Rhc2hib2FyZC13aWRnZXQuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIFJlZ2lzdGVycyBhIGRhc2hib2FyZCB3aWRnZXQuIE9uY2UgcmVnaXN0ZXJlZCwgdGhlIHdpZGdldCBjYW4gYmUgc2V0IGFzIHBhcnQgb2YgdGhlIGRlZmF1bHRcclxuICogKHVzaW5nIHtAbGluayBzZXREYXNoYm9hcmRXaWRnZXRMYXlvdXR9KS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckRhc2hib2FyZFdpZGdldChpZDogc3RyaW5nLCBjb25maWc6IERhc2hib2FyZFdpZGdldENvbmZpZyk6IEZhY3RvcnlQcm92aWRlciB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICB1c2VGYWN0b3J5OiAoZGFzaGJvYXJkV2lkZ2V0U2VydmljZTogRGFzaGJvYXJkV2lkZ2V0U2VydmljZSkgPT4gKCkgPT4ge1xyXG4gICAgICAgICAgICBkYXNoYm9hcmRXaWRnZXRTZXJ2aWNlLnJlZ2lzdGVyV2lkZ2V0KGlkLCBjb25maWcpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZGVwczogW0Rhc2hib2FyZFdpZGdldFNlcnZpY2VdLFxyXG4gICAgfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBTZXRzIHRoZSBkZWZhdWx0IHdpZGdldCBsYXlvdXQgZm9yIHRoZSBBZG1pbiBVSSBkYXNoYm9hcmQuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0RGFzaGJvYXJkV2lkZ2V0TGF5b3V0KGxheW91dERlZjogV2lkZ2V0TGF5b3V0RGVmaW5pdGlvbik6IEZhY3RvcnlQcm92aWRlciB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICB1c2VGYWN0b3J5OiAoZGFzaGJvYXJkV2lkZ2V0U2VydmljZTogRGFzaGJvYXJkV2lkZ2V0U2VydmljZSkgPT4gKCkgPT4ge1xyXG4gICAgICAgICAgICBkYXNoYm9hcmRXaWRnZXRTZXJ2aWNlLnNldERlZmF1bHRMYXlvdXQobGF5b3V0RGVmKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGRlcHM6IFtEYXNoYm9hcmRXaWRnZXRTZXJ2aWNlXSxcclxuICAgIH07XHJcbn1cclxuIl19
@@ -1,7 +1,8 @@
1
1
  import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
2
2
  import { assertNever } from '@vendure/common/lib/shared-utils';
3
- import { Subject } from 'rxjs';
4
3
  import extend from 'just-extend';
4
+ import { Subject } from 'rxjs';
5
+ import { debounceTime, distinctUntilChanged, map, startWith } from 'rxjs/operators';
5
6
  import { DataTableFilter, } from './data-table-filter';
6
7
  export class FilterWithValue {
7
8
  constructor(filter, value, onUpdate) {
@@ -21,6 +22,9 @@ export class FilterWithValue {
21
22
  fn(value);
22
23
  }
23
24
  }
25
+ isId() {
26
+ return this.filter.type.kind === 'id';
27
+ }
24
28
  isText() {
25
29
  return this.filter.type.kind === 'text';
26
30
  }
@@ -52,7 +56,7 @@ export class DataTableFilterCollection {
52
56
  this.#activeFilters = [];
53
57
  this.#valueChanges$ = new Subject();
54
58
  this.#connectedToRouter = false;
55
- this.valueChanges = this.#valueChanges$.asObservable();
59
+ this.valueChanges = this.#valueChanges$.asObservable().pipe(debounceTime(10));
56
60
  this.#filtersQueryParamName = 'filters';
57
61
  }
58
62
  get length() {
@@ -74,6 +78,15 @@ export class DataTableFilterCollection {
74
78
  }
75
79
  return this;
76
80
  }
81
+ addIdFilter() {
82
+ this.addFilter({
83
+ name: 'id',
84
+ type: { kind: 'id' },
85
+ label: _('common.id'),
86
+ filterField: 'id',
87
+ });
88
+ return this;
89
+ }
77
90
  addDateFilters() {
78
91
  this.addFilter({
79
92
  name: 'createdAt',
@@ -148,29 +161,46 @@ export class DataTableFilterCollection {
148
161
  }, {});
149
162
  }
150
163
  connectToRoute(route) {
151
- this.valueChanges.subscribe(value => {
164
+ this.valueChanges.subscribe(() => {
152
165
  this.router.navigate(['./'], {
153
166
  queryParams: { [this.#filtersQueryParamName]: this.serialize(), page: 1 },
154
167
  relativeTo: route,
155
168
  queryParamsHandling: 'merge',
156
169
  });
157
170
  });
158
- const filterQueryParams = (route.snapshot.queryParamMap.get(this.#filtersQueryParamName) ?? '')
159
- .split(';')
160
- .map(value => value.split(':'))
161
- .map(([name, value]) => ({ name, value }));
162
- for (const { name, value } of filterQueryParams) {
163
- const filter = this.getFilter(name);
164
- if (filter) {
165
- const val = this.deserializeValue(filter, value);
166
- this.#activeFilters.push(this.createFacetWithValue(filter, val));
171
+ route.queryParamMap
172
+ .pipe(map(params => params.get(this.#filtersQueryParamName)), distinctUntilChanged(), startWith(route.snapshot.queryParamMap.get(this.#filtersQueryParamName) ?? ''))
173
+ .subscribe(value => {
174
+ this.#activeFilters = [];
175
+ if (value === '') {
176
+ this.#valueChanges$.next(this.#activeFilters);
177
+ return;
167
178
  }
168
- }
179
+ const filterQueryParams = (value ?? '')
180
+ .split(';')
181
+ .map(value => value.split(':'))
182
+ .map(([name, value]) => ({ name, value }));
183
+ for (const { name, value } of filterQueryParams) {
184
+ const filter = this.getFilter(name);
185
+ if (filter) {
186
+ const val = this.deserializeValue(filter, value);
187
+ filter.activate(val);
188
+ }
189
+ }
190
+ });
169
191
  this.#connectedToRouter = true;
170
192
  return this;
171
193
  }
194
+ serialize() {
195
+ return this.#activeFilters
196
+ .map((filterWithValue, i) => `${filterWithValue.filter.name}:${this.serializeValue(filterWithValue)}`)
197
+ .join(';');
198
+ }
172
199
  serializeValue(filterWithValue) {
173
- const valueAsType = (_filter, _value) => _value;
200
+ if (filterWithValue.isId()) {
201
+ const val = filterWithValue.value;
202
+ return `${val?.operator},${val?.term}`;
203
+ }
174
204
  if (filterWithValue.isText()) {
175
205
  const val = filterWithValue.value;
176
206
  return `${val?.operator},${val?.term}`;
@@ -199,6 +229,10 @@ export class DataTableFilterCollection {
199
229
  }
200
230
  deserializeValue(filter, value) {
201
231
  switch (filter.type.kind) {
232
+ case 'id': {
233
+ const [operator, term] = value.split(',');
234
+ return { operator, term };
235
+ }
202
236
  case 'text': {
203
237
  const [operator, term] = value.split(',');
204
238
  return { operator, term };
@@ -222,17 +256,12 @@ export class DataTableFilterCollection {
222
256
  assertNever(filter.type);
223
257
  }
224
258
  }
225
- serialize() {
226
- return this.#activeFilters
227
- .map((filterWithValue, i) => `${filterWithValue.filter.name}:${this.serializeValue(filterWithValue)}`)
228
- .join(';');
229
- }
230
259
  onActivateFilter(filter, value) {
231
- this.#activeFilters.push(this.createFacetWithValue(filter, value));
260
+ this.#activeFilters.push(this.createFilterWithValue(filter, value));
232
261
  this.#valueChanges$.next(this.#activeFilters);
233
262
  }
234
- createFacetWithValue(filter, value) {
263
+ createFilterWithValue(filter, value) {
235
264
  return new FilterWithValue(filter, value, v => this.#valueChanges$.next(v));
236
265
  }
237
266
  }
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1maWx0ZXItY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvcHJvdmlkZXJzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1maWx0ZXItY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQztBQU9qQyxPQUFPLEVBQ0gsZUFBZSxHQVVsQixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE1BQU0sT0FBTyxlQUFlO0lBRXhCLFlBQ29CLE1BQWtDLEVBQzNDLEtBQWlDLEVBQ3hDLFFBQXNEO1FBRnRDLFdBQU0sR0FBTixNQUFNLENBQTRCO1FBQzNDLFVBQUssR0FBTCxLQUFLLENBQTRCO1FBSHBDLGdCQUFXLEdBQUcsSUFBSSxHQUFHLEVBQStDLENBQUM7UUFNekUsSUFBSSxRQUFRLEVBQUU7WUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNsQztJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsRUFBK0M7UUFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFpQztRQUN6QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixLQUFLLE1BQU0sRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDL0IsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2I7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNGLE9BQU8sSUFB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RUFBRSxHQUFHLEVBQUUsQ0FBQztZQUMxQixLQUFLLFFBQVE7Z0JBQ1QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9DO2dCQUNJLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDaEM7SUFDTCxDQUFDO0lBRU8sU0FBUztRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWM7YUFDckIsR0FBRyxDQUNBLENBQUMsZUFBZSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQ25CLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUMvRTthQUNBLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsTUFBaUMsRUFBRSxLQUFnQztRQUN4RixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTyxvQkFBb0IsQ0FDeEIsTUFBaUMsRUFDakMsS0FBZ0Q7UUFFaEQsT0FBTyxJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xyXG5pbXBvcnQgeyBDdXN0b21GaWVsZFR5cGUgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC10eXBlcyc7XHJcbmltcG9ydCB7IGFzc2VydE5ldmVyIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCBleHRlbmQgZnJvbSAnanVzdC1leHRlbmQnO1xyXG5pbXBvcnQge1xyXG4gICAgQ3VzdG9tRmllbGRDb25maWcsXHJcbiAgICBEYXRlT3BlcmF0b3JzLFxyXG4gICAgTnVtYmVyT3BlcmF0b3JzLFxyXG4gICAgU3RyaW5nT3BlcmF0b3JzLFxyXG59IGZyb20gJy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5pbXBvcnQge1xyXG4gICAgRGF0YVRhYmxlRmlsdGVyLFxyXG4gICAgRGF0YVRhYmxlRmlsdGVyQm9vbGVhblR5cGUsXHJcbiAgICBEYXRhVGFibGVGaWx0ZXJDdXN0b21UeXBlLFxyXG4gICAgRGF0YVRhYmxlRmlsdGVyRGF0ZVJhbmdlVHlwZSxcclxuICAgIERhdGFUYWJsZUZpbHRlck51bWJlclR5cGUsXHJcbiAgICBEYXRhVGFibGVGaWx0ZXJPcHRpb25zLFxyXG4gICAgRGF0YVRhYmxlRmlsdGVyU2VsZWN0VHlwZSxcclxuICAgIERhdGFUYWJsZUZpbHRlclRleHRUeXBlLFxyXG4gICAgRGF0YVRhYmxlRmlsdGVyVHlwZSxcclxuICAgIERhdGFUYWJsZUZpbHRlclZhbHVlLFxyXG59IGZyb20gJy4vZGF0YS10YWJsZS1maWx0ZXInO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZpbHRlcldpdGhWYWx1ZTxUeXBlIGV4dGVuZHMgRGF0YVRhYmxlRmlsdGVyVHlwZSA9IERhdGFUYWJsZUZpbHRlclR5cGU+IHtcclxuICAgIHByaXZhdGUgb25VcGRhdGVGbnMgPSBuZXcgU2V0PCh2YWx1ZTogRGF0YVRhYmxlRmlsdGVyVmFsdWU8VHlwZT4pID0+IHZvaWQ+KCk7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgZmlsdGVyOiBEYXRhVGFibGVGaWx0ZXI8YW55LCBUeXBlPixcclxuICAgICAgICBwdWJsaWMgdmFsdWU6IERhdGFUYWJsZUZpbHRlclZhbHVlPFR5cGU+LFxyXG4gICAgICAgIG9uVXBkYXRlPzogKHZhbHVlOiBEYXRhVGFibGVGaWx0ZXJWYWx1ZTxUeXBlPikgPT4gdm9pZCxcclxuICAgICkge1xyXG4gICAgICAgIGlmIChvblVwZGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLm9uVXBkYXRlRm5zLmFkZChvblVwZGF0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uVXBkYXRlKGZuOiAodmFsdWU6IERhdGFUYWJsZUZpbHRlclZhbHVlPFR5cGU+KSA9PiB2b2lkKSB7XHJcbiAgICAgICAgdGhpcy5vblVwZGF0ZUZucy5hZGQoZm4pO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVZhbHVlKHZhbHVlOiBEYXRhVGFibGVGaWx0ZXJWYWx1ZTxUeXBlPikge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICBmb3IgKGNvbnN0IGZuIG9mIHRoaXMub25VcGRhdGVGbnMpIHtcclxuICAgICAgICAgICAgZm4odmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpc1RleHQoKTogdGhpcyBpcyBGaWx0ZXJXaXRoVmFsdWU8RGF0YVRhYmxlRmlsdGVyVGV4dFR5cGU+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIudHlwZS5raW5kID09PSAndGV4dCc7XHJcbiAgICB9XHJcblxyXG4gICAgaXNOdW1iZXIoKTogdGhpcyBpcyBGaWx0ZXJXaXRoVmFsdWU8RGF0YVRhYmxlRmlsdGVyTnVtYmVyVHlwZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlci50eXBlLmtpbmQgPT09ICdudW1iZXInO1xyXG4gICAgfVxyXG5cclxuICAgIGlzQm9vbGVhbigpOiB0aGlzIGlzIEZpbHRlcldpdGhWYWx1ZTxEYXRhVGFibGVGaWx0ZXJCb29sZWFuVHlwZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlci50eXBlLmtpbmQgPT09ICdib29sZWFuJztcclxuICAgIH1cclxuXHJcbiAgICBpc1NlbGVjdCgpOiB0aGlzIGlzIEZpbHRlcldpdGhWYWx1ZTxEYXRhVGFibGVGaWx0ZXJTZWxlY3RUeXBlPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyLnR5cGUua2luZCA9PT0gJ3NlbGVjdCc7XHJcbiAgICB9XHJcblxyXG4gICAgaXNEYXRlUmFuZ2UoKTogdGhpcyBpcyBGaWx0ZXJXaXRoVmFsdWU8RGF0YVRhYmxlRmlsdGVyRGF0ZVJhbmdlVHlwZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlci50eXBlLmtpbmQgPT09ICdkYXRlUmFuZ2UnO1xyXG4gICAgfVxyXG5cclxuICAgIGlzQ3VzdG9tKCk6IHRoaXMgaXMgRmlsdGVyV2l0aFZhbHVlPERhdGFUYWJsZUZpbHRlckN1c3RvbVR5cGU+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIudHlwZS5raW5kID09PSAnY3VzdG9tJztcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUZpbHRlckNvbGxlY3Rpb248RmlsdGVySW5wdXQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4ge1xyXG4gICAgcmVhZG9ubHkgI2ZpbHRlcnM6IEFycmF5PERhdGFUYWJsZUZpbHRlcjxGaWx0ZXJJbnB1dCwgYW55Pj4gPSBbXTtcclxuICAgICNhY3RpdmVGaWx0ZXJzOiBGaWx0ZXJXaXRoVmFsdWVbXSA9IFtdO1xyXG4gICAgI3ZhbHVlQ2hhbmdlcyQgPSBuZXcgU3ViamVjdDxGaWx0ZXJXaXRoVmFsdWVbXT4oKTtcclxuICAgICNjb25uZWN0ZWRUb1JvdXRlciA9IGZhbHNlO1xyXG4gICAgdmFsdWVDaGFuZ2VzID0gdGhpcy4jdmFsdWVDaGFuZ2VzJC5hc09ic2VydmFibGUoKTtcclxuICAgIHJlYWRvbmx5ICNmaWx0ZXJzUXVlcnlQYXJhbU5hbWUgPSAnZmlsdGVycyc7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge31cclxuXHJcbiAgICBnZXQgbGVuZ3RoKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuI2ZpbHRlcnMubGVuZ3RoO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBhY3RpdmVGaWx0ZXJzKCk6IEZpbHRlcldpdGhWYWx1ZVtdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy4jYWN0aXZlRmlsdGVycztcclxuICAgIH1cclxuXHJcbiAgICBhZGRGaWx0ZXI8RmlsdGVyVHlwZSBleHRlbmRzIERhdGFUYWJsZUZpbHRlclR5cGU+KFxyXG4gICAgICAgIGNvbmZpZzogRGF0YVRhYmxlRmlsdGVyT3B0aW9uczxGaWx0ZXJJbnB1dCwgRmlsdGVyVHlwZT4sXHJcbiAgICApOiBEYXRhVGFibGVGaWx0ZXJDb2xsZWN0aW9uPEZpbHRlcklucHV0PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuI2Nvbm5lY3RlZFRvUm91dGVyKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgICAgICAgICdDYW5ub3QgYWRkIGZpbHRlciBhZnRlciBjb25uZWN0aW5nIHRvIHJvdXRlci4gTWFrZSBzdXJlIHRvIGNhbGwgYWRkRmlsdGVyKCkgYmVmb3JlIGNvbm5lY3RUb1JvdXRlKCknLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLiNmaWx0ZXJzLnB1c2goXHJcbiAgICAgICAgICAgIG5ldyBEYXRhVGFibGVGaWx0ZXIoY29uZmlnLCAoZmlsdGVyLCB2YWx1ZSkgPT4gdGhpcy5vbkFjdGl2YXRlRmlsdGVyKGZpbHRlciwgdmFsdWUpKSxcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZEZpbHRlcnM8RmlsdGVyVHlwZSBleHRlbmRzIERhdGFUYWJsZUZpbHRlclR5cGU+KFxyXG4gICAgICAgIGNvbmZpZ3M6IEFycmF5PERhdGFUYWJsZUZpbHRlck9wdGlvbnM8RmlsdGVySW5wdXQsIEZpbHRlclR5cGU+PixcclxuICAgICk6IERhdGFUYWJsZUZpbHRlckNvbGxlY3Rpb248RmlsdGVySW5wdXQ+IHtcclxuICAgICAgICBmb3IgKGNvbnN0IGNvbmZpZyBvZiBjb25maWdzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkRmlsdGVyKGNvbmZpZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZERhdGVGaWx0ZXJzKCk6IEZpbHRlcklucHV0IGV4dGVuZHMge1xyXG4gICAgICAgIGNyZWF0ZWRBdD86IERhdGVPcGVyYXRvcnMgfCBudWxsO1xyXG4gICAgICAgIHVwZGF0ZWRBdD86IERhdGVPcGVyYXRvcnMgfCBudWxsO1xyXG4gICAgfVxyXG4gICAgICAgID8gRGF0YVRhYmxlRmlsdGVyQ29sbGVjdGlvbjxGaWx0ZXJJbnB1dD5cclxuICAgICAgICA6IG5ldmVyIHtcclxuICAgICAgICB0aGlzLmFkZEZpbHRlcih7XHJcbiAgICAgICAgICAgIG5hbWU6ICdjcmVhdGVkQXQnLFxyXG4gICAgICAgICAgICB0eXBlOiB7IGtpbmQ6ICdkYXRlUmFuZ2UnIH0sXHJcbiAgICAgICAgICAgIGxhYmVsOiBfKCdjb21tb24uY3JlYXRlZC1hdCcpLFxyXG4gICAgICAgICAgICBmaWx0ZXJGaWVsZDogJ2NyZWF0ZWRBdCcsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5hZGRGaWx0ZXIoe1xyXG4gICAgICAgICAgICBuYW1lOiAndXBkYXRlZEF0JyxcclxuICAgICAgICAgICAgdHlwZTogeyBraW5kOiAnZGF0ZVJhbmdlJyB9LFxyXG4gICAgICAgICAgICBsYWJlbDogXygnY29tbW9uLnVwZGF0ZWQtYXQnKSxcclxuICAgICAgICAgICAgZmlsdGVyRmllbGQ6ICd1cGRhdGVkQXQnLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB0aGlzIGFzIGFueTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRDdXN0b21GaWVsZEZpbHRlcnMoY3VzdG9tRmllbGRzOiBDdXN0b21GaWVsZENvbmZpZ1tdKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBjb25maWcgb2YgY3VzdG9tRmllbGRzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBjb25maWcudHlwZSBhcyBDdXN0b21GaWVsZFR5cGU7XHJcbiAgICAgICAgICAgIGlmIChjb25maWcubGlzdCkge1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IGZpbHRlclR5cGU6IERhdGFUYWJsZUZpbHRlclR5cGUgfCB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyVHlwZSA9IHsga2luZDogJ2Jvb2xlYW4nIH07XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdpbnQnOlxyXG4gICAgICAgICAgICAgICAgY2FzZSAnZmxvYXQnOlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlclR5cGUgPSB7IGtpbmQ6ICdudW1iZXInIH07XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdkYXRldGltZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyVHlwZSA9IHsga2luZDogJ2RhdGVSYW5nZScgfTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3N0cmluZyc6XHJcbiAgICAgICAgICAgICAgICBjYXNlICdsb2NhbGVTdHJpbmcnOlxyXG4gICAgICAgICAgICAgICAgY2FzZSAnbG9jYWxlVGV4dCc6XHJcbiAgICAgICAgICAgICAgICBjYXNlICd0ZXh0JzpcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJUeXBlID0geyBraW5kOiAndGV4dCcgfTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3JlbGF0aW9uJzpcclxuICAgICAgICAgICAgICAgICAgICAvLyBDYW5ub3Qgc29ydCByZWxhdGlvbnNcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgYXNzZXJ0TmV2ZXIodHlwZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGZpbHRlclR5cGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWRkRmlsdGVyKHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBjb25maWcubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBmaWx0ZXJUeXBlLFxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBjb25maWcubGFiZWwgPz8gY29uZmlnLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyRmllbGQ6IGNvbmZpZy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RmlsdGVyKG5hbWU6IHN0cmluZyk6IERhdGFUYWJsZUZpbHRlcjxGaWx0ZXJJbnB1dD4gfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLiNmaWx0ZXJzLmZpbmQoZiA9PiBmLm5hbWUgPT09IG5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEZpbHRlcnMoKTogQXJyYXk8RGF0YVRhYmxlRmlsdGVyPEZpbHRlcklucHV0Pj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLiNmaWx0ZXJzO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUFjdGl2ZUZpbHRlckF0SW5kZXgoaW5kZXg6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuI2FjdGl2ZUZpbHRlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB0aGlzLiN2YWx1ZUNoYW5nZXMkLm5leHQodGhpcy4jYWN0aXZlRmlsdGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlRmlsdGVySW5wdXQoKTogRmlsdGVySW5wdXQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLiNhY3RpdmVGaWx0ZXJzLnJlZHVjZSgoYWNjLCB7IGZpbHRlciwgdmFsdWUgfSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHZhbHVlICE9IG51bGwgPyBmaWx0ZXIudG9GaWx0ZXJJbnB1dCh2YWx1ZSkgOiB7fTtcclxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gZXh0ZW5kKHRydWUsIGFjYywgbmV3VmFsdWUpO1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0IGFzIEZpbHRlcklucHV0O1xyXG4gICAgICAgIH0sIHt9IGFzIEZpbHRlcklucHV0KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25uZWN0VG9Sb3V0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4vJ10sIHtcclxuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7IFt0aGlzLiNmaWx0ZXJzUXVlcnlQYXJhbU5hbWVdOiB0aGlzLnNlcmlhbGl6ZSgpLCBwYWdlOiAxIH0sXHJcbiAgICAgICAgICAgICAgICByZWxhdGl2ZVRvOiByb3V0ZSxcclxuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbnN0IGZpbHRlclF1ZXJ5UGFyYW1zID0gKHJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KHRoaXMuI2ZpbHRlcnNRdWVyeVBhcmFtTmFtZSkgPz8gJycpXHJcbiAgICAgICAgICAgIC5zcGxpdCgnOycpXHJcbiAgICAgICAgICAgIC5tYXAodmFsdWUgPT4gdmFsdWUuc3BsaXQoJzonKSlcclxuICAgICAgICAgICAgLm1hcCgoW25hbWUsIHZhbHVlXSkgPT4gKHsgbmFtZSwgdmFsdWUgfSkpO1xyXG4gICAgICAgIGZvciAoY29uc3QgeyBuYW1lLCB2YWx1ZSB9IG9mIGZpbHRlclF1ZXJ5UGFyYW1zKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZ2V0RmlsdGVyKG5hbWUpO1xyXG4gICAgICAgICAgICBpZiAoZmlsdGVyKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSB0aGlzLmRlc2VyaWFsaXplVmFsdWUoZmlsdGVyLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiNhY3RpdmVGaWx0ZXJzLnB1c2godGhpcy5jcmVhdGVGYWNldFdpdGhWYWx1ZShmaWx0ZXIsIHZhbCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuI2Nvbm5lY3RlZFRvUm91dGVyID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBzZXJpYWxpemVWYWx1ZTxUeXBlIGV4dGVuZHMgRGF0YVRhYmxlRmlsdGVyVHlwZT4oXHJcbiAgICAgICAgZmlsdGVyV2l0aFZhbHVlOiBGaWx0ZXJXaXRoVmFsdWU8VHlwZT4sXHJcbiAgICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlQXNUeXBlID0gPFQgZXh0ZW5kcyBEYXRhVGFibGVGaWx0ZXI8YW55LCBhbnk+PihcclxuICAgICAgICAgICAgX2ZpbHRlcjogVCxcclxuICAgICAgICAgICAgX3ZhbHVlOiBEYXRhVGFibGVGaWx0ZXJWYWx1ZTxhbnk+LFxyXG4gICAgICAgICk6IFQgZXh0ZW5kcyBEYXRhVGFibGVGaWx0ZXI8YW55LCBpbmZlciBSPiA/IERhdGFUYWJsZUZpbHRlclZhbHVlPFI+IDogYW55ID0+IF92YWx1ZTtcclxuXHJcbiAgICAgICAgaWYgKGZpbHRlcldpdGhWYWx1ZS5pc1RleHQoKSkge1xyXG4gICAgICAgICAgICBjb25zdCB2YWwgPSBmaWx0ZXJXaXRoVmFsdWUudmFsdWU7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt2YWw/Lm9wZXJhdG9yfSwke3ZhbD8udGVybX1gO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyV2l0aFZhbHVlLmlzTnVtYmVyKCkpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsID0gZmlsdGVyV2l0aFZhbHVlLnZhbHVlO1xyXG4gICAgICAgICAgICByZXR1cm4gYCR7dmFsLm9wZXJhdG9yfSwke3ZhbC5hbW91bnR9YDtcclxuICAgICAgICB9IGVsc2UgaWYgKGZpbHRlcldpdGhWYWx1ZS5pc1NlbGVjdCgpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IGZpbHRlcldpdGhWYWx1ZS52YWx1ZTtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbC5qb2luKCcsJyk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXJXaXRoVmFsdWUuaXNCb29sZWFuKCkpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsID0gZmlsdGVyV2l0aFZhbHVlLnZhbHVlO1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsID8gJzEnIDogJzAnO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyV2l0aFZhbHVlLmlzRGF0ZVJhbmdlKCkpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsID0gZmlsdGVyV2l0aFZhbHVlLnZhbHVlO1xyXG4gICAgICAgICAgICBjb25zdCBzdGFydCA9IHZhbC5zdGFydCA/IG5ldyBEYXRlKHZhbC5zdGFydCkuZ2V0VGltZSgpIDogJyc7XHJcbiAgICAgICAgICAgIGNvbnN0IGVuZCA9IHZhbC5lbmQgPyBuZXcgRGF0ZSh2YWwuZW5kKS5nZXRUaW1lKCkgOiAnJztcclxuICAgICAgICAgICAgcmV0dXJuIGAke3N0YXJ0fSwke2VuZH1gO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyV2l0aFZhbHVlLmlzQ3VzdG9tKCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZpbHRlcldpdGhWYWx1ZS5maWx0ZXIudHlwZS5zZXJpYWxpemVWYWx1ZShmaWx0ZXJXaXRoVmFsdWUudmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBkZXNlcmlhbGl6ZVZhbHVlKGZpbHRlcjogRGF0YVRhYmxlRmlsdGVyLCB2YWx1ZTogc3RyaW5nKTogRGF0YVRhYmxlRmlsdGVyVmFsdWU8RGF0YVRhYmxlRmlsdGVyVHlwZT4ge1xyXG4gICAgICAgIHN3aXRjaCAoZmlsdGVyLnR5cGUua2luZCkge1xyXG4gICAgICAgICAgICBjYXNlICd0ZXh0Jzoge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgW29wZXJhdG9yLCB0ZXJtXSA9IHZhbHVlLnNwbGl0KCcsJykgYXMgW2tleW9mIFN0cmluZ09wZXJhdG9ycywgc3RyaW5nXTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IG9wZXJhdG9yLCB0ZXJtIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzoge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgW29wZXJhdG9yLCBhbW91bnRdID0gdmFsdWUuc3BsaXQoJywnKSBhcyBba2V5b2YgTnVtYmVyT3BlcmF0b3JzLCBzdHJpbmddO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgb3BlcmF0b3IsIGFtb3VudDogK2Ftb3VudCB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhc2UgJ3NlbGVjdCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuc3BsaXQoJywnKTtcclxuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPT09ICcxJztcclxuICAgICAgICAgICAgY2FzZSAnZGF0ZVJhbmdlJzpcclxuICAgICAgICAgICAgICAgIGNvbnN0IFtzdGFydFRpbWVzdGFtcCwgZW5kVGltZXN0YW1wXSA9IHZhbHVlLnNwbGl0KCcsJyk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydCA9IHN0YXJ0VGltZXN0YW1wID8gbmV3IERhdGUoTnVtYmVyKHN0YXJ0VGltZXN0YW1wKSkudG9JU09TdHJpbmcoKSA6ICcnO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZW5kID0gZW5kVGltZXN0YW1wID8gbmV3IERhdGUoTnVtYmVyKGVuZFRpbWVzdGFtcCkpLnRvSVNPU3RyaW5nKCkgOiAnJztcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXJ0LCBlbmQgfTtcclxuICAgICAgICAgICAgY2FzZSAnY3VzdG9tJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXIudHlwZS5kZXNlcmlhbGl6ZVZhbHVlKHZhbHVlKTtcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGFzc2VydE5ldmVyKGZpbHRlci50eXBlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXJpYWxpemUoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy4jYWN0aXZlRmlsdGVyc1xyXG4gICAgICAgICAgICAubWFwKFxyXG4gICAgICAgICAgICAgICAgKGZpbHRlcldpdGhWYWx1ZSwgaSkgPT5cclxuICAgICAgICAgICAgICAgICAgICBgJHtmaWx0ZXJXaXRoVmFsdWUuZmlsdGVyLm5hbWV9OiR7dGhpcy5zZXJpYWxpemVWYWx1ZShmaWx0ZXJXaXRoVmFsdWUpfWAsXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLmpvaW4oJzsnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG9uQWN0aXZhdGVGaWx0ZXIoZmlsdGVyOiBEYXRhVGFibGVGaWx0ZXI8YW55LCBhbnk+LCB2YWx1ZTogRGF0YVRhYmxlRmlsdGVyVmFsdWU8YW55Pikge1xyXG4gICAgICAgIHRoaXMuI2FjdGl2ZUZpbHRlcnMucHVzaCh0aGlzLmNyZWF0ZUZhY2V0V2l0aFZhbHVlKGZpbHRlciwgdmFsdWUpKTtcclxuICAgICAgICB0aGlzLiN2YWx1ZUNoYW5nZXMkLm5leHQodGhpcy4jYWN0aXZlRmlsdGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVGYWNldFdpdGhWYWx1ZShcclxuICAgICAgICBmaWx0ZXI6IERhdGFUYWJsZUZpbHRlcjxhbnksIGFueT4sXHJcbiAgICAgICAgdmFsdWU6IERhdGFUYWJsZUZpbHRlclZhbHVlPERhdGFUYWJsZUZpbHRlclR5cGU+LFxyXG4gICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBGaWx0ZXJXaXRoVmFsdWUoZmlsdGVyLCB2YWx1ZSwgdiA9PiB0aGlzLiN2YWx1ZUNoYW5nZXMkLm5leHQodikpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1maWx0ZXItY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvcHJvdmlkZXJzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1maWx0ZXItY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRCxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVFwRixPQUFPLEVBQ0gsZUFBZSxHQVdsQixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE1BQU0sT0FBTyxlQUFlO0lBRXhCLFlBQ29CLE1BQWtDLEVBQzNDLEtBQWlDLEVBQ3hDLFFBQXNEO1FBRnRDLFdBQU0sR0FBTixNQUFNLENBQTRCO1FBQzNDLFVBQUssR0FBTCxLQUFLLENBQTRCO1FBSHBDLGdCQUFXLEdBQUcsSUFBSSxHQUFHLEVBQStDLENBQUM7UUFNekUsSUFBSSxRQUFRLEVBQUU7WUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNsQztJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsRUFBK0M7UUFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFpQztRQUN6QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixLQUFLLE1BQU0sRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFX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LGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDbkYsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM3RSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQzFCLEtBQUssUUFBUTtnQkFDVCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0M7Z0JBQ0ksV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNoQztJQUNMLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxNQUFpQyxFQUFFLEtBQWdDO1FBQ3hGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVPLHFCQUFxQixDQUN6QixNQUFpQyxFQUNqQyxLQUFnRDtRQUVoRCxPQUFPLElBQUksZUFBZSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBtYXJrZXIgYXMgXyB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcic7XHJcbmltcG9ydCB7IEN1c3RvbUZpZWxkVHlwZSB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLXR5cGVzJztcclxuaW1wb3J0IHsgYXNzZXJ0TmV2ZXIgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC11dGlscyc7XHJcbmltcG9ydCBleHRlbmQgZnJvbSAnanVzdC1leHRlbmQnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge1xyXG4gICAgQ3VzdG9tRmllbGRDb25maWcsXHJcbiAgICBEYXRlT3BlcmF0b3JzLFxyXG4gICAgSWRPcGVyYXRvcnMsXHJcbiAgICBOdW1iZXJPcGVyYXRvcnMsXHJcbiAgICBTdHJpbmdPcGVyYXRvcnMsXHJcbn0gZnJvbSAnLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XHJcbmltcG9ydCB7XHJcbiAgICBEYXRhVGFibGVGaWx0ZXIsXHJcbiAgICBEYXRhVGFibGVGaWx0ZXJCb29sZWFuVHlwZSxcclxuICAgIERhdGFUYWJsZUZpbHRlckN1c3RvbVR5cGUsXHJcbiAgICBEYXRhVGFibGVGaWx0ZXJEYXRlUmFuZ2VUeXBlLFxyXG4gICAgRGF0YVRhYmxlRmlsdGVySURUeXBlLFxyXG4gICAgRGF0YVRhYmxlRmlsdGVyTnVtYmVyVHlwZSxcclxuICAgIERhdGFUYWJsZUZpbHRlck9wdGlvbnMsXHJcbiAgICBEYXRhVGFibGVGaWx0ZXJTZWxlY3RUeXBlLFxyXG4gICAgRGF0YVRhYmxlRmlsdGVyVGV4dFR5cGUsXHJcbiAgICBEYXRhVGFibGVGaWx0ZXJUeXBlLFxyXG4gICAgRGF0YVRhYmxlRmlsdGVyVmFsdWUsXHJcbn0gZnJvbSAnLi9kYXRhLXRhYmxlLWZpbHRlcic7XHJcblxyXG5leHBvcnQgY2xhc3MgRmlsdGVyV2l0aFZhbHVlPFR5cGUgZXh0ZW5kcyBEYXRhVGFibGVGaWx0ZXJUeXBlID0gRGF0YVRhYmxlRmlsdGVyVHlwZT4ge1xyXG4gICAgcHJpdmF0ZSBvblVwZGF0ZUZucyA9IG5ldyBTZXQ8KHZhbHVlOiBEYXRhVGFibGVGaWx0ZXJWYWx1ZTxUeXBlPikgPT4gdm9pZD4oKTtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBmaWx0ZXI6IERhdGFUYWJsZUZpbHRlcjxhbnksIFR5cGU+LFxyXG4gICAgICAgIHB1YmxpYyB2YWx1ZTogRGF0YVRhYmxlRmlsdGVyVmFsdWU8VHlwZT4sXHJcbiAgICAgICAgb25VcGRhdGU/OiAodmFsdWU6IERhdGFUYWJsZUZpbHRlclZhbHVlPFR5cGU+KSA9PiB2b2lkLFxyXG4gICAgKSB7XHJcbiAgICAgICAgaWYgKG9uVXBkYXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25VcGRhdGVGbnMuYWRkKG9uVXBkYXRlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25VcGRhdGUoZm46ICh2YWx1ZTogRGF0YVRhYmxlRmlsdGVyVmFsdWU8VHlwZT4pID0+IHZvaWQpIHtcclxuICAgICAgICB0aGlzLm9uVXBkYXRlRm5zLmFkZChmbik7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlVmFsdWUodmFsdWU6IERhdGFUYWJsZUZpbHRlclZhbHVlPFR5cGU+KSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIGZvciAoY29uc3QgZm4gb2YgdGhpcy5vblVwZGF0ZUZucykge1xyXG4gICAgICAgICAgICBmbih2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlzSWQoKTogdGhpcyBpcyBGaWx0ZXJXaXRoVmFsdWU8RGF0YVRhYmxlRmlsdGVySURUeXBlPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyLnR5cGUua2luZCA9PT0gJ2lkJztcclxuICAgIH1cclxuXHJcbiAgICBpc1RleHQoKTogdGhpcyBpcyBGaWx0ZXJXaXRoVmFsdWU8RGF0YVRhYmxlRmlsdGVyVGV4dFR5cGU+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIudHlwZS5raW5kID09PSAndGV4dCc7XHJcbiAgICB9XHJcblxyXG4gICAgaXNOdW1iZXIoKTogdGhpcyBpcyBGaWx0ZXJXaXRoVmFsdWU8RGF0YVRhYmxlRmlsdGVyTnVtYmVyVHlwZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlci50eXBlLmtpbmQgPT09ICdudW1iZXInO1xyXG4gICAgfVxyXG5cclxuICAgIGlzQm9vbGVhbigpOiB0aGlzIGlzIEZpbHRlcldpdGhWYWx1ZTxEYXRhVGFibGVGaWx0ZXJCb29sZWFuVHlwZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlci50eXBlLmtpbmQgPT09ICdib29sZWFuJztcclxuICAgIH1cclxuXHJcbiAgICBpc1NlbGVjdCgpOiB0aGlzIGlzIEZpbHRlcldpdGhWYWx1ZTxEYXRhVGFibGVGaWx0ZXJTZWxlY3RUeXBlPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyLnR5cGUua2luZCA9PT0gJ3NlbGVjdCc7XHJcbiAgICB9XHJcblxyXG4gICAgaXNEYXRlUmFuZ2UoKTogdGhpcyBpcyBGaWx0ZXJXaXRoVmFsdWU8RGF0YVRhYmxlRmlsdGVyRGF0ZVJhbmdlVHlwZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlci50eXBlLmtpbmQgPT09ICdkYXRlUmFuZ2UnO1xyXG4gICAgfVxyXG5cclxuICAgIGlzQ3VzdG9tKCk6IHRoaXMgaXMgRmlsdGVyV2l0aFZhbHVlPERhdGFUYWJsZUZpbHRlckN1c3RvbVR5cGU+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIudHlwZS5raW5kID09PSAnY3VzdG9tJztcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUZpbHRlckNvbGxlY3Rpb248RmlsdGVySW5wdXQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4ge1xyXG4gICAgcmVhZG9ubHkgI2ZpbHRlcnM6IEFycmF5PERhdGFUYWJsZUZpbHRlcjxGaWx0ZXJJbnB1dCwgYW55Pj4gPSBbXTtcclxuICAgICNhY3RpdmVGaWx0ZXJzOiBGaWx0ZXJXaXRoVmFsdWVbXSA9IFtdO1xyXG4gICAgI3ZhbHVlQ2hhbmdlcyQgPSBuZXcgU3ViamVjdDxGaWx0ZXJXaXRoVmFsdWVbXT4oKTtcclxuICAgICNjb25uZWN0ZWRUb1JvdXRlciA9IGZhbHNlO1xyXG4gICAgdmFsdWVDaGFuZ2VzID0gdGhpcy4jdmFsdWVDaGFuZ2VzJC5hc09ic2VydmFibGUoKS5waXBlKGRlYm91bmNlVGltZSgxMCkpO1xyXG4gICAgcmVhZG9ubHkgI2ZpbHRlcnNRdWVyeVBhcmFtTmFtZSA9ICdmaWx0ZXJzJztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7fVxyXG5cclxuICAgIGdldCBsZW5ndGgoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy4jZmlsdGVycy5sZW5ndGg7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGFjdGl2ZUZpbHRlcnMoKTogRmlsdGVyV2l0aFZhbHVlW10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLiNhY3RpdmVGaWx0ZXJzO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZEZpbHRlcjxGaWx0ZXJUeXBlIGV4dGVuZHMgRGF0YVRhYmxlRmlsdGVyVHlwZT4oXHJcbiAgICAgICAgY29uZmlnOiBEYXRhVGFibGVGaWx0ZXJPcHRpb25zPEZpbHRlcklucHV0LCBGaWx0ZXJUeXBlPixcclxuICAgICk6IERhdGFUYWJsZUZpbHRlckNvbGxlY3Rpb248RmlsdGVySW5wdXQ+IHtcclxuICAgICAgICBpZiAodGhpcy4jY29ubmVjdGVkVG9Sb3V0ZXIpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgICAgICAgJ0Nhbm5vdCBhZGQgZmlsdGVyIGFmdGVyIGNvbm5lY3RpbmcgdG8gcm91dGVyLiBNYWtlIHN1cmUgdG8gY2FsbCBhZGRGaWx0ZXIoKSBiZWZvcmUgY29ubmVjdFRvUm91dGUoKScsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuI2ZpbHRlcnMucHVzaChcclxuICAgICAgICAgICAgbmV3IERhdGFUYWJsZUZpbHRlcihjb25maWcsIChmaWx0ZXIsIHZhbHVlKSA9PiB0aGlzLm9uQWN0aXZhdGVGaWx0ZXIoZmlsdGVyLCB2YWx1ZSkpLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkRmlsdGVyczxGaWx0ZXJUeXBlIGV4dGVuZHMgRGF0YVRhYmxlRmlsdGVyVHlwZT4oXHJcbiAgICAgICAgY29uZmlnczogQXJyYXk8RGF0YVRhYmxlRmlsdGVyT3B0aW9uczxGaWx0ZXJJbnB1dCwgRmlsdGVyVHlwZT4+LFxyXG4gICAgKTogRGF0YVRhYmxlRmlsdGVyQ29sbGVjdGlvbjxGaWx0ZXJJbnB1dD4ge1xyXG4gICAgICAgIGZvciAoY29uc3QgY29uZmlnIG9mIGNvbmZpZ3MpIHtcclxuICAgICAgICAgICAgdGhpcy5hZGRGaWx0ZXIoY29uZmlnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkSWRGaWx0ZXIoKTogRmlsdGVySW5wdXQgZXh0ZW5kcyB7XHJcbiAgICAgICAgaWQ/OiBJZE9wZXJhdG9ycyB8IG51bGw7XHJcbiAgICB9XHJcbiAgICAgICAgPyBEYXRhVGFibGVGaWx0ZXJDb2xsZWN0aW9uPEZpbHRlcklucHV0PlxyXG4gICAgICAgIDogbmV2ZXIge1xyXG4gICAgICAgIHRoaXMuYWRkRmlsdGVyKHtcclxuICAgICAgICAgICAgbmFtZTogJ2lkJyxcclxuICAgICAgICAgICAgdHlwZTogeyBraW5kOiAnaWQnIH0sXHJcbiAgICAgICAgICAgIGxhYmVsOiBfKCdjb21tb24uaWQnKSxcclxuICAgICAgICAgICAgZmlsdGVyRmllbGQ6ICdpZCcsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMgYXMgYW55O1xyXG4gICAgfVxyXG5cclxuICAgIGFkZERhdGVGaWx0ZXJzKCk6IEZpbHRlcklucHV0IGV4dGVuZHMge1xyXG4gICAgICAgIGNyZWF0ZWRBdD86IERhdGVPcGVyYXRvcnMgfCBudWxsO1xyXG4gICAgICAgIHVwZGF0ZWRBdD86IERhdGVPcGVyYXRvcnMgfCBudWxsO1xyXG4gICAgfVxyXG4gICAgICAgID8gRGF0YVRhYmxlRmlsdGVyQ29sbGVjdGlvbjxGaWx0ZXJJbnB1dD5cclxuICAgICAgICA6IG5ldmVyIHtcclxuICAgICAgICB0aGlzLmFkZEZpbHRlcih7XHJcbiAgICAgICAgICAgIG5hbWU6ICdjcmVhdGVkQXQnLFxyXG4gICAgICAgICAgICB0eXBlOiB7IGtpbmQ6ICdkYXRlUmFuZ2UnIH0sXHJcbiAgICAgICAgICAgIGxhYmVsOiBfKCdjb21tb24uY3JlYXRlZC1hdCcpLFxyXG4gICAgICAgICAgICBmaWx0ZXJGaWVsZDogJ2NyZWF0ZWRBdCcsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5hZGRGaWx0ZXIoe1xyXG4gICAgICAgICAgICBuYW1lOiAndXBkYXRlZEF0JyxcclxuICAgICAgICAgICAgdHlwZTogeyBraW5kOiAnZGF0ZVJhbmdlJyB9LFxyXG4gICAgICAgICAgICBsYWJlbDogXygnY29tbW9uLnVwZGF0ZWQtYXQnKSxcclxuICAgICAgICAgICAgZmlsdGVyRmllbGQ6ICd1cGRhdGVkQXQnLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB0aGlzIGFzIGFueTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRDdXN0b21GaWVsZEZpbHRlcnMoY3VzdG9tRmllbGRzOiBDdXN0b21GaWVsZENvbmZpZ1tdKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBjb25maWcgb2YgY3VzdG9tRmllbGRzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBjb25maWcudHlwZSBhcyBDdXN0b21GaWVsZFR5cGU7XHJcbiAgICAgICAgICAgIGlmIChjb25maWcubGlzdCkge1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IGZpbHRlclR5cGU6IERhdGFUYWJsZUZpbHRlclR5cGUgfCB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyVHlwZSA9IHsga2luZDogJ2Jvb2xlYW4nIH07XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdpbnQnOlxyXG4gICAgICAgICAgICAgICAgY2FzZSAnZmxvYXQnOlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlclR5cGUgPSB7IGtpbmQ6ICdudW1iZXInIH07XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdkYXRldGltZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyVHlwZSA9IHsga2luZDogJ2RhdGVSYW5nZScgfTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3N0cmluZyc6XHJcbiAgICAgICAgICAgICAgICBjYXNlICdsb2NhbGVTdHJpbmcnOlxyXG4gICAgICAgICAgICAgICAgY2FzZSAnbG9jYWxlVGV4dCc6XHJcbiAgICAgICAgICAgICAgICBjYXNlICd0ZXh0JzpcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJUeXBlID0geyBraW5kOiAndGV4dCcgfTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3JlbGF0aW9uJzpcclxuICAgICAgICAgICAgICAgICAgICAvLyBDYW5ub3Qgc29ydCByZWxhdGlvbnNcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgYXNzZXJ0TmV2ZXIodHlwZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGZpbHRlclR5cGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWRkRmlsdGVyKHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBjb25maWcubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBmaWx0ZXJUeXBlLFxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBjb25maWcubGFiZWwgPz8gY29uZmlnLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyRmllbGQ6IGNvbmZpZy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RmlsdGVyKG5hbWU6IHN0cmluZyk6IERhdGFUYWJsZUZpbHRlcjxGaWx0ZXJJbnB1dD4gfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLiNmaWx0ZXJzLmZpbmQoZiA9PiBmLm5hbWUgPT09IG5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEZpbHRlcnMoKTogQXJyYXk8RGF0YVRhYmxlRmlsdGVyPEZpbHRlcklucHV0Pj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLiNmaWx0ZXJzO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUFjdGl2ZUZpbHRlckF0SW5kZXgoaW5kZXg6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuI2FjdGl2ZUZpbHRlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB0aGlzLiN2YWx1ZUNoYW5nZXMkLm5leHQodGhpcy4jYWN0aXZlRmlsdGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlRmlsdGVySW5wdXQoKTogRmlsdGVySW5wdXQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLiNhY3RpdmVGaWx0ZXJzLnJlZHVjZSgoYWNjLCB7IGZpbHRlciwgdmFsdWUgfSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHZhbHVlICE9IG51bGwgPyBmaWx0ZXIudG9GaWx0ZXJJbnB1dCh2YWx1ZSkgOiB7fTtcclxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gZXh0ZW5kKHRydWUsIGFjYywgbmV3VmFsdWUpO1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0IGFzIEZpbHRlcklucHV0O1xyXG4gICAgICAgIH0sIHt9IGFzIEZpbHRlcklucHV0KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25uZWN0VG9Sb3V0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4vJ10sIHtcclxuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7IFt0aGlzLiNmaWx0ZXJzUXVlcnlQYXJhbU5hbWVdOiB0aGlzLnNlcmlhbGl6ZSgpLCBwYWdlOiAxIH0sXHJcbiAgICAgICAgICAgICAgICByZWxhdGl2ZVRvOiByb3V0ZSxcclxuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByb3V0ZS5xdWVyeVBhcmFtTWFwXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKHBhcmFtcyA9PiBwYXJhbXMuZ2V0KHRoaXMuI2ZpbHRlcnNRdWVyeVBhcmFtTmFtZSkpLFxyXG4gICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChyb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCh0aGlzLiNmaWx0ZXJzUXVlcnlQYXJhbU5hbWUpID8/ICcnKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuI2FjdGl2ZUZpbHRlcnMgPSBbXTtcclxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gJycpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLiN2YWx1ZUNoYW5nZXMkLm5leHQodGhpcy4jYWN0aXZlRmlsdGVycyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyUXVlcnlQYXJhbXMgPSAodmFsdWUgPz8gJycpXHJcbiAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCc7JylcclxuICAgICAgICAgICAgICAgICAgICAubWFwKHZhbHVlID0+IHZhbHVlLnNwbGl0KCc6JykpXHJcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgoW25hbWUsIHZhbHVlXSkgPT4gKHsgbmFtZSwgdmFsdWUgfSkpO1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB7IG5hbWUsIHZhbHVlIH0gb2YgZmlsdGVyUXVlcnlQYXJhbXMpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmdldEZpbHRlcihuYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbCA9IHRoaXMuZGVzZXJpYWxpemVWYWx1ZShmaWx0ZXIsIHZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyLmFjdGl2YXRlKHZhbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy4jY29ubmVjdGVkVG9Sb3V0ZXIgPSB0cnVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBzZXJpYWxpemUoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy4jYWN0aXZlRmlsdGVyc1xyXG4gICAgICAgICAgICAubWFwKFxyXG4gICAgICAgICAgICAgICAgKGZpbHRlcldpdGhWYWx1ZSwgaSkgPT5cclxuICAgICAgICAgICAgICAgICAgICBgJHtmaWx0ZXJXaXRoVmFsdWUuZmlsdGVyLm5hbWV9OiR7dGhpcy5zZXJpYWxpemVWYWx1ZShmaWx0ZXJXaXRoVmFsdWUpfWAsXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLmpvaW4oJzsnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNlcmlhbGl6ZVZhbHVlPFR5cGUgZXh0ZW5kcyBEYXRhVGFibGVGaWx0ZXJUeXBlPihcclxuICAgICAgICBmaWx0ZXJXaXRoVmFsdWU6IEZpbHRlcldpdGhWYWx1ZTxUeXBlPixcclxuICAgICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgaWYgKGZpbHRlcldpdGhWYWx1ZS5pc0lkKCkpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsID0gZmlsdGVyV2l0aFZhbHVlLnZhbHVlO1xyXG4gICAgICAgICAgICByZXR1cm4gYCR7dmFsPy5vcGVyYXRvcn0sJHt2YWw/LnRlcm19YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGZpbHRlcldpdGhWYWx1ZS5pc1RleHQoKSkge1xyXG4gICAgICAgICAgICBjb25zdCB2YWwgPSBmaWx0ZXJXaXRoVmFsdWUudmFsdWU7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt2YWw/Lm9wZXJhdG9yfSwke3ZhbD8udGVybX1gO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyV2l0aFZhbHVlLmlzTnVtYmVyKCkpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsID0gZmlsdGVyV2l0aFZhbHVlLnZhbHVlO1xyXG4gICAgICAgICAgICByZXR1cm4gYCR7dmFsLm9wZXJhdG9yfSwke3ZhbC5hbW91bnR9YDtcclxuICAgICAgICB9IGVsc2UgaWYgKGZpbHRlcldpdGhWYWx1ZS5pc1NlbGVjdCgpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IGZpbHRlcldpdGhWYWx1ZS52YWx1ZTtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbC5qb2luKCcsJyk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXJXaXRoVmFsdWUuaXNCb29sZWFuKCkpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsID0gZmlsdGVyV2l0aFZhbHVlLnZhbHVlO1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsID8gJzEnIDogJzAnO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyV2l0aFZhbHVlLmlzRGF0ZVJhbmdlKCkpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsID0gZmlsdGVyV2l0aFZhbHVlLnZhbHVlO1xyXG4gICAgICAgICAgICBjb25zdCBzdGFydCA9IHZhbC5zdGFydCA/IG5ldyBEYXRlKHZhbC5zdGFydCkuZ2V0VGltZSgpIDogJyc7XHJcbiAgICAgICAgICAgIGNvbnN0IGVuZCA9IHZhbC5lbmQgPyBuZXcgRGF0ZSh2YWwuZW5kKS5nZXRUaW1lKCkgOiAnJztcclxuICAgICAgICAgICAgcmV0dXJuIGAke3N0YXJ0fSwke2VuZH1gO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyV2l0aFZhbHVlLmlzQ3VzdG9tKCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZpbHRlcldpdGhWYWx1ZS5maWx0ZXIudHlwZS5zZXJpYWxpemVWYWx1ZShmaWx0ZXJXaXRoVmFsdWUudmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGRlc2VyaWFsaXplVmFsdWUoXHJcbiAgICAgICAgZmlsdGVyOiBEYXRhVGFibGVGaWx0ZXIsXHJcbiAgICAgICAgdmFsdWU6IHN0cmluZyxcclxuICAgICk6IERhdGFUYWJsZUZpbHRlclZhbHVlPERhdGFUYWJsZUZpbHRlclR5cGU+IHtcclxuICAgICAgICBzd2l0Y2ggKGZpbHRlci50eXBlLmtpbmQpIHtcclxuICAgICAgICAgICAgY2FzZSAnaWQnOiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBbb3BlcmF0b3IsIHRlcm1dID0gdmFsdWUuc3BsaXQoJywnKSBhcyBba2V5b2YgU3RyaW5nT3BlcmF0b3JzLCBzdHJpbmddO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgb3BlcmF0b3IsIHRlcm0gfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICd0ZXh0Jzoge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgW29wZXJhdG9yLCB0ZXJtXSA9IHZhbHVlLnNwbGl0KCcsJykgYXMgW2tleW9mIFN0cmluZ09wZXJhdG9ycywgc3RyaW5nXTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IG9wZXJhdG9yLCB0ZXJtIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzoge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgW29wZXJhdG9yLCBhbW91bnRdID0gdmFsdWUuc3BsaXQoJywnKSBhcyBba2V5b2YgTnVtYmVyT3BlcmF0b3JzLCBzdHJpbmddO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgb3BlcmF0b3IsIGFtb3VudDogK2Ftb3VudCB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhc2UgJ3NlbGVjdCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuc3BsaXQoJywnKTtcclxuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPT09ICcxJztcclxuICAgICAgICAgICAgY2FzZSAnZGF0ZVJhbmdlJzpcclxuICAgICAgICAgICAgICAgIGNvbnN0IFtzdGFydFRpbWVzdGFtcCwgZW5kVGltZXN0YW1wXSA9IHZhbHVlLnNwbGl0KCcsJyk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydCA9IHN0YXJ0VGltZXN0YW1wID8gbmV3IERhdGUoTnVtYmVyKHN0YXJ0VGltZXN0YW1wKSkudG9JU09TdHJpbmcoKSA6ICcnO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZW5kID0gZW5kVGltZXN0YW1wID8gbmV3IERhdGUoTnVtYmVyKGVuZFRpbWVzdGFtcCkpLnRvSVNPU3RyaW5nKCkgOiAnJztcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXJ0LCBlbmQgfTtcclxuICAgICAgICAgICAgY2FzZSAnY3VzdG9tJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXIudHlwZS5kZXNlcmlhbGl6ZVZhbHVlKHZhbHVlKTtcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGFzc2VydE5ldmVyKGZpbHRlci50eXBlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBvbkFjdGl2YXRlRmlsdGVyKGZpbHRlcjogRGF0YVRhYmxlRmlsdGVyPGFueSwgYW55PiwgdmFsdWU6IERhdGFUYWJsZUZpbHRlclZhbHVlPGFueT4pIHtcclxuICAgICAgICB0aGlzLiNhY3RpdmVGaWx0ZXJzLnB1c2godGhpcy5jcmVhdGVGaWx0ZXJXaXRoVmFsdWUoZmlsdGVyLCB2YWx1ZSkpO1xyXG4gICAgICAgIHRoaXMuI3ZhbHVlQ2hhbmdlcyQubmV4dCh0aGlzLiNhY3RpdmVGaWx0ZXJzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNyZWF0ZUZpbHRlcldpdGhWYWx1ZShcclxuICAgICAgICBmaWx0ZXI6IERhdGFUYWJsZUZpbHRlcjxhbnksIGFueT4sXHJcbiAgICAgICAgdmFsdWU6IERhdGFUYWJsZUZpbHRlclZhbHVlPERhdGFUYWJsZUZpbHRlclR5cGU+LFxyXG4gICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBGaWx0ZXJXaXRoVmFsdWUoZmlsdGVyLCB2YWx1ZSwgdiA9PiB0aGlzLiN2YWx1ZUNoYW5nZXMkLm5leHQodikpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==