@vendure/admin-ui 2.1.5 → 2.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/core/common/utilities/custom-field-default-value.d.ts +1 -1
  2. package/core/common/version.d.ts +1 -1
  3. package/core/components/app-shell/app-shell.component.d.ts +1 -0
  4. package/core/shared/components/order-state-label/order-state-label.component.d.ts +1 -1
  5. package/core/shared/dynamic-form-inputs/default-form-inputs.d.ts +1 -1
  6. package/esm2022/catalog/components/collection-detail/collection-detail.component.mjs +2 -2
  7. package/esm2022/catalog/components/collection-list/collection-list.component.mjs +3 -3
  8. package/esm2022/catalog/components/product-detail/product-detail.component.mjs +2 -2
  9. package/esm2022/core/common/introspection-result.mjs +1 -1
  10. package/esm2022/core/common/version.mjs +2 -2
  11. package/esm2022/core/components/app-shell/app-shell.component.mjs +4 -3
  12. package/esm2022/core/shared/components/chart/chart.component.mjs +1 -1
  13. package/esm2022/core/shared/components/form-field/form-field.component.mjs +1 -1
  14. package/esm2022/core/shared/components/page-header-tabs/page-header-tabs.component.mjs +2 -2
  15. package/esm2022/login/components/login/login.component.mjs +4 -5
  16. package/esm2022/order/components/order-payment-card/order-payment-card.component.mjs +3 -3
  17. package/esm2022/order/components/refund-order-dialog/refund-order-dialog.component.mjs +2 -2
  18. package/esm2022/order/order.routes.mjs +1 -1
  19. package/esm2022/settings/settings.routes.mjs +4 -4
  20. package/fesm2022/vendure-admin-ui-catalog.mjs +5 -5
  21. package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
  22. package/fesm2022/vendure-admin-ui-core.mjs +6 -5
  23. package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
  24. package/fesm2022/vendure-admin-ui-login.mjs +2 -3
  25. package/fesm2022/vendure-admin-ui-login.mjs.map +1 -1
  26. package/fesm2022/vendure-admin-ui-order.mjs +3 -3
  27. package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
  28. package/fesm2022/vendure-admin-ui-settings.mjs +3 -3
  29. package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
  30. package/login/components/login/login.component.d.ts +0 -1
  31. package/package.json +8 -8
  32. package/static/i18n-messages/en.json +3 -3
  33. package/static/i18n-messages/pt_BR.json +2 -2
  34. package/static/i18n-messages/uk.json +166 -166
  35. package/static/styles/global/_sass-overrides.scss +5 -0
  36. package/static/styles/theme/dark.scss +5 -4
  37. package/static/styles/theme/default.scss +7 -2
  38. package/static/theme.min.css +1 -1
@@ -90,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
90
90
  type: ViewChild,
91
91
  args: ['chartDiv', { static: true }]
92
92
  }] } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9jaGFydC9jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULEtBQUssRUFLTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQW1DLE1BQU0sVUFBVSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFvQmpELE1BQU0sT0FBTyxjQUFjO0lBTjNCO1FBT2EsWUFBTyxHQUFpQixFQUFFLENBQUM7UUFDM0IsWUFBTyxHQUFzQixFQUFFLENBQUM7S0FrRjVDO0lBOUVHLFFBQVE7UUFDSixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksU0FBUyxDQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFDOUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEVBQy9DO1lBQ0ksR0FBRyxFQUFFLENBQUM7WUFDTixRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxJQUFJO1lBQ2QsU0FBUyxFQUFFLElBQUk7WUFDZixTQUFTLEVBQUUsSUFBSTtZQUNmLEtBQUssRUFBRTtnQkFDSCxTQUFTLEVBQUUsS0FBSztnQkFDaEIsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsTUFBTSxFQUFFLENBQUM7YUFDWjtZQUNELEtBQUssRUFBRTtnQkFDSCxTQUFTLEVBQUUsS0FBSztnQkFDaEIsTUFBTSxFQUFFLENBQUM7YUFDWjtZ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QkFOMUIsU0FBUzsrQkFDSSxXQUFXLG1CQUdKLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQzJDLFdBQVc7c0JBQTNELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZWFzaW5ncywgTGluZUNoYXJ0LCBMaW5lQ2hhcnREYXRhLCBMaW5lQ2hhcnRPcHRpb25zIH0gZnJvbSAnY2hhcnRpc3QnO1xuaW1wb3J0IHsgdG9vbHRpcFBsdWdpbiB9IGZyb20gJy4vdG9vbHRpcC1wbHVnaW4nO1xuXG5leHBvcnQgaW50ZXJmYWNlIENoYXJ0Rm9ybWF0T3B0aW9ucyB7XG4gICAgZm9ybWF0VmFsdWVBczogJ2N1cnJlbmN5JyB8ICdudW1iZXInO1xuICAgIGN1cnJlbmN5Q29kZT86IHN0cmluZztcbiAgICBsb2NhbGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhcnRFbnRyeSB7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICB2YWx1ZTogbnVtYmVyO1xuICAgIGZvcm1hdE9wdGlvbnM6IENoYXJ0Rm9ybWF0T3B0aW9ucztcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd2ZHItY2hhcnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jaGFydC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2hhcnQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBlbnRyaWVzOiBDaGFydEVudHJ5W10gPSBbXTtcbiAgICBASW5wdXQoKSBvcHRpb25zPzogTGluZUNoYXJ0T3B0aW9ucyA9IHt9O1xuICAgIEBWaWV3Q2hpbGQoJ2NoYXJ0RGl2JywgeyBzdGF0aWM6IHRydWUgfSkgcHJpdmF0ZSBjaGFydERpdlJlZjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gICAgcHJpdmF0ZSBjaGFydDogTGluZUNoYXJ0O1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuY2hhcnQgPSBuZXcgTGluZUNoYXJ0KFxuICAgICAgICAgICAgdGhpcy5jaGFydERpdlJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgdGhpcy5lbnRyaWVzVG9MaW5lQ2hhcnREYXRhKHRoaXMuZW50cmllcyA/PyBbXSksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbG93OiAwLFxuICAgICAgICAgICAgICAgIHNob3dBcmVhOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNob3dMaW5lOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNob3dQb2ludDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBmdWxsV2lkdGg6IHRydWUsXG4gICAgICAgICAgICAgICAgYXhpc1g6IHtcbiAgICAgICAgICAgICAgICAgICAgc2hvd0xhYmVsOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgc2hvd0dyaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDEsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBheGlzWToge1xuICAgICAgICAgICAgICAgICAgICBzaG93TGFiZWw6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDEsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBwbHVnaW5zOiBbdG9vbHRpcFBsdWdpbigpXSxcbiAgICAgICAgICAgICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICAgICAgICB9LFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuY2hhcnQub24oJ2RyYXcnLCBkYXRhID0+IHtcbiAgICAgICAgICAgIGlmIChkYXRhLnR5cGUgPT09ICdsaW5lJyB8fCBkYXRhLnR5cGUgPT09ICdhcmVhJykge1xuICAgICAgICAgICAgICAgIGRhdGEuZWxlbWVudC5hbmltYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgZDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW46IDIwMDAgKiBkYXRhLmluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgZHVyOiAyMDAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgZnJvbTogZGF0YS5wYXRoLmNsb25lKCkuc2NhbGUoMSwgMCkudHJhbnNsYXRlKDAsIGRhdGEuY2hhcnRSZWN0LmhlaWdodCgpKS5zdHJpbmdpZnkoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvOiBkYXRhLnBhdGguY2xvbmUoKS5zdHJpbmdpZnkoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVhc2luZzogZWFzaW5ncy5lYXNlT3V0UXVpbnQsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIENyZWF0ZSB0aGUgZ3JhZGllbnQgZGVmaW5pdGlvbiBvbiBjcmVhdGVkIGV2ZW50IChhbHdheXMgYWZ0ZXIgY2hhcnQgcmUtcmVuZGVyKVxuICAgICAgICB0aGlzLmNoYXJ0Lm9uKCdjcmVhdGVkJywgY3R4ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRlZnMgPSBjdHguc3ZnLmVsZW0oJ2RlZnMnKTtcbiAgICAgICAgICAgIGRlZnMuZWxlbSgnbGluZWFyR3JhZGllbnQnLCB7XG4gICAgICAgICAgICAgICAgaWQ6ICdncmFkaWVudCcsXG4gICAgICAgICAgICAgICAgeDE6IDAsXG4gICAgICAgICAgICAgICAgeTE6IDEsXG4gICAgICAgICAgICAgICAgeDI6IDAsXG4gICAgICAgICAgICAgICAgeTI6IDAsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5lbGVtKCdzdG9wJywge1xuICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAsXG4gICAgICAgICAgICAgICAgICAgICdzdG9wLWNvbG9yJzogJ3ZhcigtLWNvbG9yLXByaW1hcnktNDAwKScsXG4gICAgICAgICAgICAgICAgICAgICdzdG9wLW9wYWNpdHknOiAwLjMsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAucGFyZW50KClcbiAgICAgICAgICAgICAgICA/LmVsZW0oJ3N0b3AnLCB7XG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogMSxcbiAgICAgICAgICAgICAgICAgICAgJ3N0b3AtY29sb3InOiAndmFyKC0tY29sb3ItcHJpbWFyeS01MDApJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoJ2VudHJpZXMnIGluIGNoYW5nZXMgJiYgdGhpcy5jaGFydCkge1xuICAgICAgICAgICAgdGhpcy5jaGFydC51cGRhdGUodGhpcy5lbnRyaWVzVG9MaW5lQ2hhcnREYXRhKHRoaXMuZW50cmllcyA/PyBbXSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuY2hhcnQ/LmRldGFjaCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW50cmllc1RvTGluZUNoYXJ0RGF0YShlbnRyaWVzOiBDaGFydEVudHJ5W10pOiBMaW5lQ2hhcnREYXRhIHtcbiAgICAgICAgY29uc3QgbGFiZWxzID0gZW50cmllcy5tYXAoKHsgbGFiZWwgfSkgPT4gbGFiZWwpO1xuICAgICAgICBjb25zdCBzZXJpZXMgPSBbXG4gICAgICAgICAgICBlbnRyaWVzLm1hcCgoeyBsYWJlbCwgdmFsdWUsIGZvcm1hdE9wdGlvbnMgfSkgPT4gKHsgbWV0YTogeyBsYWJlbCwgZm9ybWF0T3B0aW9ucyB9LCB2YWx1ZSB9KSksXG4gICAgICAgIF07XG4gICAgICAgIHJldHVybiB7IGxhYmVscywgc2VyaWVzIH07XG4gICAgfVxufVxuIiwiPGRpdiBpZD1cImNoYXJ0XCIgc3R5bGU9XCJoZWlnaHQ6IDIwdmg7IG1pbi1oZWlnaHQ6IDMwMHB4O1wiICNjaGFydERpdj48L2Rpdj5cclxuIl19
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9jaGFydC9jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULEtBQUssRUFLTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQW1DLE1BQU0sVUFBVSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFvQmpELE1BQU0sT0FBTyxjQUFjO0lBTjNCO1FBT2EsWUFBTyxHQUFpQixFQUFFLENBQUM7UUFDM0IsWUFBTyxHQUFzQixFQUFFLENBQUM7S0FrRjVDO0lBOUVHLFFBQVE7UUFDSixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksU0FBUyxDQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFDOUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEVBQy9DO1lBQ0ksR0FBRyxFQUFFLENBQUM7WUFDTixRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxJQUFJO1lBQ2QsU0FBUyxFQUFFLElBQUk7WUFDZixTQUFTLEVBQUUsSUFBSTtZQUNmLEtBQUssRUFBRTtnQkFDSCxTQUFTLEVBQUUsS0FBSztnQkFDaEIsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsTUFBTSxFQUFFLENBQUM7YUFDWjtZQUNELEtBQUssRUFBRTtnQkFDSCxTQUFTLEVBQUUsS0FBSztnQkFDaEIsTUFBTSxFQUFFLENBQUM7YUFDWjtZ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QkFOMUIsU0FBUzsrQkFDSSxXQUFXLG1CQUdKLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQzJDLFdBQVc7c0JBQTNELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGVhc2luZ3MsIExpbmVDaGFydCwgTGluZUNoYXJ0RGF0YSwgTGluZUNoYXJ0T3B0aW9ucyB9IGZyb20gJ2NoYXJ0aXN0JztcclxuaW1wb3J0IHsgdG9vbHRpcFBsdWdpbiB9IGZyb20gJy4vdG9vbHRpcC1wbHVnaW4nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDaGFydEZvcm1hdE9wdGlvbnMge1xyXG4gICAgZm9ybWF0VmFsdWVBczogJ2N1cnJlbmN5JyB8ICdudW1iZXInO1xyXG4gICAgY3VycmVuY3lDb2RlPzogc3RyaW5nO1xyXG4gICAgbG9jYWxlPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENoYXJ0RW50cnkge1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIHZhbHVlOiBudW1iZXI7XHJcbiAgICBmb3JtYXRPcHRpb25zOiBDaGFydEZvcm1hdE9wdGlvbnM7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItY2hhcnQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NoYXJ0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NoYXJ0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIENoYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgICBASW5wdXQoKSBlbnRyaWVzOiBDaGFydEVudHJ5W10gPSBbXTtcclxuICAgIEBJbnB1dCgpIG9wdGlvbnM/OiBMaW5lQ2hhcnRPcHRpb25zID0ge307XHJcbiAgICBAVmlld0NoaWxkKCdjaGFydERpdicsIHsgc3RhdGljOiB0cnVlIH0pIHByaXZhdGUgY2hhcnREaXZSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG4gICAgcHJpdmF0ZSBjaGFydDogTGluZUNoYXJ0O1xyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuY2hhcnQgPSBuZXcgTGluZUNoYXJ0KFxyXG4gICAgICAgICAgICB0aGlzLmNoYXJ0RGl2UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgIHRoaXMuZW50cmllc1RvTGluZUNoYXJ0RGF0YSh0aGlzLmVudHJpZXMgPz8gW10pLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBsb3c6IDAsXHJcbiAgICAgICAgICAgICAgICBzaG93QXJlYTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHNob3dMaW5lOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgc2hvd1BvaW50OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgZnVsbFdpZHRoOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgYXhpc1g6IHtcclxuICAgICAgICAgICAgICAgICAgICBzaG93TGFiZWw6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIHNob3dHcmlkOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDEsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYXhpc1k6IHtcclxuICAgICAgICAgICAgICAgICAgICBzaG93TGFiZWw6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogMSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBwbHVnaW5zOiBbdG9vbHRpcFBsdWdpbigpXSxcclxuICAgICAgICAgICAgICAgIC4uLnRoaXMub3B0aW9ucyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmNoYXJ0Lm9uKCdkcmF3JywgZGF0YSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChkYXRhLnR5cGUgPT09ICdsaW5lJyB8fCBkYXRhLnR5cGUgPT09ICdhcmVhJykge1xyXG4gICAgICAgICAgICAgICAgZGF0YS5lbGVtZW50LmFuaW1hdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIGQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW46IDIwMDAgKiBkYXRhLmluZGV4LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkdXI6IDIwMDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZyb206IGRhdGEucGF0aC5jbG9uZSgpLnNjYWxlKDEsIDApLnRyYW5zbGF0ZSgwLCBkYXRhLmNoYXJ0UmVjdC5oZWlnaHQoKSkuc3RyaW5naWZ5KCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvOiBkYXRhLnBhdGguY2xvbmUoKS5zdHJpbmdpZnkoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZWFzaW5nOiBlYXNpbmdzLmVhc2VPdXRRdWludCxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gQ3JlYXRlIHRoZSBncmFkaWVudCBkZWZpbml0aW9uIG9uIGNyZWF0ZWQgZXZlbnQgKGFsd2F5cyBhZnRlciBjaGFydCByZS1yZW5kZXIpXHJcbiAgICAgICAgdGhpcy5jaGFydC5vbignY3JlYXRlZCcsIGN0eCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlZnMgPSBjdHguc3ZnLmVsZW0oJ2RlZnMnKTtcclxuICAgICAgICAgICAgZGVmcy5lbGVtKCdsaW5lYXJHcmFkaWVudCcsIHtcclxuICAgICAgICAgICAgICAgIGlkOiAnZ3JhZGllbnQnLFxyXG4gICAgICAgICAgICAgICAgeDE6IDAsXHJcbiAgICAgICAgICAgICAgICB5MTogMSxcclxuICAgICAgICAgICAgICAgIHgyOiAwLFxyXG4gICAgICAgICAgICAgICAgeTI6IDAsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAuZWxlbSgnc3RvcCcsIHtcclxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgJ3N0b3AtY29sb3InOiAndmFyKC0tY29sb3ItcHJpbWFyeS00MDApJyxcclxuICAgICAgICAgICAgICAgICAgICAnc3RvcC1vcGFjaXR5JzogMC4zLFxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC5wYXJlbnQoKVxyXG4gICAgICAgICAgICAgICAgPy5lbGVtKCdzdG9wJywge1xyXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogMSxcclxuICAgICAgICAgICAgICAgICAgICAnc3RvcC1jb2xvcic6ICd2YXIoLS1jb2xvci1wcmltYXJ5LTUwMCknLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmICgnZW50cmllcycgaW4gY2hhbmdlcyAmJiB0aGlzLmNoYXJ0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hhcnQudXBkYXRlKHRoaXMuZW50cmllc1RvTGluZUNoYXJ0RGF0YSh0aGlzLmVudHJpZXMgPz8gW10pKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5jaGFydD8uZGV0YWNoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBlbnRyaWVzVG9MaW5lQ2hhcnREYXRhKGVudHJpZXM6IENoYXJ0RW50cnlbXSk6IExpbmVDaGFydERhdGEge1xyXG4gICAgICAgIGNvbnN0IGxhYmVscyA9IGVudHJpZXMubWFwKCh7IGxhYmVsIH0pID0+IGxhYmVsKTtcclxuICAgICAgICBjb25zdCBzZXJpZXMgPSBbXHJcbiAgICAgICAgICAgIGVudHJpZXMubWFwKCh7IGxhYmVsLCB2YWx1ZSwgZm9ybWF0T3B0aW9ucyB9KSA9PiAoeyBtZXRhOiB7IGxhYmVsLCBmb3JtYXRPcHRpb25zIH0sIHZhbHVlIH0pKSxcclxuICAgICAgICBdO1xyXG4gICAgICAgIHJldHVybiB7IGxhYmVscywgc2VyaWVzIH07XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBpZD1cImNoYXJ0XCIgc3R5bGU9XCJoZWlnaHQ6IDIwdmg7IG1pbi1oZWlnaHQ6IDMwMHB4O1wiICNjaGFydERpdj48L2Rpdj5cclxuIl19
@@ -66,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
66
66
  type: ContentChild,
67
67
  args: [FormFieldControlDirective, { static: true }]
68
68
  }] } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEdBRVIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7O0FBRTNFOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxrQkFBa0I7SUFML0I7UUFTSTs7O1dBR0c7UUFDTSxXQUFNLEdBQThCLEVBQUUsQ0FBQztRQUNoRDs7O1dBR0c7UUFDTSxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUVoQyxlQUFVLEdBQUcsS0FBSyxDQUFDO0tBNkJ0QjtJQTNCRyxRQUFRO1FBQ0osSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUI7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDMUMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFjO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsRUFBRTtZQUNsRSxPQUFPO1NBQ1Y7UUFDRCxNQUFNLE1BQU0sR0FDUixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQztRQUNoRyxJQUFJLE1BQU0sRUFBRTtZQUNSLEtBQUssTUFBTSxRQUFRLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDeEMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUN2QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ2hDO2FBQ0o7U0FDSjtJQUNMLENBQUM7OEdBM0NRLGtCQUFrQjtrR0FBbEIsa0JBQWtCLG9OQWNiLHlCQUF5Qiw4RENsQzNDLDRoQ0E4QkE7OzJGRFZhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDSSxnQkFBZ0I7OEJBS2pCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNxRCxnQkFBZ0I7c0JBQTFFLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRm9ybUZpZWxkQ29udHJvbERpcmVjdGl2ZSB9IGZyb20gJy4vZm9ybS1maWVsZC1jb250cm9sLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogQSBmb3JtIGZpZWxkIHdyYXBwZXIgd2hpY2ggaGFuZGxlcyB0aGUgY29ycmVjdCBsYXlvdXQgYW5kIHZhbGlkYXRpb24gZXJyb3IgZGlzcGxheSBmb3JcbiAqIGEgZm9ybSBjb250cm9sLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Zkci1mb3JtLWZpZWxkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9ybS1maWVsZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZm9yOiBzdHJpbmc7XG4gICAgQElucHV0KCkgdG9vbHRpcDogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEEgbWFwIG9mIGVycm9yIG1lc3NhZ2UgY29kZXMgKHJlcXVpcmVkLCBwYXR0ZXJuIGV0Yy4pIHRvIG1lc3NhZ2VzIHRvIGRpc3BsYXlcbiAgICAgKiB3aGVuIHRob3NlIGVycm9ycyBhcmUgcHJlc2VudC5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBlcnJvcnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICAvKipcbiAgICAgKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIGlucHV0IHdpbGwgYmUgaW5pdGlhbGx5IHNldCB0byBcInJlYWRPbmx5XCIsIGFuZCBhbiBcImVkaXRcIiBidXR0b25cbiAgICAgKiB3aWxsIGJlIGRpc3BsYXllZCB3aGljaCBhbGxvd3MgdGhlIGZpZWxkIHRvIGJlIGVkaXRlZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKSByZWFkT25seVRvZ2dsZSA9IGZhbHNlO1xuICAgIEBDb250ZW50Q2hpbGQoRm9ybUZpZWxkQ29udHJvbERpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgZm9ybUZpZWxkQ29udHJvbDogRm9ybUZpZWxkQ29udHJvbERpcmVjdGl2ZTtcbiAgICBpc1JlYWRPbmx5ID0gZmFsc2U7XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZE9ubHlUb2dnbGUpIHtcbiAgICAgICAgICAgIHRoaXMuaXNSZWFkT25seSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNldFJlYWRPbmx5KHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNSZWFkT25seSA9IHRoaXMucmVhZE9ubHlUb2dnbGU7XG4gICAgfVxuXG4gICAgc2V0UmVhZE9ubHkodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5mb3JtRmllbGRDb250cm9sLnNldFJlYWRPbmx5KHZhbHVlKTtcbiAgICAgICAgdGhpcy5pc1JlYWRPbmx5ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0RXJyb3JNZXNzYWdlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICghdGhpcy5mb3JtRmllbGRDb250cm9sIHx8ICF0aGlzLmZvcm1GaWVsZENvbnRyb2wuZm9ybUNvbnRyb2xOYW1lKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXJyb3JzID1cbiAgICAgICAgICAgIHRoaXMuZm9ybUZpZWxkQ29udHJvbC5mb3JtQ29udHJvbE5hbWUuZGlydHkgJiYgdGhpcy5mb3JtRmllbGRDb250cm9sLmZvcm1Db250cm9sTmFtZS5lcnJvcnM7XG4gICAgICAgIGlmIChlcnJvcnMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZXJyb3JLZXkgb2YgT2JqZWN0LmtleXMoZXJyb3JzKSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmVycm9yc1tlcnJvcktleV0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JzW2Vycm9yS2V5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2XHJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXBcIlxyXG4gICAgW2NsYXNzLm5vLWxhYmVsXT1cIiFsYWJlbFwiXHJcbiAgICBbY2xhc3MuY2xyLWVycm9yXT1cImZvcm1GaWVsZENvbnRyb2w/LmZvcm1Db250cm9sTmFtZT8uaW52YWxpZFwiXHJcbj5cclxuICAgIDxsYWJlbCAqbmdJZj1cImxhYmVsXCIgW2Zvcl09XCJmb3JcIiBjbGFzcz1cIlwiPlxyXG4gICAgICAgIHt7IGxhYmVsIH19XHJcbiAgICA8L2xhYmVsPlxyXG4gICAgPGRpdiAqbmdJZj1cInRvb2x0aXBcIiBjbGFzcz1cInRvb2x0aXAtdGV4dFwiPlxyXG4gICAgICAgIHt7IHRvb2x0aXAgfX1cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiaW5wdXQtcm93XCJcclxuICAgICAgICBbY2xhc3MuaGFzLXRvZ2dsZV09XCJyZWFkT25seVRvZ2dsZVwiXHJcbiAgICAgICAgW2NsYXNzLmludmFsaWRdPVwiZm9ybUZpZWxkQ29udHJvbD8udG91Y2hlZCAmJiAhZm9ybUZpZWxkQ29udHJvbD8udmFsaWRcIlxyXG4gICAgPlxyXG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwicmVhZE9ubHlUb2dnbGVcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc1JlYWRPbmx5XCJcclxuICAgICAgICAgICAgW3RpdGxlXT1cIidjb21tb24uZWRpdC1maWVsZCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4taWNvbiBlZGl0LWJ1dHRvblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRSZWFkT25seShmYWxzZSlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwiZWRpdFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJnZXRFcnJvck1lc3NhZ2UoKVwiPnt7IGdldEVycm9yTWVzc2FnZSgpIH19PC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEdBRVIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7O0FBRTNFOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxrQkFBa0I7SUFML0I7UUFTSTs7O1dBR0c7UUFDTSxXQUFNLEdBQThCLEVBQUUsQ0FBQztRQUNoRDs7O1dBR0c7UUFDTSxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUVoQyxlQUFVLEdBQUcsS0FBSyxDQUFDO0tBNkJ0QjtJQTNCRyxRQUFRO1FBQ0osSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUI7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDMUMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFjO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsRUFBRTtZQUNsRSxPQUFPO1NBQ1Y7UUFDRCxNQUFNLE1BQU0sR0FDUixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQztRQUNoRyxJQUFJLE1BQU0sRUFBRTtZQUNSLEtBQUssTUFBTSxRQUFRLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDeEMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUN2QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ2hDO2FBQ0o7U0FDSjtJQUNMLENBQUM7OEdBM0NRLGtCQUFrQjtrR0FBbEIsa0JBQWtCLG9OQWNiLHlCQUF5Qiw4RENsQzNDLDRoQ0E4QkE7OzJGRFZhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDSSxnQkFBZ0I7OEJBS2pCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNxRCxnQkFBZ0I7c0JBQTFFLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFmdGVyQ29udGVudEluaXQsXHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIENvbnRlbnRDaGlsZCxcclxuICAgIElucHV0LFxyXG4gICAgT25Jbml0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRm9ybUZpZWxkQ29udHJvbERpcmVjdGl2ZSB9IGZyb20gJy4vZm9ybS1maWVsZC1jb250cm9sLmRpcmVjdGl2ZSc7XHJcblxyXG4vKipcclxuICogQSBmb3JtIGZpZWxkIHdyYXBwZXIgd2hpY2ggaGFuZGxlcyB0aGUgY29ycmVjdCBsYXlvdXQgYW5kIHZhbGlkYXRpb24gZXJyb3IgZGlzcGxheSBmb3JcclxuICogYSBmb3JtIGNvbnRyb2wuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWZvcm0tZmllbGQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9ybS1maWVsZC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBmb3I6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHRvb2x0aXA6IHN0cmluZztcclxuICAgIC8qKlxyXG4gICAgICogQSBtYXAgb2YgZXJyb3IgbWVzc2FnZSBjb2RlcyAocmVxdWlyZWQsIHBhdHRlcm4gZXRjLikgdG8gbWVzc2FnZXMgdG8gZGlzcGxheVxyXG4gICAgICogd2hlbiB0aG9zZSBlcnJvcnMgYXJlIHByZXNlbnQuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIGVycm9yczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIGlucHV0IHdpbGwgYmUgaW5pdGlhbGx5IHNldCB0byBcInJlYWRPbmx5XCIsIGFuZCBhbiBcImVkaXRcIiBidXR0b25cclxuICAgICAqIHdpbGwgYmUgZGlzcGxheWVkIHdoaWNoIGFsbG93cyB0aGUgZmllbGQgdG8gYmUgZWRpdGVkLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSByZWFkT25seVRvZ2dsZSA9IGZhbHNlO1xyXG4gICAgQENvbnRlbnRDaGlsZChGb3JtRmllbGRDb250cm9sRGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KSBmb3JtRmllbGRDb250cm9sOiBGb3JtRmllbGRDb250cm9sRGlyZWN0aXZlO1xyXG4gICAgaXNSZWFkT25seSA9IGZhbHNlO1xyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLnJlYWRPbmx5VG9nZ2xlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNSZWFkT25seSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0UmVhZE9ubHkodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaXNSZWFkT25seSA9IHRoaXMucmVhZE9ubHlUb2dnbGU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0UmVhZE9ubHkodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLmZvcm1GaWVsZENvbnRyb2wuc2V0UmVhZE9ubHkodmFsdWUpO1xyXG4gICAgICAgIHRoaXMuaXNSZWFkT25seSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEVycm9yTWVzc2FnZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIGlmICghdGhpcy5mb3JtRmllbGRDb250cm9sIHx8ICF0aGlzLmZvcm1GaWVsZENvbnRyb2wuZm9ybUNvbnRyb2xOYW1lKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZXJyb3JzID1cclxuICAgICAgICAgICAgdGhpcy5mb3JtRmllbGRDb250cm9sLmZvcm1Db250cm9sTmFtZS5kaXJ0eSAmJiB0aGlzLmZvcm1GaWVsZENvbnRyb2wuZm9ybUNvbnRyb2xOYW1lLmVycm9ycztcclxuICAgICAgICBpZiAoZXJyb3JzKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgZXJyb3JLZXkgb2YgT2JqZWN0LmtleXMoZXJyb3JzKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZXJyb3JzW2Vycm9yS2V5XSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yc1tlcnJvcktleV07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwXCJcclxuICAgIFtjbGFzcy5uby1sYWJlbF09XCIhbGFiZWxcIlxyXG4gICAgW2NsYXNzLmNsci1lcnJvcl09XCJmb3JtRmllbGRDb250cm9sPy5mb3JtQ29udHJvbE5hbWU/LmludmFsaWRcIlxyXG4+XHJcbiAgICA8bGFiZWwgKm5nSWY9XCJsYWJlbFwiIFtmb3JdPVwiZm9yXCIgY2xhc3M9XCJcIj5cclxuICAgICAgICB7eyBsYWJlbCB9fVxyXG4gICAgPC9sYWJlbD5cclxuICAgIDxkaXYgKm5nSWY9XCJ0b29sdGlwXCIgY2xhc3M9XCJ0b29sdGlwLXRleHRcIj5cclxuICAgICAgICB7eyB0b29sdGlwIH19XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImlucHV0LXJvd1wiXHJcbiAgICAgICAgW2NsYXNzLmhhcy10b2dnbGVdPVwicmVhZE9ubHlUb2dnbGVcIlxyXG4gICAgICAgIFtjbGFzcy5pbnZhbGlkXT1cImZvcm1GaWVsZENvbnRyb2w/LnRvdWNoZWQgJiYgIWZvcm1GaWVsZENvbnRyb2w/LnZhbGlkXCJcclxuICAgID5cclxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAqbmdJZj1cInJlYWRPbmx5VG9nZ2xlXCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNSZWFkT25seVwiXHJcbiAgICAgICAgICAgIFt0aXRsZV09XCInY29tbW9uLmVkaXQtZmllbGQnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWljb24gZWRpdC1idXR0b25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0UmVhZE9ubHkoZmFsc2UpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImVkaXRcIj48L2Nsci1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiZ2V0RXJyb3JNZXNzYWdlKClcIj57eyBnZXRFcnJvck1lc3NhZ2UoKSB9fTwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -15,11 +15,11 @@ export class PageHeaderTabsComponent {
15
15
  };
16
16
  }
17
17
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: PageHeaderTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
18
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: PageHeaderTabsComponent, selector: "vdr-page-header-tabs", inputs: { tabs: "tabs" }, ngImport: i0, template: "<div class=\"tab-bar\" *ngIf=\"tabs.length\">\r\n <a\r\n [routerLink]=\"tab.route\"\r\n class=\"tab\"\r\n *ngFor=\"let tab of tabs\"\r\n routerLinkActive=\"active\"\r\n [routerLinkActiveOptions]=\"routerLinkActiveOptions\"\r\n >\r\n <clr-icon *ngIf=\"tab.icon\" [attr.shape]=\"tab.icon\"></clr-icon>\r\n {{ tab.label | translate }}\r\n </a>\r\n</div>\r\n", styles: [":host{display:block;margin-top:calc(var(--space-unit) * 2)}.tab-bar{display:flex}.tab{padding:calc(var(--space-unit) * 1) calc(var(--space-unit) * 2);border-bottom:1px solid var(--color-weight-300);margin-bottom:-1px;color:var(--color-weight-700);cursor:pointer}.tab.active{color:var(--color-text-active);border-bottom-color:var(--color-text-active)}\n"], dependencies: [{ kind: "directive", type: i1.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: PageHeaderTabsComponent, selector: "vdr-page-header-tabs", inputs: { tabs: "tabs" }, ngImport: i0, template: "<div class=\"tab-bar\" *ngIf=\"tabs.length\">\r\n <a\r\n [routerLink]=\"tab.route\"\r\n class=\"tab\"\r\n *ngFor=\"let tab of tabs\"\r\n routerLinkActive=\"active\"\r\n [routerLinkActiveOptions]=\"routerLinkActiveOptions\"\r\n >\r\n <clr-icon *ngIf=\"tab.icon\" [attr.shape]=\"tab.icon\"></clr-icon>\r\n {{ tab.label | translate }}\r\n </a>\r\n</div>\r\n", styles: [":host{display:block;margin-top:calc(var(--space-unit) * 2)}.tab-bar{display:flex}.tab-bar a:hover{color:var(--color-text-active);border-bottom-color:var(--color-text-active)}.tab{padding:calc(var(--space-unit) * 1) calc(var(--space-unit) * 2);border-bottom:1px solid var(--color-weight-300);margin-bottom:-1px;color:var(--color-weight-700);cursor:pointer}.tab.active{color:var(--color-text-active);border-bottom-color:var(--color-text-active)}\n"], dependencies: [{ kind: "directive", type: i1.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
19
19
  }
20
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: PageHeaderTabsComponent, decorators: [{
21
21
  type: Component,
22
- args: [{ selector: 'vdr-page-header-tabs', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"tab-bar\" *ngIf=\"tabs.length\">\r\n <a\r\n [routerLink]=\"tab.route\"\r\n class=\"tab\"\r\n *ngFor=\"let tab of tabs\"\r\n routerLinkActive=\"active\"\r\n [routerLinkActiveOptions]=\"routerLinkActiveOptions\"\r\n >\r\n <clr-icon *ngIf=\"tab.icon\" [attr.shape]=\"tab.icon\"></clr-icon>\r\n {{ tab.label | translate }}\r\n </a>\r\n</div>\r\n", styles: [":host{display:block;margin-top:calc(var(--space-unit) * 2)}.tab-bar{display:flex}.tab{padding:calc(var(--space-unit) * 1) calc(var(--space-unit) * 2);border-bottom:1px solid var(--color-weight-300);margin-bottom:-1px;color:var(--color-weight-700);cursor:pointer}.tab.active{color:var(--color-text-active);border-bottom-color:var(--color-text-active)}\n"] }]
22
+ args: [{ selector: 'vdr-page-header-tabs', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"tab-bar\" *ngIf=\"tabs.length\">\r\n <a\r\n [routerLink]=\"tab.route\"\r\n class=\"tab\"\r\n *ngFor=\"let tab of tabs\"\r\n routerLinkActive=\"active\"\r\n [routerLinkActiveOptions]=\"routerLinkActiveOptions\"\r\n >\r\n <clr-icon *ngIf=\"tab.icon\" [attr.shape]=\"tab.icon\"></clr-icon>\r\n {{ tab.label | translate }}\r\n </a>\r\n</div>\r\n", styles: [":host{display:block;margin-top:calc(var(--space-unit) * 2)}.tab-bar{display:flex}.tab-bar a:hover{color:var(--color-text-active);border-bottom-color:var(--color-text-active)}.tab{padding:calc(var(--space-unit) * 1) calc(var(--space-unit) * 2);border-bottom:1px solid var(--color-weight-300);margin-bottom:-1px;color:var(--color-weight-700);cursor:pointer}.tab.active{color:var(--color-text-active);border-bottom-color:var(--color-text-active)}\n"] }]
23
23
  }], propDecorators: { tabs: [{
24
24
  type: Input
25
25
  }] } });
@@ -1,5 +1,5 @@
1
1
  import { Component } from '@angular/core';
2
- import { ADMIN_UI_VERSION, AUTH_REDIRECT_PARAM, getAppConfig } from '@vendure/admin-ui/core';
2
+ import { ADMIN_UI_VERSION, AUTH_REDIRECT_PARAM, getAppConfig, } from '@vendure/admin-ui/core';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@vendure/admin-ui/core";
5
5
  import * as i2 from "@angular/router";
@@ -21,7 +21,6 @@ export class LoginComponent {
21
21
  this.version = ADMIN_UI_VERSION;
22
22
  this.brand = getAppConfig().brand;
23
23
  this.hideVendureBranding = getAppConfig().hideVendureBranding;
24
- this.hideVersion = getAppConfig().hideVersion;
25
24
  this.customImageUrl = getAppConfig().loginImageUrl;
26
25
  this.imageUrl = '';
27
26
  this.imageUnsplashUrl = '';
@@ -89,10 +88,10 @@ export class LoginComponent {
89
88
  return redirectTo;
90
89
  }
91
90
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: LoginComponent, deps: [{ token: i1.AuthService }, { token: i2.Router }, { token: i3.HttpClient }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
92
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: LoginComponent, selector: "vdr-login", ngImport: i0, template: "<div class=\"login-wrapper\" [dir]=\"direction$ | async\">\r\n <div class=\"login-wrapper-inner\">\r\n <div class=\"login-wrapper-image\">\r\n <div class=\"login-wrapper-image-content\">\r\n <div class=\"login-wrapper-image-title\">\r\n {{ 'common.login-image-title' | translate }}\r\n </div>\r\n <div class=\"login-wrapper-image-copyright\">\r\n <p *ngIf=\"imageCreator\" class=\"creator\">\r\n Photo by <a [href]=\"imageCreatorUrl\" target=\"_blank\">{{ imageCreator }}</a> on\r\n <a [href]=\"imageUnsplashUrl\" target=\"_blank\">Unsplash</a>\r\n </p>\r\n <p *ngIf=\"imageLocation\" class=\"location\">{{ imageLocation }}</p>\r\n </div>\r\n </div>\r\n <img *ngIf=\"imageUrl\" [src]=\"imageUrl\" [alt]=\"imageUrl\" />\r\n </div>\r\n <div class=\"login-wrapper-form\">\r\n <p class=\"login-title\">\r\n {{ 'common.login-title' | translate : { brand: hideVendureBranding ? brand : 'Vendure' } }}\r\n </p>\r\n <form class=\"login-form\">\r\n <div class=\"login-group\">\r\n <input\r\n class=\"username\"\r\n type=\"text\"\r\n name=\"username\"\r\n id=\"login_username\"\r\n [(ngModel)]=\"username\"\r\n [placeholder]=\"'common.username' | translate\"\r\n />\r\n <input\r\n class=\"password\"\r\n name=\"password\"\r\n type=\"password\"\r\n id=\"login_password\"\r\n [(ngModel)]=\"password\"\r\n [placeholder]=\"'common.password' | translate\"\r\n />\r\n <clr-alert\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n [class.visible]=\"errorMessage\"\r\n class=\"login-error\"\r\n >\r\n <clr-alert-item>\r\n <span class=\"alert-text\">\r\n {{ errorMessage }}\r\n </span>\r\n </clr-alert-item>\r\n </clr-alert>\r\n <clr-checkbox-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrCheckbox\r\n id=\"rememberme\"\r\n name=\"rememberme\"\r\n [(ngModel)]=\"rememberMe\"\r\n />\r\n <label>{{ 'common.remember-me' | translate }}</label>\r\n </clr-checkbox-wrapper>\r\n <div>\r\n <button\r\n type=\"submit\"\r\n class=\"button primary login-button\"\r\n (click)=\"logIn()\"\r\n [disabled]=\"!username || !password\"\r\n >\r\n {{ 'common.login' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"version\">\r\n <span *ngIf=\"brand\"\r\n >{{ brand }} <span *ngIf=\"!hideVendureBranding || !hideVersion\">-</span></span\r\n >\r\n <span *ngIf=\"!hideVendureBranding\">vendure</span>\r\n <span *ngIf=\"!hideVersion\">v{{ version }}</span>\r\n </div>\r\n </form>\r\n </div>\r\n <img class=\"login-wrapper-logo\" src=\"assets/logo-login.webp\" *ngIf=\"!hideVendureBranding\" />\r\n </div>\r\n</div>\r\n", styles: [".login-wrapper{background:var(--color-login-page-bg);background-image:none;height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-wrapper .login-wrapper-inner{background:#fff;width:1120px;height:590px;display:flex;justify-content:flex-start;align-items:stretch;position:relative;border-radius:var(--border-radius);border:1px solid var(--color-weight-150);overflow:hidden}@media (max-width: 992px){.login-wrapper .login-wrapper-inner{flex-direction:column;height:auto;width:100%}}.login-wrapper .login-wrapper-inner .login-wrapper-image{height:100%;flex-grow:1;position:relative}@media (max-width: 992px){.login-wrapper .login-wrapper-inner .login-wrapper-image{height:300px}}.login-wrapper .login-wrapper-inner .login-wrapper-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;position:relative;z-index:1}.login-wrapper .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content{width:100%;height:100%;position:absolute;left:0;bottom:0;z-index:10;background:rgb(2,0,36);background:linear-gradient(180deg,rgba(2,0,36,0) 0%,rgba(0,0,0,.75) 100%);display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:30px}.login-wrapper .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content .login-wrapper-image-title{font-size:1.6rem;font-weight:700;color:#fff;margin-bottom:20px}@media (max-width: 992px){.login-wrapper .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content .login-wrapper-image-title{font-size:1.2rem}}.login-wrapper .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content .login-wrapper-image-copyright{opacity:.8}.login-wrapper .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content .login-wrapper-image-copyright p{font-size:.6rem;color:#fff;margin:0!important}.login-wrapper .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content .login-wrapper-image-copyright a{color:#fff;text-decoration:underline}.login-wrapper .login-wrapper-inner .login-wrapper-form{height:100%;width:400px;padding:40px;display:flex;flex-direction:column;align-items:stretch;justify-content:center;box-shadow:0 20px 25px #0000001a;overflow:hidden;border-radius:5px;flex-shrink:0}@media (max-width: 992px){.login-wrapper .login-wrapper-inner .login-wrapper-form{height:auto;width:100%;padding:20px}}.login-wrapper .login-wrapper-inner .login-wrapper-form .login-title{font-weight:700;font-size:1.2rem;margin-bottom:20px;color:var(--color-weight-600)}.login-wrapper .login-wrapper-inner .login-wrapper-form .login-group input.username,.login-wrapper .login-wrapper-inner .login-wrapper-form .login-group input.password{display:block;width:100%;margin-bottom:15px;padding:12px 16px!important;background:#fff;font-size:14px;line-height:22px;color:#52667a;outline:none;-webkit-appearance:none}.login-wrapper .login-wrapper-inner .login-wrapper-form .login-group .btn{width:100%!important;margin-top:20px!important}.login-wrapper .login-wrapper-inner .login-wrapper-logo{width:60px;height:auto;position:absolute;right:20px;top:20px}.login-button{width:100%;margin-top:var(--space-unit);justify-content:center}.version{flex:1;flex-grow:1;display:flex;align-items:flex-end;justify-content:center;color:var(--color-grey-300)}.version span+span{margin-inline-start:5px}.login-error{max-height:0;overflow:hidden}.login-error.visible{max-height:46px;transition:max-height .2s;animation:shake .82s cubic-bezier(.36,.07,.19,.97) both;animation-delay:.2s;transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;perspective:1000px}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}.login-wrapper[dir=rtl] .login-wrapper-inner .login-wrapper-logo{right:auto;left:20px}.login-wrapper[dir=rtl] .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content{left:auto;right:0}\n"], dependencies: [{ kind: "component", type: i4.ClrAlert, selector: "clr-alert", inputs: ["clrAlertSizeSmall", "clrAlertClosable", "clrAlertAppLevel", "clrCloseButtonAriaLabel", "clrAlertType", "clrAlertIcon", "clrAlertClosed"], outputs: ["clrAlertClosedChange"] }, { kind: "component", type: i4.ClrAlertItem, selector: "clr-alert-item" }, { kind: "directive", type: i4.ClrAlertText, selector: ".alert-text" }, { kind: "directive", type: i4.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: i4.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "component", type: i4.ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
91
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: LoginComponent, selector: "vdr-login", ngImport: i0, template: "<div class=\"login-wrapper\" [dir]=\"direction$ | async\">\r\n <div class=\"login-wrapper-inner\">\r\n <div class=\"login-wrapper-image\">\r\n <div class=\"login-wrapper-image-content\">\r\n <div class=\"login-wrapper-image-title\">\r\n {{ 'common.login-image-title' | translate }}\r\n </div>\r\n <div class=\"login-wrapper-image-copyright\">\r\n <p *ngIf=\"imageCreator\" class=\"creator\">\r\n Photo by <a [href]=\"imageCreatorUrl\" target=\"_blank\">{{ imageCreator }}</a> on\r\n <a [href]=\"imageUnsplashUrl\" target=\"_blank\">Unsplash</a>\r\n </p>\r\n <p *ngIf=\"imageLocation\" class=\"location\">{{ imageLocation }}</p>\r\n </div>\r\n </div>\r\n <img *ngIf=\"imageUrl\" [src]=\"imageUrl\" [alt]=\"imageUrl\" />\r\n </div>\r\n <div class=\"login-wrapper-form\">\r\n <p class=\"login-title\">\r\n {{ 'common.login-title' | translate : { brand: hideVendureBranding ? brand : 'Vendure' } }}\r\n </p>\r\n <form class=\"login-form\">\r\n <div class=\"login-group\">\r\n <input\r\n class=\"username\"\r\n type=\"text\"\r\n name=\"username\"\r\n id=\"login_username\"\r\n [(ngModel)]=\"username\"\r\n [placeholder]=\"'common.username' | translate\"\r\n />\r\n <input\r\n class=\"password\"\r\n name=\"password\"\r\n type=\"password\"\r\n id=\"login_password\"\r\n [(ngModel)]=\"password\"\r\n [placeholder]=\"'common.password' | translate\"\r\n />\r\n <clr-alert\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n [class.visible]=\"errorMessage\"\r\n class=\"login-error\"\r\n >\r\n <clr-alert-item>\r\n <span class=\"alert-text\">\r\n {{ errorMessage }}\r\n </span>\r\n </clr-alert-item>\r\n </clr-alert>\r\n <clr-checkbox-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrCheckbox\r\n id=\"rememberme\"\r\n name=\"rememberme\"\r\n [(ngModel)]=\"rememberMe\"\r\n />\r\n <label>{{ 'common.remember-me' | translate }}</label>\r\n </clr-checkbox-wrapper>\r\n <div>\r\n <button\r\n type=\"submit\"\r\n class=\"button primary login-button\"\r\n (click)=\"logIn()\"\r\n [disabled]=\"!username || !password\"\r\n >\r\n {{ 'common.login' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <img class=\"login-wrapper-logo\" src=\"assets/logo-login.webp\" *ngIf=\"!hideVendureBranding\" />\r\n </div>\r\n</div>\r\n", styles: [".login-wrapper{background:var(--color-weight-100);background-image:none;height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-wrapper .login-wrapper-inner{background:var(--login-wrapper-inner-bg);width:1120px;height:590px;display:flex;justify-content:flex-start;align-items:stretch;position:relative;border-radius:var(--border-radius);border:1px solid var(--color-weight-150);overflow:hidden}@media (max-width: 992px){.login-wrapper .login-wrapper-inner{flex-direction:column;height:auto;width:100%}}.login-wrapper .login-wrapper-inner .login-wrapper-image{height:100%;flex-grow:1;position:relative}@media (max-width: 992px){.login-wrapper .login-wrapper-inner .login-wrapper-image{height:300px}}.login-wrapper .login-wrapper-inner .login-wrapper-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;position:relative;z-index:1}.login-wrapper .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content{width:100%;height:100%;position:absolute;left:0;bottom:0;z-index:10;background:rgb(2,0,36);background:linear-gradient(180deg,rgba(2,0,36,0) 0%,rgba(0,0,0,.75) 100%);display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:30px}.login-wrapper .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content .login-wrapper-image-title{font-size:1.6rem;font-weight:700;color:#fff;margin-bottom:20px}@media (max-width: 992px){.login-wrapper .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content .login-wrapper-image-title{font-size:1.2rem}}.login-wrapper .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content .login-wrapper-image-copyright{opacity:.8}.login-wrapper .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content .login-wrapper-image-copyright p{font-size:.6rem;color:#fff;margin:0!important}.login-wrapper .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content .login-wrapper-image-copyright a{color:#fff;text-decoration:underline}.login-wrapper .login-wrapper-inner .login-wrapper-form{height:100%;width:400px;padding:40px;display:flex;flex-direction:column;align-items:stretch;justify-content:center;box-shadow:0 20px 25px #0000001a;overflow:hidden;flex-shrink:0}@media (max-width: 992px){.login-wrapper .login-wrapper-inner .login-wrapper-form{height:auto;width:100%;padding:20px}}.login-wrapper .login-wrapper-inner .login-wrapper-form .login-title{font-weight:700;font-size:1.2rem;margin-bottom:20px;color:var(--color-weight-600)}.login-wrapper .login-wrapper-inner .login-wrapper-form .login-group input.username,.login-wrapper .login-wrapper-inner .login-wrapper-form .login-group input.password{display:block;width:100%;margin-bottom:15px;padding:12px 16px!important;background:#fff;font-size:14px;line-height:22px;color:#52667a;outline:none;-webkit-appearance:none}.login-wrapper .login-wrapper-inner .login-wrapper-form .login-group .btn{width:100%!important;margin-top:20px!important}.login-wrapper .login-wrapper-inner .login-wrapper-logo{width:60px;height:auto;position:absolute;right:20px;top:20px}.login-button{width:100%;margin-top:var(--space-unit);justify-content:center}.version{flex:1;flex-grow:1;display:flex;align-items:flex-end;justify-content:center;color:var(--color-grey-300)}.version span+span{margin-inline-start:5px}.login-error{max-height:0;overflow:hidden}.login-error.visible{max-height:46px;transition:max-height .2s;animation:shake .82s cubic-bezier(.36,.07,.19,.97) both;animation-delay:.2s;transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;perspective:1000px}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}.login-wrapper[dir=rtl] .login-wrapper-inner .login-wrapper-logo{right:auto;left:20px}.login-wrapper[dir=rtl] .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content{left:auto;right:0}\n"], dependencies: [{ kind: "component", type: i4.ClrAlert, selector: "clr-alert", inputs: ["clrAlertSizeSmall", "clrAlertClosable", "clrAlertAppLevel", "clrCloseButtonAriaLabel", "clrAlertType", "clrAlertIcon", "clrAlertClosed"], outputs: ["clrAlertClosedChange"] }, { kind: "component", type: i4.ClrAlertItem, selector: "clr-alert-item" }, { kind: "directive", type: i4.ClrAlertText, selector: ".alert-text" }, { kind: "directive", type: i4.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: i4.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "component", type: i4.ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
93
92
  }
94
93
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: LoginComponent, decorators: [{
95
94
  type: Component,
96
- args: [{ selector: 'vdr-login', template: "<div class=\"login-wrapper\" [dir]=\"direction$ | async\">\r\n <div class=\"login-wrapper-inner\">\r\n <div class=\"login-wrapper-image\">\r\n <div class=\"login-wrapper-image-content\">\r\n <div class=\"login-wrapper-image-title\">\r\n {{ 'common.login-image-title' | translate }}\r\n </div>\r\n <div class=\"login-wrapper-image-copyright\">\r\n <p *ngIf=\"imageCreator\" class=\"creator\">\r\n Photo by <a [href]=\"imageCreatorUrl\" target=\"_blank\">{{ imageCreator }}</a> on\r\n <a [href]=\"imageUnsplashUrl\" target=\"_blank\">Unsplash</a>\r\n </p>\r\n <p *ngIf=\"imageLocation\" class=\"location\">{{ imageLocation }}</p>\r\n </div>\r\n </div>\r\n <img *ngIf=\"imageUrl\" [src]=\"imageUrl\" [alt]=\"imageUrl\" />\r\n </div>\r\n <div class=\"login-wrapper-form\">\r\n <p class=\"login-title\">\r\n {{ 'common.login-title' | translate : { brand: hideVendureBranding ? brand : 'Vendure' } }}\r\n </p>\r\n <form class=\"login-form\">\r\n <div class=\"login-group\">\r\n <input\r\n class=\"username\"\r\n type=\"text\"\r\n name=\"username\"\r\n id=\"login_username\"\r\n [(ngModel)]=\"username\"\r\n [placeholder]=\"'common.username' | translate\"\r\n />\r\n <input\r\n class=\"password\"\r\n name=\"password\"\r\n type=\"password\"\r\n id=\"login_password\"\r\n [(ngModel)]=\"password\"\r\n [placeholder]=\"'common.password' | translate\"\r\n />\r\n <clr-alert\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n [class.visible]=\"errorMessage\"\r\n class=\"login-error\"\r\n >\r\n <clr-alert-item>\r\n <span class=\"alert-text\">\r\n {{ errorMessage }}\r\n </span>\r\n </clr-alert-item>\r\n </clr-alert>\r\n <clr-checkbox-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrCheckbox\r\n id=\"rememberme\"\r\n name=\"rememberme\"\r\n [(ngModel)]=\"rememberMe\"\r\n />\r\n <label>{{ 'common.remember-me' | translate }}</label>\r\n </clr-checkbox-wrapper>\r\n <div>\r\n <button\r\n type=\"submit\"\r\n class=\"button primary login-button\"\r\n (click)=\"logIn()\"\r\n [disabled]=\"!username || !password\"\r\n >\r\n {{ 'common.login' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"version\">\r\n <span *ngIf=\"brand\"\r\n >{{ brand }} <span *ngIf=\"!hideVendureBranding || !hideVersion\">-</span></span\r\n >\r\n <span *ngIf=\"!hideVendureBranding\">vendure</span>\r\n <span *ngIf=\"!hideVersion\">v{{ version }}</span>\r\n </div>\r\n </form>\r\n </div>\r\n <img class=\"login-wrapper-logo\" src=\"assets/logo-login.webp\" *ngIf=\"!hideVendureBranding\" />\r\n </div>\r\n</div>\r\n", styles: [".login-wrapper{background:var(--color-login-page-bg);background-image:none;height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-wrapper .login-wrapper-inner{background:#fff;width:1120px;height:590px;display:flex;justify-content:flex-start;align-items:stretch;position:relative;border-radius:var(--border-radius);border:1px solid var(--color-weight-150);overflow:hidden}@media (max-width: 992px){.login-wrapper .login-wrapper-inner{flex-direction:column;height:auto;width:100%}}.login-wrapper .login-wrapper-inner .login-wrapper-image{height:100%;flex-grow:1;position:relative}@media (max-width: 992px){.login-wrapper .login-wrapper-inner .login-wrapper-image{height:300px}}.login-wrapper .login-wrapper-inner .login-wrapper-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;position:relative;z-index:1}.login-wrapper .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content{width:100%;height:100%;position:absolute;left:0;bottom:0;z-index:10;background:rgb(2,0,36);background:linear-gradient(180deg,rgba(2,0,36,0) 0%,rgba(0,0,0,.75) 100%);display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:30px}.login-wrapper .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content .login-wrapper-image-title{font-size:1.6rem;font-weight:700;color:#fff;margin-bottom:20px}@media (max-width: 992px){.login-wrapper .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content .login-wrapper-image-title{font-size:1.2rem}}.login-wrapper .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content .login-wrapper-image-copyright{opacity:.8}.login-wrapper .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content .login-wrapper-image-copyright p{font-size:.6rem;color:#fff;margin:0!important}.login-wrapper .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content .login-wrapper-image-copyright a{color:#fff;text-decoration:underline}.login-wrapper .login-wrapper-inner .login-wrapper-form{height:100%;width:400px;padding:40px;display:flex;flex-direction:column;align-items:stretch;justify-content:center;box-shadow:0 20px 25px #0000001a;overflow:hidden;border-radius:5px;flex-shrink:0}@media (max-width: 992px){.login-wrapper .login-wrapper-inner .login-wrapper-form{height:auto;width:100%;padding:20px}}.login-wrapper .login-wrapper-inner .login-wrapper-form .login-title{font-weight:700;font-size:1.2rem;margin-bottom:20px;color:var(--color-weight-600)}.login-wrapper .login-wrapper-inner .login-wrapper-form .login-group input.username,.login-wrapper .login-wrapper-inner .login-wrapper-form .login-group input.password{display:block;width:100%;margin-bottom:15px;padding:12px 16px!important;background:#fff;font-size:14px;line-height:22px;color:#52667a;outline:none;-webkit-appearance:none}.login-wrapper .login-wrapper-inner .login-wrapper-form .login-group .btn{width:100%!important;margin-top:20px!important}.login-wrapper .login-wrapper-inner .login-wrapper-logo{width:60px;height:auto;position:absolute;right:20px;top:20px}.login-button{width:100%;margin-top:var(--space-unit);justify-content:center}.version{flex:1;flex-grow:1;display:flex;align-items:flex-end;justify-content:center;color:var(--color-grey-300)}.version span+span{margin-inline-start:5px}.login-error{max-height:0;overflow:hidden}.login-error.visible{max-height:46px;transition:max-height .2s;animation:shake .82s cubic-bezier(.36,.07,.19,.97) both;animation-delay:.2s;transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;perspective:1000px}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}.login-wrapper[dir=rtl] .login-wrapper-inner .login-wrapper-logo{right:auto;left:20px}.login-wrapper[dir=rtl] .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content{left:auto;right:0}\n"] }]
95
+ args: [{ selector: 'vdr-login', template: "<div class=\"login-wrapper\" [dir]=\"direction$ | async\">\r\n <div class=\"login-wrapper-inner\">\r\n <div class=\"login-wrapper-image\">\r\n <div class=\"login-wrapper-image-content\">\r\n <div class=\"login-wrapper-image-title\">\r\n {{ 'common.login-image-title' | translate }}\r\n </div>\r\n <div class=\"login-wrapper-image-copyright\">\r\n <p *ngIf=\"imageCreator\" class=\"creator\">\r\n Photo by <a [href]=\"imageCreatorUrl\" target=\"_blank\">{{ imageCreator }}</a> on\r\n <a [href]=\"imageUnsplashUrl\" target=\"_blank\">Unsplash</a>\r\n </p>\r\n <p *ngIf=\"imageLocation\" class=\"location\">{{ imageLocation }}</p>\r\n </div>\r\n </div>\r\n <img *ngIf=\"imageUrl\" [src]=\"imageUrl\" [alt]=\"imageUrl\" />\r\n </div>\r\n <div class=\"login-wrapper-form\">\r\n <p class=\"login-title\">\r\n {{ 'common.login-title' | translate : { brand: hideVendureBranding ? brand : 'Vendure' } }}\r\n </p>\r\n <form class=\"login-form\">\r\n <div class=\"login-group\">\r\n <input\r\n class=\"username\"\r\n type=\"text\"\r\n name=\"username\"\r\n id=\"login_username\"\r\n [(ngModel)]=\"username\"\r\n [placeholder]=\"'common.username' | translate\"\r\n />\r\n <input\r\n class=\"password\"\r\n name=\"password\"\r\n type=\"password\"\r\n id=\"login_password\"\r\n [(ngModel)]=\"password\"\r\n [placeholder]=\"'common.password' | translate\"\r\n />\r\n <clr-alert\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n [class.visible]=\"errorMessage\"\r\n class=\"login-error\"\r\n >\r\n <clr-alert-item>\r\n <span class=\"alert-text\">\r\n {{ errorMessage }}\r\n </span>\r\n </clr-alert-item>\r\n </clr-alert>\r\n <clr-checkbox-wrapper>\r\n <input\r\n type=\"checkbox\"\r\n clrCheckbox\r\n id=\"rememberme\"\r\n name=\"rememberme\"\r\n [(ngModel)]=\"rememberMe\"\r\n />\r\n <label>{{ 'common.remember-me' | translate }}</label>\r\n </clr-checkbox-wrapper>\r\n <div>\r\n <button\r\n type=\"submit\"\r\n class=\"button primary login-button\"\r\n (click)=\"logIn()\"\r\n [disabled]=\"!username || !password\"\r\n >\r\n {{ 'common.login' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <img class=\"login-wrapper-logo\" src=\"assets/logo-login.webp\" *ngIf=\"!hideVendureBranding\" />\r\n </div>\r\n</div>\r\n", styles: [".login-wrapper{background:var(--color-weight-100);background-image:none;height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-wrapper .login-wrapper-inner{background:var(--login-wrapper-inner-bg);width:1120px;height:590px;display:flex;justify-content:flex-start;align-items:stretch;position:relative;border-radius:var(--border-radius);border:1px solid var(--color-weight-150);overflow:hidden}@media (max-width: 992px){.login-wrapper .login-wrapper-inner{flex-direction:column;height:auto;width:100%}}.login-wrapper .login-wrapper-inner .login-wrapper-image{height:100%;flex-grow:1;position:relative}@media (max-width: 992px){.login-wrapper .login-wrapper-inner .login-wrapper-image{height:300px}}.login-wrapper .login-wrapper-inner .login-wrapper-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;position:relative;z-index:1}.login-wrapper .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content{width:100%;height:100%;position:absolute;left:0;bottom:0;z-index:10;background:rgb(2,0,36);background:linear-gradient(180deg,rgba(2,0,36,0) 0%,rgba(0,0,0,.75) 100%);display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:30px}.login-wrapper .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content .login-wrapper-image-title{font-size:1.6rem;font-weight:700;color:#fff;margin-bottom:20px}@media (max-width: 992px){.login-wrapper .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content .login-wrapper-image-title{font-size:1.2rem}}.login-wrapper .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content .login-wrapper-image-copyright{opacity:.8}.login-wrapper .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content .login-wrapper-image-copyright p{font-size:.6rem;color:#fff;margin:0!important}.login-wrapper .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content .login-wrapper-image-copyright a{color:#fff;text-decoration:underline}.login-wrapper .login-wrapper-inner .login-wrapper-form{height:100%;width:400px;padding:40px;display:flex;flex-direction:column;align-items:stretch;justify-content:center;box-shadow:0 20px 25px #0000001a;overflow:hidden;flex-shrink:0}@media (max-width: 992px){.login-wrapper .login-wrapper-inner .login-wrapper-form{height:auto;width:100%;padding:20px}}.login-wrapper .login-wrapper-inner .login-wrapper-form .login-title{font-weight:700;font-size:1.2rem;margin-bottom:20px;color:var(--color-weight-600)}.login-wrapper .login-wrapper-inner .login-wrapper-form .login-group input.username,.login-wrapper .login-wrapper-inner .login-wrapper-form .login-group input.password{display:block;width:100%;margin-bottom:15px;padding:12px 16px!important;background:#fff;font-size:14px;line-height:22px;color:#52667a;outline:none;-webkit-appearance:none}.login-wrapper .login-wrapper-inner .login-wrapper-form .login-group .btn{width:100%!important;margin-top:20px!important}.login-wrapper .login-wrapper-inner .login-wrapper-logo{width:60px;height:auto;position:absolute;right:20px;top:20px}.login-button{width:100%;margin-top:var(--space-unit);justify-content:center}.version{flex:1;flex-grow:1;display:flex;align-items:flex-end;justify-content:center;color:var(--color-grey-300)}.version span+span{margin-inline-start:5px}.login-error{max-height:0;overflow:hidden}.login-error.visible{max-height:46px;transition:max-height .2s;animation:shake .82s cubic-bezier(.36,.07,.19,.97) both;animation-delay:.2s;transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;perspective:1000px}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}.login-wrapper[dir=rtl] .login-wrapper-inner .login-wrapper-logo{right:auto;left:20px}.login-wrapper[dir=rtl] .login-wrapper-inner .login-wrapper-image .login-wrapper-image-content{left:auto;right:0}\n"] }]
97
96
  }], ctorParameters: function () { return [{ type: i1.AuthService }, { type: i2.Router }, { type: i3.HttpClient }, { type: i1.LocalizationService }]; } });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9sb2dpbi9zcmMvY29tcG9uZW50cy9sb2dpbi9sb2dpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2xvZ2luL3NyYy9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFlLG1CQUFtQixFQUFFLFlBQVksRUFBa0QsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7OztBQU8xSixNQUFNLE9BQU8sY0FBYztJQWtCdkIsWUFBb0IsV0FBd0IsRUFBVSxNQUFjLEVBQVUsVUFBc0IsRUFBVSxtQkFBd0M7UUFBbEksZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFmdEosYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLFlBQU8sR0FBRyxnQkFBZ0IsQ0FBQztRQUUzQixVQUFLLEdBQUcsWUFBWSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQzdCLHdCQUFtQixHQUFHLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO1FBQ3pELGdCQUFXLEdBQUcsWUFBWSxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQ3pDLG1CQUFjLEdBQUcsWUFBWSxFQUFFLENBQUMsYUFBYSxDQUFDO1FBQzlDLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDdEIsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsaUJBQVks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V0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEFETUlOX1VJX1ZFUlNJT04sIEF1dGhTZXJ2aWNlLCBBVVRIX1JFRElSRUNUX1BBUkFNLCBnZXRBcHBDb25maWcsIExvY2FsaXphdGlvbkRpcmVjdGlvblR5cGUsIExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItbG9naW4nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xvZ2luLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2xvZ2luLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2dpbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBkaXJlY3Rpb24kOiBMb2NhbGl6YXRpb25EaXJlY3Rpb25UeXBlO1xyXG5cclxuICAgIHVzZXJuYW1lID0gJyc7XHJcbiAgICBwYXNzd29yZCA9ICcnO1xyXG4gICAgcmVtZW1iZXJNZSA9IGZhbHNlO1xyXG4gICAgdmVyc2lvbiA9IEFETUlOX1VJX1ZFUlNJT047XHJcbiAgICBlcnJvck1lc3NhZ2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIGJyYW5kID0gZ2V0QXBwQ29uZmlnKCkuYnJhbmQ7XHJcbiAgICBoaWRlVmVuZHVyZUJyYW5kaW5nID0gZ2V0QXBwQ29uZmlnKCkuaGlkZVZlbmR1cmVCcmFuZGluZztcclxuICAgIGhpZGVWZXJzaW9uID0gZ2V0QXBwQ29uZmlnKCkuaGlkZVZlcnNpb247XHJcbiAgICBjdXN0b21JbWFnZVVybCA9IGdldEFwcENvbmZpZygpLmxvZ2luSW1hZ2VVcmw7XHJcbiAgICBpbWFnZVVybCA9ICcnO1xyXG4gICAgaW1hZ2VVbnNwbGFzaFVybCA9ICcnO1xyXG4gICAgaW1hZ2VMb2NhdGlvbiA9ICcnO1xyXG4gICAgaW1hZ2VDcmVhdG9yID0gJyc7XHJcbiAgICBpbWFnZUNyZWF0b3JVcmwgPSAnJztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBwcml2YXRlIGxvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UpIHtcclxuICAgICAgICBpZiAodGhpcy5jdXN0b21JbWFnZVVybCkge1xyXG4gICAgICAgICAgICB0aGlzLmltYWdlVXJsID0gdGhpcy5jdXN0b21JbWFnZVVybDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRJbWFnZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGlyZWN0aW9uJCA9IHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5kaXJlY3Rpb24kO1xyXG4gICAgfVxyXG5cclxuICAgIGxvZ0luKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nSW4odGhpcy51c2VybmFtZSwgdGhpcy5wYXNzd29yZCwgdGhpcy5yZW1lbWJlck1lKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgc3dpdGNoIChyZXN1bHQuX190eXBlbmFtZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnQ3VycmVudFVzZXInOlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZGlyZWN0ID0gdGhpcy5nZXRSZWRpcmVjdFJvdXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChyZWRpcmVjdCA/IHJlZGlyZWN0IDogJy8nKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ0ludmFsaWRDcmVkZW50aWFsc0Vycm9yJzpcclxuICAgICAgICAgICAgICAgIGNhc2UgJ05hdGl2ZUF1dGhTdHJhdGVneUVycm9yJzpcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHJlc3VsdC5tZXNzYWdlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZEltYWdlKCkge1xyXG4gICAgICAgIHRoaXMuaHR0cENsaWVudFxyXG4gICAgICAgICAgICAuZ2V0KCdodHRwczovL2xvZ2luLWltYWdlLnZlbmR1cmUuaW8nKVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKClcclxuICAgICAgICAgICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSW1hZ2UocmVzKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlSW1hZ2UocmVzOiBhbnkpIHtcclxuICAgICAgICBjb25zdCB1c2VyOiBhbnkgPSAocmVzIGFzIGFueSkudXNlcjtcclxuICAgICAgICBjb25zdCBsb2NhdGlvbjogYW55ID0gKHJlcyBhcyBhbnkpLmxvY2F0aW9uO1xyXG5cclxuICAgICAgICB0aGlzLmltYWdlVXJsID0gcmVzLnVybHMucmVndWxhciArICc/dXRtX3NvdXJjZT1WZW5kdXJlK0xvZ2luK0ltYWdlJnV0bV9tZWRpdW09cmVmZXJyYWwnO1xyXG4gICAgICAgIHRoaXMuaW1hZ2VDcmVhdG9yID0gdXNlci5uYW1lO1xyXG4gICAgICAgIHRoaXMuaW1hZ2VMb2NhdGlvbiA9IGxvY2F0aW9uLm5hbWU7XHJcbiAgICAgICAgdGhpcy5pbWFnZUNyZWF0b3JVcmwgPSB1c2VyLmxpbmtzLmh0bWwgKyAnP3V0bV9zb3VyY2U9VmVuZHVyZStMb2dpbitJbWFnZSZ1dG1fbWVkaXVtPXJlZmVycmFsJztcclxuICAgICAgICB0aGlzLmltYWdlVW5zcGxhc2hVcmwgPSByZXMubGlua3MuaHRtbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEF0dGVtcHRzIHRvIHJlYWQgYSByZWRpcmVjdCBwYXJhbSBmcm9tIHRoZSBjdXJyZW50IHVybCBhbmQgcGFyc2UgaXQgaW50byBhXHJcbiAgICAgKiByb3V0ZSBmcm9tIHdoaWNoIHRoZSB1c2VyIHdhcyByZWRpcmVjdGVkIGFmdGVyIGEgNDAxIGVycm9yLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldFJlZGlyZWN0Um91dGUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICBsZXQgcmVkaXJlY3RUbzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgICAgIGNvbnN0IHJlID0gbmV3IFJlZ0V4cChgJHtBVVRIX1JFRElSRUNUX1BBUkFNfT0oLiopYCk7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3QgcmVkaXJlY3RUb1BhcmFtID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5tYXRjaChyZSk7XHJcbiAgICAgICAgICAgIGlmIChyZWRpcmVjdFRvUGFyYW0gJiYgMSA8IHJlZGlyZWN0VG9QYXJhbS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHJlZGlyZWN0VG8gPSBhdG9iKGRlY29kZVVSSUNvbXBvbmVudChyZWRpcmVjdFRvUGFyYW1bMV0pKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xyXG4gICAgICAgICAgICAvLyBpZ25vcmVcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlZGlyZWN0VG87XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImxvZ2luLXdyYXBwZXJcIiBbZGlyXT1cImRpcmVjdGlvbiQgfCBhc3luY1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImxvZ2luLXdyYXBwZXItaW5uZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibG9naW4td3JhcHBlci1pbWFnZVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9naW4td3JhcHBlci1pbWFnZS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9naW4td3JhcHBlci1pbWFnZS10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdjb21tb24ubG9naW4taW1hZ2UtdGl0bGUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2dpbi13cmFwcGVyLWltYWdlLWNvcHlyaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiaW1hZ2VDcmVhdG9yXCIgY2xhc3M9XCJjcmVhdG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFBob3RvIGJ5IDxhIFtocmVmXT1cImltYWdlQ3JlYXRvclVybFwiIHRhcmdldD1cIl9ibGFua1wiPnt7IGltYWdlQ3JlYXRvciB9fTwvYT4gb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiaW1hZ2VVbnNwbGFzaFVybFwiIHRhcmdldD1cIl9ibGFua1wiPlVuc3BsYXNoPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cImltYWdlTG9jYXRpb25cIiBjbGFzcz1cImxvY2F0aW9uXCI+e3sgaW1hZ2VMb2NhdGlvbiB9fTwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGltZyAqbmdJZj1cImltYWdlVXJsXCIgW3NyY109XCJpbWFnZVVybFwiIFthbHRdPVwiaW1hZ2VVcmxcIiAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsb2dpbi13cmFwcGVyLWZvcm1cIj5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJsb2dpbi10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2NvbW1vbi5sb2dpbi10aXRsZScgfCB0cmFuc2xhdGUgOiB7IGJyYW5kOiBoaWRlVmVuZHVyZUJyYW5kaW5nID8gYnJhbmQgOiAnVmVuZHVyZScgfSB9fVxyXG4gICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwibG9naW4tZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvZ2luLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidXNlcm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ1c2VybmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibG9naW5fdXNlcm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInVzZXJuYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidjb21tb24udXNlcm5hbWUnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBhc3N3b3JkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInBhc3N3b3JkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInBhc3N3b3JkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJsb2dpbl9wYXNzd29yZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicGFzc3dvcmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ2NvbW1vbi5wYXNzd29yZCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNsci1hbGVydFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xyQWxlcnRUeXBlXT1cIidkYW5nZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsckFsZXJ0Q2xvc2FibGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MudmlzaWJsZV09XCJlcnJvck1lc3NhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxvZ2luLWVycm9yXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItYWxlcnQtaXRlbT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWxlcnQtdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGVycm9yTWVzc2FnZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Nsci1hbGVydC1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvY2xyLWFsZXJ0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxjbHItY2hlY2tib3gtd3JhcHBlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xyQ2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwicmVtZW1iZXJtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwicmVtZW1iZXJtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInJlbWVtYmVyTWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ2NvbW1vbi5yZW1lbWJlci1tZScgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvY2xyLWNoZWNrYm94LXdyYXBwZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5IGxvZ2luLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibG9nSW4oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXVzZXJuYW1lIHx8ICFwYXNzd29yZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdjb21tb24ubG9naW4nIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmVyc2lvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiYnJhbmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+e3sgYnJhbmQgfX0gPHNwYW4gKm5nSWY9XCIhaGlkZVZlbmR1cmVCcmFuZGluZyB8fCAhaGlkZVZlcnNpb25cIj4tPC9zcGFuPjwvc3BhblxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFoaWRlVmVuZHVyZUJyYW5kaW5nXCI+dmVuZHVyZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFoaWRlVmVyc2lvblwiPnZ7eyB2ZXJzaW9uIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8aW1nIGNsYXNzPVwibG9naW4td3JhcHBlci1sb2dvXCIgc3JjPVwiYXNzZXRzL2xvZ28tbG9naW4ud2VicFwiICpuZ0lmPVwiIWhpZGVWZW5kdXJlQnJhbmRpbmdcIiAvPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9sb2dpbi9zcmMvY29tcG9uZW50cy9sb2dpbi9sb2dpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2xvZ2luL3NyYy9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUNILGdCQUFnQixFQUVoQixtQkFBbUIsRUFDbkIsWUFBWSxHQUdmLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7QUFPaEMsTUFBTSxPQUFPLGNBQWM7SUFpQnZCLFlBQ1ksV0FBd0IsRUFDeEIsTUFBYyxFQUNkLFVBQXNCLEVBQ3RCLG1CQUF3QztRQUh4QyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBbEJwRCxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2QsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsWUFBTyxHQUFHLGdCQUFnQixDQUFDO1FBRTNCLFVBQUssR0FBRyxZQUFZLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDN0Isd0JBQW1CLEdBQUcsWUFBWSxFQUFFLENBQUMsbUJBQW1CLENBQUM7UUFDekQsbUJBQWMsR0FBRyxZQUFZLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDOUMsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUN0QixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixvQkFBZSxHQUFHLEVBQUUs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dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7XHJcbiAgICBBRE1JTl9VSV9WRVJTSU9OLFxyXG4gICAgQXV0aFNlcnZpY2UsXHJcbiAgICBBVVRIX1JFRElSRUNUX1BBUkFNLFxyXG4gICAgZ2V0QXBwQ29uZmlnLFxyXG4gICAgTG9jYWxpemF0aW9uRGlyZWN0aW9uVHlwZSxcclxuICAgIExvY2FsaXphdGlvblNlcnZpY2UsXHJcbn0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWxvZ2luJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9sb2dpbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9sb2dpbi5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9naW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgZGlyZWN0aW9uJDogTG9jYWxpemF0aW9uRGlyZWN0aW9uVHlwZTtcclxuXHJcbiAgICB1c2VybmFtZSA9ICcnO1xyXG4gICAgcGFzc3dvcmQgPSAnJztcclxuICAgIHJlbWVtYmVyTWUgPSBmYWxzZTtcclxuICAgIHZlcnNpb24gPSBBRE1JTl9VSV9WRVJTSU9OO1xyXG4gICAgZXJyb3JNZXNzYWdlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICBicmFuZCA9IGdldEFwcENvbmZpZygpLmJyYW5kO1xyXG4gICAgaGlkZVZlbmR1cmVCcmFuZGluZyA9IGdldEFwcENvbmZpZygpLmhpZGVWZW5kdXJlQnJhbmRpbmc7XHJcbiAgICBjdXN0b21JbWFnZVVybCA9IGdldEFwcENvbmZpZygpLmxvZ2luSW1hZ2VVcmw7XHJcbiAgICBpbWFnZVVybCA9ICcnO1xyXG4gICAgaW1hZ2VVbnNwbGFzaFVybCA9ICcnO1xyXG4gICAgaW1hZ2VMb2NhdGlvbiA9ICcnO1xyXG4gICAgaW1hZ2VDcmVhdG9yID0gJyc7XHJcbiAgICBpbWFnZUNyZWF0b3JVcmwgPSAnJztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgICAgICBwcml2YXRlIGxvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXHJcbiAgICApIHtcclxuICAgICAgICBpZiAodGhpcy5jdXN0b21JbWFnZVVybCkge1xyXG4gICAgICAgICAgICB0aGlzLmltYWdlVXJsID0gdGhpcy5jdXN0b21JbWFnZVVybDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRJbWFnZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGlyZWN0aW9uJCA9IHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5kaXJlY3Rpb24kO1xyXG4gICAgfVxyXG5cclxuICAgIGxvZ0luKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nSW4odGhpcy51c2VybmFtZSwgdGhpcy5wYXNzd29yZCwgdGhpcy5yZW1lbWJlck1lKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgc3dpdGNoIChyZXN1bHQuX190eXBlbmFtZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnQ3VycmVudFVzZXInOlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZGlyZWN0ID0gdGhpcy5nZXRSZWRpcmVjdFJvdXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChyZWRpcmVjdCA/IHJlZGlyZWN0IDogJy8nKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ0ludmFsaWRDcmVkZW50aWFsc0Vycm9yJzpcclxuICAgICAgICAgICAgICAgIGNhc2UgJ05hdGl2ZUF1dGhTdHJhdGVneUVycm9yJzpcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHJlc3VsdC5tZXNzYWdlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZEltYWdlKCkge1xyXG4gICAgICAgIHRoaXMuaHR0cENsaWVudFxyXG4gICAgICAgICAgICAuZ2V0KCdodHRwczovL2xvZ2luLWltYWdlLnZlbmR1cmUuaW8nKVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKClcclxuICAgICAgICAgICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSW1hZ2UocmVzKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlSW1hZ2UocmVzOiBhbnkpIHtcclxuICAgICAgICBjb25zdCB1c2VyOiBhbnkgPSAocmVzIGFzIGFueSkudXNlcjtcclxuICAgICAgICBjb25zdCBsb2NhdGlvbjogYW55ID0gKHJlcyBhcyBhbnkpLmxvY2F0aW9uO1xyXG5cclxuICAgICAgICB0aGlzLmltYWdlVXJsID0gcmVzLnVybHMucmVndWxhciArICc/dXRtX3NvdXJjZT1WZW5kdXJlK0xvZ2luK0ltYWdlJnV0bV9tZWRpdW09cmVmZXJyYWwnO1xyXG4gICAgICAgIHRoaXMuaW1hZ2VDcmVhdG9yID0gdXNlci5uYW1lO1xyXG4gICAgICAgIHRoaXMuaW1hZ2VMb2NhdGlvbiA9IGxvY2F0aW9uLm5hbWU7XHJcbiAgICAgICAgdGhpcy5pbWFnZUNyZWF0b3JVcmwgPSB1c2VyLmxpbmtzLmh0bWwgKyAnP3V0bV9zb3VyY2U9VmVuZHVyZStMb2dpbitJbWFnZSZ1dG1fbWVkaXVtPXJlZmVycmFsJztcclxuICAgICAgICB0aGlzLmltYWdlVW5zcGxhc2hVcmwgPSByZXMubGlua3MuaHRtbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEF0dGVtcHRzIHRvIHJlYWQgYSByZWRpcmVjdCBwYXJhbSBmcm9tIHRoZSBjdXJyZW50IHVybCBhbmQgcGFyc2UgaXQgaW50byBhXHJcbiAgICAgKiByb3V0ZSBmcm9tIHdoaWNoIHRoZSB1c2VyIHdhcyByZWRpcmVjdGVkIGFmdGVyIGEgNDAxIGVycm9yLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldFJlZGlyZWN0Um91dGUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICBsZXQgcmVkaXJlY3RUbzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgICAgIGNvbnN0IHJlID0gbmV3IFJlZ0V4cChgJHtBVVRIX1JFRElSRUNUX1BBUkFNfT0oLiopYCk7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3QgcmVkaXJlY3RUb1BhcmFtID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5tYXRjaChyZSk7XHJcbiAgICAgICAgICAgIGlmIChyZWRpcmVjdFRvUGFyYW0gJiYgMSA8IHJlZGlyZWN0VG9QYXJhbS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHJlZGlyZWN0VG8gPSBhdG9iKGRlY29kZVVSSUNvbXBvbmVudChyZWRpcmVjdFRvUGFyYW1bMV0pKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xyXG4gICAgICAgICAgICAvLyBpZ25vcmVcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlZGlyZWN0VG87XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImxvZ2luLXdyYXBwZXJcIiBbZGlyXT1cImRpcmVjdGlvbiQgfCBhc3luY1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImxvZ2luLXdyYXBwZXItaW5uZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibG9naW4td3JhcHBlci1pbWFnZVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9naW4td3JhcHBlci1pbWFnZS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9naW4td3JhcHBlci1pbWFnZS10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdjb21tb24ubG9naW4taW1hZ2UtdGl0bGUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2dpbi13cmFwcGVyLWltYWdlLWNvcHlyaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiaW1hZ2VDcmVhdG9yXCIgY2xhc3M9XCJjcmVhdG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFBob3RvIGJ5IDxhIFtocmVmXT1cImltYWdlQ3JlYXRvclVybFwiIHRhcmdldD1cIl9ibGFua1wiPnt7IGltYWdlQ3JlYXRvciB9fTwvYT4gb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiaW1hZ2VVbnNwbGFzaFVybFwiIHRhcmdldD1cIl9ibGFua1wiPlVuc3BsYXNoPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cImltYWdlTG9jYXRpb25cIiBjbGFzcz1cImxvY2F0aW9uXCI+e3sgaW1hZ2VMb2NhdGlvbiB9fTwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGltZyAqbmdJZj1cImltYWdlVXJsXCIgW3NyY109XCJpbWFnZVVybFwiIFthbHRdPVwiaW1hZ2VVcmxcIiAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsb2dpbi13cmFwcGVyLWZvcm1cIj5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJsb2dpbi10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2NvbW1vbi5sb2dpbi10aXRsZScgfCB0cmFuc2xhdGUgOiB7IGJyYW5kOiBoaWRlVmVuZHVyZUJyYW5kaW5nID8gYnJhbmQgOiAnVmVuZHVyZScgfSB9fVxyXG4gICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwibG9naW4tZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvZ2luLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidXNlcm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ1c2VybmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibG9naW5fdXNlcm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInVzZXJuYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidjb21tb24udXNlcm5hbWUnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBhc3N3b3JkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInBhc3N3b3JkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInBhc3N3b3JkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJsb2dpbl9wYXNzd29yZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicGFzc3dvcmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ2NvbW1vbi5wYXNzd29yZCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNsci1hbGVydFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xyQWxlcnRUeXBlXT1cIidkYW5nZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsckFsZXJ0Q2xvc2FibGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MudmlzaWJsZV09XCJlcnJvck1lc3NhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxvZ2luLWVycm9yXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItYWxlcnQtaXRlbT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWxlcnQtdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGVycm9yTWVzc2FnZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Nsci1hbGVydC1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvY2xyLWFsZXJ0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxjbHItY2hlY2tib3gtd3JhcHBlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xyQ2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwicmVtZW1iZXJtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwicmVtZW1iZXJtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInJlbWVtYmVyTWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ2NvbW1vbi5yZW1lbWJlci1tZScgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvY2xyLWNoZWNrYm94LXdyYXBwZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5IGxvZ2luLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibG9nSW4oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXVzZXJuYW1lIHx8ICFwYXNzd29yZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdjb21tb24ubG9naW4nIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8aW1nIGNsYXNzPVwibG9naW4td3JhcHBlci1sb2dvXCIgc3JjPVwiYXNzZXRzL2xvZ28tbG9naW4ud2VicFwiICpuZ0lmPVwiIWhpZGVWZW5kdXJlQnJhbmRpbmdcIiAvPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -24,11 +24,11 @@ export class OrderPaymentCardComponent {
24
24
  return this.payment.nextStates.filter(s => s !== 'Settled' && s !== 'Error');
25
25
  }
26
26
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: OrderPaymentCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: OrderPaymentCardComponent, selector: "vdr-order-payment-card", inputs: { payment: "payment", currencyCode: "currencyCode" }, outputs: { settlePayment: "settlePayment", transitionPaymentState: "transitionPaymentState", settleRefund: "settleRefund" }, ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-header payment-header\">\r\n <div>\r\n {{ 'order.payment' | translate }}\r\n <ng-container *ngIf=\"payment.transactionId\">#{{ payment.transactionId }}</ng-container>\r\n </div>\r\n <div class=\"payment-state\">\r\n <vdr-payment-state-label [state]=\"payment.state\"></vdr-payment-state-label>\r\n </div>\r\n </div>\r\n <div class=\"card-block\">\r\n <vdr-payment-detail [payment]=\"payment\" [currencyCode]=\"currencyCode\"></vdr-payment-detail>\r\n </div>\r\n <ng-container *ngFor=\"let refund of payment.refunds\">\r\n <div class=\"card-header payment-header\">\r\n <clr-icon shape=\"redo\" class=\"refund-icon\" dir=\"down\"></clr-icon>\r\n {{ 'order.refund' | translate }} #{{ refund.id }}\r\n <div class=\"clr-flex-fill\"></div>\r\n <vdr-refund-state-label [state]=\"refund.state\"></vdr-refund-state-label>\r\n </div>\r\n <div class=\"card-block\">\r\n <vdr-labeled-data [label]=\"'common.created-at' | translate\">\r\n {{ refund.createdAt | localeDate: 'medium' }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.refund-total' | translate\">\r\n {{ refund.total | localeCurrency: currencyCode }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.transaction-id' | translate\" *ngIf=\"refund.transactionId\">\r\n {{ refund.transactionId }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.refund-reason' | translate\" *ngIf=\"refund.reason\">\r\n {{ refund.reason }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.refund-metadata' | translate\" *ngIf=\"refundHasMetadata(refund)\">\r\n <vdr-object-tree [value]=\"refund.metadata\"></vdr-object-tree>\r\n </vdr-labeled-data>\r\n </div>\r\n <div class=\"card-footer\" *ngIf=\"refund.state === 'Pending'\">\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"settleRefund.emit(refund)\">\r\n {{ 'order.settle-refund' | translate }}\r\n </button>\r\n </div>\r\n </ng-container>\r\n <div class=\"card-footer\" *ngIf=\"payment.nextStates.length\">\r\n <button\r\n class=\"btn btn-sm btn-primary\"\r\n *ngIf=\"payment.nextStates.includes('Settled')\"\r\n (click)=\"settlePayment.emit(payment)\"\r\n >\r\n {{ 'order.settle-payment' | translate }}\r\n </button>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <ng-container *ngFor=\"let nextState of nextOtherStates()\">\r\n <button\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"transitionPaymentState.emit({ payment: payment, state: nextState })\"\r\n >\r\n <ng-container *ngIf=\"nextState !== 'Cancelled'; else cancel\">\r\n <clr-icon shape=\"step-forward-2\"></clr-icon>\r\n {{\r\n 'order.transition-to-state'\r\n | translate: { state: (nextState | stateI18nToken | translate) }\r\n }}\r\n </ng-container>\r\n <ng-template #cancel>\r\n <clr-icon shape=\"error-standard\" class=\"is-error\"></clr-icon>\r\n {{ 'order.cancel-payment' | translate }}\r\n </ng-template>\r\n </button>\r\n </ng-container>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n</div>\r\n", styles: [".payment-header{display:flex;justify-content:space-between;align-items:center}.refund-icon{margin-inline-end:6px;color:var(--color-grey-400)}.card-footer{display:flex;align-items:center;justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i4.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i4.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i4.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: i4.DropdownItemDirective, selector: "[vdrDropdownItem]" }, { kind: "component", type: i4.LabeledDataComponent, selector: "vdr-labeled-data", inputs: ["label"] }, { kind: "component", type: i4.ObjectTreeComponent, selector: "vdr-object-tree", inputs: ["value", "isArrayItem"] }, { kind: "component", type: i5.PaymentStateLabelComponent, selector: "vdr-payment-state-label", inputs: ["state"] }, { kind: "component", type: i6.RefundStateLabelComponent, selector: "vdr-refund-state-label", inputs: ["state"] }, { kind: "component", type: i7.PaymentDetailComponent, selector: "vdr-payment-detail", inputs: ["payment", "currencyCode"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }, { kind: "pipe", type: i4.StateI18nTokenPipe, name: "stateI18nToken" }, { kind: "pipe", type: i4.LocaleDatePipe, name: "localeDate" }, { kind: "pipe", type: i4.LocaleCurrencyPipe, name: "localeCurrency" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: OrderPaymentCardComponent, selector: "vdr-order-payment-card", inputs: { payment: "payment", currencyCode: "currencyCode" }, outputs: { settlePayment: "settlePayment", transitionPaymentState: "transitionPaymentState", settleRefund: "settleRefund" }, ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-header payment-header\">\r\n <div>\r\n {{ 'order.payment' | translate }}\r\n <ng-container *ngIf=\"payment.transactionId\">#{{ payment.transactionId }}</ng-container>\r\n </div>\r\n <div class=\"payment-state\">\r\n <vdr-payment-state-label [state]=\"payment.state\"></vdr-payment-state-label>\r\n </div>\r\n </div>\r\n <div class=\"card-block\">\r\n <vdr-payment-detail [payment]=\"payment\" [currencyCode]=\"currencyCode\"></vdr-payment-detail>\r\n </div>\r\n <ng-container *ngFor=\"let refund of payment.refunds\">\r\n <div class=\"card-header payment-header\">\r\n <clr-icon shape=\"redo\" class=\"refund-icon\" dir=\"down\"></clr-icon>\r\n {{ 'order.refund' | translate }} #{{ refund.id }}\r\n <div class=\"clr-flex-fill\"></div>\r\n <vdr-refund-state-label [state]=\"refund.state\"></vdr-refund-state-label>\r\n </div>\r\n <div class=\"card-block\">\r\n <vdr-labeled-data [label]=\"'common.created-at' | translate\">\r\n {{ refund.createdAt | localeDate: 'medium' }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.refund-total' | translate\">\r\n {{ refund.total | localeCurrency: currencyCode }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.transaction-id' | translate\" *ngIf=\"refund.transactionId\">\r\n {{ refund.transactionId }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.refund-reason' | translate\" *ngIf=\"refund.reason\">\r\n {{ refund.reason }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.refund-metadata' | translate\" *ngIf=\"refundHasMetadata(refund)\">\r\n <vdr-object-tree [value]=\"refund.metadata\"></vdr-object-tree>\r\n </vdr-labeled-data>\r\n </div>\r\n <div class=\"card-footer\" *ngIf=\"refund.state === 'Pending'\">\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"settleRefund.emit(refund)\">\r\n {{ 'order.settle-refund' | translate }}\r\n </button>\r\n </div>\r\n </ng-container>\r\n <div class=\"card-footer\" *ngIf=\"payment.nextStates.length\">\r\n <button\r\n class=\"btn btn-sm btn-primary\"\r\n *ngIf=\"payment.nextStates.includes('Settled')\"\r\n (click)=\"settlePayment.emit(payment)\"\r\n >\r\n {{ 'order.settle-payment' | translate }}\r\n </button>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <ng-container *ngFor=\"let nextState of nextOtherStates()\">\r\n <button\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"transitionPaymentState.emit({ payment: payment, state: nextState })\"\r\n >\r\n <ng-container *ngIf=\"nextState !== 'Cancelled'; else cancel\">\r\n <clr-icon shape=\"step-forward-2\"></clr-icon>\r\n {{\r\n 'order.transition-to-state'\r\n | translate: { state: (nextState | stateI18nToken | translate) }\r\n }}\r\n </ng-container>\r\n <ng-template #cancel>\r\n <clr-icon shape=\"error-standard\" class=\"is-error\"></clr-icon>\r\n {{ 'order.cancel-payment' | translate }}\r\n </ng-template>\r\n </button>\r\n </ng-container>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n</div>\r\n", styles: [".payment-header{display:flex;justify-content:space-between;align-items:center;line-break:anywhere}.refund-icon{margin-inline-end:6px;color:var(--color-grey-400)}.card-footer{display:flex;align-items:center;justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i4.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i4.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i4.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: i4.DropdownItemDirective, selector: "[vdrDropdownItem]" }, { kind: "component", type: i4.LabeledDataComponent, selector: "vdr-labeled-data", inputs: ["label"] }, { kind: "component", type: i4.ObjectTreeComponent, selector: "vdr-object-tree", inputs: ["value", "isArrayItem"] }, { kind: "component", type: i5.PaymentStateLabelComponent, selector: "vdr-payment-state-label", inputs: ["state"] }, { kind: "component", type: i6.RefundStateLabelComponent, selector: "vdr-refund-state-label", inputs: ["state"] }, { kind: "component", type: i7.PaymentDetailComponent, selector: "vdr-payment-detail", inputs: ["payment", "currencyCode"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }, { kind: "pipe", type: i4.StateI18nTokenPipe, name: "stateI18nToken" }, { kind: "pipe", type: i4.LocaleDatePipe, name: "localeDate" }, { kind: "pipe", type: i4.LocaleCurrencyPipe, name: "localeCurrency" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
28
  }
29
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: OrderPaymentCardComponent, decorators: [{
30
30
  type: Component,
31
- args: [{ selector: 'vdr-order-payment-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card\">\r\n <div class=\"card-header payment-header\">\r\n <div>\r\n {{ 'order.payment' | translate }}\r\n <ng-container *ngIf=\"payment.transactionId\">#{{ payment.transactionId }}</ng-container>\r\n </div>\r\n <div class=\"payment-state\">\r\n <vdr-payment-state-label [state]=\"payment.state\"></vdr-payment-state-label>\r\n </div>\r\n </div>\r\n <div class=\"card-block\">\r\n <vdr-payment-detail [payment]=\"payment\" [currencyCode]=\"currencyCode\"></vdr-payment-detail>\r\n </div>\r\n <ng-container *ngFor=\"let refund of payment.refunds\">\r\n <div class=\"card-header payment-header\">\r\n <clr-icon shape=\"redo\" class=\"refund-icon\" dir=\"down\"></clr-icon>\r\n {{ 'order.refund' | translate }} #{{ refund.id }}\r\n <div class=\"clr-flex-fill\"></div>\r\n <vdr-refund-state-label [state]=\"refund.state\"></vdr-refund-state-label>\r\n </div>\r\n <div class=\"card-block\">\r\n <vdr-labeled-data [label]=\"'common.created-at' | translate\">\r\n {{ refund.createdAt | localeDate: 'medium' }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.refund-total' | translate\">\r\n {{ refund.total | localeCurrency: currencyCode }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.transaction-id' | translate\" *ngIf=\"refund.transactionId\">\r\n {{ refund.transactionId }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.refund-reason' | translate\" *ngIf=\"refund.reason\">\r\n {{ refund.reason }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.refund-metadata' | translate\" *ngIf=\"refundHasMetadata(refund)\">\r\n <vdr-object-tree [value]=\"refund.metadata\"></vdr-object-tree>\r\n </vdr-labeled-data>\r\n </div>\r\n <div class=\"card-footer\" *ngIf=\"refund.state === 'Pending'\">\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"settleRefund.emit(refund)\">\r\n {{ 'order.settle-refund' | translate }}\r\n </button>\r\n </div>\r\n </ng-container>\r\n <div class=\"card-footer\" *ngIf=\"payment.nextStates.length\">\r\n <button\r\n class=\"btn btn-sm btn-primary\"\r\n *ngIf=\"payment.nextStates.includes('Settled')\"\r\n (click)=\"settlePayment.emit(payment)\"\r\n >\r\n {{ 'order.settle-payment' | translate }}\r\n </button>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <ng-container *ngFor=\"let nextState of nextOtherStates()\">\r\n <button\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"transitionPaymentState.emit({ payment: payment, state: nextState })\"\r\n >\r\n <ng-container *ngIf=\"nextState !== 'Cancelled'; else cancel\">\r\n <clr-icon shape=\"step-forward-2\"></clr-icon>\r\n {{\r\n 'order.transition-to-state'\r\n | translate: { state: (nextState | stateI18nToken | translate) }\r\n }}\r\n </ng-container>\r\n <ng-template #cancel>\r\n <clr-icon shape=\"error-standard\" class=\"is-error\"></clr-icon>\r\n {{ 'order.cancel-payment' | translate }}\r\n </ng-template>\r\n </button>\r\n </ng-container>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n</div>\r\n", styles: [".payment-header{display:flex;justify-content:space-between;align-items:center}.refund-icon{margin-inline-end:6px;color:var(--color-grey-400)}.card-footer{display:flex;align-items:center;justify-content:flex-end}\n"] }]
31
+ args: [{ selector: 'vdr-order-payment-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card\">\r\n <div class=\"card-header payment-header\">\r\n <div>\r\n {{ 'order.payment' | translate }}\r\n <ng-container *ngIf=\"payment.transactionId\">#{{ payment.transactionId }}</ng-container>\r\n </div>\r\n <div class=\"payment-state\">\r\n <vdr-payment-state-label [state]=\"payment.state\"></vdr-payment-state-label>\r\n </div>\r\n </div>\r\n <div class=\"card-block\">\r\n <vdr-payment-detail [payment]=\"payment\" [currencyCode]=\"currencyCode\"></vdr-payment-detail>\r\n </div>\r\n <ng-container *ngFor=\"let refund of payment.refunds\">\r\n <div class=\"card-header payment-header\">\r\n <clr-icon shape=\"redo\" class=\"refund-icon\" dir=\"down\"></clr-icon>\r\n {{ 'order.refund' | translate }} #{{ refund.id }}\r\n <div class=\"clr-flex-fill\"></div>\r\n <vdr-refund-state-label [state]=\"refund.state\"></vdr-refund-state-label>\r\n </div>\r\n <div class=\"card-block\">\r\n <vdr-labeled-data [label]=\"'common.created-at' | translate\">\r\n {{ refund.createdAt | localeDate: 'medium' }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.refund-total' | translate\">\r\n {{ refund.total | localeCurrency: currencyCode }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.transaction-id' | translate\" *ngIf=\"refund.transactionId\">\r\n {{ refund.transactionId }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.refund-reason' | translate\" *ngIf=\"refund.reason\">\r\n {{ refund.reason }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'order.refund-metadata' | translate\" *ngIf=\"refundHasMetadata(refund)\">\r\n <vdr-object-tree [value]=\"refund.metadata\"></vdr-object-tree>\r\n </vdr-labeled-data>\r\n </div>\r\n <div class=\"card-footer\" *ngIf=\"refund.state === 'Pending'\">\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"settleRefund.emit(refund)\">\r\n {{ 'order.settle-refund' | translate }}\r\n </button>\r\n </div>\r\n </ng-container>\r\n <div class=\"card-footer\" *ngIf=\"payment.nextStates.length\">\r\n <button\r\n class=\"btn btn-sm btn-primary\"\r\n *ngIf=\"payment.nextStates.includes('Settled')\"\r\n (click)=\"settlePayment.emit(payment)\"\r\n >\r\n {{ 'order.settle-payment' | translate }}\r\n </button>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\"></clr-icon>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <ng-container *ngFor=\"let nextState of nextOtherStates()\">\r\n <button\r\n type=\"button\"\r\n vdrDropdownItem\r\n (click)=\"transitionPaymentState.emit({ payment: payment, state: nextState })\"\r\n >\r\n <ng-container *ngIf=\"nextState !== 'Cancelled'; else cancel\">\r\n <clr-icon shape=\"step-forward-2\"></clr-icon>\r\n {{\r\n 'order.transition-to-state'\r\n | translate: { state: (nextState | stateI18nToken | translate) }\r\n }}\r\n </ng-container>\r\n <ng-template #cancel>\r\n <clr-icon shape=\"error-standard\" class=\"is-error\"></clr-icon>\r\n {{ 'order.cancel-payment' | translate }}\r\n </ng-template>\r\n </button>\r\n </ng-container>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n</div>\r\n", styles: [".payment-header{display:flex;justify-content:space-between;align-items:center;line-break:anywhere}.refund-icon{margin-inline-end:6px;color:var(--color-grey-400)}.card-footer{display:flex;align-items:center;justify-content:flex-end}\n"] }]
32
32
  }], propDecorators: { payment: [{
33
33
  type: Input
34
34
  }], currencyCode: [{
@@ -40,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
40
40
  }], settleRefund: [{
41
41
  type: Output
42
42
  }] } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItcGF5bWVudC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvb3JkZXIvc3JjL2NvbXBvbmVudHMvb3JkZXItcGF5bWVudC1jYXJkL29yZGVyLXBheW1lbnQtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL29yZGVyLXBheW1lbnQtY2FyZC9vcmRlci1wYXltZW50LWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQVdoRyxNQUFNLE9BQU8seUJBQXlCO0lBTnRDO1FBU2Msa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQzVDLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUF1QyxDQUFDO1FBQ2pGLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQThCLENBQUM7S0FZM0U7SUFWRyxpQkFBaUIsQ0FBQyxNQUFtQztRQUNqRCxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2YsT0FBTyxFQUFFLENBQUM7U0FDYjtRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLFNBQVMsSUFBSSxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUM7SUFDakYsQ0FBQzs4R0FoQlEseUJBQXlCO2tHQUF6Qix5QkFBeUIseVBDWHRDLHloSUErRUE7OzJGRHBFYSx5QkFBeUI7a0JBTnJDLFNBQVM7K0JBQ0ksd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEN1cnJlbmN5Q29kZSwgT3JkZXJEZXRhaWxGcmFnbWVudCB9IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5cclxudHlwZSBQYXltZW50ID0gTm9uTnVsbGFibGU8T3JkZXJEZXRhaWxGcmFnbWVudFsncGF5bWVudHMnXT5bbnVtYmVyXTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItb3JkZXItcGF5bWVudC1jYXJkJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9vcmRlci1wYXltZW50LWNhcmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vb3JkZXItcGF5bWVudC1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIE9yZGVyUGF5bWVudENhcmRDb21wb25lbnQge1xyXG4gICAgQElucHV0KCkgcGF5bWVudDogUGF5bWVudDtcclxuICAgIEBJbnB1dCgpIGN1cnJlbmN5Q29kZTogQ3VycmVuY3lDb2RlO1xyXG4gICAgQE91dHB1dCgpIHNldHRsZVBheW1lbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFBheW1lbnQ+KCk7XHJcbiAgICBAT3V0cHV0KCkgdHJhbnNpdGlvblBheW1lbnRTdGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBwYXltZW50OiBQYXltZW50OyBzdGF0ZTogc3RyaW5nIH0+KCk7XHJcbiAgICBAT3V0cHV0KCkgc2V0dGxlUmVmdW5kID0gbmV3IEV2ZW50RW1pdHRlcjxQYXltZW50WydyZWZ1bmRzJ11bbnVtYmVyXT4oKTtcclxuXHJcbiAgICByZWZ1bmRIYXNNZXRhZGF0YShyZWZ1bmQ/OiBQYXltZW50WydyZWZ1bmRzJ11bbnVtYmVyXSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhIXJlZnVuZCAmJiBPYmplY3Qua2V5cyhyZWZ1bmQubWV0YWRhdGEpLmxlbmd0aCA+IDA7XHJcbiAgICB9XHJcblxyXG4gICAgbmV4dE90aGVyU3RhdGVzKCk6IHN0cmluZ1tdIHtcclxuICAgICAgICBpZiAoIXRoaXMucGF5bWVudCkge1xyXG4gICAgICAgICAgICByZXR1cm4gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLnBheW1lbnQubmV4dFN0YXRlcy5maWx0ZXIocyA9PiBzICE9PSAnU2V0dGxlZCcgJiYgcyAhPT0gJ0Vycm9yJyk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBwYXltZW50LWhlYWRlclwiPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIHt7ICdvcmRlci5wYXltZW50JyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGF5bWVudC50cmFuc2FjdGlvbklkXCI+I3t7IHBheW1lbnQudHJhbnNhY3Rpb25JZCB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYXltZW50LXN0YXRlXCI+XHJcbiAgICAgICAgICAgIDx2ZHItcGF5bWVudC1zdGF0ZS1sYWJlbCBbc3RhdGVdPVwicGF5bWVudC5zdGF0ZVwiPjwvdmRyLXBheW1lbnQtc3RhdGUtbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrXCI+XHJcbiAgICAgICAgPHZkci1wYXltZW50LWRldGFpbCBbcGF5bWVudF09XCJwYXltZW50XCIgW2N1cnJlbmN5Q29kZV09XCJjdXJyZW5jeUNvZGVcIj48L3Zkci1wYXltZW50LWRldGFpbD5cclxuICAgIDwvZGl2PlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcmVmdW5kIG9mIHBheW1lbnQucmVmdW5kc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBwYXltZW50LWhlYWRlclwiPlxyXG4gICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJyZWRvXCIgY2xhc3M9XCJyZWZ1bmQtaWNvblwiIGRpcj1cImRvd25cIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICB7eyAnb3JkZXIucmVmdW5kJyB8IHRyYW5zbGF0ZSB9fSAje3sgcmVmdW5kLmlkIH19XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbHItZmxleC1maWxsXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDx2ZHItcmVmdW5kLXN0YXRlLWxhYmVsIFtzdGF0ZV09XCJyZWZ1bmQuc3RhdGVcIj48L3Zkci1yZWZ1bmQtc3RhdGUtbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2tcIj5cclxuICAgICAgICAgICAgPHZkci1sYWJlbGVkLWRhdGEgW2xhYmVsXT1cIidjb21tb24uY3JlYXRlZC1hdCcgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgIHt7IHJlZnVuZC5jcmVhdGVkQXQgfCBsb2NhbGVEYXRlOiAnbWVkaXVtJyB9fVxyXG4gICAgICAgICAgICA8L3Zkci1sYWJlbGVkLWRhdGE+XHJcbiAgICAgICAgICAgIDx2ZHItbGFiZWxlZC1kYXRhIFtsYWJlbF09XCInb3JkZXIucmVmdW5kLXRvdGFsJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgcmVmdW5kLnRvdGFsIHwgbG9jYWxlQ3VycmVuY3k6IGN1cnJlbmN5Q29kZSB9fVxyXG4gICAgICAgICAgICA8L3Zkci1sYWJlbGVkLWRhdGE+XHJcbiAgICAgICAgICAgIDx2ZHItbGFiZWxlZC1kYXRhIFtsYWJlbF09XCInb3JkZXIudHJhbnNhY3Rpb24taWQnIHwgdHJhbnNsYXRlXCIgKm5nSWY9XCJyZWZ1bmQudHJhbnNhY3Rpb25JZFwiPlxyXG4gICAgICAgICAgICAgICAge3sgcmVmdW5kLnRyYW5zYWN0aW9uSWQgfX1cclxuICAgICAgICAgICAgPC92ZHItbGFiZWxlZC1kYXRhPlxyXG4gICAgICAgICAgICA8dmRyLWxhYmVsZWQtZGF0YSBbbGFiZWxdPVwiJ29yZGVyLnJlZnVuZC1yZWFzb24nIHwgdHJhbnNsYXRlXCIgKm5nSWY9XCJyZWZ1bmQucmVhc29uXCI+XHJcbiAgICAgICAgICAgICAgICB7eyByZWZ1bmQucmVhc29uIH19XHJcbiAgICAgICAgICAgIDwvdmRyLWxhYmVsZWQtZGF0YT5cclxuICAgICAgICAgICAgPHZkci1sYWJlbGVkLWRhdGEgW2xhYmVsXT1cIidvcmRlci5yZWZ1bmQtbWV0YWRhdGEnIHwgdHJhbnNsYXRlXCIgKm5nSWY9XCJyZWZ1bmRIYXNNZXRhZGF0YShyZWZ1bmQpXCI+XHJcbiAgICAgICAgICAgICAgICA8dmRyLW9iamVjdC10cmVlIFt2YWx1ZV09XCJyZWZ1bmQubWV0YWRhdGFcIj48L3Zkci1vYmplY3QtdHJlZT5cclxuICAgICAgICAgICAgPC92ZHItbGFiZWxlZC1kYXRhPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlclwiICpuZ0lmPVwicmVmdW5kLnN0YXRlID09PSAnUGVuZGluZydcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc20gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwic2V0dGxlUmVmdW5kLmVtaXQocmVmdW5kKVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ29yZGVyLnNldHRsZS1yZWZ1bmQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXJcIiAqbmdJZj1cInBheW1lbnQubmV4dFN0YXRlcy5sZW5ndGhcIj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeVwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwicGF5bWVudC5uZXh0U3RhdGVzLmluY2x1ZGVzKCdTZXR0bGVkJylcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0dGxlUGF5bWVudC5lbWl0KHBheW1lbnQpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7ICdvcmRlci5zZXR0bGUtcGF5bWVudCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8dmRyLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiaWNvbi1idXR0b25cIiB2ZHJEcm9wZG93blRyaWdnZXI+XHJcbiAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJlbGxpcHNpcy12ZXJ0aWNhbFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8dmRyLWRyb3Bkb3duLW1lbnUgdmRyUG9zaXRpb249XCJib3R0b20tcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG5leHRTdGF0ZSBvZiBuZXh0T3RoZXJTdGF0ZXMoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZkckRyb3Bkb3duSXRlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidHJhbnNpdGlvblBheW1lbnRTdGF0ZS5lbWl0KHsgcGF5bWVudDogcGF5bWVudCwgc3RhdGU6IG5leHRTdGF0ZSB9KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibmV4dFN0YXRlICE9PSAnQ2FuY2VsbGVkJzsgZWxzZSBjYW5jZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInN0ZXAtZm9yd2FyZC0yXCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29yZGVyLnRyYW5zaXRpb24tdG8tc3RhdGUnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdHJhbnNsYXRlOiB7IHN0YXRlOiAobmV4dFN0YXRlIHwgc3RhdGVJMThuVG9rZW4gfCB0cmFuc2xhdGUpIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NhbmNlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImVycm9yLXN0YW5kYXJkXCIgY2xhc3M9XCJpcy1lcnJvclwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnb3JkZXIuY2FuY2VsLXBheW1lbnQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC92ZHItZHJvcGRvd24tbWVudT5cclxuICAgICAgICA8L3Zkci1kcm9wZG93bj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItcGF5bWVudC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvb3JkZXIvc3JjL2NvbXBvbmVudHMvb3JkZXItcGF5bWVudC1jYXJkL29yZGVyLXBheW1lbnQtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL29yZGVyLXBheW1lbnQtY2FyZC9vcmRlci1wYXltZW50LWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQVdoRyxNQUFNLE9BQU8seUJBQXlCO0lBTnRDO1FBU2Msa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQzVDLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUF1QyxDQUFDO1FBQ2pGLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQThCLENBQUM7S0FZM0U7SUFWRyxpQkFBaUIsQ0FBQyxNQUFtQztRQUNqRCxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2YsT0FBTyxFQUFFLENBQUM7U0FDYjtRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLFNBQVMsSUFBSSxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUM7SUFDakYsQ0FBQzs4R0FoQlEseUJBQXlCO2tHQUF6Qix5QkFBeUIseVBDWHRDLHloSUErRUE7OzJGRHBFYSx5QkFBeUI7a0JBTnJDLFNBQVM7K0JBQ0ksd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDdXJyZW5jeUNvZGUsIE9yZGVyRGV0YWlsRnJhZ21lbnQgfSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcblxudHlwZSBQYXltZW50ID0gTm9uTnVsbGFibGU8T3JkZXJEZXRhaWxGcmFnbWVudFsncGF5bWVudHMnXT5bbnVtYmVyXTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd2ZHItb3JkZXItcGF5bWVudC1jYXJkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vb3JkZXItcGF5bWVudC1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9vcmRlci1wYXltZW50LWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgT3JkZXJQYXltZW50Q2FyZENvbXBvbmVudCB7XG4gICAgQElucHV0KCkgcGF5bWVudDogUGF5bWVudDtcbiAgICBASW5wdXQoKSBjdXJyZW5jeUNvZGU6IEN1cnJlbmN5Q29kZTtcbiAgICBAT3V0cHV0KCkgc2V0dGxlUGF5bWVudCA9IG5ldyBFdmVudEVtaXR0ZXI8UGF5bWVudD4oKTtcbiAgICBAT3V0cHV0KCkgdHJhbnNpdGlvblBheW1lbnRTdGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBwYXltZW50OiBQYXltZW50OyBzdGF0ZTogc3RyaW5nIH0+KCk7XG4gICAgQE91dHB1dCgpIHNldHRsZVJlZnVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8UGF5bWVudFsncmVmdW5kcyddW251bWJlcl0+KCk7XG5cbiAgICByZWZ1bmRIYXNNZXRhZGF0YShyZWZ1bmQ/OiBQYXltZW50WydyZWZ1bmRzJ11bbnVtYmVyXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISFyZWZ1bmQgJiYgT2JqZWN0LmtleXMocmVmdW5kLm1ldGFkYXRhKS5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIG5leHRPdGhlclN0YXRlcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIGlmICghdGhpcy5wYXltZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucGF5bWVudC5uZXh0U3RhdGVzLmZpbHRlcihzID0+IHMgIT09ICdTZXR0bGVkJyAmJiBzICE9PSAnRXJyb3InKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIHBheW1lbnQtaGVhZGVyXCI+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAge3sgJ29yZGVyLnBheW1lbnQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYXltZW50LnRyYW5zYWN0aW9uSWRcIj4je3sgcGF5bWVudC50cmFuc2FjdGlvbklkIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBheW1lbnQtc3RhdGVcIj5cclxuICAgICAgICAgICAgPHZkci1wYXltZW50LXN0YXRlLWxhYmVsIFtzdGF0ZV09XCJwYXltZW50LnN0YXRlXCI+PC92ZHItcGF5bWVudC1zdGF0ZS1sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2tcIj5cclxuICAgICAgICA8dmRyLXBheW1lbnQtZGV0YWlsIFtwYXltZW50XT1cInBheW1lbnRcIiBbY3VycmVuY3lDb2RlXT1cImN1cnJlbmN5Q29kZVwiPjwvdmRyLXBheW1lbnQtZGV0YWlsPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByZWZ1bmQgb2YgcGF5bWVudC5yZWZ1bmRzXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIHBheW1lbnQtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInJlZG9cIiBjbGFzcz1cInJlZnVuZC1pY29uXCIgZGlyPVwiZG93blwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgIHt7ICdvcmRlci5yZWZ1bmQnIHwgdHJhbnNsYXRlIH19ICN7eyByZWZ1bmQuaWQgfX1cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsci1mbGV4LWZpbGxcIj48L2Rpdj5cclxuICAgICAgICAgICAgPHZkci1yZWZ1bmQtc3RhdGUtbGFiZWwgW3N0YXRlXT1cInJlZnVuZC5zdGF0ZVwiPjwvdmRyLXJlZnVuZC1zdGF0ZS1sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9ja1wiPlxyXG4gICAgICAgICAgICA8dmRyLWxhYmVsZWQtZGF0YSBbbGFiZWxdPVwiJ2NvbW1vbi5jcmVhdGVkLWF0JyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgcmVmdW5kLmNyZWF0ZWRBdCB8IGxvY2FsZURhdGU6ICdtZWRpdW0nIH19XHJcbiAgICAgICAgICAgIDwvdmRyLWxhYmVsZWQtZGF0YT5cclxuICAgICAgICAgICAgPHZkci1sYWJlbGVkLWRhdGEgW2xhYmVsXT1cIidvcmRlci5yZWZ1bmQtdG90YWwnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyByZWZ1bmQudG90YWwgfCBsb2NhbGVDdXJyZW5jeTogY3VycmVuY3lDb2RlIH19XHJcbiAgICAgICAgICAgIDwvdmRyLWxhYmVsZWQtZGF0YT5cclxuICAgICAgICAgICAgPHZkci1sYWJlbGVkLWRhdGEgW2xhYmVsXT1cIidvcmRlci50cmFuc2FjdGlvbi1pZCcgfCB0cmFuc2xhdGVcIiAqbmdJZj1cInJlZnVuZC50cmFuc2FjdGlvbklkXCI+XHJcbiAgICAgICAgICAgICAgICB7eyByZWZ1bmQudHJhbnNhY3Rpb25JZCB9fVxyXG4gICAgICAgICAgICA8L3Zkci1sYWJlbGVkLWRhdGE+XHJcbiAgICAgICAgICAgIDx2ZHItbGFiZWxlZC1kYXRhIFtsYWJlbF09XCInb3JkZXIucmVmdW5kLXJlYXNvbicgfCB0cmFuc2xhdGVcIiAqbmdJZj1cInJlZnVuZC5yZWFzb25cIj5cclxuICAgICAgICAgICAgICAgIHt7IHJlZnVuZC5yZWFzb24gfX1cclxuICAgICAgICAgICAgPC92ZHItbGFiZWxlZC1kYXRhPlxyXG4gICAgICAgICAgICA8dmRyLWxhYmVsZWQtZGF0YSBbbGFiZWxdPVwiJ29yZGVyLnJlZnVuZC1tZXRhZGF0YScgfCB0cmFuc2xhdGVcIiAqbmdJZj1cInJlZnVuZEhhc01ldGFkYXRhKHJlZnVuZClcIj5cclxuICAgICAgICAgICAgICAgIDx2ZHItb2JqZWN0LXRyZWUgW3ZhbHVlXT1cInJlZnVuZC5tZXRhZGF0YVwiPjwvdmRyLW9iamVjdC10cmVlPlxyXG4gICAgICAgICAgICA8L3Zkci1sYWJlbGVkLWRhdGE+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyXCIgKm5nSWY9XCJyZWZ1bmQuc3RhdGUgPT09ICdQZW5kaW5nJ1wiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeVwiIChjbGljayk9XCJzZXR0bGVSZWZ1bmQuZW1pdChyZWZ1bmQpXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnb3JkZXIuc2V0dGxlLXJlZnVuZCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlclwiICpuZ0lmPVwicGF5bWVudC5uZXh0U3RhdGVzLmxlbmd0aFwiPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1wcmltYXJ5XCJcclxuICAgICAgICAgICAgKm5nSWY9XCJwYXltZW50Lm5leHRTdGF0ZXMuaW5jbHVkZXMoJ1NldHRsZWQnKVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXR0bGVQYXltZW50LmVtaXQocGF5bWVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAge3sgJ29yZGVyLnNldHRsZS1wYXltZW50JyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDx2ZHItZHJvcGRvd24+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJpY29uLWJ1dHRvblwiIHZkckRyb3Bkb3duVHJpZ2dlcj5cclxuICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImVsbGlwc2lzLXZlcnRpY2FsXCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDx2ZHItZHJvcGRvd24tbWVudSB2ZHJQb3NpdGlvbj1cImJvdHRvbS1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbmV4dFN0YXRlIG9mIG5leHRPdGhlclN0YXRlcygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmRyRHJvcGRvd25JdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0cmFuc2l0aW9uUGF5bWVudFN0YXRlLmVtaXQoeyBwYXltZW50OiBwYXltZW50LCBzdGF0ZTogbmV4dFN0YXRlIH0pXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJuZXh0U3RhdGUgIT09ICdDYW5jZWxsZWQnOyBlbHNlIGNhbmNlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwic3RlcC1mb3J3YXJkLTJcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb3JkZXIudHJhbnNpdGlvbi10by1zdGF0ZSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0cmFuc2xhdGU6IHsgc3RhdGU6IChuZXh0U3RhdGUgfCBzdGF0ZUkxOG5Ub2tlbiB8IHRyYW5zbGF0ZSkgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY2FuY2VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwiZXJyb3Itc3RhbmRhcmRcIiBjbGFzcz1cImlzLWVycm9yXCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci5jYW5jZWwtcGF5bWVudCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L3Zkci1kcm9wZG93bi1tZW51PlxyXG4gICAgICAgIDwvdmRyLWRyb3Bkb3duPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -46,7 +46,7 @@ export class RefundOrderDialogComponent {
46
46
  .reduce((all, refund) => [...all, ...refund.lines], [])
47
47
  .filter(refundLine => refundLine.orderLineId === line.id)
48
48
  .reduce((sum, refundLine) => sum + refundLine.quantity, 0) ?? 0;
49
- return refundedCount < line.quantity;
49
+ return refundedCount < line.orderPlacedQuantity;
50
50
  }
51
51
  ngOnInit() {
52
52
  this.lineQuantities = this.order.lines.reduce((result, line) => ({
@@ -128,4 +128,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
128
128
  type: Component,
129
129
  args: [{ selector: 'vdr-refund-order-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>{{ 'order.refund-and-cancel-order' | translate }}</ng-template>\r\n\r\n<div class=\"refund-wrapper\">\r\n <div class=\"order-table\">\r\n <table class=\"table\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th>{{ 'order.product-name' | translate }}</th>\r\n <th>{{ 'order.product-sku' | translate }}</th>\r\n <th>{{ 'order.quantity' | translate }}</th>\r\n <th>{{ 'order.unit-price' | translate }}</th>\r\n <th>{{ 'order.prorated-unit-price' | translate }}</th>\r\n <th>{{ 'order.quantity' | translate }}</th>\r\n <th>{{ 'order.refund' | translate }}</th>\r\n <th>{{ 'order.cancel' | translate }}</th>\r\n </tr>\r\n </thead>\r\n <tr *ngFor=\"let line of order.lines\" class=\"order-line\">\r\n <td class=\"align-middle thumb\">\r\n <img [src]=\"line.featuredAsset | assetPreview: 'tiny'\" />\r\n </td>\r\n <td class=\"align-middle name\">{{ line.productVariant.name }}</td>\r\n <td class=\"align-middle sku\">{{ line.productVariant.sku }}</td>\r\n <td class=\"align-middle quantity\">\r\n {{ line.quantity }}\r\n <vdr-line-refunds [line]=\"line\" [payments]=\"order.payments\"></vdr-line-refunds>\r\n </td>\r\n <td class=\"align-middle quantity\">\r\n {{ line.unitPriceWithTax | localeCurrency: order.currencyCode }}\r\n </td>\r\n <td class=\"align-middle quantity\">\r\n <div class=\"prorated-wrapper\">\r\n {{ line.proratedUnitPriceWithTax | localeCurrency: order.currencyCode }}\r\n <ng-container *ngIf=\"line.discounts as discounts\">\r\n <vdr-dropdown *ngIf=\"discounts.length\">\r\n <div class=\"promotions-label\" vdrDropdownTrigger>\r\n <button class=\"icon-button\"><clr-icon shape=\"info\"></clr-icon></button>\r\n </div>\r\n <vdr-dropdown-menu>\r\n <div class=\"line-promotion\" *ngFor=\"let discount of discounts\">\r\n {{ discount.description }}\r\n <div class=\"promotion-amount\">\r\n {{\r\n discount.amount / 100 / line.quantity\r\n | number: '1.0-2'\r\n | currency: order.currencyCode\r\n }}\r\n </div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </ng-container>\r\n </div>\r\n </td>\r\n <td class=\"align-middle quantity-col\">\r\n <input\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n [(ngModel)]=\"lineQuantities[line.id].quantity\"\r\n type=\"number\"\r\n [max]=\"line.quantity\"\r\n min=\"0\"\r\n (input)=\"handleZeroQuantity(lineQuantities[line.id])\"\r\n />\r\n </td>\r\n <td class=\"align-middle\">\r\n <div class=\"cancel-checkbox-wrapper\">\r\n <input\r\n type=\"checkbox\"\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n clrCheckbox\r\n [disabled]=\"0 === lineQuantities[line.id].quantity\"\r\n [(ngModel)]=\"lineQuantities[line.id].refund\"\r\n />\r\n </div>\r\n </td>\r\n <td class=\"align-middle\">\r\n <div class=\"cancel-checkbox-wrapper\">\r\n <input\r\n type=\"checkbox\"\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n clrCheckbox\r\n [disabled]=\"0 === lineQuantities[line.id].quantity\"\r\n [(ngModel)]=\"lineQuantities[line.id].cancel\"\r\n />\r\n </div>\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n <div class=\"refund-details mt-4\" [class.faded]=\"!isRefunding() && !isCancelling()\">\r\n <div>\r\n <label class=\"clr-control-label\">{{ 'order.refund-cancellation-reason' | translate }}</label>\r\n <ng-select\r\n [disabled]=\"!isRefunding() && !isCancelling()\"\r\n [items]=\"reasons\"\r\n bindLabel=\"name\"\r\n autofocus\r\n [placeholder]=\"'order.refund-cancellation-reason-required' | translate\"\r\n bindValue=\"id\"\r\n [addTag]=\"true\"\r\n [(ngModel)]=\"reason\"\r\n ></ng-select>\r\n </div>\r\n\r\n <div>\r\n <clr-select-container>\r\n <label>{{ 'order.payment-to-refund' | translate }}</label>\r\n <select clrSelect name=\"options\" [(ngModel)]=\"selectedPayment\" [disabled]=\"!isRefunding()\">\r\n <option\r\n *ngFor=\"let payment of settledPayments\"\r\n [ngValue]=\"payment\"\r\n [disabled]=\"payment.state !== 'Settled'\"\r\n >\r\n #{{ payment.id }} {{ payment.method }}:\r\n {{ payment.amount | localeCurrency: order.currencyCode }}\r\n </option>\r\n </select>\r\n </clr-select-container>\r\n\r\n <clr-checkbox-wrapper>\r\n <input type=\"checkbox\" clrCheckbox [(ngModel)]=\"refundShipping\" [disabled]=\"!isRefunding()\" />\r\n <label>\r\n {{ 'order.refund-shipping' | translate }} ({{\r\n order.shippingWithTax | localeCurrency: order.currencyCode\r\n }})\r\n </label>\r\n </clr-checkbox-wrapper>\r\n <clr-input-container>\r\n <label>{{ 'order.refund-adjustment' | translate }}</label>\r\n <vdr-currency-input\r\n clrInput\r\n [disabled]=\"!isRefunding()\"\r\n [currencyCode]=\"order.currencyCode\"\r\n [(ngModel)]=\"adjustment\"\r\n ></vdr-currency-input>\r\n </clr-input-container>\r\n <div class=\"totals\" [class.disabled]=\"!isRefunding()\">\r\n <div class=\"order-total\">\r\n {{ 'order.payment-amount' | translate }}:\r\n {{ selectedPayment.amount | localeCurrency: order.currencyCode }}\r\n </div>\r\n <div class=\"refund-total\">\r\n {{ 'order.refund-total' | translate }}:\r\n {{ refundTotal | localeCurrency: order.currencyCode }}\r\n </div>\r\n <div class=\"refund-total-error\" *ngIf=\"refundTotal < 0 || settledPaymentsTotal < refundTotal\">\r\n {{\r\n 'order.refund-total-error'\r\n | translate\r\n : {\r\n min: 0 | currency: order.currencyCode,\r\n max: settledPaymentsTotal | localeCurrency: order.currencyCode\r\n }\r\n }}\r\n </div>\r\n <div class=\"refund-total-warning\" *ngIf=\"selectedPayment.amount < refundTotal\">\r\n {{ 'order.refund-total-warning' | translate }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"select()\" [disabled]=\"!canSubmit()\" class=\"btn btn-primary\">\r\n <ng-container *ngIf=\"isRefunding(); else cancelling\">\r\n {{\r\n 'order.refund-with-amount'\r\n | translate: { amount: refundTotal | localeCurrency: order.currencyCode }\r\n }}\r\n </ng-container>\r\n <ng-template #cancelling>\r\n {{ 'order.cancel-selected-items' | translate }}\r\n </ng-template>\r\n </button>\r\n</ng-template>\r\n", styles: [":host{height:100%;display:flex;min-height:64vh}.refund-wrapper{flex:1;flex-direction:column}.refund-wrapper .order-table{flex:1;overflow-y:auto}.refund-wrapper .order-table table{margin-top:0}.refund-wrapper tr.ignore{color:var(--color-grey-300)}.quantity-col{background-color:var(--color-warning-100)}.cancel-checkbox-wrapper{display:flex;align-items:center;justify-content:center}clr-checkbox-wrapper{margin-top:12px;margin-bottom:12px;display:block}.refund-details{display:flex;justify-content:space-between}.refund-details.faded{opacity:.5}.totals{margin-top:48px}.totals .refund-total{font-size:18px}.totals .refund-total-error{color:var(--color-error-500)}.totals .refund-total-warning{color:var(--color-warning-600);max-width:250px}.totals.disabled{color:var(--color-grey-300)}.prorated-wrapper{display:flex;justify-content:center}.line-promotion{display:flex;justify-content:space-between;font-size:12px;padding:3px 6px}.line-promotion .promotion-amount{margin-inline-start:12px}\n"] }]
130
130
  }], ctorParameters: function () { return [{ type: i1.I18nService }]; } });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmdW5kLW9yZGVyLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL3JlZnVuZC1vcmRlci1kaWFsb2cvcmVmdW5kLW9yZGVyLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL3JlZnVuZC1vcmRlci1kaWFsb2cvcmVmdW5kLW9yZGVyLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUdILFlBQVksR0FNZixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7O0FBVzNELE1BQU0sT0FBTywwQkFBMEI7SUFnQm5DLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBUjVDLG1CQUFjLEdBQXdDLEVBQUUsQ0FBQztRQUN6RCxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsWUFBTyxHQUFHLFlBQVksRUFBRSxDQUFDLG1CQUFtQixJQUFJO1lBQzVDLENBQUMsQ0FBQyxzQ0FBc0MsQ0FBQztZQUN6QyxDQUFDLENBQUMsbUNBQW1DLENBQUM7U0FDekMsQ0FBQztRQUdFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7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QUNOO0lBQ0wsQ0FBQztJQUVELE1BQU07UUFDRixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFFBQTBDO1FBQ2hFLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO2FBQ3JDLE1BQU0sQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDcEUsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDM0IsV0FBVztZQUNYLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUMxQixDQUFDLENBQUMsQ0FBQztJQUNaLENBQUM7OEdBL0lRLDBCQUEwQjtrR0FBMUIsMEJBQTBCLCtEQ3ZCdkMsc2lTQWtMQTs7MkZEM0phLDBCQUEwQjtrQkFOdEMsU0FBUzsrQkFDSSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xyXG5pbXBvcnQge1xyXG4gICAgQ2FuY2VsT3JkZXJJbnB1dCxcclxuICAgIERpYWxvZyxcclxuICAgIGdldEFwcENvbmZpZyxcclxuICAgIEkxOG5TZXJ2aWNlLFxyXG4gICAgT3JkZXJEZXRhaWxGcmFnbWVudCxcclxuICAgIE9yZGVyTGluZUlucHV0LFxyXG4gICAgUGF5bWVudFdpdGhSZWZ1bmRzRnJhZ21lbnQsXHJcbiAgICBSZWZ1bmRPcmRlcklucHV0LFxyXG59IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyBzdW1tYXRlIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xyXG5cclxudHlwZSBTZWxlY3Rpb25MaW5lID0geyBxdWFudGl0eTogbnVtYmVyOyByZWZ1bmQ6IGJvb2xlYW47IGNhbmNlbDogYm9vbGVhbiB9O1xyXG50eXBlIFBheW1lbnQgPSBOb25OdWxsYWJsZTxPcmRlckRldGFpbEZyYWdtZW50WydwYXltZW50cyddPltudW1iZXJdO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1yZWZ1bmQtb3JkZXItZGlhbG9nJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZWZ1bmQtb3JkZXItZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3JlZnVuZC1vcmRlci1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVmdW5kT3JkZXJEaWFsb2dDb21wb25lbnRcclxuICAgIGltcGxlbWVudHMgT25Jbml0LCBEaWFsb2c8eyBjYW5jZWw6IENhbmNlbE9yZGVySW5wdXQ7IHJlZnVuZDogUmVmdW5kT3JkZXJJbnB1dCB9PlxyXG57XHJcbiAgICBvcmRlcjogT3JkZXJEZXRhaWxGcmFnbWVudDtcclxuICAgIHJlc29sdmVXaXRoOiAocmVzdWx0PzogeyBjYW5jZWw6IENhbmNlbE9yZGVySW5wdXQ7IHJlZnVuZDogUmVmdW5kT3JkZXJJbnB1dCB9KSA9PiB2b2lkO1xyXG4gICAgcmVhc29uOiBzdHJpbmc7XHJcbiAgICBzZXR0bGVkUGF5bWVudHM6IFBheW1lbnRbXTtcclxuICAgIHNlbGVjdGVkUGF5bWVudDogUGF5bWVudDtcclxuICAgIGxpbmVRdWFudGl0aWVzOiB7IFtsaW5lSWQ6IHN0cmluZ106IFNlbGVjdGlvbkxpbmUgfSA9IHt9O1xyXG4gICAgcmVmdW5kU2hpcHBpbmcgPSBmYWxzZTtcclxuICAgIGFkanVzdG1lbnQgPSAwO1xyXG4gICAgcmVhc29ucyA9IGdldEFwcENvbmZpZygpLmNhbmNlbGxhdGlvblJlYXNvbnMgPz8gW1xyXG4gICAgICAgIF8oJ29yZGVyLnJlZnVuZC1yZWFzb24tY3VzdG9tZXItcmVxdWVzdCcpLFxyXG4gICAgICAgIF8oJ29yZGVyLnJlZnVuZC1yZWFzb24tbm90LWF2YWlsYWJsZScpLFxyXG4gICAgXTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSkge1xyXG4gICAgICAgIHRoaXMucmVhc29ucyA9IHRoaXMucmVhc29ucy5tYXAociA9PiB0aGlzLmkxOG5TZXJ2aWNlLnRyYW5zbGF0ZShyKSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHJlZnVuZFRvdGFsKCk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgaXRlbVRvdGFsID0gdGhpcy5vcmRlci5saW5lcy5yZWR1Y2UoKHRvdGFsLCBsaW5lKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxpbmVSZWYgPSB0aGlzLmxpbmVRdWFudGl0aWVzW2xpbmUuaWRdO1xyXG4gICAgICAgICAgICBjb25zdCByZWZ1bmRDb3VudCA9IChsaW5lUmVmLnJlZnVuZCAmJiBsaW5lUmVmLnF1YW50aXR5KSB8fCAwO1xyXG4gICAgICAgICAgICByZXR1cm4gdG90YWwgKyBsaW5lLnByb3JhdGVkVW5pdFByaWNlV2l0aFRheCAqIHJlZnVuZENvdW50O1xyXG4gICAgICAgIH0sIDApO1xyXG4gICAgICAgIHJldHVybiBpdGVtVG90YWwgKyAodGhpcy5yZWZ1bmRTaGlwcGluZyA/IHRoaXMub3JkZXIuc2hpcHBpbmdXaXRoVGF4IDogMCkgKyB0aGlzLmFkanVzdG1lbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHNldHRsZWRQYXltZW50c1RvdGFsKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0dGxlZFBheW1lbnRzXHJcbiAgICAgICAgICAgIC5tYXAocGF5bWVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwYXltZW50VG90YWwgPSBwYXltZW50LmFtb3VudDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGFscmVhZHlSZWZ1bmRlZFRvdGFsID0gc3VtbWF0ZShcclxuICAgICAgICAgICAgICAgICAgICBwYXltZW50LnJlZnVuZHMuZmlsdGVyKHIgPT4gci5zdGF0ZSAhPT0gJ0ZhaWxlZCcpIGFzIEFycmF5PFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBSZXF1aXJlZDxQYXltZW50WydyZWZ1bmRzJ11bbnVtYmVyXT5cclxuICAgICAgICAgICAgICAgICAgICA+LFxyXG4gICAgICAgICAgICAgICAgICAgICd0b3RhbCcsXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHBheW1lbnRUb3RhbCAtIGFscmVhZHlSZWZ1bmRlZFRvdGFsO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAucmVkdWNlKChzdW0sIGFtb3VudCkgPT4gc3VtICsgYW1vdW50LCAwKTtcclxuICAgIH1cclxuXHJcbiAgICBsaW5lQ2FuQmVSZWZ1bmRlZE9yQ2FuY2VsbGVkKGxpbmU6IE9yZGVyRGV0YWlsRnJhZ21lbnRbJ2xpbmVzJ11bbnVtYmVyXSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHJlZnVuZGVkQ291bnQgPVxyXG4gICAgICAgICAgICB0aGlzLm9yZGVyLnBheW1lbnRzXHJcbiAgICAgICAgICAgICAgICA/LnJlZHVjZShcclxuICAgICAgICAgICAgICAgICAgICAoYWxsLCBwYXltZW50KSA9PiBbLi4uYWxsLCAuLi5wYXltZW50LnJlZnVuZHNdLFxyXG4gICAgICAgICAgICAgICAgICAgIFtdIGFzIFBheW1lbnRXaXRoUmVmdW5kc0ZyYWdtZW50WydyZWZ1bmRzJ10sXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAuZmlsdGVyKHJlZnVuZCA9PiByZWZ1bmQuc3RhdGUgIT09ICdGYWlsZWQnKVxyXG4gICAgICAgICAgICAgICAgLnJlZHVjZShcclxuICAgICAgICAgICAgICAgICAgICAoYWxsLCByZWZ1bmQpID0+IFsuLi5hbGwsIC4uLnJlZnVuZC5saW5lc10sXHJcbiAgICAgICAgICAgICAgICAgICAgW10gYXMgQXJyYXk8eyBvcmRlckxpbmVJZDogc3RyaW5nOyBxdWFudGl0eTogbnVtYmVyIH0+LFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgLmZpbHRlcihyZWZ1bmRMaW5lID0+IHJlZnVuZExpbmUub3JkZXJMaW5lSWQgPT09IGxpbmUuaWQpXHJcbiAgICAgICAgICAgICAgICAucmVkdWNlKChzdW0sIHJlZnVuZExpbmUpID0+IHN1bSArIHJlZnVuZExpbmUucXVhbnRpdHksIDApID8/IDA7XHJcblxyXG4gICAgICAgIHJldHVybiByZWZ1bmRlZENvdW50IDwgbGluZS5xdWFudGl0eTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmxpbmVRdWFudGl0aWVzID0gdGhpcy5vcmRlci5saW5lcy5yZWR1Y2UoKHJlc3VsdCwgbGluZSkgPT4gKHtcclxuICAgICAgICAgICAgICAgIC4uLnJlc3VsdCxcclxuICAgICAgICAgICAgICAgIFtsaW5lLmlkXToge1xyXG4gICAgICAgICAgICAgICAgICAgIHF1YW50aXR5OiAwLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlZnVuZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgY2FuY2VsOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pLCB7fSk7XHJcbiAgICAgICAgdGhpcy5zZXR0bGVkUGF5bWVudHMgPSAodGhpcy5vcmRlci5wYXltZW50cyB8fCBbXSkuZmlsdGVyKHAgPT4gcC5zdGF0ZSA9PT0gJ1NldHRsZWQnKTtcclxuICAgICAgICBpZiAodGhpcy5zZXR0bGVkUGF5bWVudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQYXltZW50ID0gdGhpcy5zZXR0bGVkUGF5bWVudHNbMF07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZVplcm9RdWFudGl0eShsaW5lPzogU2VsZWN0aW9uTGluZSkge1xyXG4gICAgICAgIGlmIChsaW5lPy5xdWFudGl0eSA9PT0gMCkge1xyXG4gICAgICAgICAgICBsaW5lLmNhbmNlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBsaW5lLnJlZnVuZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpc1JlZnVuZGluZygpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBPYmplY3QudmFsdWVzKHRoaXMubGluZVF1YW50aXRpZXMpLnJlZHVjZSgoaXNSZWZ1bmRpbmcsIGxpbmUpID0+IGlzUmVmdW5kaW5nIHx8ICgwIDwgbGluZS5xdWFudGl0eSAmJiBsaW5lLnJlZnVuZCksIGZhbHNlKTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIGlzQ2FuY2VsbGluZygpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBPYmplY3QudmFsdWVzKHRoaXMubGluZVF1YW50aXRpZXMpLnJlZHVjZSgoaXNDYW5jZWxsaW5nLCBsaW5lKSA9PiBpc0NhbmNlbGxpbmcgfHwgKDAgPCBsaW5lLnF1YW50aXR5ICYmIGxpbmUuY2FuY2VsKSwgZmFsc2UpO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgY2FuU3VibWl0KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh0aGlzLmlzUmVmdW5kaW5nKCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuICEhKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFBheW1lbnQgJiZcclxuICAgICAgICAgICAgICAgIHRoaXMucmVhc29uICYmXHJcbiAgICAgICAgICAgICAgICAwIDwgdGhpcy5yZWZ1bmRUb3RhbCAmJlxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWZ1bmRUb3RhbCA8PSB0aGlzLnNldHRsZWRQYXltZW50c1RvdGFsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzQ2FuY2VsbGluZygpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAhIXRoaXMucmVhc29uO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0KCkge1xyXG4gICAgICAgIGNvbnN0IHBheW1lbnQgPSB0aGlzLnNlbGVjdGVkUGF5bWVudDtcclxuICAgICAgICBpZiAocGF5bWVudCkge1xyXG4gICAgICAgICAgICBjb25zdCByZWZ1bmRMaW5lcyA9IHRoaXMuZ2V0T3JkZXJMaW5lSW5wdXQobGluZSA9PiBsaW5lLnJlZnVuZCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGNhbmNlbExpbmVzID0gdGhpcy5nZXRPcmRlckxpbmVJbnB1dChsaW5lID0+IGxpbmUuY2FuY2VsKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZVdpdGgoe1xyXG4gICAgICAgICAgICAgICAgcmVmdW5kOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGluZXM6IHJlZnVuZExpbmVzLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlYXNvbjogdGhpcy5yZWFzb24sXHJcbiAgICAgICAgICAgICAgICAgICAgc2hpcHBpbmc6IHRoaXMucmVmdW5kU2hpcHBpbmcgPyB0aGlzLm9yZGVyLnNoaXBwaW5nV2l0aFRheCA6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgYWRqdXN0bWVudDogdGhpcy5hZGp1c3RtZW50LFxyXG4gICAgICAgICAgICAgICAgICAgIHBheW1lbnRJZDogcGF5bWVudC5pZCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBjYW5jZWw6IHtcclxuICAgICAgICAgICAgICAgICAgICBsaW5lczogY2FuY2VsTGluZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgb3JkZXJJZDogdGhpcy5vcmRlci5pZCxcclxuICAgICAgICAgICAgICAgICAgICByZWFzb246IHRoaXMucmVhc29uLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhbmNlbFNoaXBwaW5nOiB0aGlzLnJlZnVuZFNoaXBwaW5nLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNhbmNlbCgpIHtcclxuICAgICAgICB0aGlzLnJlc29sdmVXaXRoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRPcmRlckxpbmVJbnB1dChmaWx0ZXJGbjogKGxpbmU6IFNlbGVjdGlvbkxpbmUpID0+IGJvb2xlYW4pOiBPcmRlckxpbmVJbnB1dFtdIHtcclxuICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy5saW5lUXVhbnRpdGllcylcclxuICAgICAgICAgICAgLmZpbHRlcigoW29yZGVyTGluZUlkLCBsaW5lXSkgPT4gMCA8IGxpbmUucXVhbnRpdHkgJiYgZmlsdGVyRm4obGluZSkpXHJcbiAgICAgICAgICAgIC5tYXAoKFtvcmRlckxpbmVJZCwgbGluZV0pID0+ICh7XHJcbiAgICAgICAgICAgICAgICBvcmRlckxpbmVJZCxcclxuICAgICAgICAgICAgICAgIHF1YW50aXR5OiBsaW5lLnF1YW50aXR5LFxyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlIHZkckRpYWxvZ1RpdGxlPnt7ICdvcmRlci5yZWZ1bmQtYW5kLWNhbmNlbC1vcmRlcicgfCB0cmFuc2xhdGUgfX08L25nLXRlbXBsYXRlPlxyXG5cclxuPGRpdiBjbGFzcz1cInJlZnVuZC13cmFwcGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwib3JkZXItdGFibGVcIj5cclxuICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZVwiPlxyXG4gICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoPjwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoPnt7ICdvcmRlci5wcm9kdWN0LW5hbWUnIHwgdHJhbnNsYXRlIH19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGg+e3sgJ29yZGVyLnByb2R1Y3Qtc2t1JyB8IHRyYW5zbGF0ZSB9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoPnt7ICdvcmRlci5xdWFudGl0eScgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aD57eyAnb3JkZXIudW5pdC1wcmljZScgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aD57eyAnb3JkZXIucHJvcmF0ZWQtdW5pdC1wcmljZScgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aD57eyAnb3JkZXIucXVhbnRpdHknIHwgdHJhbnNsYXRlIH19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGg+e3sgJ29yZGVyLnJlZnVuZCcgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aD57eyAnb3JkZXIuY2FuY2VsJyB8IHRyYW5zbGF0ZSB9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGxpbmUgb2Ygb3JkZXIubGluZXNcIiBjbGFzcz1cIm9yZGVyLWxpbmVcIj5cclxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFsaWduLW1pZGRsZSB0aHVtYlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJsaW5lLmZlYXR1cmVkQXNzZXQgfCBhc3NldFByZXZpZXc6ICd0aW55J1wiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWxpZ24tbWlkZGxlIG5hbWVcIj57eyBsaW5lLnByb2R1Y3RWYXJpYW50Lm5hbWUgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWxpZ24tbWlkZGxlIHNrdVwiPnt7IGxpbmUucHJvZHVjdFZhcmlhbnQuc2t1IH19PC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFsaWduLW1pZGRsZSBxdWFudGl0eVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGxpbmUucXVhbnRpdHkgfX1cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWxpbmUtcmVmdW5kcyBbbGluZV09XCJsaW5lXCIgW3BheW1lbnRzXT1cIm9yZGVyLnBheW1lbnRzXCI+PC92ZHItbGluZS1yZWZ1bmRzPlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFsaWduLW1pZGRsZSBxdWFudGl0eVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGxpbmUudW5pdFByaWNlV2l0aFRheCB8IGxvY2FsZUN1cnJlbmN5OiBvcmRlci5jdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhbGlnbi1taWRkbGUgcXVhbnRpdHlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvcmF0ZWQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBsaW5lLnByb3JhdGVkVW5pdFByaWNlV2l0aFRheCB8IGxvY2FsZUN1cnJlbmN5OiBvcmRlci5jdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpbmUuZGlzY291bnRzIGFzIGRpc2NvdW50c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1kcm9wZG93biAqbmdJZj1cImRpc2NvdW50cy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvbW90aW9ucy1sYWJlbFwiIHZkckRyb3Bkb3duVHJpZ2dlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImljb24tYnV0dG9uXCI+PGNsci1pY29uIHNoYXBlPVwiaW5mb1wiPjwvY2xyLWljb24+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1kcm9wZG93bi1tZW51PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluZS1wcm9tb3Rpb25cIiAqbmdGb3I9XCJsZXQgZGlzY291bnQgb2YgZGlzY291bnRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBkaXNjb3VudC5kZXNjcmlwdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb21vdGlvbi1hbW91bnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNjb3VudC5hbW91bnQgLyAxMDAgLyBsaW5lLnF1YW50aXR5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG51bWJlcjogJzEuMC0yJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBjdXJyZW5jeTogb3JkZXIuY3VycmVuY3lDb2RlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Zkci1kcm9wZG93bi1tZW51PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92ZHItZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFsaWduLW1pZGRsZSBxdWFudGl0eS1jb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJsaW5lQ2FuQmVSZWZ1bmRlZE9yQ2FuY2VsbGVkKGxpbmUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJsaW5lUXVhbnRpdGllc1tsaW5lLmlkXS5xdWFudGl0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWF4XT1cImxpbmUucXVhbnRpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW49XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0KT1cImhhbmRsZVplcm9RdWFudGl0eShsaW5lUXVhbnRpdGllc1tsaW5lLmlkXSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWxpZ24tbWlkZGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhbmNlbC1jaGVja2JveC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibGluZUNhbkJlUmVmdW5kZWRPckNhbmNlbGxlZChsaW5lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHJDaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIjAgPT09IGxpbmVRdWFudGl0aWVzW2xpbmUuaWRdLnF1YW50aXR5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibGluZVF1YW50aXRpZXNbbGluZS5pZF0ucmVmdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhbGlnbi1taWRkbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FuY2VsLWNoZWNrYm94LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJsaW5lQ2FuQmVSZWZ1bmRlZE9yQ2FuY2VsbGVkKGxpbmUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsckNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiMCA9PT0gbGluZVF1YW50aXRpZXNbbGluZS5pZF0ucXVhbnRpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJsaW5lUXVhbnRpdGllc1tsaW5lLmlkXS5jYW5jZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICA8L3RhYmxlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmVmdW5kLWRldGFpbHMgbXQtNFwiIFtjbGFzcy5mYWRlZF09XCIhaXNSZWZ1bmRpbmcoKSAmJiAhaXNDYW5jZWxsaW5nKClcIj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjbHItY29udHJvbC1sYWJlbFwiPnt7ICdvcmRlci5yZWZ1bmQtY2FuY2VsbGF0aW9uLXJlYXNvbicgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8bmctc2VsZWN0XHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzUmVmdW5kaW5nKCkgJiYgIWlzQ2FuY2VsbGluZygpXCJcclxuICAgICAgICAgICAgICAgIFtpdGVtc109XCJyZWFzb25zXCJcclxuICAgICAgICAgICAgICAgIGJpbmRMYWJlbD1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgYXV0b2ZvY3VzXHJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ29yZGVyLnJlZnVuZC1jYW5jZWxsYXRpb24tcmVhc29uLXJlcXVpcmVkJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBiaW5kVmFsdWU9XCJpZFwiXHJcbiAgICAgICAgICAgICAgICBbYWRkVGFnXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyZWFzb25cIlxyXG4gICAgICAgICAgICA+PC9uZy1zZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxjbHItc2VsZWN0LWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnb3JkZXIucGF5bWVudC10by1yZWZ1bmQnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xyU2VsZWN0IG5hbWU9XCJvcHRpb25zXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFBheW1lbnRcIiBbZGlzYWJsZWRdPVwiIWlzUmVmdW5kaW5nKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwYXltZW50IG9mIHNldHRsZWRQYXltZW50c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cInBheW1lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicGF5bWVudC5zdGF0ZSAhPT0gJ1NldHRsZWQnXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICN7eyBwYXltZW50LmlkIH19IHt7IHBheW1lbnQubWV0aG9kIH19OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBwYXltZW50LmFtb3VudCB8IGxvY2FsZUN1cnJlbmN5OiBvcmRlci5jdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Nsci1zZWxlY3QtY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgPGNsci1jaGVja2JveC13cmFwcGVyPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGNsckNoZWNrYm94IFsobmdNb2RlbCldPVwicmVmdW5kU2hpcHBpbmdcIiBbZGlzYWJsZWRdPVwiIWlzUmVmdW5kaW5nKClcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci5yZWZ1bmQtc2hpcHBpbmcnIHwgdHJhbnNsYXRlIH19ICh7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlci5zaGlwcGluZ1dpdGhUYXggfCBsb2NhbGVDdXJyZW5jeTogb3JkZXIuY3VycmVuY3lDb2RlXHJcbiAgICAgICAgICAgICAgICAgICAgfX0pXHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Nsci1jaGVja2JveC13cmFwcGVyPlxyXG4gICAgICAgICAgICA8Y2xyLWlucHV0LWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnb3JkZXIucmVmdW5kLWFkanVzdG1lbnQnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDx2ZHItY3VycmVuY3ktaW5wdXRcclxuICAgICAgICAgICAgICAgICAgICBjbHJJbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNSZWZ1bmRpbmcoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2N1cnJlbmN5Q29kZV09XCJvcmRlci5jdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiYWRqdXN0bWVudFwiXHJcbiAgICAgICAgICAgICAgICA+PC92ZHItY3VycmVuY3ktaW5wdXQ+XHJcbiAgICAgICAgICAgIDwvY2xyLWlucHV0LWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvdGFsc1wiIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNSZWZ1bmRpbmcoKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZGVyLXRvdGFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ29yZGVyLnBheW1lbnQtYW1vdW50JyB8IHRyYW5zbGF0ZSB9fTpcclxuICAgICAgICAgICAgICAgICAgICB7eyBzZWxlY3RlZFBheW1lbnQuYW1vdW50IHwgbG9jYWxlQ3VycmVuY3k6IG9yZGVyLmN1cnJlbmN5Q29kZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVmdW5kLXRvdGFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ29yZGVyLnJlZnVuZC10b3RhbCcgfCB0cmFuc2xhdGUgfX06XHJcbiAgICAgICAgICAgICAgICAgICAge3sgcmVmdW5kVG90YWwgfCBsb2NhbGVDdXJyZW5jeTogb3JkZXIuY3VycmVuY3lDb2RlIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWZ1bmQtdG90YWwtZXJyb3JcIiAqbmdJZj1cInJlZnVuZFRvdGFsIDwgMCB8fCBzZXR0bGVkUGF5bWVudHNUb3RhbCA8IHJlZnVuZFRvdGFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ29yZGVyLnJlZnVuZC10b3RhbC1lcnJvcidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluOiAwIHwgY3VycmVuY3k6IG9yZGVyLmN1cnJlbmN5Q29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXg6IHNldHRsZWRQYXltZW50c1RvdGFsIHwgbG9jYWxlQ3VycmVuY3k6IG9yZGVyLmN1cnJlbmN5Q29kZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWZ1bmQtdG90YWwtd2FybmluZ1wiICpuZ0lmPVwic2VsZWN0ZWRQYXltZW50LmFtb3VudCA8IHJlZnVuZFRvdGFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ29yZGVyLnJlZnVuZC10b3RhbC13YXJuaW5nJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlIHZkckRpYWxvZ0J1dHRvbnM+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0blwiIChjbGljayk9XCJjYW5jZWwoKVwiPnt7ICdjb21tb24uY2FuY2VsJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cInNlbGVjdCgpXCIgW2Rpc2FibGVkXT1cIiFjYW5TdWJtaXQoKVwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUmVmdW5kaW5nKCk7IGVsc2UgY2FuY2VsbGluZ1wiPlxyXG4gICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgJ29yZGVyLnJlZnVuZC13aXRoLWFtb3VudCdcclxuICAgICAgICAgICAgICAgICAgICB8IHRyYW5zbGF0ZTogeyBhbW91bnQ6IHJlZnVuZFRvdGFsIHwgbG9jYWxlQ3VycmVuY3k6IG9yZGVyLmN1cnJlbmN5Q29kZSB9XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNjYW5jZWxsaW5nPlxyXG4gICAgICAgICAgICB7eyAnb3JkZXIuY2FuY2VsLXNlbGVjdGVkLWl0ZW1zJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2J1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmdW5kLW9yZGVyLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL3JlZnVuZC1vcmRlci1kaWFsb2cvcmVmdW5kLW9yZGVyLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL3JlZnVuZC1vcmRlci1kaWFsb2cvcmVmdW5kLW9yZGVyLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUdILFlBQVksR0FNZixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7O0FBVzNELE1BQU0sT0FBTywwQkFBMEI7SUFnQm5DLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBUjVDLG1CQUFjLEdBQXdDLEVBQUUsQ0FBQztRQUN6RCxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsWUFBTyxHQUFHLFlBQVksRUFBRSxDQUFDLG1CQUFtQixJQUFJO1lBQzVDLENBQUMsQ0FBQyxzQ0FBc0MsQ0FBQztZQUN6QyxDQUFDLENBQUMsbUNBQW1DLENBQUM7U0FDekMsQ0FBQztRQUdFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7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QUM7U0FDTjtJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxRQUEwQztRQUNoRSxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQzthQUNyQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3BFLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzNCLFdBQVc7WUFDWCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDMUIsQ0FBQyxDQUFDLENBQUM7SUFDWixDQUFDOzhHQXhKUSwwQkFBMEI7a0dBQTFCLDBCQUEwQiwrREN2QnZDLHNpU0FrTEE7OzJGRDNKYSwwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0kseUJBQXlCLG1CQUdsQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcclxuaW1wb3J0IHtcclxuICAgIENhbmNlbE9yZGVySW5wdXQsXHJcbiAgICBEaWFsb2csXHJcbiAgICBnZXRBcHBDb25maWcsXHJcbiAgICBJMThuU2VydmljZSxcclxuICAgIE9yZGVyRGV0YWlsRnJhZ21lbnQsXHJcbiAgICBPcmRlckxpbmVJbnB1dCxcclxuICAgIFBheW1lbnRXaXRoUmVmdW5kc0ZyYWdtZW50LFxyXG4gICAgUmVmdW5kT3JkZXJJbnB1dCxcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgc3VtbWF0ZSB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLXV0aWxzJztcclxuXHJcbnR5cGUgU2VsZWN0aW9uTGluZSA9IHsgcXVhbnRpdHk6IG51bWJlcjsgcmVmdW5kOiBib29sZWFuOyBjYW5jZWw6IGJvb2xlYW4gfTtcclxudHlwZSBQYXltZW50ID0gTm9uTnVsbGFibGU8T3JkZXJEZXRhaWxGcmFnbWVudFsncGF5bWVudHMnXT5bbnVtYmVyXTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItcmVmdW5kLW9yZGVyLWRpYWxvZycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmVmdW5kLW9yZGVyLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9yZWZ1bmQtb3JkZXItZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlZnVuZE9yZGVyRGlhbG9nQ29tcG9uZW50XHJcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgRGlhbG9nPHsgY2FuY2VsOiBDYW5jZWxPcmRlcklucHV0OyByZWZ1bmQ6IFJlZnVuZE9yZGVySW5wdXQgfT5cclxue1xyXG4gICAgb3JkZXI6IE9yZGVyRGV0YWlsRnJhZ21lbnQ7XHJcbiAgICByZXNvbHZlV2l0aDogKHJlc3VsdD86IHsgY2FuY2VsOiBDYW5jZWxPcmRlcklucHV0OyByZWZ1bmQ6IFJlZnVuZE9yZGVySW5wdXQgfSkgPT4gdm9pZDtcclxuICAgIHJlYXNvbjogc3RyaW5nO1xyXG4gICAgc2V0dGxlZFBheW1lbnRzOiBQYXltZW50W107XHJcbiAgICBzZWxlY3RlZFBheW1lbnQ6IFBheW1lbnQ7XHJcbiAgICBsaW5lUXVhbnRpdGllczogeyBbbGluZUlkOiBzdHJpbmddOiBTZWxlY3Rpb25MaW5lIH0gPSB7fTtcclxuICAgIHJlZnVuZFNoaXBwaW5nID0gZmFsc2U7XHJcbiAgICBhZGp1c3RtZW50ID0gMDtcclxuICAgIHJlYXNvbnMgPSBnZXRBcHBDb25maWcoKS5jYW5jZWxsYXRpb25SZWFzb25zID8/IFtcclxuICAgICAgICBfKCdvcmRlci5yZWZ1bmQtcmVhc29uLWN1c3RvbWVyLXJlcXVlc3QnKSxcclxuICAgICAgICBfKCdvcmRlci5yZWZ1bmQtcmVhc29uLW5vdC1hdmFpbGFibGUnKSxcclxuICAgIF07XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBpMThuU2VydmljZTogSTE4blNlcnZpY2UpIHtcclxuICAgICAgICB0aGlzLnJlYXNvbnMgPSB0aGlzLnJlYXNvbnMubWFwKHIgPT4gdGhpcy5pMThuU2VydmljZS50cmFuc2xhdGUocikpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCByZWZ1bmRUb3RhbCgpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1Ub3RhbCA9IHRoaXMub3JkZXIubGluZXMucmVkdWNlKCh0b3RhbCwgbGluZSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBsaW5lUmVmID0gdGhpcy5saW5lUXVhbnRpdGllc1tsaW5lLmlkXTtcclxuICAgICAgICAgICAgY29uc3QgcmVmdW5kQ291bnQgPSAobGluZVJlZi5yZWZ1bmQgJiYgbGluZVJlZi5xdWFudGl0eSkgfHwgMDtcclxuICAgICAgICAgICAgcmV0dXJuIHRvdGFsICsgbGluZS5wcm9yYXRlZFVuaXRQcmljZVdpdGhUYXggKiByZWZ1bmRDb3VudDtcclxuICAgICAgICB9LCAwKTtcclxuICAgICAgICByZXR1cm4gaXRlbVRvdGFsICsgKHRoaXMucmVmdW5kU2hpcHBpbmcgPyB0aGlzLm9yZGVyLnNoaXBwaW5nV2l0aFRheCA6IDApICsgdGhpcy5hZGp1c3RtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBzZXR0bGVkUGF5bWVudHNUb3RhbCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNldHRsZWRQYXltZW50c1xyXG4gICAgICAgICAgICAubWFwKHBheW1lbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGF5bWVudFRvdGFsID0gcGF5bWVudC5hbW91bnQ7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBhbHJlYWR5UmVmdW5kZWRUb3RhbCA9IHN1bW1hdGUoXHJcbiAgICAgICAgICAgICAgICAgICAgcGF5bWVudC5yZWZ1bmRzLmZpbHRlcihyID0+IHIuc3RhdGUgIT09ICdGYWlsZWQnKSBhcyBBcnJheTxcclxuICAgICAgICAgICAgICAgICAgICAgICAgUmVxdWlyZWQ8UGF5bWVudFsncmVmdW5kcyddW251bWJlcl0+XHJcbiAgICAgICAgICAgICAgICAgICAgPixcclxuICAgICAgICAgICAgICAgICAgICAndG90YWwnLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBwYXltZW50VG90YWwgLSBhbHJlYWR5UmVmdW5kZWRUb3RhbDtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnJlZHVjZSgoc3VtLCBhbW91bnQpID0+IHN1bSArIGFtb3VudCwgMCk7XHJcbiAgICB9XHJcblxyXG4gICAgbGluZUNhbkJlUmVmdW5kZWRPckNhbmNlbGxlZChsaW5lOiBPcmRlckRldGFpbEZyYWdtZW50WydsaW5lcyddW251bWJlcl0pOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCByZWZ1bmRlZENvdW50ID1cclxuICAgICAgICAgICAgdGhpcy5vcmRlci5wYXltZW50c1xyXG4gICAgICAgICAgICAgICAgPy5yZWR1Y2UoXHJcbiAgICAgICAgICAgICAgICAgICAgKGFsbCwgcGF5bWVudCkgPT4gWy4uLmFsbCwgLi4ucGF5bWVudC5yZWZ1bmRzXSxcclxuICAgICAgICAgICAgICAgICAgICBbXSBhcyBQYXltZW50V2l0aFJlZnVuZHNGcmFnbWVudFsncmVmdW5kcyddLFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgLmZpbHRlcihyZWZ1bmQgPT4gcmVmdW5kLnN0YXRlICE9PSAnRmFpbGVkJylcclxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoXHJcbiAgICAgICAgICAgICAgICAgICAgKGFsbCwgcmVmdW5kKSA9PiBbLi4uYWxsLCAuLi5yZWZ1bmQubGluZXNdLFxyXG4gICAgICAgICAgICAgICAgICAgIFtdIGFzIEFycmF5PHsgb3JkZXJMaW5lSWQ6IHN0cmluZzsgcXVhbnRpdHk6IG51bWJlciB9PixcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIC5maWx0ZXIocmVmdW5kTGluZSA9PiByZWZ1bmRMaW5lLm9yZGVyTGluZUlkID09PSBsaW5lLmlkKVxyXG4gICAgICAgICAgICAgICAgLnJlZHVjZSgoc3VtLCByZWZ1bmRMaW5lKSA9PiBzdW0gKyByZWZ1bmRMaW5lLnF1YW50aXR5LCAwKSA/PyAwO1xyXG5cclxuICAgICAgICByZXR1cm4gcmVmdW5kZWRDb3VudCA8IGxpbmUub3JkZXJQbGFjZWRRdWFudGl0eTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmxpbmVRdWFudGl0aWVzID0gdGhpcy5vcmRlci5saW5lcy5yZWR1Y2UoXHJcbiAgICAgICAgICAgIChyZXN1bHQsIGxpbmUpID0+ICh7XHJcbiAgICAgICAgICAgICAgICAuLi5yZXN1bHQsXHJcbiAgICAgICAgICAgICAgICBbbGluZS5pZF06IHtcclxuICAgICAgICAgICAgICAgICAgICBxdWFudGl0eTogMCxcclxuICAgICAgICAgICAgICAgICAgICByZWZ1bmQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhbmNlbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAge30sXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnNldHRsZWRQYXltZW50cyA9ICh0aGlzLm9yZGVyLnBheW1lbnRzIHx8IFtdKS5maWx0ZXIocCA9PiBwLnN0YXRlID09PSAnU2V0dGxlZCcpO1xyXG4gICAgICAgIGlmICh0aGlzLnNldHRsZWRQYXltZW50cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFBheW1lbnQgPSB0aGlzLnNldHRsZWRQYXltZW50c1swXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlWmVyb1F1YW50aXR5KGxpbmU/OiBTZWxlY3Rpb25MaW5lKSB7XHJcbiAgICAgICAgaWYgKGxpbmU/LnF1YW50aXR5ID09PSAwKSB7XHJcbiAgICAgICAgICAgIGxpbmUuY2FuY2VsID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGxpbmUucmVmdW5kID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlzUmVmdW5kaW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IE9iamVjdC52YWx1ZXModGhpcy5saW5lUXVhbnRpdGllcykucmVkdWNlKFxyXG4gICAgICAgICAgICAoaXNSZWZ1bmRpbmcsIGxpbmUpID0+IGlzUmVmdW5kaW5nIHx8ICgwIDwgbGluZS5xdWFudGl0eSAmJiBsaW5lLnJlZnVuZCksXHJcbiAgICAgICAgICAgIGZhbHNlLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBpc0NhbmNlbGxpbmcoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LnZhbHVlcyh0aGlzLmxpbmVRdWFudGl0aWVzKS5yZWR1Y2UoXHJcbiAgICAgICAgICAgIChpc0NhbmNlbGxpbmcsIGxpbmUpID0+IGlzQ2FuY2VsbGluZyB8fCAoMCA8IGxpbmUucXVhbnRpdHkgJiYgbGluZS5jYW5jZWwpLFxyXG4gICAgICAgICAgICBmYWxzZSxcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgY2FuU3VibWl0KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh0aGlzLmlzUmVmdW5kaW5nKCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuICEhKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFBheW1lbnQgJiZcclxuICAgICAgICAgICAgICAgIHRoaXMucmVhc29uICYmXHJcbiAgICAgICAgICAgICAgICAwIDwgdGhpcy5yZWZ1bmRUb3RhbCAmJlxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWZ1bmRUb3RhbCA8PSB0aGlzLnNldHRsZWRQYXltZW50c1RvdGFsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzQ2FuY2VsbGluZygpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAhIXRoaXMucmVhc29uO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0KCkge1xyXG4gICAgICAgIGNvbnN0IHBheW1lbnQgPSB0aGlzLnNlbGVjdGVkUGF5bWVudDtcclxuICAgICAgICBpZiAocGF5bWVudCkge1xyXG4gICAgICAgICAgICBjb25zdCByZWZ1bmRMaW5lcyA9IHRoaXMuZ2V0T3JkZXJMaW5lSW5wdXQobGluZSA9PiBsaW5lLnJlZnVuZCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGNhbmNlbExpbmVzID0gdGhpcy5nZXRPcmRlckxpbmVJbnB1dChsaW5lID0+IGxpbmUuY2FuY2VsKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZVdpdGgoe1xyXG4gICAgICAgICAgICAgICAgcmVmdW5kOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGluZXM6IHJlZnVuZExpbmVzLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlYXNvbjogdGhpcy5yZWFzb24sXHJcbiAgICAgICAgICAgICAgICAgICAgc2hpcHBpbmc6IHRoaXMucmVmdW5kU2hpcHBpbmcgPyB0aGlzLm9yZGVyLnNoaXBwaW5nV2l0aFRheCA6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgYWRqdXN0bWVudDogdGhpcy5hZGp1c3RtZW50LFxyXG4gICAgICAgICAgICAgICAgICAgIHBheW1lbnRJZDogcGF5bWVudC5pZCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBjYW5jZWw6IHtcclxuICAgICAgICAgICAgICAgICAgICBsaW5lczogY2FuY2VsTGluZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgb3JkZXJJZDogdGhpcy5vcmRlci5pZCxcclxuICAgICAgICAgICAgICAgICAgICByZWFzb246IHRoaXMucmVhc29uLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhbmNlbFNoaXBwaW5nOiB0aGlzLnJlZnVuZFNoaXBwaW5nLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNhbmNlbCgpIHtcclxuICAgICAgICB0aGlzLnJlc29sdmVXaXRoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRPcmRlckxpbmVJbnB1dChmaWx0ZXJGbjogKGxpbmU6IFNlbGVjdGlvbkxpbmUpID0+IGJvb2xlYW4pOiBPcmRlckxpbmVJbnB1dFtdIHtcclxuICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy5saW5lUXVhbnRpdGllcylcclxuICAgICAgICAgICAgLmZpbHRlcigoW29yZGVyTGluZUlkLCBsaW5lXSkgPT4gMCA8IGxpbmUucXVhbnRpdHkgJiYgZmlsdGVyRm4obGluZSkpXHJcbiAgICAgICAgICAgIC5tYXAoKFtvcmRlckxpbmVJZCwgbGluZV0pID0+ICh7XHJcbiAgICAgICAgICAgICAgICBvcmRlckxpbmVJZCxcclxuICAgICAgICAgICAgICAgIHF1YW50aXR5OiBsaW5lLnF1YW50aXR5LFxyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlIHZkckRpYWxvZ1RpdGxlPnt7ICdvcmRlci5yZWZ1bmQtYW5kLWNhbmNlbC1vcmRlcicgfCB0cmFuc2xhdGUgfX08L25nLXRlbXBsYXRlPlxyXG5cclxuPGRpdiBjbGFzcz1cInJlZnVuZC13cmFwcGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwib3JkZXItdGFibGVcIj5cclxuICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZVwiPlxyXG4gICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoPjwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoPnt7ICdvcmRlci5wcm9kdWN0LW5hbWUnIHwgdHJhbnNsYXRlIH19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGg+e3sgJ29yZGVyLnByb2R1Y3Qtc2t1JyB8IHRyYW5zbGF0ZSB9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoPnt7ICdvcmRlci5xdWFudGl0eScgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aD57eyAnb3JkZXIudW5pdC1wcmljZScgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aD57eyAnb3JkZXIucHJvcmF0ZWQtdW5pdC1wcmljZScgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aD57eyAnb3JkZXIucXVhbnRpdHknIHwgdHJhbnNsYXRlIH19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGg+e3sgJ29yZGVyLnJlZnVuZCcgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aD57eyAnb3JkZXIuY2FuY2VsJyB8IHRyYW5zbGF0ZSB9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGxpbmUgb2Ygb3JkZXIubGluZXNcIiBjbGFzcz1cIm9yZGVyLWxpbmVcIj5cclxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFsaWduLW1pZGRsZSB0aHVtYlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJsaW5lLmZlYXR1cmVkQXNzZXQgfCBhc3NldFByZXZpZXc6ICd0aW55J1wiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWxpZ24tbWlkZGxlIG5hbWVcIj57eyBsaW5lLnByb2R1Y3RWYXJpYW50Lm5hbWUgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWxpZ24tbWlkZGxlIHNrdVwiPnt7IGxpbmUucHJvZHVjdFZhcmlhbnQuc2t1IH19PC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFsaWduLW1pZGRsZSBxdWFudGl0eVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGxpbmUucXVhbnRpdHkgfX1cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWxpbmUtcmVmdW5kcyBbbGluZV09XCJsaW5lXCIgW3BheW1lbnRzXT1cIm9yZGVyLnBheW1lbnRzXCI+PC92ZHItbGluZS1yZWZ1bmRzPlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFsaWduLW1pZGRsZSBxdWFudGl0eVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGxpbmUudW5pdFByaWNlV2l0aFRheCB8IGxvY2FsZUN1cnJlbmN5OiBvcmRlci5jdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhbGlnbi1taWRkbGUgcXVhbnRpdHlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvcmF0ZWQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBsaW5lLnByb3JhdGVkVW5pdFByaWNlV2l0aFRheCB8IGxvY2FsZUN1cnJlbmN5OiBvcmRlci5jdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpbmUuZGlzY291bnRzIGFzIGRpc2NvdW50c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1kcm9wZG93biAqbmdJZj1cImRpc2NvdW50cy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvbW90aW9ucy1sYWJlbFwiIHZkckRyb3Bkb3duVHJpZ2dlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImljb24tYnV0dG9uXCI+PGNsci1pY29uIHNoYXBlPVwiaW5mb1wiPjwvY2xyLWljb24+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1kcm9wZG93bi1tZW51PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluZS1wcm9tb3Rpb25cIiAqbmdGb3I9XCJsZXQgZGlzY291bnQgb2YgZGlzY291bnRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBkaXNjb3VudC5kZXNjcmlwdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb21vdGlvbi1hbW91bnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNjb3VudC5hbW91bnQgLyAxMDAgLyBsaW5lLnF1YW50aXR5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG51bWJlcjogJzEuMC0yJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBjdXJyZW5jeTogb3JkZXIuY3VycmVuY3lDb2RlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Zkci1kcm9wZG93bi1tZW51PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92ZHItZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFsaWduLW1pZGRsZSBxdWFudGl0eS1jb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJsaW5lQ2FuQmVSZWZ1bmRlZE9yQ2FuY2VsbGVkKGxpbmUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJsaW5lUXVhbnRpdGllc1tsaW5lLmlkXS5xdWFudGl0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWF4XT1cImxpbmUucXVhbnRpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW49XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0KT1cImhhbmRsZVplcm9RdWFudGl0eShsaW5lUXVhbnRpdGllc1tsaW5lLmlkXSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWxpZ24tbWlkZGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhbmNlbC1jaGVja2JveC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibGluZUNhbkJlUmVmdW5kZWRPckNhbmNlbGxlZChsaW5lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHJDaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIjAgPT09IGxpbmVRdWFudGl0aWVzW2xpbmUuaWRdLnF1YW50aXR5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibGluZVF1YW50aXRpZXNbbGluZS5pZF0ucmVmdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhbGlnbi1taWRkbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FuY2VsLWNoZWNrYm94LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJsaW5lQ2FuQmVSZWZ1bmRlZE9yQ2FuY2VsbGVkKGxpbmUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsckNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiMCA9PT0gbGluZVF1YW50aXRpZXNbbGluZS5pZF0ucXVhbnRpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJsaW5lUXVhbnRpdGllc1tsaW5lLmlkXS5jYW5jZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICA8L3RhYmxlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmVmdW5kLWRldGFpbHMgbXQtNFwiIFtjbGFzcy5mYWRlZF09XCIhaXNSZWZ1bmRpbmcoKSAmJiAhaXNDYW5jZWxsaW5nKClcIj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjbHItY29udHJvbC1sYWJlbFwiPnt7ICdvcmRlci5yZWZ1bmQtY2FuY2VsbGF0aW9uLXJlYXNvbicgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8bmctc2VsZWN0XHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzUmVmdW5kaW5nKCkgJiYgIWlzQ2FuY2VsbGluZygpXCJcclxuICAgICAgICAgICAgICAgIFtpdGVtc109XCJyZWFzb25zXCJcclxuICAgICAgICAgICAgICAgIGJpbmRMYWJlbD1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgYXV0b2ZvY3VzXHJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ29yZGVyLnJlZnVuZC1jYW5jZWxsYXRpb24tcmVhc29uLXJlcXVpcmVkJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBiaW5kVmFsdWU9XCJpZFwiXHJcbiAgICAgICAgICAgICAgICBbYWRkVGFnXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyZWFzb25cIlxyXG4gICAgICAgICAgICA+PC9uZy1zZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxjbHItc2VsZWN0LWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnb3JkZXIucGF5bWVudC10by1yZWZ1bmQnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xyU2VsZWN0IG5hbWU9XCJvcHRpb25zXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFBheW1lbnRcIiBbZGlzYWJsZWRdPVwiIWlzUmVmdW5kaW5nKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwYXltZW50IG9mIHNldHRsZWRQYXltZW50c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cInBheW1lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicGF5bWVudC5zdGF0ZSAhPT0gJ1NldHRsZWQnXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICN7eyBwYXltZW50LmlkIH19IHt7IHBheW1lbnQubWV0aG9kIH19OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBwYXltZW50LmFtb3VudCB8IGxvY2FsZUN1cnJlbmN5OiBvcmRlci5jdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Nsci1zZWxlY3QtY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgPGNsci1jaGVja2JveC13cmFwcGVyPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGNsckNoZWNrYm94IFsobmdNb2RlbCldPVwicmVmdW5kU2hpcHBpbmdcIiBbZGlzYWJsZWRdPVwiIWlzUmVmdW5kaW5nKClcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci5yZWZ1bmQtc2hpcHBpbmcnIHwgdHJhbnNsYXRlIH19ICh7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlci5zaGlwcGluZ1dpdGhUYXggfCBsb2NhbGVDdXJyZW5jeTogb3JkZXIuY3VycmVuY3lDb2RlXHJcbiAgICAgICAgICAgICAgICAgICAgfX0pXHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Nsci1jaGVja2JveC13cmFwcGVyPlxyXG4gICAgICAgICAgICA8Y2xyLWlucHV0LWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnb3JkZXIucmVmdW5kLWFkanVzdG1lbnQnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDx2ZHItY3VycmVuY3ktaW5wdXRcclxuICAgICAgICAgICAgICAgICAgICBjbHJJbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNSZWZ1bmRpbmcoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2N1cnJlbmN5Q29kZV09XCJvcmRlci5jdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiYWRqdXN0bWVudFwiXHJcbiAgICAgICAgICAgICAgICA+PC92ZHItY3VycmVuY3ktaW5wdXQ+XHJcbiAgICAgICAgICAgIDwvY2xyLWlucHV0LWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvdGFsc1wiIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNSZWZ1bmRpbmcoKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZGVyLXRvdGFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ29yZGVyLnBheW1lbnQtYW1vdW50JyB8IHRyYW5zbGF0ZSB9fTpcclxuICAgICAgICAgICAgICAgICAgICB7eyBzZWxlY3RlZFBheW1lbnQuYW1vdW50IHwgbG9jYWxlQ3VycmVuY3k6IG9yZGVyLmN1cnJlbmN5Q29kZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVmdW5kLXRvdGFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ29yZGVyLnJlZnVuZC10b3RhbCcgfCB0cmFuc2xhdGUgfX06XHJcbiAgICAgICAgICAgICAgICAgICAge3sgcmVmdW5kVG90YWwgfCBsb2NhbGVDdXJyZW5jeTogb3JkZXIuY3VycmVuY3lDb2RlIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWZ1bmQtdG90YWwtZXJyb3JcIiAqbmdJZj1cInJlZnVuZFRvdGFsIDwgMCB8fCBzZXR0bGVkUGF5bWVudHNUb3RhbCA8IHJlZnVuZFRvdGFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ29yZGVyLnJlZnVuZC10b3RhbC1lcnJvcidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluOiAwIHwgY3VycmVuY3k6IG9yZGVyLmN1cnJlbmN5Q29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXg6IHNldHRsZWRQYXltZW50c1RvdGFsIHwgbG9jYWxlQ3VycmVuY3k6IG9yZGVyLmN1cnJlbmN5Q29kZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWZ1bmQtdG90YWwtd2FybmluZ1wiICpuZ0lmPVwic2VsZWN0ZWRQYXltZW50LmFtb3VudCA8IHJlZnVuZFRvdGFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ29yZGVyLnJlZnVuZC10b3RhbC13YXJuaW5nJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlIHZkckRpYWxvZ0J1dHRvbnM+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0blwiIChjbGljayk9XCJjYW5jZWwoKVwiPnt7ICdjb21tb24uY2FuY2VsJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cInNlbGVjdCgpXCIgW2Rpc2FibGVkXT1cIiFjYW5TdWJtaXQoKVwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUmVmdW5kaW5nKCk7IGVsc2UgY2FuY2VsbGluZ1wiPlxyXG4gICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgJ29yZGVyLnJlZnVuZC13aXRoLWFtb3VudCdcclxuICAgICAgICAgICAgICAgICAgICB8IHRyYW5zbGF0ZTogeyBhbW91bnQ6IHJlZnVuZFRvdGFsIHwgbG9jYWxlQ3VycmVuY3k6IG9yZGVyLmN1cnJlbmN5Q29kZSB9XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNjYW5jZWxsaW5nPlxyXG4gICAgICAgICAgICB7eyAnb3JkZXIuY2FuY2VsLXNlbGVjdGVkLWl0ZW1zJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2J1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19