@vendure/admin-ui 1.5.0 → 1.6.0

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 (123) hide show
  1. package/bundles/vendure-admin-ui-catalog.umd.js +236 -195
  2. package/bundles/vendure-admin-ui-catalog.umd.js.map +1 -1
  3. package/bundles/vendure-admin-ui-core.umd.js +2358 -1843
  4. package/bundles/vendure-admin-ui-core.umd.js.map +1 -1
  5. package/bundles/vendure-admin-ui-dashboard.umd.js +2 -2
  6. package/bundles/vendure-admin-ui-login.umd.js +2 -2
  7. package/bundles/vendure-admin-ui-login.umd.js.map +1 -1
  8. package/bundles/vendure-admin-ui-marketing.umd.js +1 -1
  9. package/bundles/vendure-admin-ui-marketing.umd.js.map +1 -1
  10. package/bundles/vendure-admin-ui-order.umd.js +3 -3
  11. package/bundles/vendure-admin-ui-order.umd.js.map +1 -1
  12. package/catalog/components/collection-contents/collection-contents.component.d.ts +7 -2
  13. package/catalog/components/collection-detail/collection-detail.component.d.ts +12 -4
  14. package/catalog/components/collection-list/collection-list.component.d.ts +2 -0
  15. package/catalog/components/collection-tree/array-to-tree.d.ts +1 -1
  16. package/catalog/components/collection-tree/collection-tree-node.component.d.ts +5 -1
  17. package/catalog/components/collection-tree/collection-tree.component.d.ts +1 -0
  18. package/catalog/components/product-variants-list/product-variants-list.component.d.ts +1 -0
  19. package/catalog/providers/product-detail/product-detail.service.d.ts +2 -2
  20. package/catalog/public_api.d.ts +0 -1
  21. package/catalog/vendure-admin-ui-catalog.metadata.json +1 -1
  22. package/core/common/generated-types.d.ts +57 -3
  23. package/core/common/utilities/selection-manager.d.ts +23 -0
  24. package/core/common/version.d.ts +1 -1
  25. package/core/components/app-shell/app-shell.component.d.ts +1 -0
  26. package/core/data/definitions/collection-definitions.d.ts +1 -0
  27. package/core/data/providers/collection-data.service.d.ts +6 -2
  28. package/core/providers/local-storage/local-storage.service.d.ts +1 -0
  29. package/core/public_api.d.ts +5 -0
  30. package/core/shared/components/asset-gallery/asset-gallery.component.d.ts +21 -6
  31. package/core/shared/components/configurable-input/configurable-input.component.d.ts +7 -2
  32. package/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.d.ts +35 -0
  33. package/{catalog → core/shared}/components/product-search-input/product-search-input.component.d.ts +1 -1
  34. package/core/shared/components/select-toggle/select-toggle.component.d.ts +1 -0
  35. package/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.d.ts +25 -0
  36. package/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.d.ts +20 -0
  37. package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +3 -1
  38. package/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.d.ts +5 -2
  39. package/core/vendure-admin-ui-core.metadata.json +1 -1
  40. package/dashboard/vendure-admin-ui-dashboard.metadata.json +1 -1
  41. package/esm2015/catalog/catalog.module.js +1 -3
  42. package/esm2015/catalog/components/assets/assets.component.js +1 -1
  43. package/esm2015/catalog/components/collection-contents/collection-contents.component.js +51 -14
  44. package/esm2015/catalog/components/collection-detail/collection-detail.component.js +67 -29
  45. package/esm2015/catalog/components/collection-list/collection-list.component.js +30 -4
  46. package/esm2015/catalog/components/collection-tree/array-to-tree.js +3 -3
  47. package/esm2015/catalog/components/collection-tree/collection-tree-node.component.js +27 -4
  48. package/esm2015/catalog/components/collection-tree/collection-tree.component.js +4 -2
  49. package/esm2015/catalog/components/facet-detail/facet-detail.component.js +3 -3
  50. package/esm2015/catalog/components/product-detail/product-detail.component.js +1 -1
  51. package/esm2015/catalog/components/product-list/product-list.component.js +3 -3
  52. package/esm2015/catalog/components/product-variants-list/product-variants-list.component.js +10 -3
  53. package/esm2015/catalog/public_api.js +1 -2
  54. package/esm2015/core/app.component.module.js +1 -1
  55. package/esm2015/core/common/base-detail.component.js +1 -1
  56. package/esm2015/core/common/deactivate-aware.js +1 -1
  57. package/esm2015/core/common/generated-types.js +26 -1
  58. package/esm2015/core/common/introspection-result.js +255 -189
  59. package/esm2015/core/common/utilities/configurable-operation-utils.js +21 -3
  60. package/esm2015/core/common/utilities/selection-manager.js +64 -0
  61. package/esm2015/core/common/version.js +2 -2
  62. package/esm2015/core/components/app-shell/app-shell.component.js +4 -3
  63. package/esm2015/core/core.module.js +1 -1
  64. package/esm2015/core/data/definitions/collection-definitions.js +18 -1
  65. package/esm2015/core/data/definitions/order-definitions.js +2 -1
  66. package/esm2015/core/data/definitions/shared-definitions.js +29 -28
  67. package/esm2015/core/data/providers/collection-data.service.js +5 -2
  68. package/esm2015/core/providers/local-storage/local-storage.service.js +1 -1
  69. package/esm2015/core/public_api.js +6 -1
  70. package/esm2015/core/shared/components/asset-gallery/asset-gallery.component.js +24 -42
  71. package/esm2015/core/shared/components/asset-preview/asset-preview.component.js +4 -4
  72. package/esm2015/core/shared/components/configurable-input/configurable-input.component.js +13 -3
  73. package/esm2015/core/shared/components/help-tooltip/help-tooltip.component.js +1 -1
  74. package/esm2015/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.js +129 -0
  75. package/esm2015/core/shared/components/product-search-input/product-search-input.component.js +104 -0
  76. package/esm2015/core/shared/components/rich-text-editor/rich-text-editor.component.js +1 -1
  77. package/esm2015/core/shared/components/select-toggle/select-toggle.component.js +5 -3
  78. package/esm2015/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.js +45 -0
  79. package/esm2015/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.js +53 -0
  80. package/esm2015/core/shared/dynamic-form-inputs/register-dynamic-input-components.js +5 -1
  81. package/esm2015/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.js +8 -7
  82. package/esm2015/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.js +1 -1
  83. package/esm2015/core/shared/shared.module.js +9 -1
  84. package/esm2015/dashboard/components/dashboard/dashboard.component.js +1 -1
  85. package/esm2015/dashboard/widgets/order-summary-widget/order-summary-widget.component.js +1 -1
  86. package/esm2015/login/components/login/login.component.js +3 -3
  87. package/esm2015/marketing/components/promotion-detail/promotion-detail.component.js +2 -2
  88. package/esm2015/order/components/order-editor/order-editor.component.js +1 -1
  89. package/esm2015/order/components/order-list/order-list.component.js +2 -2
  90. package/esm2015/order/components/order-table/order-table.component.js +1 -1
  91. package/fesm2015/vendure-admin-ui-catalog.js +191 -160
  92. package/fesm2015/vendure-admin-ui-catalog.js.map +1 -1
  93. package/fesm2015/vendure-admin-ui-core.js +2203 -1696
  94. package/fesm2015/vendure-admin-ui-core.js.map +1 -1
  95. package/fesm2015/vendure-admin-ui-dashboard.js +2 -2
  96. package/fesm2015/vendure-admin-ui-login.js +2 -2
  97. package/fesm2015/vendure-admin-ui-login.js.map +1 -1
  98. package/fesm2015/vendure-admin-ui-marketing.js +1 -1
  99. package/fesm2015/vendure-admin-ui-marketing.js.map +1 -1
  100. package/fesm2015/vendure-admin-ui-order.js +3 -3
  101. package/fesm2015/vendure-admin-ui-order.js.map +1 -1
  102. package/login/vendure-admin-ui-login.metadata.json +1 -1
  103. package/marketing/vendure-admin-ui-marketing.metadata.json +1 -1
  104. package/order/vendure-admin-ui-order.metadata.json +1 -1
  105. package/package.json +5 -5
  106. package/static/i18n-messages/cs.json +9 -0
  107. package/static/i18n-messages/de.json +9 -0
  108. package/static/i18n-messages/en.json +10 -1
  109. package/static/i18n-messages/es.json +9 -0
  110. package/static/i18n-messages/fr.json +9 -0
  111. package/static/i18n-messages/it.json +9 -0
  112. package/static/i18n-messages/pl.json +9 -0
  113. package/static/i18n-messages/pt_BR.json +9 -0
  114. package/static/i18n-messages/pt_PT.json +9 -0
  115. package/static/i18n-messages/ru.json +9 -0
  116. package/static/i18n-messages/uk.json +9 -0
  117. package/static/i18n-messages/zh_Hans.json +9 -0
  118. package/static/i18n-messages/zh_Hant.json +9 -0
  119. package/static/styles/global/_forms.scss +4 -5
  120. package/static/styles/global/_overrides.scss +10 -0
  121. package/static/styles/theme/default.scss +13 -1
  122. package/static/theme.min.css +1 -1
  123. package/esm2015/catalog/components/product-search-input/product-search-input.component.js +0 -104
@@ -134,8 +134,8 @@ export class ProductListComponent extends BaseListComponent {
134
134
  ProductListComponent.decorators = [
135
135
  { type: Component, args: [{
136
136
  selector: 'vdr-products-list',
137
- template: "<vdr-action-bar>\r\n <vdr-ab-left [grow]=\"true\">\r\n <div class=\"search-form\">\r\n <vdr-product-search-input\r\n #productSearchInputComponent\r\n [facetValueResults]=\"facetValues$ | async\"\r\n (searchTermChange)=\"setSearchTerm($event)\"\r\n (facetValueChange)=\"setFacetValueIds($event)\"\r\n ></vdr-product-search-input>\r\n <vdr-dropdown class=\"search-settings-menu mr3\">\r\n <button\r\n type=\"button\"\r\n class=\"icon-button search-index-button\"\r\n [title]=\"\r\n (pendingSearchIndexUpdates\r\n ? 'catalog.pending-search-index-updates'\r\n : 'catalog.search-index-controls'\r\n ) | translate\r\n \"\r\n vdrDropdownTrigger\r\n >\r\n <clr-icon shape=\"cog\"></clr-icon>\r\n <vdr-status-badge *ngIf=\"pendingSearchIndexUpdates\" type=\"warning\"> </vdr-status-badge>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <h4 class=\"dropdown-header\">{{ 'catalog.search-index-controls' | translate }}</h4>\r\n <ng-container *ngIf=\"pendingSearchIndexUpdates\">\r\n <button\r\n type=\"button\"\r\n class=\"run-updates-button\"\r\n vdrDropdownItem\r\n (click)=\"runPendingSearchIndexUpdates()\"\r\n [disabled]=\"!(['UpdateCatalog', 'UpdateProduct'] | hasPermission)\"\r\n >\r\n <vdr-status-badge type=\"warning\"> </vdr-status-badge>\r\n {{\r\n 'catalog.run-pending-search-index-updates'\r\n | translate: { count: pendingSearchIndexUpdates }\r\n }}\r\n </button>\r\n <div class=\"dropdown-divider\"></div>\r\n </ng-container>\r\n <button\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"rebuildSearchIndex()\"\r\n [disabled]=\"!(['UpdateCatalog', 'UpdateProduct'] | hasPermission)\"\r\n >\r\n {{ 'catalog.rebuild-search-index' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n <div class=\"flex wrap\">\r\n <clr-checkbox-wrapper class=\"mt2\">\r\n <input type=\"checkbox\" clrCheckbox [(ngModel)]=\"groupByProduct\" (ngModelChange)=\"refresh()\" />\r\n <label>{{ 'catalog.group-by-product' | translate }}</label>\r\n </clr-checkbox-wrapper>\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n </div>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"product-list\"></vdr-action-bar-items>\r\n <a\r\n class=\"btn btn-primary\"\r\n [routerLink]=\"['./create']\"\r\n *vdrIfPermissions=\"['CreateCatalog', 'CreateProduct']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n <span class=\"full-label\">{{ 'catalog.create-new-product' | translate }}</span>\r\n </a>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<vdr-data-table\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <ng-template let-result=\"item\">\r\n <td class=\"left align-middle\" [class.disabled]=\"!result.enabled\">\r\n <div class=\"image-placeholder\">\r\n <img\r\n *ngIf=\"\r\n groupByProduct\r\n ? result.productAsset\r\n : result.productVariantAsset || result.productAsset as asset;\r\n else imagePlaceholder\r\n \"\r\n [src]=\"asset | assetPreview: 'tiny'\"\r\n />\r\n <ng-template #imagePlaceholder>\r\n <div class=\"placeholder\">\r\n <clr-icon shape=\"image\" size=\"48\"></clr-icon>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </td>\r\n <td class=\"left align-middle\" [class.disabled]=\"!result.enabled\">\r\n {{ groupByProduct ? result.productName : result.productVariantName }}\r\n </td>\r\n <td class=\"align-middle\" [class.disabled]=\"!result.enabled\">\r\n <vdr-chip *ngIf=\"!result.enabled\">{{ 'common.disabled' | translate }}</vdr-chip>\r\n </td>\r\n <td class=\"right align-middle\" [class.disabled]=\"!result.enabled\">\r\n <vdr-table-row-action\r\n iconShape=\"edit\"\r\n [label]=\"'common.edit' | translate\"\r\n [linkTo]=\"['./', result.productId]\"\r\n ></vdr-table-row-action>\r\n </td>\r\n <td class=\"right align-middle\" [class.disabled]=\"!result.enabled\">\r\n <vdr-dropdown>\r\n <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger>\r\n {{ 'common.actions' | translate }}\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n type=\"button\"\r\n class=\"delete-button\"\r\n (click)=\"deleteProduct(result.productId)\"\r\n [disabled]=\"!(['DeleteCatalog', 'DeleteProduct'] | hasPermission)\"\r\n vdrDropdownItem\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </td>\r\n </ng-template>\r\n</vdr-data-table>\r\n",
138
- styles: [".image-placeholder{width:50px;height:50px;background-color:var(--color-component-bg-200)}.image-placeholder .placeholder{text-align:center;color:var(--color-grey-300)}.search-form{display:flex;align-items:center;width:100%;margin-bottom:6px}.search-input{min-width:300px}@media screen and (max-width: 768px){.search-input{min-width:100px}}.search-settings-menu{margin:0 12px}td.disabled{background-color:var(--color-component-bg-200)}.search-index-button{position:relative}.search-index-button vdr-status-badge{right:0;top:0}.run-updates-button{position:relative}.run-updates-button vdr-status-badge{left:10px;top:10px}\n"]
137
+ template: "<vdr-action-bar>\r\n <vdr-ab-left [grow]=\"true\">\r\n <div class=\"search-form\">\r\n <vdr-product-search-input\r\n #productSearchInputComponent\r\n [facetValueResults]=\"facetValues$ | async\"\r\n (searchTermChange)=\"setSearchTerm($event)\"\r\n (facetValueChange)=\"setFacetValueIds($event)\"\r\n ></vdr-product-search-input>\r\n <vdr-dropdown class=\"search-settings-menu mr3\">\r\n <button\r\n type=\"button\"\r\n class=\"icon-button search-index-button\"\r\n [title]=\"\r\n (pendingSearchIndexUpdates\r\n ? 'catalog.pending-search-index-updates'\r\n : 'catalog.search-index-controls'\r\n ) | translate\r\n \"\r\n vdrDropdownTrigger\r\n >\r\n <clr-icon shape=\"cog\"></clr-icon>\r\n <vdr-status-badge *ngIf=\"pendingSearchIndexUpdates\" type=\"warning\"></vdr-status-badge>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <h4 class=\"dropdown-header\">{{ 'catalog.search-index-controls' | translate }}</h4>\r\n <ng-container *ngIf=\"pendingSearchIndexUpdates\">\r\n <button\r\n type=\"button\"\r\n class=\"run-updates-button\"\r\n vdrDropdownItem\r\n (click)=\"runPendingSearchIndexUpdates()\"\r\n [disabled]=\"!(['UpdateCatalog', 'UpdateProduct'] | hasPermission)\"\r\n >\r\n <vdr-status-badge type=\"warning\"></vdr-status-badge>\r\n {{\r\n 'catalog.run-pending-search-index-updates'\r\n | translate: {count: pendingSearchIndexUpdates}\r\n }}\r\n </button>\r\n <div class=\"dropdown-divider\"></div>\r\n </ng-container>\r\n <button\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"rebuildSearchIndex()\"\r\n [disabled]=\"!(['UpdateCatalog', 'UpdateProduct'] | hasPermission)\"\r\n >\r\n {{ 'catalog.rebuild-search-index' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n <div class=\"flex wrap\">\r\n <clr-checkbox-wrapper class=\"mt2\">\r\n <input type=\"checkbox\" clrCheckbox [(ngModel)]=\"groupByProduct\" (ngModelChange)=\"refresh()\"/>\r\n <label>{{ 'catalog.group-by-product' | translate }}</label>\r\n </clr-checkbox-wrapper>\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n </div>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"product-list\"></vdr-action-bar-items>\r\n <a\r\n class=\"btn btn-primary\"\r\n [routerLink]=\"['./create']\"\r\n *vdrIfPermissions=\"['CreateCatalog', 'CreateProduct']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n <span class=\"full-label\">{{ 'catalog.create-new-product' | translate }}</span>\r\n </a>\r\n </vdr-ab-right>\r\n</vdr-action-bar>\r\n\r\n<vdr-data-table\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n>\r\n <ng-template let-result=\"item\">\r\n <td class=\"left align-middle image-col\" [class.disabled]=\"!result.enabled\">\r\n <div class=\"image-placeholder\">\r\n <img\r\n *ngIf=\"\r\n groupByProduct\r\n ? result.productAsset\r\n : result.productVariantAsset || result.productAsset as asset;\r\n else imagePlaceholder\r\n \"\r\n [src]=\"asset | assetPreview: 'tiny'\"\r\n />\r\n <ng-template #imagePlaceholder>\r\n <div class=\"placeholder\">\r\n <clr-icon shape=\"image\" size=\"48\"></clr-icon>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </td>\r\n <td class=\"left align-middle\" [class.disabled]=\"!result.enabled\">\r\n {{ groupByProduct ? result.productName : result.productVariantName }}\r\n </td>\r\n <td class=\"align-middle\" [class.disabled]=\"!result.enabled\">\r\n <vdr-chip *ngIf=\"!result.enabled\">{{ 'common.disabled' | translate }}</vdr-chip>\r\n </td>\r\n <td class=\"right align-middle\" [class.disabled]=\"!result.enabled\">\r\n <vdr-table-row-action\r\n class=\"edit-button\"\r\n iconShape=\"edit\"\r\n [label]=\"'common.edit' | translate\"\r\n [linkTo]=\"['./', result.productId]\"\r\n ></vdr-table-row-action>\r\n <vdr-dropdown>\r\n <button type=\"button\" class=\"btn btn-link btn-sm\" vdrDropdownTrigger>\r\n {{ 'common.actions' | translate }}\r\n <clr-icon shape=\"caret down\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button\r\n type=\"button\"\r\n class=\"delete-button\"\r\n (click)=\"deleteProduct(result.productId)\"\r\n [disabled]=\"!(['DeleteCatalog', 'DeleteProduct'] | hasPermission)\"\r\n vdrDropdownItem\r\n >\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </td>\r\n </ng-template>\r\n</vdr-data-table>\r\n",
138
+ styles: [".image-col{width:70px}.image-placeholder{width:50px;height:50px;background-color:var(--color-component-bg-200)}.image-placeholder img{border-radius:var(--border-radius-img)}.image-placeholder .placeholder{text-align:center;color:var(--color-grey-300)}.search-form{display:flex;align-items:center;width:100%;margin-bottom:6px}.search-input{min-width:300px}@media screen and (max-width: 768px){.search-input{min-width:100px}}.search-settings-menu{margin:0 12px}td.disabled{background-color:var(--color-component-bg-200)}.search-index-button{position:relative}.search-index-button vdr-status-badge{right:0;top:0}.run-updates-button{position:relative}.run-updates-button vdr-status-badge{left:10px;top:10px}.edit-button{margin-right:24px}\n"]
139
139
  },] }
140
140
  ];
141
141
  ProductListComponent.ctorParameters = () => [
@@ -150,4 +150,4 @@ ProductListComponent.ctorParameters = () => [
150
150
  ProductListComponent.propDecorators = {
151
151
  productSearchInput: [{ type: ViewChild, args: ['productSearchInputComponent', { static: true },] }]
152
152
  };
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9wcm9kdWN0LWxpc3QvcHJvZHVjdC1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsV0FBVyxFQUNYLGVBQWUsRUFDZixRQUFRLEVBRVIsZUFBZSxFQUNmLFlBQVksRUFDWixtQkFBbUIsRUFHbkIsbUJBQW1CLEdBQ3RCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLEtBQUssRUFBa0IsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUNILEtBQUssRUFFTCxHQUFHLEVBRUgsU0FBUyxFQUNULElBQUksRUFDSixTQUFTLEVBQ1QsR0FBRyxFQUNILGNBQWMsR0FDakIsTUFBTSxnQkFBZ0IsQ0FBQztBQVN4QixNQUFNLE9BQU8sb0JBQ1QsU0FBUSxpQkFBdUY7SUFjL0YsWUFDWSxXQUF3QixFQUN4QixZQUEwQixFQUMxQixtQkFBd0MsRUFDeEMsZUFBZ0MsRUFDaEMsbUJBQXdDLEVBQ2hELE1BQWMsRUFDZCxLQUFxQjtRQUVyQixLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBUmIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsd0JBQW1C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LENBQUMsQ0FBQztRQUNQLENBQUMsQ0FDSixDQUFDO0lBQ1YsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFrQjtRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNqRSxDQUFDOzs7WUF0S0osU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLHd2TkFBNEM7O2FBRS9DOzs7WUE5QkcsV0FBVztZQUtYLFlBQVk7WUFDWixtQkFBbUI7WUFMbkIsZUFBZTtZQVFmLG1CQUFtQjtZQWJFLE1BQU07WUFBdEIsY0FBYzs7O2lDQWdEbEIsU0FBUyxTQUFDLDZCQUE2QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcclxuaW1wb3J0IHtcclxuICAgIEJhc2VMaXN0Q29tcG9uZW50LFxyXG4gICAgRGF0YVNlcnZpY2UsXHJcbiAgICBKb2JRdWV1ZVNlcnZpY2UsXHJcbiAgICBKb2JTdGF0ZSxcclxuICAgIExhbmd1YWdlQ29kZSxcclxuICAgIExvZ2ljYWxPcGVyYXRvcixcclxuICAgIE1vZGFsU2VydmljZSxcclxuICAgIE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICBTZWFyY2hJbnB1dCxcclxuICAgIFNlYXJjaFByb2R1Y3RzLFxyXG4gICAgU2VydmVyQ29uZmlnU2VydmljZSxcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgRU1QVFksIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgICBkZWxheSxcclxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxyXG4gICAgbWFwLFxyXG4gICAgc2hhcmVSZXBsYXksXHJcbiAgICBzd2l0Y2hNYXAsXHJcbiAgICB0YWtlLFxyXG4gICAgdGFrZVVudGlsLFxyXG4gICAgdGFwLFxyXG4gICAgd2l0aExhdGVzdEZyb20sXHJcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgUHJvZHVjdFNlYXJjaElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vcHJvZHVjdC1zZWFyY2gtaW5wdXQvcHJvZHVjdC1zZWFyY2gtaW5wdXQuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItcHJvZHVjdHMtbGlzdCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvZHVjdC1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3Byb2R1Y3QtbGlzdC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjdExpc3RDb21wb25lbnRcclxuICAgIGV4dGVuZHMgQmFzZUxpc3RDb21wb25lbnQ8U2VhcmNoUHJvZHVjdHMuUXVlcnksIFNlYXJjaFByb2R1Y3RzLkl0ZW1zLCBTZWFyY2hQcm9kdWN0cy5WYXJpYWJsZXM+XHJcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdFxyXG57XHJcbiAgICBzZWFyY2hUZXJtID0gJyc7XHJcbiAgICBmYWNldFZhbHVlSWRzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgZ3JvdXBCeVByb2R1Y3QgPSB0cnVlO1xyXG4gICAgc2VsZWN0ZWRGYWNldFZhbHVlSWRzJDogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XHJcbiAgICBmYWNldFZhbHVlcyQ6IE9ic2VydmFibGU8U2VhcmNoUHJvZHVjdHMuRmFjZXRWYWx1ZXNbXT47XHJcbiAgICBhdmFpbGFibGVMYW5ndWFnZXMkOiBPYnNlcnZhYmxlPExhbmd1YWdlQ29kZVtdPjtcclxuICAgIGNvbnRlbnRMYW5ndWFnZSQ6IE9ic2VydmFibGU8TGFuZ3VhZ2VDb2RlPjtcclxuICAgIHBlbmRpbmdTZWFyY2hJbmRleFVwZGF0ZXMgPSAwO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ3Byb2R1Y3RTZWFyY2hJbnB1dENvbXBvbmVudCcsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgICBwcml2YXRlIHByb2R1Y3RTZWFyY2hJbnB1dDogUHJvZHVjdFNlYXJjaElucHV0Q29tcG9uZW50O1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBqb2JRdWV1ZVNlcnZpY2U6IEpvYlF1ZXVlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHNlcnZlckNvbmZpZ1NlcnZpY2U6IFNlcnZlckNvbmZpZ1NlcnZpY2UsXHJcbiAgICAgICAgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIocm91dGVyLCByb3V0ZSk7XHJcbiAgICAgICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtTWFwXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKHFwbSA9PiBxcG0uZ2V0KCdxJykpLFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodGVybSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFRlcm0gPSB0ZXJtIHx8ICcnO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvZHVjdFNlYXJjaElucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0U2VhcmNoSW5wdXQuc2V0U2VhcmNoVGVybSh0ZXJtKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZhY2V0VmFsdWVJZHMkID0gdGhpcy5yb3V0ZS5xdWVyeVBhcmFtTWFwLnBpcGUobWFwKHFwbSA9PiBxcG0uZ2V0QWxsKCdmdmlkcycpKSk7XHJcblxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGYWNldFZhbHVlSWRzJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKGlkcyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZmFjZXRWYWx1ZUlkcyA9IGlkcztcclxuICAgICAgICAgICAgaWYgKHRoaXMucHJvZHVjdFNlYXJjaElucHV0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RTZWFyY2hJbnB1dC5zZXRGYWNldFZhbHVlcyhpZHMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgc3VwZXIuc2V0UXVlcnlGbihcclxuICAgICAgICAgICAgKC4uLmFyZ3M6IGFueVtdKSA9PlxyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0LnNlYXJjaFByb2R1Y3RzKHRoaXMuc2VhcmNoVGVybSwgLi4uYXJncykucmVmZXRjaE9uQ2hhbm5lbENoYW5nZSgpLFxyXG4gICAgICAgICAgICBkYXRhID0+IGRhdGEuc2VhcmNoLFxyXG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tc2hhZG93ZWQtdmFyaWFibGVcclxuICAgICAgICAgICAgKHNraXAsIHRha2UpID0+ICh7XHJcbiAgICAgICAgICAgICAgICBpbnB1dDoge1xyXG4gICAgICAgICAgICAgICAgICAgIHNraXAsXHJcbiAgICAgICAgICAgICAgICAgICAgdGFrZSxcclxuICAgICAgICAgICAgICAgICAgICB0ZXJtOiB0aGlzLnNlYXJjaFRlcm0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmFjZXRWYWx1ZUlkczogdGhpcy5mYWNldFZhbHVlSWRzLFxyXG4gICAgICAgICAgICAgICAgICAgIGZhY2V0VmFsdWVPcGVyYXRvcjogTG9naWNhbE9wZXJhdG9yLkFORCxcclxuICAgICAgICAgICAgICAgICAgICBncm91cEJ5UHJvZHVjdDogdGhpcy5ncm91cEJ5UHJvZHVjdCxcclxuICAgICAgICAgICAgICAgIH0gYXMgU2VhcmNoSW5wdXQsXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuXHJcbiAgICAgICAgdGhpcy5mYWNldFZhbHVlcyQgPSB0aGlzLnJlc3VsdCQucGlwZShtYXAoZGF0YSA9PiBkYXRhLnNlYXJjaC5mYWNldFZhbHVlcykpO1xyXG5cclxuICAgICAgICB0aGlzLmZhY2V0VmFsdWVzJFxyXG4gICAgICAgICAgICAucGlwZSh0YWtlKDEpLCBkZWxheSgxMDApLCB3aXRoTGF0ZXN0RnJvbSh0aGlzLnNlbGVjdGVkRmFjZXRWYWx1ZUlkcyQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChbX18sIGlkc10pID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdFNlYXJjaElucHV0LnNldEZhY2V0VmFsdWVzKGlkcyk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzJCA9IHRoaXMuc2VydmVyQ29uZmlnU2VydmljZS5nZXRBdmFpbGFibGVMYW5ndWFnZXMoKTtcclxuICAgICAgICB0aGlzLmNvbnRlbnRMYW5ndWFnZSQgPSB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudFxyXG4gICAgICAgICAgICAudWlTdGF0ZSgpXHJcbiAgICAgICAgICAgIC5tYXBTdHJlYW0oKHsgdWlTdGF0ZSB9KSA9PiB1aVN0YXRlLmNvbnRlbnRMYW5ndWFnZSlcclxuICAgICAgICAgICAgLnBpcGUodGFwKCgpID0+IHRoaXMucmVmcmVzaCgpKSk7XHJcblxyXG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2UucHJvZHVjdFxyXG4gICAgICAgICAgICAuZ2V0UGVuZGluZ1NlYXJjaEluZGV4VXBkYXRlcygpXHJcbiAgICAgICAgICAgIC5tYXBTaW5nbGUoKHsgcGVuZGluZ1NlYXJjaEluZGV4VXBkYXRlcyB9KSA9PiBwZW5kaW5nU2VhcmNoSW5kZXhVcGRhdGVzKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHZhbHVlID0+ICh0aGlzLnBlbmRpbmdTZWFyY2hJbmRleFVwZGF0ZXMgPSB2YWx1ZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICBpZiAodGhpcy5wcm9kdWN0U2VhcmNoSW5wdXQgJiYgdGhpcy5zZWFyY2hUZXJtKSB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5wcm9kdWN0U2VhcmNoSW5wdXQuc2V0U2VhcmNoVGVybSh0aGlzLnNlYXJjaFRlcm0pKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0U2VhcmNoVGVybSh0ZXJtOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaFRlcm0gPSB0ZXJtO1xyXG4gICAgICAgIHRoaXMuc2V0UXVlcnlQYXJhbSh7IHE6IHRlcm0gfHwgbnVsbCwgcGFnZTogMSB9KTtcclxuICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRGYWNldFZhbHVlSWRzKGlkczogc3RyaW5nW10pIHtcclxuICAgICAgICB0aGlzLmZhY2V0VmFsdWVJZHMgPSBpZHM7XHJcbiAgICAgICAgdGhpcy5zZXRRdWVyeVBhcmFtKHsgZnZpZHM6IGlkcywgcGFnZTogMSB9KTtcclxuICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgIH1cclxuXHJcbiAgICByZWJ1aWxkU2VhcmNoSW5kZXgoKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0LnJlaW5kZXgoKS5zdWJzY3JpYmUoKHsgcmVpbmRleCB9KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5pbmZvKF8oJ2NhdGFsb2cucmVpbmRleGluZycpKTtcclxuICAgICAgICAgICAgdGhpcy5qb2JRdWV1ZVNlcnZpY2UuYWRkSm9iKHJlaW5kZXguaWQsIGpvYiA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoam9iLnN0YXRlID09PSBKb2JTdGF0ZS5DT01QTEVURUQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aW1lID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KCkuZm9ybWF0KGpvYi5kdXJhdGlvbiB8fCAwKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdjYXRhbG9nLnJlaW5kZXgtc3VjY2Vzc2Z1bCcpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50OiBqb2IucmVzdWx0LmluZGV4ZWRJdGVtQ291bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihfKCdjYXRhbG9nLnJlaW5kZXgtZXJyb3InKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJ1blBlbmRpbmdTZWFyY2hJbmRleFVwZGF0ZXMoKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0LnJ1blBlbmRpbmdTZWFyY2hJbmRleFVwZGF0ZXMoKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuaW5mbyhfKCdjYXRhbG9nLnJ1bm5pbmctc2VhcmNoLWluZGV4LXVwZGF0ZXMnKSwge1xyXG4gICAgICAgICAgICAgICAgY291bnQ6IHRoaXMucGVuZGluZ1NlYXJjaEluZGV4VXBkYXRlcyxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ1NlYXJjaEluZGV4VXBkYXRlcyA9IDA7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZGVsZXRlUHJvZHVjdChwcm9kdWN0SWQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5kaWFsb2coe1xyXG4gICAgICAgICAgICAgICAgdGl0bGU6IF8oJ2NhdGFsb2cuY29uZmlybS1kZWxldGUtcHJvZHVjdCcpLFxyXG4gICAgICAgICAgICAgICAgYnV0dG9uczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHsgdHlwZTogJ3NlY29uZGFyeScsIGxhYmVsOiBfKCdjb21tb24uY2FuY2VsJykgfSxcclxuICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICdkYW5nZXInLCBsYWJlbDogXygnY29tbW9uLmRlbGV0ZScpLCByZXR1cm5WYWx1ZTogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAocmVzcG9uc2UgPT4gKHJlc3BvbnNlID8gdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0LmRlbGV0ZVByb2R1Y3QocHJvZHVjdElkKSA6IEVNUFRZKSksXHJcbiAgICAgICAgICAgICAgICAvLyBTaG9ydCBkZWxheSB0byBhbGxvdyB0aGUgcHJvZHVjdCB0byBiZSByZW1vdmVkIGZyb20gdGhlIHNlYXJjaCBpbmRleCBiZWZvcmVcclxuICAgICAgICAgICAgICAgIC8vIHJlZnJlc2hpbmcuXHJcbiAgICAgICAgICAgICAgICBkZWxheSg1MDApLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnY29tbW9uLm5vdGlmeS1kZWxldGUtc3VjY2VzcycpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ1Byb2R1Y3QnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKF8oJ2NvbW1vbi5ub3RpZnktZGVsZXRlLWVycm9yJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiAnUHJvZHVjdCcsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHNldExhbmd1YWdlKGNvZGU6IExhbmd1YWdlQ29kZSkge1xyXG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50LnNldENvbnRlbnRMYW5ndWFnZShjb2RlKS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxufVxyXG4iXX0=
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9wcm9kdWN0LWxpc3QvcHJvZHVjdC1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsV0FBVyxFQUNYLGVBQWUsRUFDZixRQUFRLEVBRVIsZUFBZSxFQUNmLFlBQVksRUFDWixtQkFBbUIsRUFJbkIsbUJBQW1CLEdBQ3RCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLEtBQUssRUFBa0IsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUNILEtBQUssRUFFTCxHQUFHLEVBRUgsU0FBUyxFQUNULElBQUksRUFDSixTQUFTLEVBQ1QsR0FBRyxFQUNILGNBQWMsR0FDakIsTUFBTSxnQkFBZ0IsQ0FBQztBQU94QixNQUFNLE9BQU8sb0JBQ1QsU0FBUSxpQkFBdUY7SUFjL0YsWUFDWSxXQUF3QixFQUN4QixZQUEwQixFQUMxQixtQkFBd0MsRUFDeEMsZUFBZ0MsRUFDaEMsbUJBQXdDLEVBQ2hELE1BQWMsRUFDZCxLQUFxQjtRQUVyQixLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBUmIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsd0JBQW1C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LENBQUMsQ0FBQztRQUNQLENBQUMsQ0FDSixDQUFDO0lBQ1YsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFrQjtRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNqRSxDQUFDOzs7WUF0S0osU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLDJyTkFBNEM7O2FBRS9DOzs7WUE3QkcsV0FBVztZQUtYLFlBQVk7WUFDWixtQkFBbUI7WUFMbkIsZUFBZTtZQVNmLG1CQUFtQjtZQWRFLE1BQU07WUFBdEIsY0FBYzs7O2lDQStDbEIsU0FBUyxTQUFDLDZCQUE2QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcclxuaW1wb3J0IHtcclxuICAgIEJhc2VMaXN0Q29tcG9uZW50LFxyXG4gICAgRGF0YVNlcnZpY2UsXHJcbiAgICBKb2JRdWV1ZVNlcnZpY2UsXHJcbiAgICBKb2JTdGF0ZSxcclxuICAgIExhbmd1YWdlQ29kZSxcclxuICAgIExvZ2ljYWxPcGVyYXRvcixcclxuICAgIE1vZGFsU2VydmljZSxcclxuICAgIE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICBQcm9kdWN0U2VhcmNoSW5wdXRDb21wb25lbnQsXHJcbiAgICBTZWFyY2hJbnB1dCxcclxuICAgIFNlYXJjaFByb2R1Y3RzLFxyXG4gICAgU2VydmVyQ29uZmlnU2VydmljZSxcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgRU1QVFksIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgICBkZWxheSxcclxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxyXG4gICAgbWFwLFxyXG4gICAgc2hhcmVSZXBsYXksXHJcbiAgICBzd2l0Y2hNYXAsXHJcbiAgICB0YWtlLFxyXG4gICAgdGFrZVVudGlsLFxyXG4gICAgdGFwLFxyXG4gICAgd2l0aExhdGVzdEZyb20sXHJcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1wcm9kdWN0cy1saXN0JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcm9kdWN0LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vcHJvZHVjdC1saXN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9kdWN0TGlzdENvbXBvbmVudFxyXG4gICAgZXh0ZW5kcyBCYXNlTGlzdENvbXBvbmVudDxTZWFyY2hQcm9kdWN0cy5RdWVyeSwgU2VhcmNoUHJvZHVjdHMuSXRlbXMsIFNlYXJjaFByb2R1Y3RzLlZhcmlhYmxlcz5cclxuICAgIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0XHJcbntcclxuICAgIHNlYXJjaFRlcm0gPSAnJztcclxuICAgIGZhY2V0VmFsdWVJZHM6IHN0cmluZ1tdID0gW107XHJcbiAgICBncm91cEJ5UHJvZHVjdCA9IHRydWU7XHJcbiAgICBzZWxlY3RlZEZhY2V0VmFsdWVJZHMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcclxuICAgIGZhY2V0VmFsdWVzJDogT2JzZXJ2YWJsZTxTZWFyY2hQcm9kdWN0cy5GYWNldFZhbHVlc1tdPjtcclxuICAgIGF2YWlsYWJsZUxhbmd1YWdlcyQ6IE9ic2VydmFibGU8TGFuZ3VhZ2VDb2RlW10+O1xyXG4gICAgY29udGVudExhbmd1YWdlJDogT2JzZXJ2YWJsZTxMYW5ndWFnZUNvZGU+O1xyXG4gICAgcGVuZGluZ1NlYXJjaEluZGV4VXBkYXRlcyA9IDA7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgncHJvZHVjdFNlYXJjaElucHV0Q29tcG9uZW50JywgeyBzdGF0aWM6IHRydWUgfSlcclxuICAgIHByaXZhdGUgcHJvZHVjdFNlYXJjaElucHV0OiBQcm9kdWN0U2VhcmNoSW5wdXRDb21wb25lbnQ7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGpvYlF1ZXVlU2VydmljZTogSm9iUXVldWVTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgc2VydmVyQ29uZmlnU2VydmljZTogU2VydmVyQ29uZmlnU2VydmljZSxcclxuICAgICAgICByb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihyb3V0ZXIsIHJvdXRlKTtcclxuICAgICAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1NYXBcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAocXBtID0+IHFwbS5nZXQoJ3EnKSksXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSh0ZXJtID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVGVybSA9IHRlcm0gfHwgJyc7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9kdWN0U2VhcmNoSW5wdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RTZWFyY2hJbnB1dC5zZXRTZWFyY2hUZXJtKHRlcm0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRmFjZXRWYWx1ZUlkcyQgPSB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1NYXAucGlwZShtYXAocXBtID0+IHFwbS5nZXRBbGwoJ2Z2aWRzJykpKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZhY2V0VmFsdWVJZHMkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoaWRzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5mYWNldFZhbHVlSWRzID0gaWRzO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5wcm9kdWN0U2VhcmNoSW5wdXQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdFNlYXJjaElucHV0LnNldEZhY2V0VmFsdWVzKGlkcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBzdXBlci5zZXRRdWVyeUZuKFxyXG4gICAgICAgICAgICAoLi4uYXJnczogYW55W10pID0+XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3Quc2VhcmNoUHJvZHVjdHModGhpcy5zZWFyY2hUZXJtLCAuLi5hcmdzKS5yZWZldGNoT25DaGFubmVsQ2hhbmdlKCksXHJcbiAgICAgICAgICAgIGRhdGEgPT4gZGF0YS5zZWFyY2gsXHJcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1zaGFkb3dlZC12YXJpYWJsZVxyXG4gICAgICAgICAgICAoc2tpcCwgdGFrZSkgPT4gKHtcclxuICAgICAgICAgICAgICAgIGlucHV0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2tpcCxcclxuICAgICAgICAgICAgICAgICAgICB0YWtlLFxyXG4gICAgICAgICAgICAgICAgICAgIHRlcm06IHRoaXMuc2VhcmNoVGVybSxcclxuICAgICAgICAgICAgICAgICAgICBmYWNldFZhbHVlSWRzOiB0aGlzLmZhY2V0VmFsdWVJZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgZmFjZXRWYWx1ZU9wZXJhdG9yOiBMb2dpY2FsT3BlcmF0b3IuQU5ELFxyXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwQnlQcm9kdWN0OiB0aGlzLmdyb3VwQnlQcm9kdWN0LFxyXG4gICAgICAgICAgICAgICAgfSBhcyBTZWFyY2hJbnB1dCxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG5cclxuICAgICAgICB0aGlzLmZhY2V0VmFsdWVzJCA9IHRoaXMucmVzdWx0JC5waXBlKG1hcChkYXRhID0+IGRhdGEuc2VhcmNoLmZhY2V0VmFsdWVzKSk7XHJcblxyXG4gICAgICAgIHRoaXMuZmFjZXRWYWx1ZXMkXHJcbiAgICAgICAgICAgIC5waXBlKHRha2UoMSksIGRlbGF5KDEwMCksIHdpdGhMYXRlc3RGcm9tKHRoaXMuc2VsZWN0ZWRGYWNldFZhbHVlSWRzJCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKFtfXywgaWRzXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0U2VhcmNoSW5wdXQuc2V0RmFjZXRWYWx1ZXMoaWRzKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5hdmFpbGFibGVMYW5ndWFnZXMkID0gdGhpcy5zZXJ2ZXJDb25maWdTZXJ2aWNlLmdldEF2YWlsYWJsZUxhbmd1YWdlcygpO1xyXG4gICAgICAgIHRoaXMuY29udGVudExhbmd1YWdlJCA9IHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50XHJcbiAgICAgICAgICAgIC51aVN0YXRlKClcclxuICAgICAgICAgICAgLm1hcFN0cmVhbSgoeyB1aVN0YXRlIH0pID0+IHVpU3RhdGUuY29udGVudExhbmd1YWdlKVxyXG4gICAgICAgICAgICAucGlwZSh0YXAoKCkgPT4gdGhpcy5yZWZyZXNoKCkpKTtcclxuXHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0XHJcbiAgICAgICAgICAgIC5nZXRQZW5kaW5nU2VhcmNoSW5kZXhVcGRhdGVzKClcclxuICAgICAgICAgICAgLm1hcFNpbmdsZSgoeyBwZW5kaW5nU2VhcmNoSW5kZXhVcGRhdGVzIH0pID0+IHBlbmRpbmdTZWFyY2hJbmRleFVwZGF0ZXMpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodmFsdWUgPT4gKHRoaXMucGVuZGluZ1NlYXJjaEluZGV4VXBkYXRlcyA9IHZhbHVlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLnByb2R1Y3RTZWFyY2hJbnB1dCAmJiB0aGlzLnNlYXJjaFRlcm0pIHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnByb2R1Y3RTZWFyY2hJbnB1dC5zZXRTZWFyY2hUZXJtKHRoaXMuc2VhcmNoVGVybSkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRTZWFyY2hUZXJtKHRlcm06IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVGVybSA9IHRlcm07XHJcbiAgICAgICAgdGhpcy5zZXRRdWVyeVBhcmFtKHsgcTogdGVybSB8fCBudWxsLCBwYWdlOiAxIH0pO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldEZhY2V0VmFsdWVJZHMoaWRzOiBzdHJpbmdbXSkge1xyXG4gICAgICAgIHRoaXMuZmFjZXRWYWx1ZUlkcyA9IGlkcztcclxuICAgICAgICB0aGlzLnNldFF1ZXJ5UGFyYW0oeyBmdmlkczogaWRzLCBwYWdlOiAxIH0pO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlYnVpbGRTZWFyY2hJbmRleCgpIHtcclxuICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3QucmVpbmRleCgpLnN1YnNjcmliZSgoeyByZWluZGV4IH0pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmluZm8oXygnY2F0YWxvZy5yZWluZGV4aW5nJykpO1xyXG4gICAgICAgICAgICB0aGlzLmpvYlF1ZXVlU2VydmljZS5hZGRKb2IocmVpbmRleC5pZCwgam9iID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChqb2Iuc3RhdGUgPT09IEpvYlN0YXRlLkNPTVBMRVRFRCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRpbWUgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQoKS5mb3JtYXQoam9iLmR1cmF0aW9uIHx8IDApO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ2NhdGFsb2cucmVpbmRleC1zdWNjZXNzZnVsJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY291bnQ6IGpvYi5yZXN1bHQuaW5kZXhlZEl0ZW1Db3VudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZSxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKF8oJ2NhdGFsb2cucmVpbmRleC1lcnJvcicpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcnVuUGVuZGluZ1NlYXJjaEluZGV4VXBkYXRlcygpIHtcclxuICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3QucnVuUGVuZGluZ1NlYXJjaEluZGV4VXBkYXRlcygpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5pbmZvKF8oJ2NhdGFsb2cucnVubmluZy1zZWFyY2gtaW5kZXgtdXBkYXRlcycpLCB7XHJcbiAgICAgICAgICAgICAgICBjb3VudDogdGhpcy5wZW5kaW5nU2VhcmNoSW5kZXhVcGRhdGVzLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5wZW5kaW5nU2VhcmNoSW5kZXhVcGRhdGVzID0gMDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBkZWxldGVQcm9kdWN0KHByb2R1Y3RJZDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2VcclxuICAgICAgICAgICAgLmRpYWxvZyh7XHJcbiAgICAgICAgICAgICAgICB0aXRsZTogXygnY2F0YWxvZy5jb25maXJtLWRlbGV0ZS1wcm9kdWN0JyksXHJcbiAgICAgICAgICAgICAgICBidXR0b25zOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAnc2Vjb25kYXJ5JywgbGFiZWw6IF8oJ2NvbW1vbi5jYW5jZWwnKSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHsgdHlwZTogJ2RhbmdlcicsIGxhYmVsOiBfKCdjb21tb24uZGVsZXRlJyksIHJldHVyblZhbHVlOiB0cnVlIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChyZXNwb25zZSA9PiAocmVzcG9uc2UgPyB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3QuZGVsZXRlUHJvZHVjdChwcm9kdWN0SWQpIDogRU1QVFkpKSxcclxuICAgICAgICAgICAgICAgIC8vIFNob3J0IGRlbGF5IHRvIGFsbG93IHRoZSBwcm9kdWN0IHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUgc2VhcmNoIGluZGV4IGJlZm9yZVxyXG4gICAgICAgICAgICAgICAgLy8gcmVmcmVzaGluZy5cclxuICAgICAgICAgICAgICAgIGRlbGF5KDUwMCksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdjb21tb24ubm90aWZ5LWRlbGV0ZS1zdWNjZXNzJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiAnUHJvZHVjdCcsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoXygnY29tbW9uLm5vdGlmeS1kZWxldGUtZXJyb3InKSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHk6ICdQcm9kdWN0JyxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0TGFuZ3VhZ2UoY29kZTogTGFuZ3VhZ2VDb2RlKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5jbGllbnQuc2V0Q29udGVudExhbmd1YWdlKGNvZGUpLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -64,6 +64,13 @@ export class ProductVariantsListComponent {
64
64
  }
65
65
  return '';
66
66
  }
67
+ getStockOnHandMinValue(variant) {
68
+ var _a, _b;
69
+ const effectiveOutOfStockThreshold = ((_a = variant.get('useGlobalOutOfStockThreshold')) === null || _a === void 0 ? void 0 : _a.value)
70
+ ? this.globalOutOfStockThreshold
71
+ : (_b = variant.get('outOfStockThreshold')) === null || _b === void 0 ? void 0 : _b.value;
72
+ return effectiveOutOfStockThreshold;
73
+ }
67
74
  getSaleableStockLevel(variant) {
68
75
  const effectiveOutOfStockThreshold = variant.useGlobalOutOfStockThreshold
69
76
  ? this.globalOutOfStockThreshold
@@ -175,9 +182,9 @@ export class ProductVariantsListComponent {
175
182
  ProductVariantsListComponent.decorators = [
176
183
  { type: Component, args: [{
177
184
  selector: 'vdr-product-variants-list',
178
- template: "<div class=\"variants-list\">\r\n <div\r\n class=\"variant-container card\"\r\n *ngFor=\"\r\n let variant of variants | paginate: paginationConfig || { itemsPerPage: 10, currentPage: 1 };\r\n trackBy: trackById;\r\n let i = index\r\n \"\r\n [class.disabled]=\"!formGroupMap.get(variant.id)?.get('enabled')?.value\"\r\n >\r\n <ng-container *ngIf=\"formGroupMap.get(variant.id) as formGroup\" [formGroup]=\"formGroup\">\r\n <div class=\"card-block header-row\">\r\n <div class=\"details\">\r\n <vdr-title-input class=\"sku\" [readonly]=\"!(updatePermission | hasPermission)\">\r\n <clr-input-container>\r\n <input\r\n clrInput\r\n type=\"text\"\r\n formControlName=\"sku\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n [placeholder]=\"'catalog.sku' | translate\"\r\n />\r\n </clr-input-container>\r\n </vdr-title-input>\r\n <vdr-title-input class=\"name\" [readonly]=\"!(updatePermission | hasPermission)\">\r\n <clr-input-container>\r\n <input\r\n clrInput\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n [placeholder]=\"'common.name' | translate\"\r\n />\r\n </clr-input-container>\r\n </vdr-title-input>\r\n </div>\r\n <div class=\"right-controls\">\r\n <clr-toggle-wrapper *vdrIfPermissions=\"updatePermission\">\r\n <input type=\"checkbox\" clrToggle name=\"enabled\" formControlName=\"enabled\" />\r\n <label>{{ 'common.enabled' | translate }}</label>\r\n </clr-toggle-wrapper>\r\n </div>\r\n </div>\r\n <div class=\"card-block\">\r\n <div class=\"variant-body\">\r\n <div class=\"assets\">\r\n <vdr-assets\r\n [compact]=\"true\"\r\n [assets]=\"pendingAssetChanges[variant.id]?.assets || variant.assets\"\r\n [featuredAsset]=\"\r\n pendingAssetChanges[variant.id]?.featuredAsset || variant.featuredAsset\r\n \"\r\n [updatePermissions]=\"updatePermission\"\r\n (change)=\"onAssetChange(variant.id, $event)\"\r\n ></vdr-assets>\r\n </div>\r\n <div class=\"variant-form-inputs\">\r\n <div class=\"standard-fields\">\r\n <div class=\"variant-form-input-row\">\r\n <div class=\"tax-category\">\r\n <clr-select-container\r\n *vdrIfPermissions=\"updatePermission; else taxCategoryLabel\"\r\n >\r\n <label>{{ 'catalog.tax-category' | translate }}</label>\r\n <select clrSelect name=\"options\" formControlName=\"taxCategoryId\">\r\n <option\r\n *ngFor=\"let taxCategory of taxCategories\"\r\n [value]=\"taxCategory.id\"\r\n >\r\n {{ taxCategory.name }}\r\n </option>\r\n </select>\r\n </clr-select-container>\r\n <ng-template #taxCategoryLabel>\r\n <label class=\"clr-control-label\">{{\r\n 'catalog.tax-category' | translate\r\n }}</label>\r\n <div class=\"tax-category-label\">\r\n {{ getTaxCategoryName(formGroup) }}\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"price\">\r\n <clr-input-container>\r\n <label>{{ 'catalog.price' | translate }}</label>\r\n <vdr-currency-input\r\n *ngIf=\"!channelPriceIncludesTax\"\r\n clrInput\r\n [currencyCode]=\"variant.currencyCode\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n formControlName=\"price\"\r\n ></vdr-currency-input>\r\n <vdr-currency-input\r\n *ngIf=\"channelPriceIncludesTax\"\r\n clrInput\r\n [currencyCode]=\"variant.currencyCode\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n formControlName=\"priceWithTax\"\r\n ></vdr-currency-input>\r\n </clr-input-container>\r\n </div>\r\n <vdr-variant-price-detail\r\n [price]=\"formGroup.get('price')!.value\"\r\n [currencyCode]=\"variant.currencyCode\"\r\n [priceIncludesTax]=\"channelPriceIncludesTax\"\r\n [taxCategoryId]=\"formGroup.get('taxCategoryId')!.value\"\r\n ></vdr-variant-price-detail>\r\n </div>\r\n <div class=\"variant-form-input-row\">\r\n <clr-select-container *vdrIfPermissions=\"updatePermission\">\r\n <label\r\n >{{ 'catalog.track-inventory' | translate }}\r\n <vdr-help-tooltip\r\n [content]=\"'catalog.track-inventory-tooltip' | translate\"\r\n ></vdr-help-tooltip>\r\n </label>\r\n <select clrSelect name=\"options\" formControlName=\"trackInventory\">\r\n <option [value]=\"GlobalFlag.TRUE\">\r\n {{ 'catalog.track-inventory-true' | translate }}\r\n </option>\r\n <option [value]=\"GlobalFlag.FALSE\">\r\n {{ 'catalog.track-inventory-false' | translate }}\r\n </option>\r\n <option [value]=\"GlobalFlag.INHERIT\">\r\n {{ 'catalog.track-inventory-inherit' | translate }}\r\n </option>\r\n </select>\r\n </clr-select-container>\r\n <clr-input-container>\r\n <label\r\n >{{ 'catalog.stock-on-hand' | translate }}\r\n <vdr-help-tooltip\r\n [content]=\"'catalog.stock-on-hand-tooltip' | translate\"\r\n ></vdr-help-tooltip\r\n ></label>\r\n <input\r\n [class.inventory-untracked]=\"inventoryIsNotTracked(formGroup)\"\r\n clrInput\r\n type=\"number\"\r\n min=\"0\"\r\n step=\"1\"\r\n formControlName=\"stockOnHand\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n [vdrDisabled]=\"inventoryIsNotTracked(formGroup)\"\r\n />\r\n </clr-input-container>\r\n <div [class.inventory-untracked]=\"inventoryIsNotTracked(formGroup)\">\r\n <label class=\"clr-control-label\"\r\n >{{ 'catalog.stock-allocated' | translate }}\r\n <vdr-help-tooltip\r\n [content]=\"'catalog.stock-allocated-tooltip' | translate\"\r\n ></vdr-help-tooltip\r\n ></label>\r\n <div class=\"value\">\r\n {{ variant.stockAllocated }}\r\n </div>\r\n </div>\r\n <div [class.inventory-untracked]=\"inventoryIsNotTracked(formGroup)\">\r\n <label class=\"clr-control-label\"\r\n >{{ 'catalog.stock-saleable' | translate }}\r\n <vdr-help-tooltip\r\n [content]=\"'catalog.stock-saleable-tooltip' | translate\"\r\n ></vdr-help-tooltip\r\n ></label>\r\n <div class=\"value\">\r\n {{ getSaleableStockLevel(variant) }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"variant-form-input-row\">\r\n <div\r\n class=\"out-of-stock-threshold-wrapper\"\r\n [class.inventory-untracked]=\"inventoryIsNotTracked(formGroup)\"\r\n >\r\n <label class=\"clr-control-label\"\r\n >{{ 'catalog.out-of-stock-threshold' | translate\r\n }}<vdr-help-tooltip\r\n [content]=\"'catalog.out-of-stock-threshold-tooltip' | translate\"\r\n ></vdr-help-tooltip\r\n ></label>\r\n <div class=\"flex\">\r\n <clr-input-container>\r\n <input\r\n clrInput\r\n type=\"number\"\r\n [formControl]=\"formGroup.get('outOfStockThreshold')\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n [vdrDisabled]=\"\r\n formGroup.get('useGlobalOutOfStockThreshold')?.value !==\r\n false || inventoryIsNotTracked(formGroup)\r\n \"\r\n />\r\n </clr-input-container>\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n name=\"useGlobalOutOfStockThreshold\"\r\n formControlName=\"useGlobalOutOfStockThreshold\"\r\n [vdrDisabled]=\"\r\n !(updatePermission | hasPermission) ||\r\n inventoryIsNotTracked(formGroup)\r\n \"\r\n />\r\n <label\r\n >{{ 'catalog.use-global-value' | translate }} ({{\r\n globalOutOfStockThreshold\r\n }})</label\r\n >\r\n </clr-toggle-wrapper>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"custom-fields\">\r\n <div class=\"variant-form-input-row\">\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <vdr-tabbed-custom-fields\r\n entityName=\"ProductVariant\"\r\n [customFields]=\"customFields\"\r\n [compact]=\"true\"\r\n [customFieldsFormGroup]=\"formGroup.get('customFields')\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-block\">\r\n <div class=\"options-facets\">\r\n <vdr-entity-info [entity]=\"variant\"></vdr-entity-info>\r\n <div *ngIf=\"variant.options.length\">\r\n <div class=\"options\">\r\n <vdr-chip\r\n *ngFor=\"let option of variant.options | sort: 'groupId'\"\r\n [colorFrom]=\"optionGroupName(option.groupId)\"\r\n [invert]=\"true\"\r\n (iconClick)=\"editOption(option)\"\r\n [icon]=\"(updatePermission | hasPermission) && 'pencil'\"\r\n >\r\n <span class=\"option-group-name\">{{ optionGroupName(option.groupId) }}</span>\r\n {{ optionName(option) }}\r\n </vdr-chip>\r\n <a [routerLink]=\"['./', 'options']\" class=\"btn btn-link btn-sm\"\r\n >{{ 'catalog.edit-options' | translate }}...</a\r\n >\r\n </div>\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <div class=\"facets\">\r\n <vdr-facet-value-chip\r\n *ngFor=\"let facetValue of existingFacetValues(variant)\"\r\n [facetValue]=\"facetValue\"\r\n [removable]=\"updatePermission | hasPermission\"\r\n (remove)=\"removeFacetValue(variant, facetValue.id)\"\r\n ></vdr-facet-value-chip>\r\n <vdr-facet-value-chip\r\n *ngFor=\"let facetValue of pendingFacetValues(variant)\"\r\n [facetValue]=\"facetValue\"\r\n [removable]=\"updatePermission | hasPermission\"\r\n (remove)=\"removeFacetValue(variant, facetValue.id)\"\r\n ></vdr-facet-value-chip>\r\n <button\r\n *vdrIfPermissions=\"updatePermission\"\r\n class=\"btn btn-sm btn-secondary\"\r\n (click)=\"selectFacetValueClick.emit([variant.id])\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'catalog.add-facets' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *vdrIfMultichannel>\r\n <div class=\"card-block\" *vdrIfDefaultChannelActive>\r\n <div class=\"flex channel-assignment\">\r\n <ng-container *ngFor=\"let channel of variant.channels\">\r\n <vdr-chip\r\n *ngIf=\"!isDefaultChannel(channel.code)\"\r\n icon=\"times-circle\"\r\n [title]=\"'catalog.remove-from-channel' | translate\"\r\n (iconClick)=\"\r\n removeFromChannel.emit({ channelId: channel.id, variant: variant })\r\n \"\r\n >\r\n <vdr-channel-badge [channelCode]=\"channel.code\"></vdr-channel-badge>\r\n {{ channel.code | channelCodeToLabel }}\r\n </vdr-chip>\r\n </ng-container>\r\n <button class=\"btn btn-sm\" (click)=\"assignToChannel.emit(variant)\">\r\n <clr-icon shape=\"layers\"></clr-icon>\r\n {{ 'catalog.assign-to-channel' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n",
185
+ template: "<div class=\"variants-list\">\r\n <div\r\n class=\"variant-container card\"\r\n *ngFor=\"\r\n let variant of variants | paginate: paginationConfig || { itemsPerPage: 10, currentPage: 1 };\r\n trackBy: trackById;\r\n let i = index\r\n \"\r\n [class.disabled]=\"!formGroupMap.get(variant.id)?.get('enabled')?.value\"\r\n >\r\n <ng-container *ngIf=\"formGroupMap.get(variant.id) as formGroup\" [formGroup]=\"formGroup\">\r\n <div class=\"card-block header-row\">\r\n <div class=\"details\">\r\n <vdr-title-input class=\"sku\" [readonly]=\"!(updatePermission | hasPermission)\">\r\n <clr-input-container>\r\n <input\r\n clrInput\r\n type=\"text\"\r\n formControlName=\"sku\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n [placeholder]=\"'catalog.sku' | translate\"\r\n />\r\n </clr-input-container>\r\n </vdr-title-input>\r\n <vdr-title-input class=\"name\" [readonly]=\"!(updatePermission | hasPermission)\">\r\n <clr-input-container>\r\n <input\r\n clrInput\r\n type=\"text\"\r\n formControlName=\"name\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n [placeholder]=\"'common.name' | translate\"\r\n />\r\n </clr-input-container>\r\n </vdr-title-input>\r\n </div>\r\n <div class=\"right-controls\">\r\n <clr-toggle-wrapper *vdrIfPermissions=\"updatePermission\">\r\n <input type=\"checkbox\" clrToggle name=\"enabled\" formControlName=\"enabled\" />\r\n <label>{{ 'common.enabled' | translate }}</label>\r\n </clr-toggle-wrapper>\r\n </div>\r\n </div>\r\n <div class=\"card-block\">\r\n <div class=\"variant-body\">\r\n <div class=\"assets\">\r\n <vdr-assets\r\n [compact]=\"true\"\r\n [assets]=\"pendingAssetChanges[variant.id]?.assets || variant.assets\"\r\n [featuredAsset]=\"\r\n pendingAssetChanges[variant.id]?.featuredAsset || variant.featuredAsset\r\n \"\r\n [updatePermissions]=\"updatePermission\"\r\n (change)=\"onAssetChange(variant.id, $event)\"\r\n ></vdr-assets>\r\n </div>\r\n <div class=\"variant-form-inputs\">\r\n <div class=\"standard-fields\">\r\n <div class=\"variant-form-input-row\">\r\n <div class=\"tax-category\">\r\n <clr-select-container\r\n *vdrIfPermissions=\"updatePermission; else taxCategoryLabel\"\r\n >\r\n <label>{{ 'catalog.tax-category' | translate }}</label>\r\n <select clrSelect name=\"options\" formControlName=\"taxCategoryId\">\r\n <option\r\n *ngFor=\"let taxCategory of taxCategories\"\r\n [value]=\"taxCategory.id\"\r\n >\r\n {{ taxCategory.name }}\r\n </option>\r\n </select>\r\n </clr-select-container>\r\n <ng-template #taxCategoryLabel>\r\n <label class=\"clr-control-label\">{{\r\n 'catalog.tax-category' | translate\r\n }}</label>\r\n <div class=\"tax-category-label\">\r\n {{ getTaxCategoryName(formGroup) }}\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"price\">\r\n <clr-input-container>\r\n <label>{{ 'catalog.price' | translate }}</label>\r\n <vdr-currency-input\r\n *ngIf=\"!channelPriceIncludesTax\"\r\n clrInput\r\n [currencyCode]=\"variant.currencyCode\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n formControlName=\"price\"\r\n ></vdr-currency-input>\r\n <vdr-currency-input\r\n *ngIf=\"channelPriceIncludesTax\"\r\n clrInput\r\n [currencyCode]=\"variant.currencyCode\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n formControlName=\"priceWithTax\"\r\n ></vdr-currency-input>\r\n </clr-input-container>\r\n </div>\r\n <vdr-variant-price-detail\r\n [price]=\"formGroup.get('price')!.value\"\r\n [currencyCode]=\"variant.currencyCode\"\r\n [priceIncludesTax]=\"channelPriceIncludesTax\"\r\n [taxCategoryId]=\"formGroup.get('taxCategoryId')!.value\"\r\n ></vdr-variant-price-detail>\r\n </div>\r\n <div class=\"variant-form-input-row\">\r\n <clr-select-container *vdrIfPermissions=\"updatePermission\">\r\n <label\r\n >{{ 'catalog.track-inventory' | translate }}\r\n <vdr-help-tooltip\r\n [content]=\"'catalog.track-inventory-tooltip' | translate\"\r\n ></vdr-help-tooltip>\r\n </label>\r\n <select clrSelect name=\"options\" formControlName=\"trackInventory\">\r\n <option [value]=\"GlobalFlag.TRUE\">\r\n {{ 'catalog.track-inventory-true' | translate }}\r\n </option>\r\n <option [value]=\"GlobalFlag.FALSE\">\r\n {{ 'catalog.track-inventory-false' | translate }}\r\n </option>\r\n <option [value]=\"GlobalFlag.INHERIT\">\r\n {{ 'catalog.track-inventory-inherit' | translate }}\r\n </option>\r\n </select>\r\n </clr-select-container>\r\n <clr-input-container>\r\n <label\r\n >{{ 'catalog.stock-on-hand' | translate }}\r\n <vdr-help-tooltip\r\n [content]=\"'catalog.stock-on-hand-tooltip' | translate\"\r\n ></vdr-help-tooltip\r\n ></label>\r\n <input\r\n [class.inventory-untracked]=\"inventoryIsNotTracked(formGroup)\"\r\n clrInput\r\n type=\"number\"\r\n [min]=\"getStockOnHandMinValue(formGroup)\"\r\n step=\"1\"\r\n formControlName=\"stockOnHand\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n [vdrDisabled]=\"inventoryIsNotTracked(formGroup)\"\r\n />\r\n </clr-input-container>\r\n <div [class.inventory-untracked]=\"inventoryIsNotTracked(formGroup)\">\r\n <label class=\"clr-control-label\"\r\n >{{ 'catalog.stock-allocated' | translate }}\r\n <vdr-help-tooltip\r\n [content]=\"'catalog.stock-allocated-tooltip' | translate\"\r\n ></vdr-help-tooltip\r\n ></label>\r\n <div class=\"value\">\r\n {{ variant.stockAllocated }}\r\n </div>\r\n </div>\r\n <div [class.inventory-untracked]=\"inventoryIsNotTracked(formGroup)\">\r\n <label class=\"clr-control-label\"\r\n >{{ 'catalog.stock-saleable' | translate }}\r\n <vdr-help-tooltip\r\n [content]=\"'catalog.stock-saleable-tooltip' | translate\"\r\n ></vdr-help-tooltip\r\n ></label>\r\n <div class=\"value\">\r\n {{ getSaleableStockLevel(variant) }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"variant-form-input-row\">\r\n <div\r\n class=\"out-of-stock-threshold-wrapper\"\r\n [class.inventory-untracked]=\"inventoryIsNotTracked(formGroup)\"\r\n >\r\n <label class=\"clr-control-label\"\r\n >{{ 'catalog.out-of-stock-threshold' | translate\r\n }}<vdr-help-tooltip\r\n [content]=\"'catalog.out-of-stock-threshold-tooltip' | translate\"\r\n ></vdr-help-tooltip\r\n ></label>\r\n <div class=\"flex\">\r\n <clr-input-container>\r\n <input\r\n clrInput\r\n type=\"number\"\r\n [formControl]=\"formGroup.get('outOfStockThreshold')\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n [vdrDisabled]=\"\r\n formGroup.get('useGlobalOutOfStockThreshold')?.value !==\r\n false || inventoryIsNotTracked(formGroup)\r\n \"\r\n />\r\n </clr-input-container>\r\n <clr-toggle-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrToggle\r\n name=\"useGlobalOutOfStockThreshold\"\r\n formControlName=\"useGlobalOutOfStockThreshold\"\r\n [vdrDisabled]=\"\r\n !(updatePermission | hasPermission) ||\r\n inventoryIsNotTracked(formGroup)\r\n \"\r\n />\r\n <label\r\n >{{ 'catalog.use-global-value' | translate }} ({{\r\n globalOutOfStockThreshold\r\n }})</label\r\n >\r\n </clr-toggle-wrapper>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"custom-fields\">\r\n <div class=\"variant-form-input-row\">\r\n <section formGroupName=\"customFields\" *ngIf=\"customFields.length\">\r\n <vdr-tabbed-custom-fields\r\n entityName=\"ProductVariant\"\r\n [customFields]=\"customFields\"\r\n [compact]=\"true\"\r\n [customFieldsFormGroup]=\"formGroup.get('customFields')\"\r\n [readonly]=\"!(updatePermission | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </section>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-block\">\r\n <div class=\"options-facets\">\r\n <vdr-entity-info [entity]=\"variant\"></vdr-entity-info>\r\n <div *ngIf=\"variant.options.length\">\r\n <div class=\"options\">\r\n <vdr-chip\r\n *ngFor=\"let option of variant.options | sort: 'groupId'\"\r\n [colorFrom]=\"optionGroupName(option.groupId)\"\r\n [invert]=\"true\"\r\n (iconClick)=\"editOption(option)\"\r\n [icon]=\"(updatePermission | hasPermission) && 'pencil'\"\r\n >\r\n <span class=\"option-group-name\">{{ optionGroupName(option.groupId) }}</span>\r\n {{ optionName(option) }}\r\n </vdr-chip>\r\n <a [routerLink]=\"['./', 'options']\" class=\"btn btn-link btn-sm\"\r\n >{{ 'catalog.edit-options' | translate }}...</a\r\n >\r\n </div>\r\n </div>\r\n <div class=\"flex-spacer\"></div>\r\n <div class=\"facets\">\r\n <vdr-facet-value-chip\r\n *ngFor=\"let facetValue of existingFacetValues(variant)\"\r\n [facetValue]=\"facetValue\"\r\n [removable]=\"updatePermission | hasPermission\"\r\n (remove)=\"removeFacetValue(variant, facetValue.id)\"\r\n ></vdr-facet-value-chip>\r\n <vdr-facet-value-chip\r\n *ngFor=\"let facetValue of pendingFacetValues(variant)\"\r\n [facetValue]=\"facetValue\"\r\n [removable]=\"updatePermission | hasPermission\"\r\n (remove)=\"removeFacetValue(variant, facetValue.id)\"\r\n ></vdr-facet-value-chip>\r\n <button\r\n *vdrIfPermissions=\"updatePermission\"\r\n class=\"btn btn-sm btn-secondary\"\r\n (click)=\"selectFacetValueClick.emit([variant.id])\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'catalog.add-facets' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *vdrIfMultichannel>\r\n <div class=\"card-block\" *vdrIfDefaultChannelActive>\r\n <div class=\"flex channel-assignment\">\r\n <ng-container *ngFor=\"let channel of variant.channels\">\r\n <vdr-chip\r\n *ngIf=\"!isDefaultChannel(channel.code)\"\r\n icon=\"times-circle\"\r\n [title]=\"'catalog.remove-from-channel' | translate\"\r\n (iconClick)=\"\r\n removeFromChannel.emit({ channelId: channel.id, variant: variant })\r\n \"\r\n >\r\n <vdr-channel-badge [channelCode]=\"channel.code\"></vdr-channel-badge>\r\n {{ channel.code | channelCodeToLabel }}\r\n </vdr-chip>\r\n </ng-container>\r\n <button class=\"btn btn-sm\" (click)=\"assignToChannel.emit(variant)\">\r\n <clr-icon shape=\"layers\"></clr-icon>\r\n {{ 'catalog.assign-to-channel' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n",
179
186
  changeDetection: ChangeDetectionStrategy.OnPush,
180
- styles: [".with-selected{display:flex;min-height:52px;align-items:center;border:1px solid var(--color-component-border-100);border-radius:3px;padding:6px 18px}.with-selected vdr-select-toggle{margin-right:12px}.with-selected>label{margin-right:12px}.variant-container{transition:background-color .2s;min-height:330px}.variant-container.disabled{background-color:var(--color-component-bg-200)}.variant-container .header-row{display:flex;align-items:center;flex-wrap:wrap}.variant-container .variant-body{display:flex;flex-direction:column}@media screen and (min-width: 768px){.variant-container .variant-body{flex-direction:row}}.variant-container .details{display:flex;flex-direction:column;flex:1;margin-right:12px}@media screen and (min-width: 768px){.variant-container .details{flex-direction:row;height:36px}}.variant-container .details .name{flex:1}.variant-container .details .name ::ng-deep .clr-control-container{width:100%}.variant-container .details .name ::ng-deep .clr-control-container input.clr-input{min-width:100%}.variant-container .details .sku{width:160px;margin-right:20px;flex:0}.variant-container .details ::ng-deep .name input{min-width:300px}.variant-container .right-controls{display:flex}.variant-container .tax-category-label{margin-top:3px}.variant-container .variant-form-inputs{flex:1;display:flex;flex-direction:column}@media screen and (min-width: 768px){.variant-container .variant-form-inputs{flex-direction:row}}.variant-container .variant-form-input-row{display:flex;flex-wrap:wrap}@media screen and (min-width: 768px){.variant-container .variant-form-input-row{margin:0 6px 8px 24px}}.variant-container .variant-form-input-row>*{margin-right:24px;margin-bottom:24px}.variant-container .track-inventory-toggle{margin-top:22px}.variant-container .clr-form-control{margin-top:0}.variant-container .facets{display:flex;flex-wrap:wrap;align-items:center}.variant-container .pricing{display:flex}.variant-container .pricing>div{margin-right:12px}.variant-container .option-group-name{color:var(--color-text-200);text-transform:uppercase;font-size:10px;margin-right:3px;height:11px}.variant-container .options-facets{display:flex;color:var(--color-grey-400)}.variant-container ::ng-deep .clr-control-container{width:100%}.channel-assignment{justify-content:flex-end}.channel-assignment .btn{margin:6px 12px 6px 0}.out-of-stock-threshold-wrapper{display:flex;flex-direction:column}.out-of-stock-threshold-wrapper clr-toggle-wrapper{margin-left:24px}.inventory-untracked{opacity:.5}\n"]
187
+ styles: [".with-selected{display:flex;min-height:52px;align-items:center;border:1px solid var(--color-component-border-100);border-radius:3px;padding:6px 18px}.with-selected vdr-select-toggle{margin-right:12px}.with-selected>label{margin-right:12px}.variant-container{transition:background-color .2s;min-height:330px}.variant-container.disabled{background-color:var(--color-component-bg-200)}.variant-container .header-row{display:flex;align-items:center;flex-wrap:wrap}.variant-container .variant-body{display:flex;flex-direction:column}@media screen and (min-width: 768px){.variant-container .variant-body{flex-direction:row}}.variant-container .details{display:flex;flex-direction:column;flex:1;margin-right:12px}@media screen and (min-width: 768px){.variant-container .details{flex-direction:row;height:36px}}.variant-container .details .name{flex:1}.variant-container .details .name ::ng-deep .clr-control-container{width:100%}.variant-container .details .name ::ng-deep .clr-control-container input.clr-input{min-width:100%}.variant-container .details .sku{width:160px;margin-right:20px;flex:0}.variant-container .details ::ng-deep .name input{min-width:300px}.variant-container .right-controls{display:flex}.variant-container .tax-category-label{margin-top:3px}.variant-container .variant-form-inputs{flex:1;display:flex;flex-direction:column}@media screen and (min-width: 768px){.variant-container .variant-form-inputs{flex-direction:row}}.variant-container .variant-form-input-row{display:flex;flex-wrap:wrap}@media screen and (min-width: 768px){.variant-container .variant-form-input-row{margin:0 6px 8px 24px}}.variant-container .variant-form-input-row>*{margin-right:24px;margin-bottom:24px}.variant-container .track-inventory-toggle{margin-top:22px}.variant-container .clr-form-control{margin-top:0}.variant-container .facets{display:flex;flex-wrap:wrap;align-items:center}.variant-container .pricing{display:flex}.variant-container .pricing>div{margin-right:12px}.variant-container .option-group-name{color:var(--color-text-200);text-transform:uppercase;font-size:10px;margin-right:3px;height:11px}.variant-container .options-facets{display:flex;color:var(--color-grey-400)}.variant-container ::ng-deep .clr-control-container{width:100%}.channel-assignment{justify-content:flex-end;flex-wrap:wrap;max-height:110px;overflow-y:auto}.channel-assignment .btn{margin:6px 12px 6px 0}.out-of-stock-threshold-wrapper{display:flex;flex-direction:column}.out-of-stock-threshold-wrapper clr-toggle-wrapper{margin-left:24px}.inventory-untracked{opacity:.5}\n"]
181
188
  },] }
182
189
  ];
183
190
  ProductVariantsListComponent.ctorParameters = () => [
@@ -204,4 +211,4 @@ ProductVariantsListComponent.propDecorators = {
204
211
  selectFacetValueClick: [{ type: Output }],
205
212
  updateProductOption: [{ type: Output }]
206
213
  };
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC12YXJpYW50cy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnRzLWxpc3QvcHJvZHVjdC12YXJpYW50cy1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUVILFdBQVcsRUFHWCxrQkFBa0IsRUFDbEIsVUFBVSxFQUVWLFlBQVksRUFDWixVQUFVLEdBTWIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUd0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUXpFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBWTVILE1BQU0sT0FBTyw0QkFBNEI7SUE4QnJDLFlBQ1ksY0FBaUMsRUFDakMsWUFBMEIsRUFDMUIsV0FBd0I7UUFGeEIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBckIxQixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUEyQixDQUFDO1FBQzlELHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUcxQyxDQUFDO1FBQ0ssZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUNyRCxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFZLENBQUM7UUFDL0Ms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ICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIE91dHB1dCxcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gICAgQ3VzdG9tRmllbGRDb25maWcsXHJcbiAgICBEYXRhU2VydmljZSxcclxuICAgIEZhY2V0VmFsdWUsXHJcbiAgICBGYWNldFdpdGhWYWx1ZXMsXHJcbiAgICBmbGF0dGVuRmFjZXRWYWx1ZXMsXHJcbiAgICBHbG9iYWxGbGFnLFxyXG4gICAgTGFuZ3VhZ2VDb2RlLFxyXG4gICAgTW9kYWxTZXJ2aWNlLFxyXG4gICAgUGVybWlzc2lvbixcclxuICAgIFByb2R1Y3REZXRhaWwsXHJcbiAgICBQcm9kdWN0T3B0aW9uRnJhZ21lbnQsXHJcbiAgICBQcm9kdWN0VmFyaWFudCxcclxuICAgIFRheENhdGVnb3J5LFxyXG4gICAgVXBkYXRlUHJvZHVjdE9wdGlvbklucHV0LFxyXG59IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyBERUZBVUxUX0NIQU5ORUxfQ09ERSB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLWNvbnN0YW50cyc7XHJcbmltcG9ydCB7IG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLXV0aWxzJztcclxuaW1wb3J0IHsgUGFnaW5hdGlvbkluc3RhbmNlIH0gZnJvbSAnbmd4LXBhZ2luYXRpb24nO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQXNzZXRDaGFuZ2UgfSBmcm9tICcuLi9hc3NldHMvYXNzZXRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgICBQYWdpbmF0aW9uQ29uZmlnLFxyXG4gICAgU2VsZWN0ZWRBc3NldHMsXHJcbiAgICBWYXJpYW50Rm9ybVZhbHVlLFxyXG59IGZyb20gJy4uL3Byb2R1Y3QtZGV0YWlsL3Byb2R1Y3QtZGV0YWlsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVwZGF0ZVByb2R1Y3RPcHRpb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi91cGRhdGUtcHJvZHVjdC1vcHRpb24tZGlhbG9nL3VwZGF0ZS1wcm9kdWN0LW9wdGlvbi1kaWFsb2cuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVmFyaWFudEFzc2V0Q2hhbmdlIGV4dGVuZHMgQXNzZXRDaGFuZ2Uge1xyXG4gICAgdmFyaWFudElkOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItcHJvZHVjdC12YXJpYW50cy1saXN0JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcm9kdWN0LXZhcmlhbnRzLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vcHJvZHVjdC12YXJpYW50cy1saXN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2R1Y3RWYXJpYW50c0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIEBJbnB1dCgncHJvZHVjdFZhcmlhbnRzRm9ybUFycmF5JykgZm9ybUFycmF5OiBGb3JtQXJyYXk7XHJcbiAgICBASW5wdXQoKSB2YXJpYW50czogUHJvZHVjdFZhcmlhbnQuRnJhZ21lbnRbXTtcclxuICAgIEBJbnB1dCgpIHBhZ2luYXRpb25Db25maWc6IFBhZ2luYXRpb25Db25maWc7XHJcbiAgICBASW5wdXQoKSBjaGFubmVsUHJpY2VJbmNsdWRlc1RheDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHRheENhdGVnb3JpZXM6IFRheENhdGVnb3J5W107XHJcbiAgICBASW5wdXQoKSBmYWNldHM6IEZhY2V0V2l0aFZhbHVlcy5GcmFnbWVudFtdO1xyXG4gICAgQElucHV0KCkgb3B0aW9uR3JvdXBzOiBQcm9kdWN0RGV0YWlsLk9wdGlvbkdyb3Vwc1tdO1xyXG4gICAgQElucHV0KCkgY3VzdG9tRmllbGRzOiBDdXN0b21GaWVsZENvbmZpZ1tdO1xyXG4gICAgQElucHV0KCkgY3VzdG9tT3B0aW9uRmllbGRzOiBDdXN0b21GaWVsZENvbmZpZ1tdO1xyXG4gICAgQElucHV0KCkgYWN0aXZlTGFuZ3VhZ2U6IExhbmd1YWdlQ29kZTtcclxuICAgIEBJbnB1dCgpIHBlbmRpbmdBc3NldENoYW5nZXM6IHsgW3ZhcmlhbnRJZDogc3RyaW5nXTogU2VsZWN0ZWRBc3NldHMgfTtcclxuICAgIEBPdXRwdXQoKSBhc3NpZ25Ub0NoYW5uZWwgPSBuZXcgRXZlbnRFbWl0dGVyPFByb2R1Y3RWYXJpYW50LkZyYWdtZW50PigpO1xyXG4gICAgQE91dHB1dCgpIHJlbW92ZUZyb21DaGFubmVsID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICAgICAgY2hhbm5lbElkOiBzdHJpbmc7XHJcbiAgICAgICAgdmFyaWFudDogUHJvZHVjdFZhcmlhbnQuRnJhZ21lbnQ7XHJcbiAgICB9PigpO1xyXG4gICAgQE91dHB1dCgpIGFzc2V0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxWYXJpYW50QXNzZXRDaGFuZ2U+KCk7XHJcbiAgICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcclxuICAgIEBPdXRwdXQoKSBzZWxlY3RGYWNldFZhbHVlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZ1tdPigpO1xyXG4gICAgQE91dHB1dCgpIHVwZGF0ZVByb2R1Y3RPcHRpb24gPSBuZXcgRXZlbnRFbWl0dGVyPFVwZGF0ZVByb2R1Y3RPcHRpb25JbnB1dCAmIHsgYXV0b1VwZGF0ZTogYm9vbGVhbiB9PigpO1xyXG4gICAgc2VsZWN0ZWRWYXJpYW50SWRzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgZm9ybUdyb3VwTWFwID0gbmV3IE1hcDxzdHJpbmcsIEZvcm1Hcm91cD4oKTtcclxuICAgIEdsb2JhbEZsYWcgPSBHbG9iYWxGbGFnO1xyXG4gICAgZ2xvYmFsVHJhY2tJbnZlbnRvcnk6IGJvb2xlYW47XHJcbiAgICBnbG9iYWxPdXRPZlN0b2NrVGhyZXNob2xkOiBudW1iZXI7XHJcbiAgICByZWFkb25seSB1cGRhdGVQZXJtaXNzaW9uID0gW1Blcm1pc3Npb24uVXBkYXRlQ2F0YWxvZywgUGVybWlzc2lvbi5VcGRhdGVQcm9kdWN0XTtcclxuICAgIHByaXZhdGUgZmFjZXRWYWx1ZXM6IEZhY2V0VmFsdWUuRnJhZ21lbnRbXTtcclxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcclxuICAgICkge31cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLnNldHRpbmdzLmdldEdsb2JhbFNldHRpbmdzKCdjYWNoZS1maXJzdCcpLnNpbmdsZSQuc3Vic2NyaWJlKCh7IGdsb2JhbFNldHRpbmdzIH0pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5nbG9iYWxUcmFja0ludmVudG9yeSA9IGdsb2JhbFNldHRpbmdzLnRyYWNrSW52ZW50b3J5O1xyXG4gICAgICAgICAgICB0aGlzLmdsb2JhbE91dE9mU3RvY2tUaHJlc2hvbGQgPSBnbG9iYWxTZXR0aW5ncy5vdXRPZlN0b2NrVGhyZXNob2xkO1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5mb3JtQXJyYXkudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxyXG4gICAgICAgICAgICB0aGlzLmZvcm1BcnJheS52YWx1ZUNoYW5nZXNcclxuICAgICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgIG1hcCh2YWx1ZSA9PiB2YWx1ZS5sZW5ndGgpLFxyXG4gICAgICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSgxKSxcclxuICAgICAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5idWlsZEZvcm1Hcm91cE1hcCgpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5idWlsZEZvcm1Hcm91cE1hcCgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoJ2ZhY2V0cycgaW4gY2hhbmdlcyAmJiAhIWNoYW5nZXNbJ2ZhY2V0cyddLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZhY2V0VmFsdWVzID0gZmxhdHRlbkZhY2V0VmFsdWVzKHRoaXMuZmFjZXRzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlzRGVmYXVsdENoYW5uZWwoY2hhbm5lbENvZGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBjaGFubmVsQ29kZSA9PT0gREVGQVVMVF9DSEFOTkVMX0NPREU7XHJcbiAgICB9XHJcblxyXG4gICAgdHJhY2tCeUlkKGluZGV4OiBudW1iZXIsIGl0ZW06IFByb2R1Y3RWYXJpYW50LkZyYWdtZW50KSB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgaW52ZW50b3J5SXNOb3RUcmFja2VkKGZvcm1Hcm91cDogRm9ybUdyb3VwKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgdHJhY2tJbnZlbnRvcnkgPSBmb3JtR3JvdXAuZ2V0KCd0cmFja0ludmVudG9yeScpPy52YWx1ZTtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICB0cmFja0ludmVudG9yeSA9PT0gR2xvYmFsRmxhZy5GQUxTRSB8fFxyXG4gICAgICAgICAgICAodHJhY2tJbnZlbnRvcnkgPT09IEdsb2JhbEZsYWcuSU5IRVJJVCAmJiB0aGlzLmdsb2JhbFRyYWNrSW52ZW50b3J5ID09PSBmYWxzZSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFRheENhdGVnb3J5TmFtZShncm91cDogRm9ybUdyb3VwKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBjb250cm9sID0gZ3JvdXAuZ2V0KFsndGF4Q2F0ZWdvcnlJZCddKTtcclxuICAgICAgICBpZiAoY29udHJvbCAmJiB0aGlzLnRheENhdGVnb3JpZXMpIHtcclxuICAgICAgICAgICAgY29uc3QgbWF0Y2ggPSB0aGlzLnRheENhdGVnb3JpZXMuZmluZCh0ID0+IHQuaWQgPT09IGNvbnRyb2wudmFsdWUpO1xyXG4gICAgICAgICAgICByZXR1cm4gbWF0Y2ggPyBtYXRjaC5uYW1lIDogJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuXHJcbiAgICBnZXRTYWxlYWJsZVN0b2NrTGV2ZWwodmFyaWFudDogUHJvZHVjdFZhcmlhbnQuRnJhZ21lbnQpIHtcclxuICAgICAgICBjb25zdCBlZmZlY3RpdmVPdXRPZlN0b2NrVGhyZXNob2xkID0gdmFyaWFudC51c2VHbG9iYWxPdXRPZlN0b2NrVGhyZXNob2xkXHJcbiAgICAgICAgICAgID8gdGhpcy5nbG9iYWxPdXRPZlN0b2NrVGhyZXNob2xkXHJcbiAgICAgICAgICAgIDogdmFyaWFudC5vdXRPZlN0b2NrVGhyZXNob2xkO1xyXG4gICAgICAgIHJldHVybiB2YXJpYW50LnN0b2NrT25IYW5kIC0gdmFyaWFudC5zdG9ja0FsbG9jYXRlZCAtIGVmZmVjdGl2ZU91dE9mU3RvY2tUaHJlc2hvbGQ7XHJcbiAgICB9XHJcblxyXG4gICAgYXJlQWxsU2VsZWN0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICEhdGhpcy52YXJpYW50cyAmJiB0aGlzLnNlbGVjdGVkVmFyaWFudElkcy5sZW5ndGggPT09IHRoaXMudmFyaWFudHMubGVuZ3RoO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQXNzZXRDaGFuZ2UodmFyaWFudElkOiBzdHJpbmcsIGV2ZW50OiBBc3NldENoYW5nZSkge1xyXG4gICAgICAgIHRoaXMuYXNzZXRDaGFuZ2UuZW1pdCh7XHJcbiAgICAgICAgICAgIHZhcmlhbnRJZCxcclxuICAgICAgICAgICAgLi4uZXZlbnQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnZhcmlhbnRzLmZpbmRJbmRleCh2ID0+IHYuaWQgPT09IHZhcmlhbnRJZCk7XHJcbiAgICAgICAgdGhpcy5mb3JtQXJyYXkuYXQoaW5kZXgpLm1hcmtBc0RpcnR5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgdG9nZ2xlU2VsZWN0QWxsKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmFyZUFsbFNlbGVjdGVkKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhcmlhbnRJZHMgPSBbXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFyaWFudElkcyA9IHRoaXMudmFyaWFudHMubWFwKHYgPT4gdi5pZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZFZhcmlhbnRJZHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZVNlbGVjdFZhcmlhbnQodmFyaWFudElkOiBzdHJpbmcpIHtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRWYXJpYW50SWRzLmluZGV4T2YodmFyaWFudElkKTtcclxuICAgICAgICBpZiAoLTEgPCBpbmRleCkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFyaWFudElkcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYXJpYW50SWRzLnB1c2godmFyaWFudElkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkVmFyaWFudElkcyk7XHJcbiAgICB9XHJcblxyXG4gICAgb3B0aW9uR3JvdXBOYW1lKG9wdGlvbkdyb3VwSWQ6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgY29uc3QgZ3JvdXAgPSB0aGlzLm9wdGlvbkdyb3Vwcy5maW5kKGcgPT4gZy5pZCA9PT0gb3B0aW9uR3JvdXBJZCk7XHJcbiAgICAgICAgaWYgKGdyb3VwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uID1cclxuICAgICAgICAgICAgICAgIGdyb3VwPy50cmFuc2xhdGlvbnMuZmluZCh0ID0+IHQubGFuZ3VhZ2VDb2RlID09PSB0aGlzLmFjdGl2ZUxhbmd1YWdlKSA/P1xyXG4gICAgICAgICAgICAgICAgZ3JvdXAudHJhbnNsYXRpb25zWzBdO1xyXG4gICAgICAgICAgICByZXR1cm4gdHJhbnNsYXRpb24ubmFtZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb3B0aW9uTmFtZShvcHRpb246IFByb2R1Y3RPcHRpb25GcmFnbWVudCkge1xyXG4gICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uID1cclxuICAgICAgICAgICAgb3B0aW9uLnRyYW5zbGF0aW9ucy5maW5kKHQgPT4gdC5sYW5ndWFnZUNvZGUgPT09IHRoaXMuYWN0aXZlTGFuZ3VhZ2UpID8/IG9wdGlvbi50cmFuc2xhdGlvbnNbMF07XHJcbiAgICAgICAgcmV0dXJuIHRyYW5zbGF0aW9uLm5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgcGVuZGluZ0ZhY2V0VmFsdWVzKHZhcmlhbnQ6IFByb2R1Y3RWYXJpYW50LkZyYWdtZW50KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZmFjZXRzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZvcm1GYWNldFZhbHVlSWRzID0gdGhpcy5nZXRGYWNldFZhbHVlSWRzKHZhcmlhbnQuaWQpO1xyXG4gICAgICAgICAgICBjb25zdCB2YXJpYW50RmFjZXRWYWx1ZUlkcyA9IHZhcmlhbnQuZmFjZXRWYWx1ZXMubWFwKGZ2ID0+IGZ2LmlkKTtcclxuICAgICAgICAgICAgcmV0dXJuIGZvcm1GYWNldFZhbHVlSWRzXHJcbiAgICAgICAgICAgICAgICAuZmlsdGVyKHggPT4gIXZhcmlhbnRGYWNldFZhbHVlSWRzLmluY2x1ZGVzKHgpKVxyXG4gICAgICAgICAgICAgICAgLm1hcChpZCA9PiB0aGlzLmZhY2V0VmFsdWVzLmZpbmQoZnYgPT4gZnYuaWQgPT09IGlkKSlcclxuICAgICAgICAgICAgICAgIC5maWx0ZXIobm90TnVsbE9yVW5kZWZpbmVkKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gW107XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGV4aXN0aW5nRmFjZXRWYWx1ZXModmFyaWFudDogUHJvZHVjdFZhcmlhbnQuRnJhZ21lbnQpIHtcclxuICAgICAgICBjb25zdCBmb3JtRmFjZXRWYWx1ZUlkcyA9IHRoaXMuZ2V0RmFjZXRWYWx1ZUlkcyh2YXJpYW50LmlkKTtcclxuICAgICAgICBjb25zdCBpbnRlcnNlY3Rpb24gPSBbLi4uZm9ybUZhY2V0VmFsdWVJZHNdLmZpbHRlcih4ID0+XHJcbiAgICAgICAgICAgIHZhcmlhbnQuZmFjZXRWYWx1ZXMubWFwKGZ2ID0+IGZ2LmlkKS5pbmNsdWRlcyh4KSxcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBpbnRlcnNlY3Rpb25cclxuICAgICAgICAgICAgLm1hcChpZCA9PiB2YXJpYW50LmZhY2V0VmFsdWVzLmZpbmQoZnYgPT4gZnYuaWQgPT09IGlkKSlcclxuICAgICAgICAgICAgLmZpbHRlcihub3ROdWxsT3JVbmRlZmluZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUZhY2V0VmFsdWUodmFyaWFudDogUHJvZHVjdFZhcmlhbnQuRnJhZ21lbnQsIGZhY2V0VmFsdWVJZDogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgZm9ybUdyb3VwID0gdGhpcy5mb3JtR3JvdXBNYXAuZ2V0KHZhcmlhbnQuaWQpO1xyXG4gICAgICAgIGlmIChmb3JtR3JvdXApIHtcclxuICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSAoZm9ybUdyb3VwLnZhbHVlIGFzIFZhcmlhbnRGb3JtVmFsdWUpLmZhY2V0VmFsdWVJZHMuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgaWQgPT4gaWQgIT09IGZhY2V0VmFsdWVJZCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgZm9ybUdyb3VwLnBhdGNoVmFsdWUoe1xyXG4gICAgICAgICAgICAgICAgZmFjZXRWYWx1ZUlkczogbmV3VmFsdWUsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBmb3JtR3JvdXAubWFya0FzRGlydHkoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaXNWYXJpYW50U2VsZWN0ZWQodmFyaWFudElkOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gLTEgPCB0aGlzLnNlbGVjdGVkVmFyaWFudElkcy5pbmRleE9mKHZhcmlhbnRJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgZWRpdE9wdGlvbihvcHRpb246IFByb2R1Y3RWYXJpYW50Lk9wdGlvbnMpIHtcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZVxyXG4gICAgICAgICAgICAuZnJvbUNvbXBvbmVudChVcGRhdGVQcm9kdWN0T3B0aW9uRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICBzaXplOiAnbWQnLFxyXG4gICAgICAgICAgICAgICAgbG9jYWxzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvZHVjdE9wdGlvbjogb3B0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZUxhbmd1YWdlOiB0aGlzLmFjdGl2ZUxhbmd1YWdlLFxyXG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbUZpZWxkczogdGhpcy5jdXN0b21PcHRpb25GaWVsZHMsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVQcm9kdWN0T3B0aW9uLmVtaXQocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBidWlsZEZvcm1Hcm91cE1hcCgpIHtcclxuICAgICAgICB0aGlzLmZvcm1Hcm91cE1hcC5jbGVhcigpO1xyXG4gICAgICAgIGZvciAoY29uc3QgY29udHJvbEdyb3VwIG9mIHRoaXMuZm9ybUFycmF5LmNvbnRyb2xzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwTWFwLnNldChjb250cm9sR3JvdXAudmFsdWUuaWQsIGNvbnRyb2xHcm91cCBhcyBGb3JtR3JvdXApO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RmFjZXRWYWx1ZUlkcyhpZDogc3RyaW5nKTogc3RyaW5nW10ge1xyXG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZTogVmFyaWFudEZvcm1WYWx1ZSA9IHRoaXMuZm9ybUdyb3VwTWFwLmdldChpZCk/LnZhbHVlO1xyXG4gICAgICAgIHJldHVybiBmb3JtVmFsdWUuZmFjZXRWYWx1ZUlkcztcclxuICAgIH1cclxufVxyXG4iXX0=
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC12YXJpYW50cy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnRzLWxpc3QvcHJvZHVjdC12YXJpYW50cy1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUVILFdBQVcsRUFHWCxrQkFBa0IsRUFDbEIsVUFBVSxFQUVWLFlBQVksRUFDWixVQUFVLEdBTWIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUd0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUXpFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBWTVILE1BQU0sT0FBTyw0QkFBNEI7SUE4QnJDLFlBQ1ksY0FBaUMsRUFDakMsWUFBMEIsRUFDMUIsV0FBd0I7UUFGeEIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBckIxQixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUEyQixDQUFDO1FBQzlELHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUcxQyxDQUFDO1FBQ0ssZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUNyRCxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFZLENBQUM7UUFDL0Ms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Ozs7d0JBdUNWLEtBQUssU0FBQywwQkFBMEI7dUJBQ2hDLEtBQUs7K0JBQ0wsS0FBSztzQ0FDTCxLQUFLOzRCQUNMLEtBQUs7cUJBQ0wsS0FBSzsyQkFDTCxLQUFLOzJCQUNMLEtBQUs7aUNBQ0wsS0FBSzs2QkFDTCxLQUFLO2tDQUNMLEtBQUs7OEJBQ0wsTUFBTTtnQ0FDTixNQUFNOzBCQUlOLE1BQU07OEJBQ04sTUFBTTtvQ0FDTixNQUFNO2tDQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIElucHV0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7XHJcbiAgICBDdXN0b21GaWVsZENvbmZpZyxcclxuICAgIERhdGFTZXJ2aWNlLFxyXG4gICAgRmFjZXRWYWx1ZSxcclxuICAgIEZhY2V0V2l0aFZhbHVlcyxcclxuICAgIGZsYXR0ZW5GYWNldFZhbHVlcyxcclxuICAgIEdsb2JhbEZsYWcsXHJcbiAgICBMYW5ndWFnZUNvZGUsXHJcbiAgICBNb2RhbFNlcnZpY2UsXHJcbiAgICBQZXJtaXNzaW9uLFxyXG4gICAgUHJvZHVjdERldGFpbCxcclxuICAgIFByb2R1Y3RPcHRpb25GcmFnbWVudCxcclxuICAgIFByb2R1Y3RWYXJpYW50LFxyXG4gICAgVGF4Q2F0ZWdvcnksXHJcbiAgICBVcGRhdGVQcm9kdWN0T3B0aW9uSW5wdXQsXHJcbn0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcbmltcG9ydCB7IERFRkFVTFRfQ0hBTk5FTF9DT0RFIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtY29uc3RhbnRzJztcclxuaW1wb3J0IHsgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xyXG5pbXBvcnQgeyBQYWdpbmF0aW9uSW5zdGFuY2UgfSBmcm9tICduZ3gtcGFnaW5hdGlvbic7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBBc3NldENoYW5nZSB9IGZyb20gJy4uL2Fzc2V0cy9hc3NldHMuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICAgIFBhZ2luYXRpb25Db25maWcsXHJcbiAgICBTZWxlY3RlZEFzc2V0cyxcclxuICAgIFZhcmlhbnRGb3JtVmFsdWUsXHJcbn0gZnJvbSAnLi4vcHJvZHVjdC1kZXRhaWwvcHJvZHVjdC1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVXBkYXRlUHJvZHVjdE9wdGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL3VwZGF0ZS1wcm9kdWN0LW9wdGlvbi1kaWFsb2cvdXBkYXRlLXByb2R1Y3Qtb3B0aW9uLWRpYWxvZy5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBWYXJpYW50QXNzZXRDaGFuZ2UgZXh0ZW5kcyBBc3NldENoYW5nZSB7XHJcbiAgICB2YXJpYW50SWQ6IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1wcm9kdWN0LXZhcmlhbnRzLWxpc3QnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QtdmFyaWFudHMtbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9wcm9kdWN0LXZhcmlhbnRzLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjdFZhcmlhbnRzTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQElucHV0KCdwcm9kdWN0VmFyaWFudHNGb3JtQXJyYXknKSBmb3JtQXJyYXk6IEZvcm1BcnJheTtcclxuICAgIEBJbnB1dCgpIHZhcmlhbnRzOiBQcm9kdWN0VmFyaWFudC5GcmFnbWVudFtdO1xyXG4gICAgQElucHV0KCkgcGFnaW5hdGlvbkNvbmZpZzogUGFnaW5hdGlvbkNvbmZpZztcclxuICAgIEBJbnB1dCgpIGNoYW5uZWxQcmljZUluY2x1ZGVzVGF4OiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgdGF4Q2F0ZWdvcmllczogVGF4Q2F0ZWdvcnlbXTtcclxuICAgIEBJbnB1dCgpIGZhY2V0czogRmFjZXRXaXRoVmFsdWVzLkZyYWdtZW50W107XHJcbiAgICBASW5wdXQoKSBvcHRpb25Hcm91cHM6IFByb2R1Y3REZXRhaWwuT3B0aW9uR3JvdXBzW107XHJcbiAgICBASW5wdXQoKSBjdXN0b21GaWVsZHM6IEN1c3RvbUZpZWxkQ29uZmlnW107XHJcbiAgICBASW5wdXQoKSBjdXN0b21PcHRpb25GaWVsZHM6IEN1c3RvbUZpZWxkQ29uZmlnW107XHJcbiAgICBASW5wdXQoKSBhY3RpdmVMYW5ndWFnZTogTGFuZ3VhZ2VDb2RlO1xyXG4gICAgQElucHV0KCkgcGVuZGluZ0Fzc2V0Q2hhbmdlczogeyBbdmFyaWFudElkOiBzdHJpbmddOiBTZWxlY3RlZEFzc2V0cyB9O1xyXG4gICAgQE91dHB1dCgpIGFzc2lnblRvQ2hhbm5lbCA9IG5ldyBFdmVudEVtaXR0ZXI8UHJvZHVjdFZhcmlhbnQuRnJhZ21lbnQ+KCk7XHJcbiAgICBAT3V0cHV0KCkgcmVtb3ZlRnJvbUNoYW5uZWwgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgICAgICBjaGFubmVsSWQ6IHN0cmluZztcclxuICAgICAgICB2YXJpYW50OiBQcm9kdWN0VmFyaWFudC5GcmFnbWVudDtcclxuICAgIH0+KCk7XHJcbiAgICBAT3V0cHV0KCkgYXNzZXRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFZhcmlhbnRBc3NldENoYW5nZT4oKTtcclxuICAgIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZ1tdPigpO1xyXG4gICAgQE91dHB1dCgpIHNlbGVjdEZhY2V0VmFsdWVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XHJcbiAgICBAT3V0cHV0KCkgdXBkYXRlUHJvZHVjdE9wdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8VXBkYXRlUHJvZHVjdE9wdGlvbklucHV0ICYgeyBhdXRvVXBkYXRlOiBib29sZWFuIH0+KCk7XHJcbiAgICBzZWxlY3RlZFZhcmlhbnRJZHM6IHN0cmluZ1tdID0gW107XHJcbiAgICBmb3JtR3JvdXBNYXAgPSBuZXcgTWFwPHN0cmluZywgRm9ybUdyb3VwPigpO1xyXG4gICAgR2xvYmFsRmxhZyA9IEdsb2JhbEZsYWc7XHJcbiAgICBnbG9iYWxUcmFja0ludmVudG9yeTogYm9vbGVhbjtcclxuICAgIGdsb2JhbE91dE9mU3RvY2tUaHJlc2hvbGQ6IG51bWJlcjtcclxuICAgIHJlYWRvbmx5IHVwZGF0ZVBlcm1pc3Npb24gPSBbUGVybWlzc2lvbi5VcGRhdGVDYXRhbG9nLCBQZXJtaXNzaW9uLlVwZGF0ZVByb2R1Y3RdO1xyXG4gICAgcHJpdmF0ZSBmYWNldFZhbHVlczogRmFjZXRWYWx1ZS5GcmFnbWVudFtdO1xyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2Uuc2V0dGluZ3MuZ2V0R2xvYmFsU2V0dGluZ3MoJ2NhY2hlLWZpcnN0Jykuc2luZ2xlJC5zdWJzY3JpYmUoKHsgZ2xvYmFsU2V0dGluZ3MgfSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmdsb2JhbFRyYWNrSW52ZW50b3J5ID0gZ2xvYmFsU2V0dGluZ3MudHJhY2tJbnZlbnRvcnk7XHJcbiAgICAgICAgICAgIHRoaXMuZ2xvYmFsT3V0T2ZTdG9ja1RocmVzaG9sZCA9IGdsb2JhbFNldHRpbmdzLm91dE9mU3RvY2tUaHJlc2hvbGQ7XHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmZvcm1BcnJheS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCkpO1xyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXHJcbiAgICAgICAgICAgIHRoaXMuZm9ybUFycmF5LnZhbHVlQ2hhbmdlc1xyXG4gICAgICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgbWFwKHZhbHVlID0+IHZhbHVlLmxlbmd0aCksXHJcbiAgICAgICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKDEpLFxyXG4gICAgICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkRm9ybUdyb3VwTWFwKCk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmJ1aWxkRm9ybUdyb3VwTWFwKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmICgnZmFjZXRzJyBpbiBjaGFuZ2VzICYmICEhY2hhbmdlc1snZmFjZXRzJ10uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmFjZXRWYWx1ZXMgPSBmbGF0dGVuRmFjZXRWYWx1ZXModGhpcy5mYWNldHMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaXNEZWZhdWx0Q2hhbm5lbChjaGFubmVsQ29kZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIGNoYW5uZWxDb2RlID09PSBERUZBVUxUX0NIQU5ORUxfQ09ERTtcclxuICAgIH1cclxuXHJcbiAgICB0cmFja0J5SWQoaW5kZXg6IG51bWJlciwgaXRlbTogUHJvZHVjdFZhcmlhbnQuRnJhZ21lbnQpIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5pZDtcclxuICAgIH1cclxuXHJcbiAgICBpbnZlbnRvcnlJc05vdFRyYWNrZWQoZm9ybUdyb3VwOiBGb3JtR3JvdXApOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCB0cmFja0ludmVudG9yeSA9IGZvcm1Hcm91cC5nZXQoJ3RyYWNrSW52ZW50b3J5Jyk/LnZhbHVlO1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIHRyYWNrSW52ZW50b3J5ID09PSBHbG9iYWxGbGFnLkZBTFNFIHx8XHJcbiAgICAgICAgICAgICh0cmFja0ludmVudG9yeSA9PT0gR2xvYmFsRmxhZy5JTkhFUklUICYmIHRoaXMuZ2xvYmFsVHJhY2tJbnZlbnRvcnkgPT09IGZhbHNlKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VGF4Q2F0ZWdvcnlOYW1lKGdyb3VwOiBGb3JtR3JvdXApOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSBncm91cC5nZXQoWyd0YXhDYXRlZ29yeUlkJ10pO1xyXG4gICAgICAgIGlmIChjb250cm9sICYmIHRoaXMudGF4Q2F0ZWdvcmllcykge1xyXG4gICAgICAgICAgICBjb25zdCBtYXRjaCA9IHRoaXMudGF4Q2F0ZWdvcmllcy5maW5kKHQgPT4gdC5pZCA9PT0gY29udHJvbC52YWx1ZSk7XHJcbiAgICAgICAgICAgIHJldHVybiBtYXRjaCA/IG1hdGNoLm5hbWUgOiAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFN0b2NrT25IYW5kTWluVmFsdWUodmFyaWFudDogRm9ybUdyb3VwKSB7XHJcbiAgICAgICAgY29uc3QgZWZmZWN0aXZlT3V0T2ZTdG9ja1RocmVzaG9sZCA9IHZhcmlhbnQuZ2V0KCd1c2VHbG9iYWxPdXRPZlN0b2NrVGhyZXNob2xkJyk/LnZhbHVlXHJcbiAgICAgICAgICAgID8gdGhpcy5nbG9iYWxPdXRPZlN0b2NrVGhyZXNob2xkXHJcbiAgICAgICAgICAgIDogdmFyaWFudC5nZXQoJ291dE9mU3RvY2tUaHJlc2hvbGQnKT8udmFsdWU7XHJcbiAgICAgICAgcmV0dXJuIGVmZmVjdGl2ZU91dE9mU3RvY2tUaHJlc2hvbGQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U2FsZWFibGVTdG9ja0xldmVsKHZhcmlhbnQ6IFByb2R1Y3RWYXJpYW50LkZyYWdtZW50KSB7XHJcbiAgICAgICAgY29uc3QgZWZmZWN0aXZlT3V0T2ZTdG9ja1RocmVzaG9sZCA9IHZhcmlhbnQudXNlR2xvYmFsT3V0T2ZTdG9ja1RocmVzaG9sZFxyXG4gICAgICAgICAgICA/IHRoaXMuZ2xvYmFsT3V0T2ZTdG9ja1RocmVzaG9sZFxyXG4gICAgICAgICAgICA6IHZhcmlhbnQub3V0T2ZTdG9ja1RocmVzaG9sZDtcclxuICAgICAgICByZXR1cm4gdmFyaWFudC5zdG9ja09uSGFuZCAtIHZhcmlhbnQuc3RvY2tBbGxvY2F0ZWQgLSBlZmZlY3RpdmVPdXRPZlN0b2NrVGhyZXNob2xkO1xyXG4gICAgfVxyXG5cclxuICAgIGFyZUFsbFNlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhIXRoaXMudmFyaWFudHMgJiYgdGhpcy5zZWxlY3RlZFZhcmlhbnRJZHMubGVuZ3RoID09PSB0aGlzLnZhcmlhbnRzLmxlbmd0aDtcclxuICAgIH1cclxuXHJcbiAgICBvbkFzc2V0Q2hhbmdlKHZhcmlhbnRJZDogc3RyaW5nLCBldmVudDogQXNzZXRDaGFuZ2UpIHtcclxuICAgICAgICB0aGlzLmFzc2V0Q2hhbmdlLmVtaXQoe1xyXG4gICAgICAgICAgICB2YXJpYW50SWQsXHJcbiAgICAgICAgICAgIC4uLmV2ZW50LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy52YXJpYW50cy5maW5kSW5kZXgodiA9PiB2LmlkID09PSB2YXJpYW50SWQpO1xyXG4gICAgICAgIHRoaXMuZm9ybUFycmF5LmF0KGluZGV4KS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZVNlbGVjdEFsbCgpIHtcclxuICAgICAgICBpZiAodGhpcy5hcmVBbGxTZWxlY3RlZCgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYXJpYW50SWRzID0gW107XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhcmlhbnRJZHMgPSB0aGlzLnZhcmlhbnRzLm1hcCh2ID0+IHYuaWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRWYXJpYW50SWRzKTtcclxuICAgIH1cclxuXHJcbiAgICB0b2dnbGVTZWxlY3RWYXJpYW50KHZhcmlhbnRJZDogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkVmFyaWFudElkcy5pbmRleE9mKHZhcmlhbnRJZCk7XHJcbiAgICAgICAgaWYgKC0xIDwgaW5kZXgpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhcmlhbnRJZHMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFyaWFudElkcy5wdXNoKHZhcmlhbnRJZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZFZhcmlhbnRJZHMpO1xyXG4gICAgfVxyXG5cclxuICAgIG9wdGlvbkdyb3VwTmFtZShvcHRpb25Hcm91cElkOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIGNvbnN0IGdyb3VwID0gdGhpcy5vcHRpb25Hcm91cHMuZmluZChnID0+IGcuaWQgPT09IG9wdGlvbkdyb3VwSWQpO1xyXG4gICAgICAgIGlmIChncm91cCkge1xyXG4gICAgICAgICAgICBjb25zdCB0cmFuc2xhdGlvbiA9XHJcbiAgICAgICAgICAgICAgICBncm91cD8udHJhbnNsYXRpb25zLmZpbmQodCA9PiB0Lmxhbmd1YWdlQ29kZSA9PT0gdGhpcy5hY3RpdmVMYW5ndWFnZSkgPz9cclxuICAgICAgICAgICAgICAgIGdyb3VwLnRyYW5zbGF0aW9uc1swXTtcclxuICAgICAgICAgICAgcmV0dXJuIHRyYW5zbGF0aW9uLm5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9wdGlvbk5hbWUob3B0aW9uOiBQcm9kdWN0T3B0aW9uRnJhZ21lbnQpIHtcclxuICAgICAgICBjb25zdCB0cmFuc2xhdGlvbiA9XHJcbiAgICAgICAgICAgIG9wdGlvbi50cmFuc2xhdGlvbnMuZmluZCh0ID0+IHQubGFuZ3VhZ2VDb2RlID09PSB0aGlzLmFjdGl2ZUxhbmd1YWdlKSA/PyBvcHRpb24udHJhbnNsYXRpb25zWzBdO1xyXG4gICAgICAgIHJldHVybiB0cmFuc2xhdGlvbi5uYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIHBlbmRpbmdGYWNldFZhbHVlcyh2YXJpYW50OiBQcm9kdWN0VmFyaWFudC5GcmFnbWVudCkge1xyXG4gICAgICAgIGlmICh0aGlzLmZhY2V0cykge1xyXG4gICAgICAgICAgICBjb25zdCBmb3JtRmFjZXRWYWx1ZUlkcyA9IHRoaXMuZ2V0RmFjZXRWYWx1ZUlkcyh2YXJpYW50LmlkKTtcclxuICAgICAgICAgICAgY29uc3QgdmFyaWFudEZhY2V0VmFsdWVJZHMgPSB2YXJpYW50LmZhY2V0VmFsdWVzLm1hcChmdiA9PiBmdi5pZCk7XHJcbiAgICAgICAgICAgIHJldHVybiBmb3JtRmFjZXRWYWx1ZUlkc1xyXG4gICAgICAgICAgICAgICAgLmZpbHRlcih4ID0+ICF2YXJpYW50RmFjZXRWYWx1ZUlkcy5pbmNsdWRlcyh4KSlcclxuICAgICAgICAgICAgICAgIC5tYXAoaWQgPT4gdGhpcy5mYWNldFZhbHVlcy5maW5kKGZ2ID0+IGZ2LmlkID09PSBpZCkpXHJcbiAgICAgICAgICAgICAgICAuZmlsdGVyKG5vdE51bGxPclVuZGVmaW5lZCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBleGlzdGluZ0ZhY2V0VmFsdWVzKHZhcmlhbnQ6IFByb2R1Y3RWYXJpYW50LkZyYWdtZW50KSB7XHJcbiAgICAgICAgY29uc3QgZm9ybUZhY2V0VmFsdWVJZHMgPSB0aGlzLmdldEZhY2V0VmFsdWVJZHModmFyaWFudC5pZCk7XHJcbiAgICAgICAgY29uc3QgaW50ZXJzZWN0aW9uID0gWy4uLmZvcm1GYWNldFZhbHVlSWRzXS5maWx0ZXIoeCA9PlxyXG4gICAgICAgICAgICB2YXJpYW50LmZhY2V0VmFsdWVzLm1hcChmdiA9PiBmdi5pZCkuaW5jbHVkZXMoeCksXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gaW50ZXJzZWN0aW9uXHJcbiAgICAgICAgICAgIC5tYXAoaWQgPT4gdmFyaWFudC5mYWNldFZhbHVlcy5maW5kKGZ2ID0+IGZ2LmlkID09PSBpZCkpXHJcbiAgICAgICAgICAgIC5maWx0ZXIobm90TnVsbE9yVW5kZWZpbmVkKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVGYWNldFZhbHVlKHZhcmlhbnQ6IFByb2R1Y3RWYXJpYW50LkZyYWdtZW50LCBmYWNldFZhbHVlSWQ6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IGZvcm1Hcm91cCA9IHRoaXMuZm9ybUdyb3VwTWFwLmdldCh2YXJpYW50LmlkKTtcclxuICAgICAgICBpZiAoZm9ybUdyb3VwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gKGZvcm1Hcm91cC52YWx1ZSBhcyBWYXJpYW50Rm9ybVZhbHVlKS5mYWNldFZhbHVlSWRzLmZpbHRlcihcclxuICAgICAgICAgICAgICAgIGlkID0+IGlkICE9PSBmYWNldFZhbHVlSWQsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGZvcm1Hcm91cC5wYXRjaFZhbHVlKHtcclxuICAgICAgICAgICAgICAgIGZhY2V0VmFsdWVJZHM6IG5ld1ZhbHVlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgZm9ybUdyb3VwLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlzVmFyaWFudFNlbGVjdGVkKHZhcmlhbnRJZDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIC0xIDwgdGhpcy5zZWxlY3RlZFZhcmlhbnRJZHMuaW5kZXhPZih2YXJpYW50SWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGVkaXRPcHRpb24ob3B0aW9uOiBQcm9kdWN0VmFyaWFudC5PcHRpb25zKSB7XHJcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2VcclxuICAgICAgICAgICAgLmZyb21Db21wb25lbnQoVXBkYXRlUHJvZHVjdE9wdGlvbkRpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgc2l6ZTogJ21kJyxcclxuICAgICAgICAgICAgICAgIGxvY2Fsczoge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3RPcHRpb246IG9wdGlvbixcclxuICAgICAgICAgICAgICAgICAgICBhY3RpdmVMYW5ndWFnZTogdGhpcy5hY3RpdmVMYW5ndWFnZSxcclxuICAgICAgICAgICAgICAgICAgICBjdXN0b21GaWVsZHM6IHRoaXMuY3VzdG9tT3B0aW9uRmllbGRzLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUHJvZHVjdE9wdGlvbi5lbWl0KHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYnVpbGRGb3JtR3JvdXBNYXAoKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtR3JvdXBNYXAuY2xlYXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGNvbnRyb2xHcm91cCBvZiB0aGlzLmZvcm1BcnJheS5jb250cm9scykge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cE1hcC5zZXQoY29udHJvbEdyb3VwLnZhbHVlLmlkLCBjb250cm9sR3JvdXAgYXMgRm9ybUdyb3VwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEZhY2V0VmFsdWVJZHMoaWQ6IHN0cmluZyk6IHN0cmluZ1tdIHtcclxuICAgICAgICBjb25zdCBmb3JtVmFsdWU6IFZhcmlhbnRGb3JtVmFsdWUgPSB0aGlzLmZvcm1Hcm91cE1hcC5nZXQoaWQpPy52YWx1ZTtcclxuICAgICAgICByZXR1cm4gZm9ybVZhbHVlLmZhY2V0VmFsdWVJZHM7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -20,7 +20,6 @@ export * from './components/option-value-input/option-value-input.component';
20
20
  export * from './components/product-detail/product-detail.component';
21
21
  export * from './components/product-list/product-list.component';
22
22
  export * from './components/product-options-editor/product-options-editor.component';
23
- export * from './components/product-search-input/product-search-input.component';
24
23
  export * from './components/product-variants-editor/product-variants-editor.component';
25
24
  export * from './components/product-variants-list/product-variants-list.component';
26
25
  export * from './components/product-variants-table/product-variants-table.component';
@@ -33,4 +32,4 @@ export * from './providers/routing/collection-resolver';
33
32
  export * from './providers/routing/facet-resolver';
34
33
  export * from './providers/routing/product-resolver';
35
34
  export * from './providers/routing/product-variants-resolver';
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQ7QUFDNUQsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw0RkFBNEYsQ0FBQztBQUMzRyxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsNkRBQTZELENBQUM7QUFDNUUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHdGQUF3RixDQUFDO0FBQ3ZHLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDRFQUE0RSxDQUFDO0FBQzNGLGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsc0VBQXNFLENBQUM7QUFDckYsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLHdFQUF3RSxDQUFDO0FBQ3ZGLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxzRUFBc0UsQ0FBQztBQUNyRixjQUFjLGtGQUFrRixDQUFDO0FBQ2pHLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYywrQ0FBK0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgZmlsZSB3YXMgZ2VuZXJhdGVkIGJ5IHRoZSBidWlsZC1wdWJsaWMtYXBpLnRzIHNjcmlwdFxuZXhwb3J0ICogZnJvbSAnLi9jYXRhbG9nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NhdGFsb2cucm91dGVzJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9hcHBseS1mYWNldC1kaWFsb2cvYXBwbHktZmFjZXQtZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYXNzZXQtZGV0YWlsL2Fzc2V0LWRldGFpbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Fzc2V0LWxpc3QvYXNzZXQtbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Fzc2V0cy9hc3NldHMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9hc3NpZ24tcHJvZHVjdHMtdG8tY2hhbm5lbC1kaWFsb2cvYXNzaWduLXByb2R1Y3RzLXRvLWNoYW5uZWwtZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1jb250ZW50cy9jb2xsZWN0aW9uLWNvbnRlbnRzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1kZXRhaWwvY29sbGVjdGlvbi1kZXRhaWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9jb2xsZWN0aW9uLWxpc3QvY29sbGVjdGlvbi1saXN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi10cmVlL2FycmF5LXRvLXRyZWUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tdHJlZS9jb2xsZWN0aW9uLXRyZWUtbm9kZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tdHJlZS9jb2xsZWN0aW9uLXRyZWUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtLXZhcmlhbnQtZGVsZXRpb24tZGlhbG9nL2NvbmZpcm0tdmFyaWFudC1kZWxldGlvbi1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9mYWNldC1kZXRhaWwvZmFjZXQtZGV0YWlsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZmFjZXQtbGlzdC9mYWNldC1saXN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZ2VuZXJhdGUtcHJvZHVjdC12YXJpYW50cy9nZW5lcmF0ZS1wcm9kdWN0LXZhcmlhbnRzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvb3B0aW9uLXZhbHVlLWlucHV0L29wdGlvbi12YWx1ZS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3QtZGV0YWlsL3Byb2R1Y3QtZGV0YWlsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC1saXN0L3Byb2R1Y3QtbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3Qtb3B0aW9ucy1lZGl0b3IvcHJvZHVjdC1vcHRpb25zLWVkaXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3Qtc2VhcmNoLWlucHV0L3Byb2R1Y3Qtc2VhcmNoLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC12YXJpYW50cy1lZGl0b3IvcHJvZHVjdC12YXJpYW50cy1lZGl0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnRzLWxpc3QvcHJvZHVjdC12YXJpYW50cy1saXN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC12YXJpYW50cy10YWJsZS9wcm9kdWN0LXZhcmlhbnRzLXRhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvdXBkYXRlLXByb2R1Y3Qtb3B0aW9uLWRpYWxvZy91cGRhdGUtcHJvZHVjdC1vcHRpb24tZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvdmFyaWFudC1wcmljZS1kZXRhaWwvdmFyaWFudC1wcmljZS1kZXRhaWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZXJzL3Byb2R1Y3QtZGV0YWlsL3Byb2R1Y3QtZGV0YWlsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlcnMvcHJvZHVjdC1kZXRhaWwvcmVwbGFjZS1sYXN0JztcbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZXJzL3JvdXRpbmcvYXNzZXQtcmVzb2x2ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlcnMvcm91dGluZy9jb2xsZWN0aW9uLXJlc29sdmVyJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZXJzL3JvdXRpbmcvZmFjZXQtcmVzb2x2ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlcnMvcm91dGluZy9wcm9kdWN0LXJlc29sdmVyJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZXJzL3JvdXRpbmcvcHJvZHVjdC12YXJpYW50cy1yZXNvbHZlcic7XG4iXX0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQ7QUFDNUQsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw0RkFBNEYsQ0FBQztBQUMzRyxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsNkRBQTZELENBQUM7QUFDNUUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHdGQUF3RixDQUFDO0FBQ3ZHLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDRFQUE0RSxDQUFDO0FBQzNGLGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsc0VBQXNFLENBQUM7QUFDckYsY0FBYyx3RUFBd0UsQ0FBQztBQUN2RixjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGNBQWMsc0VBQXNFLENBQUM7QUFDckYsY0FBYyxrRkFBa0YsQ0FBQztBQUNqRyxjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsK0NBQStDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGZpbGUgd2FzIGdlbmVyYXRlZCBieSB0aGUgYnVpbGQtcHVibGljLWFwaS50cyBzY3JpcHRcbmV4cG9ydCAqIGZyb20gJy4vY2F0YWxvZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXRhbG9nLnJvdXRlcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYXBwbHktZmFjZXQtZGlhbG9nL2FwcGx5LWZhY2V0LWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Fzc2V0LWRldGFpbC9hc3NldC1kZXRhaWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9hc3NldC1saXN0L2Fzc2V0LWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9hc3NldHMvYXNzZXRzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYXNzaWduLXByb2R1Y3RzLXRvLWNoYW5uZWwtZGlhbG9nL2Fzc2lnbi1wcm9kdWN0cy10by1jaGFubmVsLWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tY29udGVudHMvY29sbGVjdGlvbi1jb250ZW50cy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tZGV0YWlsL2NvbGxlY3Rpb24tZGV0YWlsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1saXN0L2NvbGxlY3Rpb24tbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tdHJlZS9hcnJheS10by10cmVlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9jb2xsZWN0aW9uLXRyZWUvY29sbGVjdGlvbi10cmVlLW5vZGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9jb2xsZWN0aW9uLXRyZWUvY29sbGVjdGlvbi10cmVlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvY29uZmlybS12YXJpYW50LWRlbGV0aW9uLWRpYWxvZy9jb25maXJtLXZhcmlhbnQtZGVsZXRpb24tZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZmFjZXQtZGV0YWlsL2ZhY2V0LWRldGFpbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2ZhY2V0LWxpc3QvZmFjZXQtbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2dlbmVyYXRlLXByb2R1Y3QtdmFyaWFudHMvZ2VuZXJhdGUtcHJvZHVjdC12YXJpYW50cy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL29wdGlvbi12YWx1ZS1pbnB1dC9vcHRpb24tdmFsdWUtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LWRldGFpbC9wcm9kdWN0LWRldGFpbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3QtbGlzdC9wcm9kdWN0LWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LW9wdGlvbnMtZWRpdG9yL3Byb2R1Y3Qtb3B0aW9ucy1lZGl0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnRzLWVkaXRvci9wcm9kdWN0LXZhcmlhbnRzLWVkaXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3QtdmFyaWFudHMtbGlzdC9wcm9kdWN0LXZhcmlhbnRzLWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnRzLXRhYmxlL3Byb2R1Y3QtdmFyaWFudHMtdGFibGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy91cGRhdGUtcHJvZHVjdC1vcHRpb24tZGlhbG9nL3VwZGF0ZS1wcm9kdWN0LW9wdGlvbi1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy92YXJpYW50LXByaWNlLWRldGFpbC92YXJpYW50LXByaWNlLWRldGFpbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlcnMvcHJvZHVjdC1kZXRhaWwvcHJvZHVjdC1kZXRhaWwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVycy9wcm9kdWN0LWRldGFpbC9yZXBsYWNlLWxhc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlcnMvcm91dGluZy9hc3NldC1yZXNvbHZlcic7XG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVycy9yb3V0aW5nL2NvbGxlY3Rpb24tcmVzb2x2ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlcnMvcm91dGluZy9mYWNldC1yZXNvbHZlcic7XG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVycy9yb3V0aW5nL3Byb2R1Y3QtcmVzb2x2ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlcnMvcm91dGluZy9wcm9kdWN0LXZhcmlhbnRzLXJlc29sdmVyJztcbiJdfQ==
@@ -11,4 +11,4 @@ AppComponentModule.decorators = [
11
11
  exports: [AppComponent],
12
12
  },] }
13
13
  ];
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbXBvbmVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2FwcC5jb21wb25lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBT3RELE1BQU0sT0FBTyxrQkFBa0I7OztZQUw5QixRQUFRLFNBQUM7Z0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQztnQkFDbkMsWUFBWSxFQUFFLENBQUMsWUFBWSxDQUFDO2dCQUM1QixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQXBwQ29tcG9uZW50IH0gZnJvbSAnLi9hcHAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJy4vY29yZS5tb2R1bGUnO1xyXG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbU2hhcmVkTW9kdWxlLCBDb3JlTW9kdWxlXSxcclxuICAgIGRlY2xhcmF0aW9uczogW0FwcENvbXBvbmVudF0sXHJcbiAgICBleHBvcnRzOiBbQXBwQ29tcG9uZW50XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcENvbXBvbmVudE1vZHVsZSB7fVxyXG4iXX0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbXBvbmVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2FwcC5jb21wb25lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBT3RELE1BQU0sT0FBTyxrQkFBa0I7OztZQUw5QixRQUFRLFNBQUM7Z0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQztnQkFDbkMsWUFBWSxFQUFFLENBQUMsWUFBWSxDQUFDO2dCQUM1QixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBcHBDb21wb25lbnQgfSBmcm9tICcuL2FwcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJy4vY29yZS5tb2R1bGUnO1xuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1NoYXJlZE1vZHVsZSwgQ29yZU1vZHVsZV0sXG4gICAgZGVjbGFyYXRpb25zOiBbQXBwQ29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbQXBwQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQXBwQ29tcG9uZW50TW9kdWxlIHt9XG4iXX0=
@@ -103,4 +103,4 @@ export class BaseDetailComponent {
103
103
  });
104
104
  }
105
105
  }
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9jb21tb24vYmFzZS1kZXRhaWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBVW5HOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNDRztBQUNILE1BQU0sT0FBZ0IsbUJBQW1CO0lBV3JDLFlBQ2MsS0FBcUIsRUFDckIsTUFBYyxFQUNkLG1CQUF3QyxFQUN4QyxXQUF3QjtRQUh4QixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQU41QixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQU90QyxDQUFDO0lBRUosSUFBSTtRQUNBLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUMvQixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBRSxJQUFJLENBQUMsTUFBNkIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQ3JGLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDcEMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNqQixDQUFDO1FB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QUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFUyxhQUFhLENBQUMsR0FBVyxFQUFFLEtBQVU7UUFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQ2hCO1lBQ0ksSUFBSTs0Q0FFRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQzdCLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSztTQUVuQixFQUNEO1lBQ0ksVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ3RCLG1CQUFtQixFQUFFLE9BQU87U0FDL0IsQ0FDSixDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vZGF0YS9wcm92aWRlcnMvZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2VydmVyQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL2RhdGEvc2VydmVyLWNvbmZpZyc7XHJcblxyXG5pbXBvcnQgeyBEZWFjdGl2YXRlQXdhcmUgfSBmcm9tICcuL2RlYWN0aXZhdGUtYXdhcmUnO1xyXG5pbXBvcnQgeyBDdXN0b21GaWVsZENvbmZpZywgQ3VzdG9tRmllbGRzLCBMYW5ndWFnZUNvZGUgfSBmcm9tICcuL2dlbmVyYXRlZC10eXBlcyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uT2YgfSBmcm9tICcuL3V0aWxpdGllcy9maW5kLXRyYW5zbGF0aW9uJztcclxuaW1wb3J0IHsgZ2V0RGVmYXVsdFVpTGFuZ3VhZ2UgfSBmcm9tICcuL3V0aWxpdGllcy9nZXQtZGVmYXVsdC11aS1sYW5ndWFnZSc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIEEgYmFzZSBjbGFzcyBmb3IgZW50aXR5IGRldGFpbCB2aWV3cy4gSXQgc2hvdWxkIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGVcclxuICoge0BsaW5rIEJhc2VFbnRpdHlSZXNvbHZlcn0uXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYFR5cGVTY3JpcHRcclxuICogXFxAQ29tcG9uZW50KHtcclxuICogICBzZWxlY3RvcjogJ2FwcC1teS1lbnRpdHknLFxyXG4gKiAgIHRlbXBsYXRlVXJsOiAnLi9teS1lbnRpdHkuY29tcG9uZW50Lmh0bWwnLFxyXG4gKiAgIHN0eWxlVXJsczogWycuL215LWVudGl0eS5jb21wb25lbnQuc2NzcyddLFxyXG4gKiAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gKiB9KVxyXG4gKiBleHBvcnQgY2xhc3MgR2xvYmFsU2V0dGluZ3NDb21wb25lbnQgZXh0ZW5kcyBCYXNlRGV0YWlsQ29tcG9uZW50PE15RW50aXR5LkZyYWdtZW50PiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAqICAgZGV0YWlsRm9ybTogRm9ybUdyb3VwO1xyXG4gKlxyXG4gKiAgIGNvbnN0cnVjdG9yKFxyXG4gKiAgICAgcm91dGVyOiBSb3V0ZXIsXHJcbiAqICAgICByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAqICAgICBzZXJ2ZXJDb25maWdTZXJ2aWNlOiBTZXJ2ZXJDb25maWdTZXJ2aWNlLFxyXG4gKiAgICAgcHJvdGVjdGVkIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcclxuICogICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxyXG4gKiAgICkge1xyXG4gKiAgICAgc3VwZXIocm91dGUsIHJvdXRlciwgc2VydmVyQ29uZmlnU2VydmljZSwgZGF0YVNlcnZpY2UpO1xyXG4gKiAgICAgdGhpcy5kZXRhaWxGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAqICAgICAgIG5hbWU6IFsnJ10sXHJcbiAqICAgICB9KTtcclxuICogICB9XHJcbiAqXHJcbiAqICAgcHJvdGVjdGVkIHNldEZvcm1WYWx1ZXMoZW50aXR5OiBNeUVudGl0eS5GcmFnbWVudCwgbGFuZ3VhZ2VDb2RlOiBMYW5ndWFnZUNvZGUpOiB2b2lkIHtcclxuICogICAgIHRoaXMuZGV0YWlsRm9ybS5wYXRjaFZhbHVlKHtcclxuICogICAgICAgbmFtZTogZW50aXR5Lm5hbWUsXHJcbiAqICAgICB9KTtcclxuICogICB9XHJcbiAqIH1cclxuICogYGBgXHJcbiAqXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgbGlzdC1kZXRhaWwtdmlld3NcclxuICovXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlRGV0YWlsQ29tcG9uZW50PEVudGl0eSBleHRlbmRzIHsgaWQ6IHN0cmluZzsgdXBkYXRlZEF0Pzogc3RyaW5nIH0+XHJcbiAgICBpbXBsZW1lbnRzIERlYWN0aXZhdGVBd2FyZVxyXG57XHJcbiAgICBlbnRpdHkkOiBPYnNlcnZhYmxlPEVudGl0eT47XHJcbiAgICBhdmFpbGFibGVMYW5ndWFnZXMkOiBPYnNlcnZhYmxlPExhbmd1YWdlQ29kZVtdPjtcclxuICAgIGxhbmd1YWdlQ29kZSQ6IE9ic2VydmFibGU8TGFuZ3VhZ2VDb2RlPjtcclxuICAgIGlzTmV3JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICBhYnN0cmFjdCBkZXRhaWxGb3JtOiBGb3JtR3JvdXA7XHJcbiAgICBwcm90ZWN0ZWQgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICBwcm90ZWN0ZWQgc2VydmVyQ29uZmlnU2VydmljZTogU2VydmVyQ29uZmlnU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIGluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5lbnRpdHkkID0gdGhpcy5yb3V0ZS5kYXRhLnBpcGUoXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcChkYXRhID0+IChkYXRhLmVudGl0eSBhcyBPYnNlcnZhYmxlPEVudGl0eT4pLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKSksXHJcbiAgICAgICAgICAgIHRhcChlbnRpdHkgPT4gKHRoaXMuaWQgPSBlbnRpdHkuaWQpKSxcclxuICAgICAgICAgICAgc2hhcmVSZXBsYXkoMSksXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmlzTmV3JCA9IHRoaXMuZW50aXR5JC5waXBlKFxyXG4gICAgICAgICAgICBtYXAoZW50aXR5ID0+IGVudGl0eS5pZCA9PT0gJycpLFxyXG4gICAgICAgICAgICBzaGFyZVJlcGxheSgxKSxcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMubGFuZ3VhZ2VDb2RlJCA9IHRoaXMucm91dGUucGFyYW1NYXAucGlwZShcclxuICAgICAgICAgICAgbWFwKHBhcmFtTWFwID0+IHBhcmFtTWFwLmdldCgnbGFuZycpKSxcclxuICAgICAgICAgICAgc3dpdGNoTWFwKGxhbmcgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGxhbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YobGFuZyBhcyBMYW5ndWFnZUNvZGUpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5jbGllbnQudWlTdGF0ZSgpLm1hcFNpbmdsZShkYXRhID0+IGRhdGEudWlTdGF0ZS5jb250ZW50TGFuZ3VhZ2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgICAgc2hhcmVSZXBsYXkoMSksXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5hdmFpbGFibGVMYW5ndWFnZXMkID0gdGhpcy5zZXJ2ZXJDb25maWdTZXJ2aWNlLmdldEF2YWlsYWJsZUxhbmd1YWdlcygpO1xyXG5cclxuICAgICAgICBjb21iaW5lTGF0ZXN0KHRoaXMuZW50aXR5JCwgdGhpcy5sYW5ndWFnZUNvZGUkKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKFtlbnRpdHksIGxhbmd1YWdlQ29kZV0pID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0Rm9ybVZhbHVlcyhlbnRpdHksIGxhbmd1YWdlQ29kZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRldGFpbEZvcm0ubWFya0FzUHJpc3RpbmUoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0TGFuZ3VhZ2UoY29kZTogTGFuZ3VhZ2VDb2RlKSB7XHJcbiAgICAgICAgdGhpcy5zZXRRdWVyeVBhcmFtKCdsYW5nJywgY29kZSk7XHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5jbGllbnQuc2V0Q29udGVudExhbmd1YWdlKGNvZGUpLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbkRlYWN0aXZhdGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGV0YWlsRm9ybSAmJiB0aGlzLmRldGFpbEZvcm0ucHJpc3RpbmU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IHNldEZvcm1WYWx1ZXMoZW50aXR5OiBFbnRpdHksIGxhbmd1YWdlQ29kZTogTGFuZ3VhZ2VDb2RlKTogdm9pZDtcclxuXHJcbiAgICBwcm90ZWN0ZWQgc2V0Q3VzdG9tRmllbGRGb3JtVmFsdWVzPFQgPSBFbnRpdHk+KFxyXG4gICAgICAgIGN1c3RvbUZpZWxkczogQ3VzdG9tRmllbGRDb25maWdbXSxcclxuICAgICAgICBmb3JtR3JvdXA6IEFic3RyYWN0Q29udHJvbCB8IG51bGwsXHJcbiAgICAgICAgZW50aXR5OiBULFxyXG4gICAgICAgIGN1cnJlbnRUcmFuc2xhdGlvbj86IFRyYW5zbGF0aW9uT2Y8VD4sXHJcbiAgICApIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGZpZWxkRGVmIG9mIGN1c3RvbUZpZWxkcykge1xyXG4gICAgICAgICAgICBjb25zdCBrZXkgPSBmaWVsZERlZi5uYW1lO1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9XHJcbiAgICAgICAgICAgICAgICBmaWVsZERlZi50eXBlID09PSAnbG9jYWxlU3RyaW5nJ1xyXG4gICAgICAgICAgICAgICAgICAgID8gKGN1cnJlbnRUcmFuc2xhdGlvbiBhcyBhbnkpPy5jdXN0b21GaWVsZHM/LltrZXldXHJcbiAgICAgICAgICAgICAgICAgICAgOiAoZW50aXR5IGFzIGFueSkuY3VzdG9tRmllbGRzPy5ba2V5XTtcclxuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cD8uZ2V0KGtleSk7XHJcbiAgICAgICAgICAgIGlmIChjb250cm9sKSB7XHJcbiAgICAgICAgICAgICAgICBjb250cm9sLnBhdGNoVmFsdWUodmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXRDdXN0b21GaWVsZENvbmZpZyhrZXk6IEV4Y2x1ZGU8a2V5b2YgQ3VzdG9tRmllbGRzLCAnX190eXBlbmFtZSc+KTogQ3VzdG9tRmllbGRDb25maWdbXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmVyQ29uZmlnU2VydmljZS5nZXRDdXN0b21GaWVsZHNGb3Ioa2V5KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgc2V0UXVlcnlQYXJhbShrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFxyXG4gICAgICAgICAgICBbXHJcbiAgICAgICAgICAgICAgICAnLi8nLFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLFxyXG4gICAgICAgICAgICAgICAgICAgIFtrZXldOiB2YWx1ZSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXHJcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIl19
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9jb21tb24vYmFzZS1kZXRhaWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBU25HOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNDRztBQUNILE1BQU0sT0FBZ0IsbUJBQW1CO0lBV3JDLFlBQ2MsS0FBcUIsRUFDckIsTUFBYyxFQUNkLG1CQUF3QyxFQUN4QyxXQUF3QjtRQUh4QixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQU41QixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQU90QyxDQUFDO0lBRUosSUFBSTtRQUNBLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUMvQixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBRSxJQUFJLENBQUMsTUFBNkIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQ3JGLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDcEMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNqQixDQUFDO1FB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QUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFUyxhQUFhLENBQUMsR0FBVyxFQUFFLEtBQVU7UUFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQ2hCO1lBQ0ksSUFBSTs0Q0FFRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQzdCLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSztTQUVuQixFQUNEO1lBQ0ksVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ3RCLG1CQUFtQixFQUFFLE9BQU87U0FDL0IsQ0FDSixDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vZGF0YS9wcm92aWRlcnMvZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2VydmVyQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL2RhdGEvc2VydmVyLWNvbmZpZyc7XHJcblxyXG5pbXBvcnQgeyBEZWFjdGl2YXRlQXdhcmUgfSBmcm9tICcuL2RlYWN0aXZhdGUtYXdhcmUnO1xyXG5pbXBvcnQgeyBDdXN0b21GaWVsZENvbmZpZywgQ3VzdG9tRmllbGRzLCBMYW5ndWFnZUNvZGUgfSBmcm9tICcuL2dlbmVyYXRlZC10eXBlcyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uT2YgfSBmcm9tICcuL3V0aWxpdGllcy9maW5kLXRyYW5zbGF0aW9uJztcclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogQSBiYXNlIGNsYXNzIGZvciBlbnRpdHkgZGV0YWlsIHZpZXdzLiBJdCBzaG91bGQgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZVxyXG4gKiB7QGxpbmsgQmFzZUVudGl0eVJlc29sdmVyfS5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgVHlwZVNjcmlwdFxyXG4gKiBcXEBDb21wb25lbnQoe1xyXG4gKiAgIHNlbGVjdG9yOiAnYXBwLW15LWVudGl0eScsXHJcbiAqICAgdGVtcGxhdGVVcmw6ICcuL215LWVudGl0eS5jb21wb25lbnQuaHRtbCcsXHJcbiAqICAgc3R5bGVVcmxzOiBbJy4vbXktZW50aXR5LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAqICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAqIH0pXHJcbiAqIGV4cG9ydCBjbGFzcyBHbG9iYWxTZXR0aW5nc0NvbXBvbmVudCBleHRlbmRzIEJhc2VEZXRhaWxDb21wb25lbnQ8TXlFbnRpdHkuRnJhZ21lbnQ+IGltcGxlbWVudHMgT25Jbml0IHtcclxuICogICBkZXRhaWxGb3JtOiBGb3JtR3JvdXA7XHJcbiAqXHJcbiAqICAgY29uc3RydWN0b3IoXHJcbiAqICAgICByb3V0ZXI6IFJvdXRlcixcclxuICogICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICogICAgIHNlcnZlckNvbmZpZ1NlcnZpY2U6IFNlcnZlckNvbmZpZ1NlcnZpY2UsXHJcbiAqICAgICBwcm90ZWN0ZWQgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxyXG4gKiAgICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXHJcbiAqICAgKSB7XHJcbiAqICAgICBzdXBlcihyb3V0ZSwgcm91dGVyLCBzZXJ2ZXJDb25maWdTZXJ2aWNlLCBkYXRhU2VydmljZSk7XHJcbiAqICAgICB0aGlzLmRldGFpbEZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICogICAgICAgbmFtZTogWycnXSxcclxuICogICAgIH0pO1xyXG4gKiAgIH1cclxuICpcclxuICogICBwcm90ZWN0ZWQgc2V0Rm9ybVZhbHVlcyhlbnRpdHk6IE15RW50aXR5LkZyYWdtZW50LCBsYW5ndWFnZUNvZGU6IExhbmd1YWdlQ29kZSk6IHZvaWQge1xyXG4gKiAgICAgdGhpcy5kZXRhaWxGb3JtLnBhdGNoVmFsdWUoe1xyXG4gKiAgICAgICBuYW1lOiBlbnRpdHkubmFtZSxcclxuICogICAgIH0pO1xyXG4gKiAgIH1cclxuICogfVxyXG4gKiBgYGBcclxuICpcclxuICogQGRvY3NDYXRlZ29yeSBsaXN0LWRldGFpbC12aWV3c1xyXG4gKi9cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VEZXRhaWxDb21wb25lbnQ8RW50aXR5IGV4dGVuZHMgeyBpZDogc3RyaW5nOyB1cGRhdGVkQXQ/OiBzdHJpbmcgfT5cclxuICAgIGltcGxlbWVudHMgRGVhY3RpdmF0ZUF3YXJlXHJcbntcclxuICAgIGVudGl0eSQ6IE9ic2VydmFibGU8RW50aXR5PjtcclxuICAgIGF2YWlsYWJsZUxhbmd1YWdlcyQ6IE9ic2VydmFibGU8TGFuZ3VhZ2VDb2RlW10+O1xyXG4gICAgbGFuZ3VhZ2VDb2RlJDogT2JzZXJ2YWJsZTxMYW5ndWFnZUNvZGU+O1xyXG4gICAgaXNOZXckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIGFic3RyYWN0IGRldGFpbEZvcm06IEZvcm1Hcm91cDtcclxuICAgIHByb3RlY3RlZCBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgIHByb3RlY3RlZCBzZXJ2ZXJDb25maWdTZXJ2aWNlOiBTZXJ2ZXJDb25maWdTZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXHJcbiAgICApIHt9XHJcblxyXG4gICAgaW5pdCgpIHtcclxuICAgICAgICB0aGlzLmVudGl0eSQgPSB0aGlzLnJvdXRlLmRhdGEucGlwZShcclxuICAgICAgICAgICAgc3dpdGNoTWFwKGRhdGEgPT4gKGRhdGEuZW50aXR5IGFzIE9ic2VydmFibGU8RW50aXR5PikucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpKSxcclxuICAgICAgICAgICAgdGFwKGVudGl0eSA9PiAodGhpcy5pZCA9IGVudGl0eS5pZCkpLFxyXG4gICAgICAgICAgICBzaGFyZVJlcGxheSgxKSxcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuaXNOZXckID0gdGhpcy5lbnRpdHkkLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChlbnRpdHkgPT4gZW50aXR5LmlkID09PSAnJyksXHJcbiAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5sYW5ndWFnZUNvZGUkID0gdGhpcy5yb3V0ZS5wYXJhbU1hcC5waXBlKFxyXG4gICAgICAgICAgICBtYXAocGFyYW1NYXAgPT4gcGFyYW1NYXAuZ2V0KCdsYW5nJykpLFxyXG4gICAgICAgICAgICBzd2l0Y2hNYXAobGFuZyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAobGFuZykge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihsYW5nIGFzIExhbmd1YWdlQ29kZSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudC51aVN0YXRlKCkubWFwU2luZ2xlKGRhdGEgPT4gZGF0YS51aVN0YXRlLmNvbnRlbnRMYW5ndWFnZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgICAgICBzaGFyZVJlcGxheSgxKSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlcyQgPSB0aGlzLnNlcnZlckNvbmZpZ1NlcnZpY2UuZ2V0QXZhaWxhYmxlTGFuZ3VhZ2VzKCk7XHJcblxyXG4gICAgICAgIGNvbWJpbmVMYXRlc3QodGhpcy5lbnRpdHkkLCB0aGlzLmxhbmd1YWdlQ29kZSQpXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoW2VudGl0eSwgbGFuZ3VhZ2VDb2RlXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRGb3JtVmFsdWVzKGVudGl0eSwgbGFuZ3VhZ2VDb2RlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGV0YWlsRm9ybS5tYXJrQXNQcmlzdGluZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBkZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRMYW5ndWFnZShjb2RlOiBMYW5ndWFnZUNvZGUpIHtcclxuICAgICAgICB0aGlzLnNldFF1ZXJ5UGFyYW0oJ2xhbmcnLCBjb2RlKTtcclxuICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudC5zZXRDb250ZW50TGFuZ3VhZ2UoY29kZSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2FuRGVhY3RpdmF0ZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZXRhaWxGb3JtICYmIHRoaXMuZGV0YWlsRm9ybS5wcmlzdGluZTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0Rm9ybVZhbHVlcyhlbnRpdHk6IEVudGl0eSwgbGFuZ3VhZ2VDb2RlOiBMYW5ndWFnZUNvZGUpOiB2b2lkO1xyXG5cclxuICAgIHByb3RlY3RlZCBzZXRDdXN0b21GaWVsZEZvcm1WYWx1ZXM8VCA9IEVudGl0eT4oXHJcbiAgICAgICAgY3VzdG9tRmllbGRzOiBDdXN0b21GaWVsZENvbmZpZ1tdLFxyXG4gICAgICAgIGZvcm1Hcm91cDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCxcclxuICAgICAgICBlbnRpdHk6IFQsXHJcbiAgICAgICAgY3VycmVudFRyYW5zbGF0aW9uPzogVHJhbnNsYXRpb25PZjxUPixcclxuICAgICkge1xyXG4gICAgICAgIGZvciAoY29uc3QgZmllbGREZWYgb2YgY3VzdG9tRmllbGRzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGZpZWxkRGVmLm5hbWU7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID1cclxuICAgICAgICAgICAgICAgIGZpZWxkRGVmLnR5cGUgPT09ICdsb2NhbGVTdHJpbmcnXHJcbiAgICAgICAgICAgICAgICAgICAgPyAoY3VycmVudFRyYW5zbGF0aW9uIGFzIGFueSk/LmN1c3RvbUZpZWxkcz8uW2tleV1cclxuICAgICAgICAgICAgICAgICAgICA6IChlbnRpdHkgYXMgYW55KS5jdXN0b21GaWVsZHM/LltrZXldO1xyXG4gICAgICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwPy5nZXQoa2V5KTtcclxuICAgICAgICAgICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRyb2wucGF0Y2hWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGdldEN1c3RvbUZpZWxkQ29uZmlnKGtleTogRXhjbHVkZTxrZXlvZiBDdXN0b21GaWVsZHMsICdfX3R5cGVuYW1lJz4pOiBDdXN0b21GaWVsZENvbmZpZ1tdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2ZXJDb25maWdTZXJ2aWNlLmdldEN1c3RvbUZpZWxkc0ZvcihrZXkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBzZXRRdWVyeVBhcmFtKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoXHJcbiAgICAgICAgICAgIFtcclxuICAgICAgICAgICAgICAgICcuLycsXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMsXHJcbiAgICAgICAgICAgICAgICAgICAgW2tleV06IHZhbHVlLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcclxuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVhY3RpdmF0ZS1hd2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tbW9uL2RlYWN0aXZhdGUtYXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBUaGlzIGludGVyZmFjZSBzaG91bGQgYmUgaW1wbGVtZW50ZWQgYnkgdGhvc2UgdG9wLWxldmVsIGNvbXBvbmVudHMgd2hpY2ggd2FudCB0b1xyXG4gKiBzaWduYWwgdG8gdGhlIHVzZXIgaWYgYSByb3V0ZSBkZWFjdGl2YXRpb24gaXMgYXR0ZW1wdGVkIGluIGEgc3RhdGUgd2hlcmUgY2hhZ2VzXHJcbiAqIHdvdWxkIGJlIGxvc3QuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIERlYWN0aXZhdGVBd2FyZSB7XHJcbiAgICBjYW5EZWFjdGl2YXRlKCk6IGJvb2xlYW47XHJcbn1cclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVhY3RpdmF0ZS1hd2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tbW9uL2RlYWN0aXZhdGUtYXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpcyBpbnRlcmZhY2Ugc2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5IHRob3NlIHRvcC1sZXZlbCBjb21wb25lbnRzIHdoaWNoIHdhbnQgdG9cbiAqIHNpZ25hbCB0byB0aGUgdXNlciBpZiBhIHJvdXRlIGRlYWN0aXZhdGlvbiBpcyBhdHRlbXB0ZWQgaW4gYSBzdGF0ZSB3aGVyZSBjaGFnZXNcbiAqIHdvdWxkIGJlIGxvc3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVhY3RpdmF0ZUF3YXJlIHtcbiAgICBjYW5EZWFjdGl2YXRlKCk6IGJvb2xlYW47XG59XG4iXX0=