@vendure/admin-ui 2.0.2 → 2.0.3

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 (122) hide show
  1. package/catalog/components/product-variant-list/product-variant-list-bulk-actions.d.ts +6 -0
  2. package/catalog/public_api.d.ts +1 -1
  3. package/core/common/base-detail.component.d.ts +1 -0
  4. package/core/common/component-registry-types.d.ts +2 -2
  5. package/core/common/generated-types.d.ts +13 -0
  6. package/core/common/version.d.ts +1 -1
  7. package/core/components/theme-switcher/theme-switcher.component.d.ts +1 -0
  8. package/core/data/definitions/product-definitions.d.ts +1 -0
  9. package/core/data/providers/product-data.service.d.ts +1 -0
  10. package/core/shared/components/data-table-filters/data-table-filters.component.d.ts +1 -0
  11. package/core/shared/components/dropdown/dropdown-menu.component.d.ts +2 -0
  12. package/core/shared/components/dropdown/dropdown.component.d.ts +1 -1
  13. package/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.d.ts +6 -0
  14. package/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.d.ts +5 -2
  15. package/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.d.ts +4 -2
  16. package/core/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.d.ts +8 -5
  17. package/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.d.ts +1 -4
  18. package/core/shared/dynamic-form-inputs/relation-form-input/customer/relation-customer-input.component.d.ts +0 -1
  19. package/core/shared/shared.module.d.ts +2 -1
  20. package/esm2022/catalog/catalog.module.mjs +5 -1
  21. package/esm2022/catalog/components/asset-list/asset-list.component.mjs +3 -3
  22. package/esm2022/catalog/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.mjs +11 -14
  23. package/esm2022/catalog/components/product-list/product-list.component.mjs +3 -3
  24. package/esm2022/catalog/components/product-options-editor/product-options-editor.component.mjs +1 -1
  25. package/esm2022/catalog/components/product-variant-detail/product-variant-detail.component.mjs +4 -5
  26. package/esm2022/catalog/components/product-variant-list/product-variant-list-bulk-actions.mjs +92 -0
  27. package/esm2022/catalog/components/product-variant-list/product-variant-list.component.mjs +5 -5
  28. package/esm2022/catalog/public_api.mjs +2 -2
  29. package/esm2022/core/common/base-detail.component.mjs +3 -3
  30. package/esm2022/core/common/base-list.component.mjs +2 -2
  31. package/esm2022/core/common/component-registry-types.mjs +1 -1
  32. package/esm2022/core/common/generated-types.mjs +2 -1
  33. package/esm2022/core/common/title-setter.mjs +1 -1
  34. package/esm2022/core/common/version.mjs +2 -2
  35. package/esm2022/core/components/base-nav/base-nav.component.mjs +1 -1
  36. package/esm2022/core/components/main-nav/main-nav.component.mjs +2 -2
  37. package/esm2022/core/components/theme-switcher/theme-switcher.component.mjs +15 -5
  38. package/esm2022/core/components/user-menu/user-menu.component.mjs +3 -3
  39. package/esm2022/core/data/definitions/product-definitions.mjs +9 -1
  40. package/esm2022/core/data/providers/interceptor.mjs +1 -1
  41. package/esm2022/core/data/providers/product-data.service.mjs +7 -2
  42. package/esm2022/core/data/utils/transform-relation-custom-field-inputs.mjs +2 -2
  43. package/esm2022/core/providers/bulk-action-registry/bulk-action-types.mjs +1 -1
  44. package/esm2022/core/providers/custom-field-component/custom-field-component.service.mjs +1 -1
  45. package/esm2022/core/providers/data-table/data-table-filter-collection.mjs +2 -2
  46. package/esm2022/core/providers/local-storage/local-storage.service.mjs +1 -1
  47. package/esm2022/core/providers/page/page.service.mjs +1 -1
  48. package/esm2022/core/shared/components/action-bar-items/action-bar-items.component.mjs +1 -1
  49. package/esm2022/core/shared/components/assign-to-channel-dialog/assign-to-channel-dialog.component.mjs +1 -1
  50. package/esm2022/core/shared/components/chip/chip.component.mjs +2 -2
  51. package/esm2022/core/shared/components/currency-code-selector/currency-code-selector.component.mjs +1 -1
  52. package/esm2022/core/shared/components/data-table/data-table.component.mjs +1 -1
  53. package/esm2022/core/shared/components/data-table-filters/data-table-filters.component.mjs +24 -15
  54. package/esm2022/core/shared/components/dropdown/dropdown-menu.component.mjs +65 -24
  55. package/esm2022/core/shared/components/dropdown/dropdown.component.mjs +1 -1
  56. package/esm2022/core/shared/components/facet-value-selector/facet-value-selector.component.mjs +3 -3
  57. package/esm2022/core/shared/components/language-code-selector/language-code-selector.component.mjs +1 -1
  58. package/esm2022/core/shared/components/rich-text-editor/prosemirror/custom-nodes.mjs +4 -3
  59. package/esm2022/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.mjs +16 -3
  60. package/esm2022/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.mjs +3 -1
  61. package/esm2022/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.mjs +7 -4
  62. package/esm2022/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.mjs +9 -8
  63. package/esm2022/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.mjs +3 -2
  64. package/esm2022/core/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.mjs +10 -5
  65. package/esm2022/core/shared/dynamic-form-inputs/register-dynamic-input-components.mjs +1 -1
  66. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.mjs +14 -15
  67. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/customer/relation-customer-input.component.mjs +1 -3
  68. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/product/relation-product-input.component.mjs +3 -3
  69. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/product-variant/relation-product-variant-input.component.mjs +3 -3
  70. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/relation-card/relation-card.component.mjs +3 -3
  71. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.mjs +2 -2
  72. package/esm2022/core/shared/pipes/state-i18n-token.pipe.mjs +1 -1
  73. package/esm2022/core/shared/shared.module.mjs +9 -4
  74. package/esm2022/customer/components/customer-detail/customer-detail.component.mjs +27 -27
  75. package/esm2022/customer/components/customer-list/customer-list.component.mjs +24 -24
  76. package/esm2022/customer/customer.module.mjs +9 -2
  77. package/esm2022/customer/customer.routes.mjs +1 -1
  78. package/esm2022/dashboard/components/dashboard/dashboard.component.mjs +1 -1
  79. package/esm2022/dashboard/default-widgets.mjs +2 -1
  80. package/esm2022/dashboard/widgets/order-chart-widget/order-chart-widget.component.mjs +12 -12
  81. package/esm2022/marketing/marketing.module.mjs +1 -1
  82. package/esm2022/order/components/order-detail/order-detail.component.mjs +8 -8
  83. package/esm2022/order/components/order-list/order-list.component.mjs +9 -2
  84. package/esm2022/order/components/order-table/order-table.component.mjs +3 -3
  85. package/esm2022/order/order.module.mjs +1 -1
  86. package/esm2022/order/order.routes.mjs +1 -1
  87. package/esm2022/settings/components/shipping-method-detail/shipping-method-detail.component.mjs +3 -3
  88. package/esm2022/settings/components/tax-rate-detail/tax-rate-detail.component.mjs +8 -8
  89. package/esm2022/settings/settings.module.mjs +1 -1
  90. package/fesm2022/vendure-admin-ui-catalog.mjs +109 -75
  91. package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
  92. package/fesm2022/vendure-admin-ui-core.mjs +190 -89
  93. package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
  94. package/fesm2022/vendure-admin-ui-customer.mjs +56 -49
  95. package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
  96. package/fesm2022/vendure-admin-ui-dashboard.mjs +12 -11
  97. package/fesm2022/vendure-admin-ui-dashboard.mjs.map +1 -1
  98. package/fesm2022/vendure-admin-ui-marketing.mjs.map +1 -1
  99. package/fesm2022/vendure-admin-ui-order.mjs +17 -10
  100. package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
  101. package/fesm2022/vendure-admin-ui-settings.mjs +9 -9
  102. package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
  103. package/package.json +19 -19
  104. package/static/i18n-messages/cs.json +772 -770
  105. package/static/i18n-messages/de.json +773 -771
  106. package/static/i18n-messages/en.json +773 -771
  107. package/static/i18n-messages/es.json +773 -771
  108. package/static/i18n-messages/fr.json +773 -771
  109. package/static/i18n-messages/it.json +773 -771
  110. package/static/i18n-messages/pl.json +773 -771
  111. package/static/i18n-messages/pt_BR.json +773 -771
  112. package/static/i18n-messages/pt_PT.json +773 -771
  113. package/static/i18n-messages/ru.json +773 -771
  114. package/static/i18n-messages/uk.json +773 -771
  115. package/static/i18n-messages/zh_Hans.json +773 -771
  116. package/static/i18n-messages/zh_Hant.json +773 -771
  117. package/static/styles/global/_buttons.scss +63 -49
  118. package/static/styles/global/_forms.scss +5 -1
  119. package/static/styles/theme/default.scss +2 -0
  120. package/static/theme.min.css +1 -1
  121. package/catalog/components/product-variant-list/product-list-bulk-actions.d.ts +0 -3
  122. package/esm2022/catalog/components/product-variant-list/product-list-bulk-actions.mjs +0 -55
@@ -1,3 +0,0 @@
1
- import { BulkAction } from '@vendure/admin-ui/core';
2
- import { ProductVariantListComponent } from './product-variant-list.component';
3
- export declare const deleteProductVariantsBulkAction: BulkAction<any, ProductVariantListComponent>;
@@ -1,55 +0,0 @@
1
- import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
2
- import { DataService, DeletionResult, ModalService, NotificationService, Permission, } from '@vendure/admin-ui/core';
3
- import { unique } from '@vendure/common/lib/unique';
4
- import { EMPTY } from 'rxjs';
5
- import { switchMap } from 'rxjs/operators';
6
- export const deleteProductVariantsBulkAction = {
7
- location: 'product-list',
8
- label: _('common.delete'),
9
- icon: 'trash',
10
- iconClass: 'is-danger',
11
- requiresPermission: userPermissions => userPermissions.includes(Permission.DeleteProduct) ||
12
- userPermissions.includes(Permission.DeleteCatalog),
13
- onClick: ({ injector, selection, hostComponent, clearSelection }) => {
14
- const modalService = injector.get(ModalService);
15
- const dataService = injector.get(DataService);
16
- const notificationService = injector.get(NotificationService);
17
- modalService
18
- .dialog({
19
- title: _('catalog.confirm-bulk-delete-products'),
20
- translationVars: {
21
- count: selection.length,
22
- },
23
- buttons: [
24
- { type: 'secondary', label: _('common.cancel') },
25
- { type: 'danger', label: _('common.delete'), returnValue: true },
26
- ],
27
- })
28
- .pipe(switchMap(response => response
29
- ? dataService.product.deleteProducts(unique(selection.map(p => p.productId)))
30
- : EMPTY))
31
- .subscribe(result => {
32
- let deleted = 0;
33
- const errors = [];
34
- for (const item of result.deleteProducts) {
35
- if (item.result === DeletionResult.DELETED) {
36
- deleted++;
37
- }
38
- else if (item.message) {
39
- errors.push(item.message);
40
- }
41
- }
42
- if (0 < deleted) {
43
- notificationService.success(_('catalog.notify-bulk-delete-products-success'), {
44
- count: deleted,
45
- });
46
- }
47
- if (0 < errors.length) {
48
- notificationService.error(errors.join('\n'));
49
- }
50
- hostComponent.refresh();
51
- clearSelection();
52
- });
53
- },
54
- };
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1saXN0LWJ1bGstYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnQtbGlzdC9wcm9kdWN0LWxpc3QtYnVsay1hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUVILFdBQVcsRUFDWCxjQUFjLEVBQ2QsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixVQUFVLEdBQ2IsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0MsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQWlEO0lBQ3pGLFFBQVEsRUFBRSxjQUFjO0lBQ3hCLEtBQUssRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDO0lBQ3pCLElBQUksRUFBRSxPQUFPO0lBQ2IsU0FBUyxFQUFFLFdBQVc7SUFDdEIsa0JBQWtCLEVBQUUsZUFBZSxDQUFDLEVBQUUsQ0FDbEMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQ2xELGVBQWUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN0RCxPQUFPLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUU7UUFDaEUsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sbUJBQW1CLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzlELFlBQVk7YUFDUCxNQUFNLENBQUM7WUFDSixLQUFLLEVBQUUsQ0FBQyxDQUFDLHNDQUFzQyxDQUFDO1lBQ2hELGVBQWUsRUFBRTtnQkFDYixLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU07YUFDMUI7WUFDRCxPQUFPLEVBQUU7Z0JBQ0wsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQUU7Z0JBQ2hELEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7YUFDbkU7U0FDSixDQUFDO2FBQ0QsSUFBSSxDQUNELFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUNqQixRQUFRO1lBQ0osQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDN0UsQ0FBQyxDQUFDLEtBQUssQ0FDZCxDQUNKO2FBQ0EsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2hCLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztZQUNoQixNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7WUFDNUIsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsY0FBYyxFQUFFO2dCQUN0QyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssY0FBYyxDQUFDLE9BQU8sRUFBRTtvQkFDeEMsT0FBTyxFQUFFLENBQUM7aUJBQ2I7cUJBQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO29CQUNyQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDN0I7YUFDSjtZQUNELElBQUksQ0FBQyxHQUFHLE9BQU8sRUFBRTtnQkFDYixtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLDZDQUE2QyxDQUFDLEVBQUU7b0JBQzFFLEtBQUssRUFBRSxPQUFPO2lCQUNqQixDQUFDLENBQUM7YUFDTjtZQUNELElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUU7Z0JBQ25CLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDaEQ7WUFDRCxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDeEIsY0FBYyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcclxuaW1wb3J0IHtcclxuICAgIEJ1bGtBY3Rpb24sXHJcbiAgICBEYXRhU2VydmljZSxcclxuICAgIERlbGV0aW9uUmVzdWx0LFxyXG4gICAgTW9kYWxTZXJ2aWNlLFxyXG4gICAgTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgIFBlcm1pc3Npb24sXHJcbn0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcbmltcG9ydCB7IHVuaXF1ZSB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvdW5pcXVlJztcclxuaW1wb3J0IHsgRU1QVFkgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgUHJvZHVjdFZhcmlhbnRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9wcm9kdWN0LXZhcmlhbnQtbGlzdC5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRlbGV0ZVByb2R1Y3RWYXJpYW50c0J1bGtBY3Rpb246IEJ1bGtBY3Rpb248YW55LCBQcm9kdWN0VmFyaWFudExpc3RDb21wb25lbnQ+ID0ge1xyXG4gICAgbG9jYXRpb246ICdwcm9kdWN0LWxpc3QnLFxyXG4gICAgbGFiZWw6IF8oJ2NvbW1vbi5kZWxldGUnKSxcclxuICAgIGljb246ICd0cmFzaCcsXHJcbiAgICBpY29uQ2xhc3M6ICdpcy1kYW5nZXInLFxyXG4gICAgcmVxdWlyZXNQZXJtaXNzaW9uOiB1c2VyUGVybWlzc2lvbnMgPT5cclxuICAgICAgICB1c2VyUGVybWlzc2lvbnMuaW5jbHVkZXMoUGVybWlzc2lvbi5EZWxldGVQcm9kdWN0KSB8fFxyXG4gICAgICAgIHVzZXJQZXJtaXNzaW9ucy5pbmNsdWRlcyhQZXJtaXNzaW9uLkRlbGV0ZUNhdGFsb2cpLFxyXG4gICAgb25DbGljazogKHsgaW5qZWN0b3IsIHNlbGVjdGlvbiwgaG9zdENvbXBvbmVudCwgY2xlYXJTZWxlY3Rpb24gfSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG1vZGFsU2VydmljZSA9IGluamVjdG9yLmdldChNb2RhbFNlcnZpY2UpO1xyXG4gICAgICAgIGNvbnN0IGRhdGFTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KERhdGFTZXJ2aWNlKTtcclxuICAgICAgICBjb25zdCBub3RpZmljYXRpb25TZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KE5vdGlmaWNhdGlvblNlcnZpY2UpO1xyXG4gICAgICAgIG1vZGFsU2VydmljZVxyXG4gICAgICAgICAgICAuZGlhbG9nKHtcclxuICAgICAgICAgICAgICAgIHRpdGxlOiBfKCdjYXRhbG9nLmNvbmZpcm0tYnVsay1kZWxldGUtcHJvZHVjdHMnKSxcclxuICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uVmFyczoge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvdW50OiBzZWxlY3Rpb24ubGVuZ3RoLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGJ1dHRvbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICdzZWNvbmRhcnknLCBsYWJlbDogXygnY29tbW9uLmNhbmNlbCcpIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAnZGFuZ2VyJywgbGFiZWw6IF8oJ2NvbW1vbi5kZWxldGUnKSwgcmV0dXJuVmFsdWU6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHJlc3BvbnNlID0+XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBkYXRhU2VydmljZS5wcm9kdWN0LmRlbGV0ZVByb2R1Y3RzKHVuaXF1ZShzZWxlY3Rpb24ubWFwKHAgPT4gcC5wcm9kdWN0SWQpKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBFTVBUWSxcclxuICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IGRlbGV0ZWQgPSAwO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHJlc3VsdC5kZWxldGVQcm9kdWN0cykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtLnJlc3VsdCA9PT0gRGVsZXRpb25SZXN1bHQuREVMRVRFRCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGVkKys7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVtLm1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLnB1c2goaXRlbS5tZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoMCA8IGRlbGV0ZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnY2F0YWxvZy5ub3RpZnktYnVsay1kZWxldGUtcHJvZHVjdHMtc3VjY2VzcycpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50OiBkZWxldGVkLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKDAgPCBlcnJvcnMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihlcnJvcnMuam9pbignXFxuJykpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaG9zdENvbXBvbmVudC5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgICAgICBjbGVhclNlbGVjdGlvbigpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH0sXHJcbn07XHJcbiJdfQ==