@colijnit/transaction 12.1.174 → 12.1.176
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.
- package/bundles/colijnit-transaction.umd.js +2499 -1873
- package/bundles/colijnit-transaction.umd.js.map +1 -1
- package/colijnit-transaction.d.ts +529 -522
- package/colijnit-transaction.metadata.json +1 -1
- package/esm2015/colijnit-transaction.js +530 -523
- package/esm2015/lib/cache/service/transaction-business-object-cache-manager.service.js +157 -0
- package/esm2015/lib/cache/service/transaction-select-multiple-cache.service.js +38 -0
- package/esm2015/lib/cache/service/transaction-select-multiple-parameterized-cache.service.js +47 -0
- package/esm2015/lib/cache/service/transaction-select-single-cache.service.js +33 -0
- package/esm2015/lib/cache/service/transaction-select-single-parameterized-cache.service.js +47 -0
- package/esm2015/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +119 -214
- package/esm2015/lib/component/checkout/checkout.module.js +4 -2
- package/esm2015/lib/component/core/base/transaction-payment-base.component.js +257 -0
- package/esm2015/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.component.js +7 -2
- package/esm2015/lib/component/payment/payment.component.js +5 -238
- package/esm2015/lib/component/relation/relation-address/relation-address.component.js +1 -7
- package/esm2015/lib/component/relation/relation-addresses/relation-addresses.component.js +2 -1
- package/esm2015/lib/component/relation/suggestions-sidebar/suggestions-sidebar.component.js +151 -0
- package/esm2015/lib/component/relation/suggestions-sidebar/suggestions-sidebar.module.js +25 -0
- package/esm2015/lib/component/transaction/transaction.component.js +2 -2
- package/esm2015/lib/component/transaction-cash-register-order/transaction-cash-register-link-relation/transaction-cash-register-link-relation.component.js +2 -5
- package/esm2015/lib/component/transaction-cash-register-order/transaction-cash-register-order.component.js +26 -25
- package/esm2015/lib/component/transaction-cash-register-order/transaction-cash-register-order.module.js +8 -2
- package/esm2015/lib/component/transaction-cash-register-order/transaction-cash-register-payment-dialog/transaction-cash-register-payment-dialog.component.js +103 -65
- package/esm2015/lib/component/transaction-cash-register-order/transaction-cash-register-payment-dialog/transaction-cash-register-payment-dialog.module.js +4 -2
- package/esm2015/lib/component/transaction-header/transaction-header/transaction-header.component.js +8 -6
- package/esm2015/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.component.js +2 -2
- package/esm2015/lib/component/transaction-header/transaction-header-popup/transaction-header-popup-base.component.js +13 -5
- package/esm2015/lib/component/transaction-header/transaction-header-popup/transaction-header-popup-relation.component.js +72 -7
- package/esm2015/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.js +40 -25
- package/esm2015/lib/component/transaction-internal/transaction-internal.component.js +12 -4
- package/esm2015/lib/component/transaction-internal/transaction-internal.module.js +4 -2
- package/esm2015/lib/component/transaction-line-fields/transaction-line-vat-button.component.js +2 -2
- package/esm2015/lib/component/transaction-line-fields/transaction-line-vat.component.js +2 -2
- package/esm2015/lib/component/transaction-line-purchase-receive-goods/transaction-line-purchase-receive-goods.component.js +2 -2
- package/esm2015/lib/component/transaction-lines/transaction-lines.module.js +1 -1
- package/esm2015/lib/component/transaction-lines-side-panel/transaction-lines-side-panel/transaction-lines-side-panel.component.js +70 -0
- package/esm2015/lib/component/transaction-lines-side-panel/transaction-lines-side-panel/transaction-lines-side-panel.module.js +21 -0
- package/esm2015/lib/component/transaction-lines-side-panel/transaction-lines-side-panel-cash-desk/transaction-lines-side-panel-cash-desk.component.js +109 -0
- package/esm2015/lib/component/transaction-lines-side-panel/transaction-lines-side-panel-cash-desk/transaction-lines-side-panel-cash-desk.module.js +29 -0
- package/esm2015/lib/component/transaction-search/service/transaction-search.service.js +5 -3
- package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-pos-grid/transaction-search-pos-grid.component.js +84 -0
- package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-pos-grid/transaction-search-pos-grid.module.js +24 -0
- package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.module.js +5 -1
- package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-pos-order-tile/transaction-search-pos-order-tile.component.js +102 -0
- package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-pos-order-tile/transaction-search-pos-order-tile.module.js +30 -0
- package/esm2015/lib/res/dictionary/dictionaries.js +2 -2
- package/esm2015/lib/service/article.service.js +5 -5
- package/esm2015/lib/service/payment.service.js +8 -8
- package/esm2015/lib/service/relation-suggestions.service.js +69 -0
- package/esm2015/lib/service/relation.service.js +29 -30
- package/esm2015/lib/service/transaction-base.service.js +15 -4
- package/esm2015/lib/service/transaction-connector-adapter.service.js +9 -9
- package/esm2015/lib/service/transaction-connector.service.js +14 -14
- package/esm2015/lib/service/transaction-mapping.service.js +16 -3
- package/esm2015/lib/service/transaction.service.js +3 -3
- package/esm2015/lib/transaction-version.js +3 -3
- package/esm2015/public_api.js +6 -1
- package/fesm2015/colijnit-transaction.js +2250 -1518
- package/fesm2015/colijnit-transaction.js.map +1 -1
- package/lib/cache/service/{business-object-cache-manager.service.d.ts → transaction-business-object-cache-manager.service.d.ts} +1 -2
- package/lib/cache/service/{select-multiple-cache.service.d.ts → transaction-select-multiple-cache.service.d.ts} +3 -3
- package/lib/cache/service/{select-multiple-parameterized-cache.service.d.ts → transaction-select-multiple-parameterized-cache.service.d.ts} +3 -3
- package/lib/cache/service/{select-single-cache.service.d.ts → transaction-select-single-cache.service.d.ts} +3 -3
- package/lib/cache/service/{select-single-parameterized-cache.service.d.ts → transaction-select-single-parameterized-cache.service.d.ts} +3 -3
- package/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.d.ts +3 -10
- package/lib/component/checkout/checkout-overview-relation-edit/style/_layout.scss +0 -31
- package/lib/component/checkout/checkout-overview-relation-edit/style/_material-definition.scss +0 -15
- package/lib/component/core/base/transaction-payment-base.component.d.ts +68 -0
- package/lib/component/payment/payment.component.d.ts +2 -63
- package/lib/component/relation/suggestions-sidebar/style/_layout.scss +37 -0
- package/lib/component/relation/suggestions-sidebar/style/_material-definition.scss +15 -0
- package/lib/component/relation/suggestions-sidebar/style/_theme.scss +4 -0
- package/lib/component/relation/suggestions-sidebar/style/material.scss +4 -0
- package/lib/component/relation/suggestions-sidebar/suggestions-sidebar.component.d.ts +29 -0
- package/lib/component/relation/suggestions-sidebar/suggestions-sidebar.module.d.ts +2 -0
- package/lib/component/transaction-cash-register-order/style/_layout.scss +1 -1
- package/lib/component/transaction-cash-register-order/transaction-cash-register-link-relation/transaction-cash-register-link-relation.component.d.ts +0 -1
- package/lib/component/transaction-cash-register-order/transaction-cash-register-order.component.d.ts +2 -4
- package/lib/component/transaction-cash-register-order/transaction-cash-register-payment-dialog/style/_layout.scss +28 -6
- package/lib/component/transaction-cash-register-order/transaction-cash-register-payment-dialog/style/_material-definition.scss +3 -0
- package/lib/component/transaction-cash-register-order/transaction-cash-register-payment-dialog/transaction-cash-register-payment-dialog.component.d.ts +15 -12
- package/lib/component/transaction-header/transaction-header/transaction-header.component.d.ts +2 -0
- package/lib/component/transaction-header/transaction-header-popup/transaction-header-popup-base.component.d.ts +2 -2
- package/lib/component/transaction-header/transaction-header-popup/transaction-header-popup-relation.component.d.ts +28 -1
- package/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.d.ts +1 -0
- package/lib/component/transaction-internal/style/_layout.scss +4 -1
- package/lib/component/transaction-internal/transaction-internal.component.d.ts +3 -1
- package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel/style/_layout.scss +6 -0
- package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel/style/_material-definition.scss +2 -0
- package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel/style/_theme.scss +4 -0
- package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel/style/material.scss +5 -0
- package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel/transaction-lines-side-panel.component.d.ts +20 -0
- package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel/transaction-lines-side-panel.module.d.ts +2 -0
- package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel-cash-desk/style/_layout.scss +31 -0
- package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel-cash-desk/style/_theme.scss +4 -0
- package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel-cash-desk/style/material.scss +4 -0
- package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel-cash-desk/transaction-lines-side-panel-cash-desk.component.d.ts +33 -0
- package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel-cash-desk/transaction-lines-side-panel-cash-desk.module.d.ts +2 -0
- package/lib/component/transaction-search/transaction-search-grid/transaction-search-pos-grid/style/_layout.scss +4 -0
- package/lib/component/transaction-search/transaction-search-grid/transaction-search-pos-grid/style/_material-definition.scss +0 -0
- package/lib/component/transaction-search/transaction-search-grid/transaction-search-pos-grid/style/_theme.scss +4 -0
- package/lib/component/transaction-search/transaction-search-grid/transaction-search-pos-grid/transaction-search-pos-grid.component.d.ts +7 -0
- package/lib/component/transaction-search/transaction-search-grid/transaction-search-pos-grid/transaction-search-pos-grid.module.d.ts +2 -0
- package/lib/component/transaction-search/transaction-search-tile/transaction-search-pos-order-tile/style/_layout.scss +4 -0
- package/lib/component/transaction-search/transaction-search-tile/transaction-search-pos-order-tile/style/_material-definition.scss +0 -0
- package/lib/component/transaction-search/transaction-search-tile/transaction-search-pos-order-tile/style/_theme.scss +4 -0
- package/lib/component/transaction-search/transaction-search-tile/transaction-search-pos-order-tile/style/material.scss +4 -0
- package/lib/component/transaction-search/transaction-search-tile/transaction-search-pos-order-tile/transaction-search-pos-order-tile.component.d.ts +9 -0
- package/lib/component/transaction-search/transaction-search-tile/transaction-search-pos-order-tile/transaction-search-pos-order-tile.module.d.ts +2 -0
- package/lib/res/dictionary/dictionaries.d.ts +2 -0
- package/lib/service/article.service.d.ts +2 -2
- package/lib/service/payment.service.d.ts +3 -3
- package/lib/service/relation-suggestions.service.d.ts +22 -0
- package/lib/service/relation.service.d.ts +4 -4
- package/lib/service/transaction-connector-adapter.service.d.ts +3 -3
- package/lib/service/transaction-connector.service.d.ts +5 -5
- package/lib/service/transaction-mapping.service.d.ts +2 -0
- package/package.json +2 -2
- package/public_api.d.ts +5 -0
- package/esm2015/lib/cache/service/business-object-cache-manager.service.js +0 -156
- package/esm2015/lib/cache/service/select-multiple-cache.service.js +0 -38
- package/esm2015/lib/cache/service/select-multiple-parameterized-cache.service.js +0 -47
- package/esm2015/lib/cache/service/select-single-cache.service.js +0 -33
- package/esm2015/lib/cache/service/select-single-parameterized-cache.service.js +0 -47
- package/lib/component/cash-register-order-wrapper.ts/style/_layout.scss +0 -4
- package/lib/component/cash-register-order-wrapper.ts/style/_theme.scss +0 -4
- /package/lib/component/{cash-register-order-wrapper.ts → transaction-lines-side-panel/transaction-lines-side-panel-cash-desk}/style/_material-definition.scss +0 -0
- /package/lib/component/{cash-register-order-wrapper.ts → transaction-search/transaction-search-grid/transaction-search-pos-grid}/style/material.scss +0 -0
|
@@ -42,6 +42,7 @@ import { RelationSuggestionsListModule } from '../relation/relation-suggestions-
|
|
|
42
42
|
import { TransactionHeaderPartialDeliveryModule } from '../transaction-header-fields/transaction-header-partial-delivery/transaction-header-partial-delivery.module';
|
|
43
43
|
import { CheckoutModuleService } from './service/checkout-module.service';
|
|
44
44
|
import { CheckoutScreenConfigurationService } from './service/checkout-screen-configuration.service';
|
|
45
|
+
import { SuggestionsSidebarModule } from '../relation/suggestions-sidebar/suggestions-sidebar.module';
|
|
45
46
|
export class CheckoutModule {
|
|
46
47
|
}
|
|
47
48
|
CheckoutModule.decorators = [
|
|
@@ -96,7 +97,8 @@ CheckoutModule.decorators = [
|
|
|
96
97
|
TransactionHeaderMarketingModule,
|
|
97
98
|
TransactionHeaderHoldCodesModule,
|
|
98
99
|
RelationSuggestionsListModule,
|
|
99
|
-
ScreenConfigurationModule
|
|
100
|
+
ScreenConfigurationModule,
|
|
101
|
+
SuggestionsSidebarModule
|
|
100
102
|
],
|
|
101
103
|
declarations: [
|
|
102
104
|
CheckoutOverviewRelationEditComponent,
|
|
@@ -113,4 +115,4 @@ CheckoutModule.decorators = [
|
|
|
113
115
|
bootstrap: [CheckoutComponent]
|
|
114
116
|
},] }
|
|
115
117
|
];
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvY2hlY2tvdXQvY2hlY2tvdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUNILFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLFdBQVcsRUFDWCx5QkFBeUIsR0FDNUIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sNkVBQTZFLENBQUM7QUFDbEksT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sNkVBQTZFLENBQUM7QUFDbEksT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDdEYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sb0VBQW9FLENBQUM7QUFDL0csT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDM0YsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1B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QjtvQkFDakIsYUFBYTtvQkFDYixrQkFBa0I7b0JBQ2xCLHFCQUFxQjtvQkFDckIsdUJBQXVCO29CQUN2Qiw0QkFBNEI7b0JBQzVCLHlCQUF5QjtvQkFDekIsK0JBQStCO29CQUMvQiw0Q0FBNEM7b0JBQzVDLG1DQUFtQztvQkFDbkMscUNBQXFDO29CQUNyQyxzQ0FBc0M7b0JBQ3RDLHNDQUFzQztvQkFDdEMsOEJBQThCO29CQUM5QixnQ0FBZ0M7b0JBQ2hDLHdDQUF3QztvQkFDeEMsd0NBQXdDO29CQUN4QyxvQ0FBb0M7b0JBQ3BDLGlDQUFpQztvQkFDakMsNkJBQTZCO29CQUM3Qiw2Q0FBNkM7b0JBQzdDLGdDQUFnQztvQkFDaEMsZ0NBQWdDO29CQUNoQyw2QkFBNkI7b0JBQzdCLHlCQUF5QjtpQkFDNUI7Z0JBQ0QsWUFBWSxFQUFFO29CQUNWLHFDQUFxQztvQkFDckMscUNBQXFDO29CQUNyQyxnQ0FBZ0M7b0JBQ2hDLGlCQUFpQjtpQkFDcEI7Z0JBQ0QsU0FBUyxFQUFFO29CQUNQLDBCQUEwQjtvQkFDMUIscUJBQXFCO29CQUNyQixrQ0FBa0M7aUJBQ3JDO2dCQUNELE9BQU8sRUFBRSxDQUFDLGlCQUFpQixFQUFFLHFDQUFxQyxDQUFDO2dCQUNuRSxTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzthQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgQ2Fyb3VzZWwzZE1vZHVsZSxcclxuICAgIENvRGlhbG9nTW9kdWxlLFxyXG4gICAgQ29sbGFwc2libGVNb2R1bGUsXHJcbiAgICBGb3JtTW9kdWxlLFxyXG4gICAgSWNvbk1vZHVsZSxcclxuICAgIElucHV0Q2hlY2tib3hNb2R1bGUsXHJcbiAgICBJbnB1dERhdGVQaWNrZXJNb2R1bGUsXHJcbiAgICBJbnB1dE51bWJlclBpY2tlck1vZHVsZSxcclxuICAgIElucHV0UmFkaW9CdXR0b25Nb2R1bGUsXHJcbiAgICBJbnB1dFRleHRhcmVhTW9kdWxlLFxyXG4gICAgSW5wdXRUZXh0TW9kdWxlLFxyXG4gICAgUG9wdXBNb2R1bGUsXHJcbiAgICBTY3JlZW5Db25maWd1cmF0aW9uTW9kdWxlLFxyXG59IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge0ZsZXhNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcclxuaW1wb3J0IHtDaGVja291dE92ZXJ2aWV3UmVsYXRpb25FZGl0Q29tcG9uZW50fSBmcm9tICcuL2NoZWNrb3V0LW92ZXJ2aWV3LXJlbGF0aW9uLWVkaXQvY2hlY2tvdXQtb3ZlcnZpZXctcmVsYXRpb24tZWRpdC5jb21wb25lbnQnO1xyXG5pbXBvcnQge0NoZWNrb3V0T3ZlcnZpZXdEZWxpdmVyeUVkaXRDb21wb25lbnR9IGZyb20gJy4vY2hlY2tvdXQtb3ZlcnZpZXctZGVsaXZlcnktZWRpdC9jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1lZGl0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXR0aW5nc1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2V0dGluZ3Muc2VydmljZSc7XHJcbmltcG9ydCB7Q29yZU1vZHVsZX0gZnJvbSAnLi4vY29yZS9jb3JlLm1vZHVsZSc7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge0NoZWNrb3V0Q29tcG9uZW50fSBmcm9tICcuL2NoZWNrb3V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtSZWxhdGlvbkFkZHJlc3NTZWxlY3RNb2R1bGV9IGZyb20gJy4uL3JlbGF0aW9uL3JlbGF0aW9uLWFkZHJlc3Mtc2VsZWN0L3JlbGF0aW9uLWFkZHJlc3Mtc2VsZWN0Lm1vZHVsZSc7XHJcbmltcG9ydCB7UmVsYXRpb25BZGRyZXNzTW9kdWxlfSBmcm9tICcuLi9yZWxhdGlvbi9yZWxhdGlvbi1hZGRyZXNzL3JlbGF0aW9uLWFkZHJlc3MubW9kdWxlJztcclxuaW1wb3J0IHtSZWxhdGlvbkFkZHJlc3NUaWxlTW9kdWxlfSBmcm9tICcuLi9yZWxhdGlvbi9yZWxhdGlvbi1hZGRyZXNzLXRpbGUvcmVsYXRpb24tYWRkcmVzcy10aWxlLm1vZHVsZSc7XHJcbmltcG9ydCB7UGlwZU1vZHVsZX0gZnJvbSAnLi4vLi4vcGlwZS9waXBlLm1vZHVsZSc7XHJcbmltcG9ydCB7U3RlcHBlck1vZHVsZX0gZnJvbSAnLi4vc3RlcHBlci9zdGVwcGVyLm1vZHVsZSc7XHJcbmltcG9ydCB7U2hvcHBpbmdDYXJ0UHJldmlld01vZHVsZX0gZnJvbSAnLi4vc2hvcHBpbmctY2FydC1wcmV2aWV3L3Nob3BwaW5nLWNhcnQtcHJldmlldy5tb2R1bGUnO1xyXG5pbXBvcnQge0F2YXRhck1vZHVsZX0gZnJvbSAnLi4vYXZhdGFyL2F2YXRhci5tb2R1bGUnO1xyXG5pbXBvcnQge0RlbGl2ZXJ5VHlwZVRpbGVNb2R1bGV9IGZyb20gJy4uL2RlbGl2ZXJ5LXR5cGUtdGlsZS9kZWxpdmVyeS10eXBlLXRpbGUubW9kdWxlJztcclxuaW1wb3J0IHtQYXltZW50TW9kdWxlfSBmcm9tICcuLi9wYXltZW50L3BheW1lbnQubW9kdWxlJztcclxuaW1wb3J0IHtSZWxhdGlvblR5cGVNb2R1bGV9IGZyb20gJy4uL3JlbGF0aW9uL3JlbGF0aW9uLXR5cGUvcmVsYXRpb24tdHlwZS5tb2R1bGUnO1xyXG5pbXBvcnQge1JlbGF0aW9uR2VuZXJhbE1vZHVsZX0gZnJvbSAnLi4vcmVsYXRpb24vcmVsYXRpb24tZ2VuZXJhbC9yZWxhdGlvbi1nZW5lcmFsLm1vZHVsZSc7XHJcbmltcG9ydCB7UmVsYXRpb25BZGRyZXNzZXNNb2R1bGV9IGZyb20gJy4uL3JlbGF0aW9uL3JlbGF0aW9uLWFkZHJlc3Nlcy9yZWxhdGlvbi1hZGRyZXNzZXMubW9kdWxlJztcclxuaW1wb3J0IHtSZWxhdGlvbkNvbnRhY3REZXRhaWxzTW9kdWxlfSBmcm9tICcuLi9yZWxhdGlvbi9yZWxhdGlvbi1jb250YWN0LWRldGFpbHMvcmVsYXRpb24tY29udGFjdC1kZXRhaWxzLm1vZHVsZSc7XHJcbmltcG9ydCB7UmVsYXRpb25QcmVmZXJlbmNlc01vZHVsZX0gZnJvbSAnLi4vcmVsYXRpb24vcmVsYXRpb24tcHJlZmVyZW5jZXMvcmVsYXRpb24tcHJlZmVyZW5jZXMubW9kdWxlJztcclxuaW1wb3J0IHtDaGVja291dE92ZXJ2aWV3UGF5bWVudENvbXBvbmVudH0gZnJvbSAnLi9jaGVja291dC1vdmVydmlldy1wYXltZW50L2NoZWNrb3V0LW92ZXJ2aWV3LXBheW1lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkhlYWRlckRlbGl2ZXJ5TW9kdWxlfSBmcm9tICcuLi90cmFuc2FjdGlvbi1oZWFkZXIvdHJhbnNhY3Rpb24taGVhZGVyLWRlbGl2ZXJ5L3RyYW5zYWN0aW9uLWhlYWRlci1kZWxpdmVyeS5tb2R1bGUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSGVhZGVyUHJlZmVycmVkRGVsaXZlcnlEYXRlTW9kdWxlfSBmcm9tICcuLi90cmFuc2FjdGlvbi1oZWFkZXItZmllbGRzL3RyYW5zYWN0aW9uLWhlYWRlci1wcmVmZXJyZWQtZGVsaXZlcnktZGF0ZS5tb2R1bGUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSGVhZGVyRGVsaXZlcnlEYXRlTW9kdWxlfSBmcm9tICcuLi90cmFuc2FjdGlvbi1oZWFkZXItZmllbGRzL3RyYW5zYWN0aW9uLWhlYWRlci1kZWxpdmVyeS1kYXRlLm1vZHVsZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25IZWFkZXJEZWxpdmVyeU1ldGhvZE1vZHVsZX0gZnJvbSAnLi4vdHJhbnNhY3Rpb24taGVhZGVyLWZpZWxkcy90cmFuc2FjdGlvbi1oZWFkZXItZGVsaXZlcnktbWV0aG9kLm1vZHVsZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25IZWFkZXJSZW1hcmtzTW9kdWxlfSBmcm9tICcuLi90cmFuc2FjdGlvbi1oZWFkZXItZmllbGRzL3RyYW5zYWN0aW9uLWhlYWRlci1yZW1hcmtzLm1vZHVsZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25IZWFkZXJSZWZlcmVuY2VNb2R1bGV9IGZyb20gJy4uL3RyYW5zYWN0aW9uLWhlYWRlci1maWVsZHMvdHJhbnNhY3Rpb24taGVhZGVyLXJlZmVyZW5jZS5tb2R1bGUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSGVhZGVyUmVsYXRpb25SZWZlcmVuY2VNb2R1bGV9IGZyb20gJy4uL3RyYW5zYWN0aW9uLWhlYWRlci1maWVsZHMvdHJhbnNhY3Rpb24taGVhZGVyLXJlbGF0aW9uLXJlZmVyZW5jZS5tb2R1bGUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSGVhZGVyRGVwb3NpdFBlcmNlbnRhZ2VNb2R1bGV9IGZyb20gJy4uL3RyYW5zYWN0aW9uLWhlYWRlci1maWVsZHMvdHJhbnNhY3Rpb24taGVhZGVyLWRlcG9zaXQtcGVyY2VudGFnZS5tb2R1bGUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSGVhZGVyRGVwb3NpdEFtb3VudE1vZHVsZX0gZnJvbSAnLi4vdHJhbnNhY3Rpb24taGVhZGVyLWZpZWxkcy90cmFuc2FjdGlvbi1oZWFkZXItZGVwb3NpdC1hbW91bnQubW9kdWxlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkhlYWRlckRlZmluaXRpdmVNb2R1bGV9IGZyb20gJy4uL3RyYW5zYWN0aW9uLWhlYWRlci1maWVsZHMvdHJhbnNhY3Rpb24taGVhZGVyLWRlZmluaXRpdmUubW9kdWxlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkhlYWRlckJyYW5jaE1vZHVsZX0gZnJvbSAnLi4vdHJhbnNhY3Rpb24taGVhZGVyLWZpZWxkcy90cmFuc2FjdGlvbi1oZWFkZXItYnJhbmNoLm1vZHVsZSc7XHJcbmltcG9ydCB7XHJcbiAgICBUcmFuc2FjdGlvbkhlYWRlckFkbWluaXN0cmF0aXZlUmVsYXRpb25Nb2R1bGVcclxufSBmcm9tICcuLi90cmFuc2FjdGlvbi1oZWFkZXItZmllbGRzL3RyYW5zYWN0aW9uLWhlYWRlci1hZG1pbmlzdHJhdGl2ZS1yZWxhdGlvbi5tb2R1bGUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSGVhZGVyTWFya2V0aW5nTW9kdWxlfSBmcm9tICcuLi90cmFuc2FjdGlvbi1oZWFkZXItZmllbGRzL3RyYW5zYWN0aW9uLWhlYWRlci1tYXJrZXRpbmcubW9kdWxlJztcclxuaW1wb3J0IHtcclxuICAgIFRyYW5zYWN0aW9uSGVhZGVyRGVsaXZlcnlPcHRpb25zTW9kdWxlXHJcbn0gZnJvbSAnLi4vdHJhbnNhY3Rpb24taGVhZGVyLWZpZWxkcy90cmFuc2FjdGlvbi1oZWFkZXItZGVsaXZlcnktb3B0aW9ucy90cmFuc2FjdGlvbi1oZWFkZXItZGVsaXZlcnktb3B0aW9ucy5tb2R1bGUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSGVhZGVySG9sZENvZGVzTW9kdWxlfSBmcm9tICcuLi90cmFuc2FjdGlvbi1oZWFkZXItZmllbGRzL3RyYW5zYWN0aW9uLWhlYWRlci1ob2xkLWNvZGVzLm1vZHVsZSc7XHJcbmltcG9ydCB7UmVsYXRpb25TdWdnZXN0aW9uc0xpc3RNb2R1bGV9IGZyb20gJy4uL3JlbGF0aW9uL3JlbGF0aW9uLXN1Z2dlc3Rpb25zLWxpc3QvcmVsYXRpb24tc3VnZ2VzdGlvbnMtbGlzdC5tb2R1bGUnO1xyXG5pbXBvcnQge1xyXG4gICAgVHJhbnNhY3Rpb25IZWFkZXJQYXJ0aWFsRGVsaXZlcnlNb2R1bGVcclxufSBmcm9tICcuLi90cmFuc2FjdGlvbi1oZWFkZXItZmllbGRzL3RyYW5zYWN0aW9uLWhlYWRlci1wYXJ0aWFsLWRlbGl2ZXJ5L3RyYW5zYWN0aW9uLWhlYWRlci1wYXJ0aWFsLWRlbGl2ZXJ5Lm1vZHVsZSc7XHJcbmltcG9ydCB7Q2hlY2tvdXRNb2R1bGVTZXJ2aWNlfSBmcm9tICcuL3NlcnZpY2UvY2hlY2tvdXQtbW9kdWxlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0NoZWNrb3V0U2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4vc2VydmljZS9jaGVja291dC1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29yZU1vZHVsZSxcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgSWNvbk1vZHVsZSxcclxuICAgICAgICBJbnB1dFRleHRNb2R1bGUsXHJcbiAgICAgICAgSW5wdXRDaGVja2JveE1vZHVsZSxcclxuICAgICAgICBJbnB1dFJhZGlvQnV0dG9uTW9kdWxlLFxyXG4gICAgICAgIEZvcm1Nb2R1bGUsXHJcbiAgICAgICAgSW5wdXREYXRlUGlja2VyTW9kdWxlLFxyXG4gICAgICAgIElucHV0TnVtYmVyUGlja2VyTW9kdWxlLFxyXG4gICAgICAgIENvRGlhbG9nTW9kdWxlLFxyXG4gICAgICAgIEJ1dHRvbk1vZHVsZSxcclxuICAgICAgICBGbGV4TW9kdWxlLFxyXG4gICAgICAgIFBvcHVwTW9kdWxlLmZvclJvb3QoKSxcclxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFJlbGF0aW9uQWRkcmVzc01vZHVsZSxcclxuICAgICAgICBSZWxhdGlvbkFkZHJlc3NTZWxlY3RNb2R1bGUsXHJcbiAgICAgICAgUmVsYXRpb25BZGRyZXNzVGlsZU1vZHVsZSxcclxuICAgICAgICBDYXJvdXNlbDNkTW9kdWxlLFxyXG4gICAgICAgIElucHV0VGV4dGFyZWFNb2R1bGUsXHJcbiAgICAgICAgUGlwZU1vZHVsZSxcclxuICAgICAgICBTdGVwcGVyTW9kdWxlLFxyXG4gICAgICAgIFNob3BwaW5nQ2FydFByZXZpZXdNb2R1bGUsXHJcbiAgICAgICAgQXZhdGFyTW9kdWxlLFxyXG4gICAgICAgIERlbGl2ZXJ5VHlwZVRpbGVNb2R1bGUsXHJcbiAgICAgICAgQ29sbGFwc2libGVNb2R1bGUsXHJcbiAgICAgICAgUGF5bWVudE1vZHVsZSxcclxuICAgICAgICBSZWxhdGlvblR5cGVNb2R1bGUsXHJcbiAgICAgICAgUmVsYXRpb25HZW5lcmFsTW9kdWxlLFxyXG4gICAgICAgIFJlbGF0aW9uQWRkcmVzc2VzTW9kdWxlLFxyXG4gICAgICAgIFJlbGF0aW9uQ29udGFjdERldGFpbHNNb2R1bGUsXHJcbiAgICAgICAgUmVsYXRpb25QcmVmZXJlbmNlc01vZHVsZSxcclxuICAgICAgICBUcmFuc2FjdGlvbkhlYWRlckRlbGl2ZXJ5TW9kdWxlLFxyXG4gICAgICAgIFRyYW5zYWN0aW9uSGVhZGVyUHJlZmVycmVkRGVsaXZlcnlEYXRlTW9kdWxlLFxyXG4gICAgICAgIFRyYW5zYWN0aW9uSGVhZGVyRGVsaXZlcnlEYXRlTW9kdWxlLFxyXG4gICAgICAgIFRyYW5zYWN0aW9uSGVhZGVyRGVsaXZlcnlNZXRob2RNb2R1bGUsXHJcbiAgICAgICAgVHJhbnNhY3Rpb25IZWFkZXJQYXJ0aWFsRGVsaXZlcnlNb2R1bGUsXHJcbiAgICAgICAgVHJhbnNhY3Rpb25IZWFkZXJEZWxpdmVyeU9wdGlvbnNNb2R1bGUsXHJcbiAgICAgICAgVHJhbnNhY3Rpb25IZWFkZXJSZW1hcmtzTW9kdWxlLFxyXG4gICAgICAgIFRyYW5zYWN0aW9uSGVhZGVyUmVmZXJlbmNlTW9kdWxlLFxyXG4gICAgICAgIFRyYW5zYWN0aW9uSGVhZGVyUmVsYXRpb25SZWZlcmVuY2VNb2R1bGUsXHJcbiAgICAgICAgVHJhbnNhY3Rpb25IZWFkZXJEZXBvc2l0UGVyY2VudGFnZU1vZHVsZSxcclxuICAgICAgICBUcmFuc2FjdGlvbkhlYWRlckRlcG9zaXRBbW91bnRNb2R1bGUsXHJcbiAgICAgICAgVHJhbnNhY3Rpb25IZWFkZXJEZWZpbml0aXZlTW9kdWxlLFxyXG4gICAgICAgIFRyYW5zYWN0aW9uSGVhZGVyQnJhbmNoTW9kdWxlLFxyXG4gICAgICAgIFRyYW5zYWN0aW9uSGVhZGVyQWRtaW5pc3RyYXRpdmVSZWxhdGlvbk1vZHVsZSxcclxuICAgICAgICBUcmFuc2FjdGlvbkhlYWRlck1hcmtldGluZ01vZHVsZSxcclxuICAgICAgICBUcmFuc2FjdGlvbkhlYWRlckhvbGRDb2Rlc01vZHVsZSxcclxuICAgICAgICBSZWxhdGlvblN1Z2dlc3Rpb25zTGlzdE1vZHVsZSxcclxuICAgICAgICBTY3JlZW5Db25maWd1cmF0aW9uTW9kdWxlXHJcbiAgICBdLFxyXG4gICAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICAgICAgQ2hlY2tvdXRPdmVydmlld1JlbGF0aW9uRWRpdENvbXBvbmVudCxcclxuICAgICAgICBDaGVja291dE92ZXJ2aWV3RGVsaXZlcnlFZGl0Q29tcG9uZW50LFxyXG4gICAgICAgIENoZWNrb3V0T3ZlcnZpZXdQYXltZW50Q29tcG9uZW50LFxyXG4gICAgICAgIENoZWNrb3V0Q29tcG9uZW50LFxyXG4gICAgXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIFRyYW5zYWN0aW9uU2V0dGluZ3NTZXJ2aWNlLFxyXG4gICAgICAgIENoZWNrb3V0TW9kdWxlU2VydmljZSxcclxuICAgICAgICBDaGVja291dFNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlXHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW0NoZWNrb3V0Q29tcG9uZW50LCBDaGVja291dE92ZXJ2aWV3UmVsYXRpb25FZGl0Q29tcG9uZW50XSxcclxuICAgIGJvb3RzdHJhcDogW0NoZWNrb3V0Q29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hlY2tvdXRNb2R1bGUge1xyXG59XHJcbiJdfQ==
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvY2hlY2tvdXQvY2hlY2tvdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUNMLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLFdBQVcsRUFDWCx5QkFBeUIsR0FDMUIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sNkVBQTZFLENBQUM7QUFDbEksT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sNkVBQTZFLENBQUM7QUFDbEksT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDdEYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sb0VBQW9FLENBQUM7QUFDL0csT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDM0YsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1B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LHlCQUF5QjtvQkFDekIsWUFBWTtvQkFDWixzQkFBc0I7b0JBQ3RCLGlCQUFpQjtvQkFDakIsYUFBYTtvQkFDYixrQkFBa0I7b0JBQ2xCLHFCQUFxQjtvQkFDckIsdUJBQXVCO29CQUN2Qiw0QkFBNEI7b0JBQzVCLHlCQUF5QjtvQkFDekIsK0JBQStCO29CQUMvQiw0Q0FBNEM7b0JBQzVDLG1DQUFtQztvQkFDbkMscUNBQXFDO29CQUNyQyxzQ0FBc0M7b0JBQ3RDLHNDQUFzQztvQkFDdEMsOEJBQThCO29CQUM5QixnQ0FBZ0M7b0JBQ2hDLHdDQUF3QztvQkFDeEMsd0NBQXdDO29CQUN4QyxvQ0FBb0M7b0JBQ3BDLGlDQUFpQztvQkFDakMsNkJBQTZCO29CQUM3Qiw2Q0FBNkM7b0JBQzdDLGdDQUFnQztvQkFDaEMsZ0NBQWdDO29CQUNoQyw2QkFBNkI7b0JBQzdCLHlCQUF5QjtvQkFDekIsd0JBQXdCO2lCQUN6QjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1oscUNBQXFDO29CQUNyQyxxQ0FBcUM7b0JBQ3JDLGdDQUFnQztvQkFDaEMsaUJBQWlCO2lCQUNsQjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsMEJBQTBCO29CQUMxQixxQkFBcUI7b0JBQ3JCLGtDQUFrQztpQkFDbkM7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsaUJBQWlCLEVBQUUscUNBQXFDLENBQUM7Z0JBQ25FLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO2FBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQnV0dG9uTW9kdWxlLFxyXG4gIENhcm91c2VsM2RNb2R1bGUsXHJcbiAgQ29EaWFsb2dNb2R1bGUsXHJcbiAgQ29sbGFwc2libGVNb2R1bGUsXHJcbiAgRm9ybU1vZHVsZSxcclxuICBJY29uTW9kdWxlLFxyXG4gIElucHV0Q2hlY2tib3hNb2R1bGUsXHJcbiAgSW5wdXREYXRlUGlja2VyTW9kdWxlLFxyXG4gIElucHV0TnVtYmVyUGlja2VyTW9kdWxlLFxyXG4gIElucHV0UmFkaW9CdXR0b25Nb2R1bGUsXHJcbiAgSW5wdXRUZXh0YXJlYU1vZHVsZSxcclxuICBJbnB1dFRleHRNb2R1bGUsXHJcbiAgUG9wdXBNb2R1bGUsXHJcbiAgU2NyZWVuQ29uZmlndXJhdGlvbk1vZHVsZSxcclxufSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtGbGV4TW9kdWxlfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XHJcbmltcG9ydCB7Q2hlY2tvdXRPdmVydmlld1JlbGF0aW9uRWRpdENvbXBvbmVudH0gZnJvbSAnLi9jaGVja291dC1vdmVydmlldy1yZWxhdGlvbi1lZGl0L2NoZWNrb3V0LW92ZXJ2aWV3LXJlbGF0aW9uLWVkaXQuY29tcG9uZW50JztcclxuaW1wb3J0IHtDaGVja291dE92ZXJ2aWV3RGVsaXZlcnlFZGl0Q29tcG9uZW50fSBmcm9tICcuL2NoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWVkaXQvY2hlY2tvdXQtb3ZlcnZpZXctZGVsaXZlcnktZWRpdC5jb21wb25lbnQnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2V0dGluZ3NTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNldHRpbmdzLnNlcnZpY2UnO1xyXG5pbXBvcnQge0NvcmVNb2R1bGV9IGZyb20gJy4uL2NvcmUvY29yZS5tb2R1bGUnO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtDaGVja291dENvbXBvbmVudH0gZnJvbSAnLi9jaGVja291dC5jb21wb25lbnQnO1xyXG5pbXBvcnQge0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7UmVsYXRpb25BZGRyZXNzU2VsZWN0TW9kdWxlfSBmcm9tICcuLi9yZWxhdGlvbi9yZWxhdGlvbi1hZGRyZXNzLXNlbGVjdC9yZWxhdGlvbi1hZGRyZXNzLXNlbGVjdC5tb2R1bGUnO1xyXG5pbXBvcnQge1JlbGF0aW9uQWRkcmVzc01vZHVsZX0gZnJvbSAnLi4vcmVsYXRpb24vcmVsYXRpb24tYWRkcmVzcy9yZWxhdGlvbi1hZGRyZXNzLm1vZHVsZSc7XHJcbmltcG9ydCB7UmVsYXRpb25BZGRyZXNzVGlsZU1vZHVsZX0gZnJvbSAnLi4vcmVsYXRpb24vcmVsYXRpb24tYWRkcmVzcy10aWxlL3JlbGF0aW9uLWFkZHJlc3MtdGlsZS5tb2R1bGUnO1xyXG5pbXBvcnQge1BpcGVNb2R1bGV9IGZyb20gJy4uLy4uL3BpcGUvcGlwZS5tb2R1bGUnO1xyXG5pbXBvcnQge1N0ZXBwZXJNb2R1bGV9IGZyb20gJy4uL3N0ZXBwZXIvc3RlcHBlci5tb2R1bGUnO1xyXG5pbXBvcnQge1Nob3BwaW5nQ2FydFByZXZpZXdNb2R1bGV9IGZyb20gJy4uL3Nob3BwaW5nLWNhcnQtcHJldmlldy9zaG9wcGluZy1jYXJ0LXByZXZpZXcubW9kdWxlJztcclxuaW1wb3J0IHtBdmF0YXJNb2R1bGV9IGZyb20gJy4uL2F2YXRhci9hdmF0YXIubW9kdWxlJztcclxuaW1wb3J0IHtEZWxpdmVyeVR5cGVUaWxlTW9kdWxlfSBmcm9tICcuLi9kZWxpdmVyeS10eXBlLXRpbGUvZGVsaXZlcnktdHlwZS10aWxlLm1vZHVsZSc7XHJcbmltcG9ydCB7UGF5bWVudE1vZHVsZX0gZnJvbSAnLi4vcGF5bWVudC9wYXltZW50Lm1vZHVsZSc7XHJcbmltcG9ydCB7UmVsYXRpb25UeXBlTW9kdWxlfSBmcm9tICcuLi9yZWxhdGlvbi9yZWxhdGlvbi10eXBlL3JlbGF0aW9uLXR5cGUubW9kdWxlJztcclxuaW1wb3J0IHtSZWxhdGlvbkdlbmVyYWxNb2R1bGV9IGZyb20gJy4uL3JlbGF0aW9uL3JlbGF0aW9uLWdlbmVyYWwvcmVsYXRpb24tZ2VuZXJhbC5tb2R1bGUnO1xyXG5pbXBvcnQge1JlbGF0aW9uQWRkcmVzc2VzTW9kdWxlfSBmcm9tICcuLi9yZWxhdGlvbi9yZWxhdGlvbi1hZGRyZXNzZXMvcmVsYXRpb24tYWRkcmVzc2VzLm1vZHVsZSc7XHJcbmltcG9ydCB7UmVsYXRpb25Db250YWN0RGV0YWlsc01vZHVsZX0gZnJvbSAnLi4vcmVsYXRpb24vcmVsYXRpb24tY29udGFjdC1kZXRhaWxzL3JlbGF0aW9uLWNvbnRhY3QtZGV0YWlscy5tb2R1bGUnO1xyXG5pbXBvcnQge1JlbGF0aW9uUHJlZmVyZW5jZXNNb2R1bGV9IGZyb20gJy4uL3JlbGF0aW9uL3JlbGF0aW9uLXByZWZlcmVuY2VzL3JlbGF0aW9uLXByZWZlcmVuY2VzLm1vZHVsZSc7XHJcbmltcG9ydCB7Q2hlY2tvdXRPdmVydmlld1BheW1lbnRDb21wb25lbnR9IGZyb20gJy4vY2hlY2tvdXQtb3ZlcnZpZXctcGF5bWVudC9jaGVja291dC1vdmVydmlldy1wYXltZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25IZWFkZXJEZWxpdmVyeU1vZHVsZX0gZnJvbSAnLi4vdHJhbnNhY3Rpb24taGVhZGVyL3RyYW5zYWN0aW9uLWhlYWRlci1kZWxpdmVyeS90cmFuc2FjdGlvbi1oZWFkZXItZGVsaXZlcnkubW9kdWxlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkhlYWRlclByZWZlcnJlZERlbGl2ZXJ5RGF0ZU1vZHVsZX0gZnJvbSAnLi4vdHJhbnNhY3Rpb24taGVhZGVyLWZpZWxkcy90cmFuc2FjdGlvbi1oZWFkZXItcHJlZmVycmVkLWRlbGl2ZXJ5LWRhdGUubW9kdWxlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkhlYWRlckRlbGl2ZXJ5RGF0ZU1vZHVsZX0gZnJvbSAnLi4vdHJhbnNhY3Rpb24taGVhZGVyLWZpZWxkcy90cmFuc2FjdGlvbi1oZWFkZXItZGVsaXZlcnktZGF0ZS5tb2R1bGUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSGVhZGVyRGVsaXZlcnlNZXRob2RNb2R1bGV9IGZyb20gJy4uL3RyYW5zYWN0aW9uLWhlYWRlci1maWVsZHMvdHJhbnNhY3Rpb24taGVhZGVyLWRlbGl2ZXJ5LW1ldGhvZC5tb2R1bGUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSGVhZGVyUmVtYXJrc01vZHVsZX0gZnJvbSAnLi4vdHJhbnNhY3Rpb24taGVhZGVyLWZpZWxkcy90cmFuc2FjdGlvbi1oZWFkZXItcmVtYXJrcy5tb2R1bGUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSGVhZGVyUmVmZXJlbmNlTW9kdWxlfSBmcm9tICcuLi90cmFuc2FjdGlvbi1oZWFkZXItZmllbGRzL3RyYW5zYWN0aW9uLWhlYWRlci1yZWZlcmVuY2UubW9kdWxlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkhlYWRlclJlbGF0aW9uUmVmZXJlbmNlTW9kdWxlfSBmcm9tICcuLi90cmFuc2FjdGlvbi1oZWFkZXItZmllbGRzL3RyYW5zYWN0aW9uLWhlYWRlci1yZWxhdGlvbi1yZWZlcmVuY2UubW9kdWxlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkhlYWRlckRlcG9zaXRQZXJjZW50YWdlTW9kdWxlfSBmcm9tICcuLi90cmFuc2FjdGlvbi1oZWFkZXItZmllbGRzL3RyYW5zYWN0aW9uLWhlYWRlci1kZXBvc2l0LXBlcmNlbnRhZ2UubW9kdWxlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkhlYWRlckRlcG9zaXRBbW91bnRNb2R1bGV9IGZyb20gJy4uL3RyYW5zYWN0aW9uLWhlYWRlci1maWVsZHMvdHJhbnNhY3Rpb24taGVhZGVyLWRlcG9zaXQtYW1vdW50Lm1vZHVsZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25IZWFkZXJEZWZpbml0aXZlTW9kdWxlfSBmcm9tICcuLi90cmFuc2FjdGlvbi1oZWFkZXItZmllbGRzL3RyYW5zYWN0aW9uLWhlYWRlci1kZWZpbml0aXZlLm1vZHVsZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25IZWFkZXJCcmFuY2hNb2R1bGV9IGZyb20gJy4uL3RyYW5zYWN0aW9uLWhlYWRlci1maWVsZHMvdHJhbnNhY3Rpb24taGVhZGVyLWJyYW5jaC5tb2R1bGUnO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uSGVhZGVyQWRtaW5pc3RyYXRpdmVSZWxhdGlvbk1vZHVsZVxyXG59IGZyb20gJy4uL3RyYW5zYWN0aW9uLWhlYWRlci1maWVsZHMvdHJhbnNhY3Rpb24taGVhZGVyLWFkbWluaXN0cmF0aXZlLXJlbGF0aW9uLm1vZHVsZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25IZWFkZXJNYXJrZXRpbmdNb2R1bGV9IGZyb20gJy4uL3RyYW5zYWN0aW9uLWhlYWRlci1maWVsZHMvdHJhbnNhY3Rpb24taGVhZGVyLW1hcmtldGluZy5tb2R1bGUnO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uSGVhZGVyRGVsaXZlcnlPcHRpb25zTW9kdWxlXHJcbn0gZnJvbSAnLi4vdHJhbnNhY3Rpb24taGVhZGVyLWZpZWxkcy90cmFuc2FjdGlvbi1oZWFkZXItZGVsaXZlcnktb3B0aW9ucy90cmFuc2FjdGlvbi1oZWFkZXItZGVsaXZlcnktb3B0aW9ucy5tb2R1bGUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSGVhZGVySG9sZENvZGVzTW9kdWxlfSBmcm9tICcuLi90cmFuc2FjdGlvbi1oZWFkZXItZmllbGRzL3RyYW5zYWN0aW9uLWhlYWRlci1ob2xkLWNvZGVzLm1vZHVsZSc7XHJcbmltcG9ydCB7UmVsYXRpb25TdWdnZXN0aW9uc0xpc3RNb2R1bGV9IGZyb20gJy4uL3JlbGF0aW9uL3JlbGF0aW9uLXN1Z2dlc3Rpb25zLWxpc3QvcmVsYXRpb24tc3VnZ2VzdGlvbnMtbGlzdC5tb2R1bGUnO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uSGVhZGVyUGFydGlhbERlbGl2ZXJ5TW9kdWxlXHJcbn0gZnJvbSAnLi4vdHJhbnNhY3Rpb24taGVhZGVyLWZpZWxkcy90cmFuc2FjdGlvbi1oZWFkZXItcGFydGlhbC1kZWxpdmVyeS90cmFuc2FjdGlvbi1oZWFkZXItcGFydGlhbC1kZWxpdmVyeS5tb2R1bGUnO1xyXG5pbXBvcnQge0NoZWNrb3V0TW9kdWxlU2VydmljZX0gZnJvbSAnLi9zZXJ2aWNlL2NoZWNrb3V0LW1vZHVsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtDaGVja291dFNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuL3NlcnZpY2UvY2hlY2tvdXQtc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7U3VnZ2VzdGlvbnNTaWRlYmFyTW9kdWxlfSBmcm9tICcuLi9yZWxhdGlvbi9zdWdnZXN0aW9ucy1zaWRlYmFyL3N1Z2dlc3Rpb25zLXNpZGViYXIubW9kdWxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29yZU1vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEljb25Nb2R1bGUsXHJcbiAgICBJbnB1dFRleHRNb2R1bGUsXHJcbiAgICBJbnB1dENoZWNrYm94TW9kdWxlLFxyXG4gICAgSW5wdXRSYWRpb0J1dHRvbk1vZHVsZSxcclxuICAgIEZvcm1Nb2R1bGUsXHJcbiAgICBJbnB1dERhdGVQaWNrZXJNb2R1bGUsXHJcbiAgICBJbnB1dE51bWJlclBpY2tlck1vZHVsZSxcclxuICAgIENvRGlhbG9nTW9kdWxlLFxyXG4gICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgRmxleE1vZHVsZSxcclxuICAgIFBvcHVwTW9kdWxlLmZvclJvb3QoKSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlbGF0aW9uQWRkcmVzc01vZHVsZSxcclxuICAgIFJlbGF0aW9uQWRkcmVzc1NlbGVjdE1vZHVsZSxcclxuICAgIFJlbGF0aW9uQWRkcmVzc1RpbGVNb2R1bGUsXHJcbiAgICBDYXJvdXNlbDNkTW9kdWxlLFxyXG4gICAgSW5wdXRUZXh0YXJlYU1vZHVsZSxcclxuICAgIFBpcGVNb2R1bGUsXHJcbiAgICBTdGVwcGVyTW9kdWxlLFxyXG4gICAgU2hvcHBpbmdDYXJ0UHJldmlld01vZHVsZSxcclxuICAgIEF2YXRhck1vZHVsZSxcclxuICAgIERlbGl2ZXJ5VHlwZVRpbGVNb2R1bGUsXHJcbiAgICBDb2xsYXBzaWJsZU1vZHVsZSxcclxuICAgIFBheW1lbnRNb2R1bGUsXHJcbiAgICBSZWxhdGlvblR5cGVNb2R1bGUsXHJcbiAgICBSZWxhdGlvbkdlbmVyYWxNb2R1bGUsXHJcbiAgICBSZWxhdGlvbkFkZHJlc3Nlc01vZHVsZSxcclxuICAgIFJlbGF0aW9uQ29udGFjdERldGFpbHNNb2R1bGUsXHJcbiAgICBSZWxhdGlvblByZWZlcmVuY2VzTW9kdWxlLFxyXG4gICAgVHJhbnNhY3Rpb25IZWFkZXJEZWxpdmVyeU1vZHVsZSxcclxuICAgIFRyYW5zYWN0aW9uSGVhZGVyUHJlZmVycmVkRGVsaXZlcnlEYXRlTW9kdWxlLFxyXG4gICAgVHJhbnNhY3Rpb25IZWFkZXJEZWxpdmVyeURhdGVNb2R1bGUsXHJcbiAgICBUcmFuc2FjdGlvbkhlYWRlckRlbGl2ZXJ5TWV0aG9kTW9kdWxlLFxyXG4gICAgVHJhbnNhY3Rpb25IZWFkZXJQYXJ0aWFsRGVsaXZlcnlNb2R1bGUsXHJcbiAgICBUcmFuc2FjdGlvbkhlYWRlckRlbGl2ZXJ5T3B0aW9uc01vZHVsZSxcclxuICAgIFRyYW5zYWN0aW9uSGVhZGVyUmVtYXJrc01vZHVsZSxcclxuICAgIFRyYW5zYWN0aW9uSGVhZGVyUmVmZXJlbmNlTW9kdWxlLFxyXG4gICAgVHJhbnNhY3Rpb25IZWFkZXJSZWxhdGlvblJlZmVyZW5jZU1vZHVsZSxcclxuICAgIFRyYW5zYWN0aW9uSGVhZGVyRGVwb3NpdFBlcmNlbnRhZ2VNb2R1bGUsXHJcbiAgICBUcmFuc2FjdGlvbkhlYWRlckRlcG9zaXRBbW91bnRNb2R1bGUsXHJcbiAgICBUcmFuc2FjdGlvbkhlYWRlckRlZmluaXRpdmVNb2R1bGUsXHJcbiAgICBUcmFuc2FjdGlvbkhlYWRlckJyYW5jaE1vZHVsZSxcclxuICAgIFRyYW5zYWN0aW9uSGVhZGVyQWRtaW5pc3RyYXRpdmVSZWxhdGlvbk1vZHVsZSxcclxuICAgIFRyYW5zYWN0aW9uSGVhZGVyTWFya2V0aW5nTW9kdWxlLFxyXG4gICAgVHJhbnNhY3Rpb25IZWFkZXJIb2xkQ29kZXNNb2R1bGUsXHJcbiAgICBSZWxhdGlvblN1Z2dlc3Rpb25zTGlzdE1vZHVsZSxcclxuICAgIFNjcmVlbkNvbmZpZ3VyYXRpb25Nb2R1bGUsXHJcbiAgICBTdWdnZXN0aW9uc1NpZGViYXJNb2R1bGVcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgQ2hlY2tvdXRPdmVydmlld1JlbGF0aW9uRWRpdENvbXBvbmVudCxcclxuICAgIENoZWNrb3V0T3ZlcnZpZXdEZWxpdmVyeUVkaXRDb21wb25lbnQsXHJcbiAgICBDaGVja291dE92ZXJ2aWV3UGF5bWVudENvbXBvbmVudCxcclxuICAgIENoZWNrb3V0Q29tcG9uZW50LFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBUcmFuc2FjdGlvblNldHRpbmdzU2VydmljZSxcclxuICAgIENoZWNrb3V0TW9kdWxlU2VydmljZSxcclxuICAgIENoZWNrb3V0U2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2VcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtDaGVja291dENvbXBvbmVudCwgQ2hlY2tvdXRPdmVydmlld1JlbGF0aW9uRWRpdENvbXBvbmVudF0sXHJcbiAgYm9vdHN0cmFwOiBbQ2hlY2tvdXRDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja291dE1vZHVsZSB7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Directive, EventEmitter, HostBinding, Input, Output } from '@angular/core';
|
|
3
|
+
import { IonePaymentStatusCode } from '@colijnit/transactionapi/build/enum/ione-payment-status-code.enum';
|
|
4
|
+
import { Icon } from '../../../enum/icon.enum';
|
|
5
|
+
import { TransactionService } from '../../../service/transaction.service';
|
|
6
|
+
import { PaymentService } from '../../../service/payment.service';
|
|
7
|
+
import { TransactionEventService } from '../../../service/transaction-event.service';
|
|
8
|
+
import { IconCacheService } from '../../../service/icon-cache.service';
|
|
9
|
+
import { DoPaymentRequest } from '@colijnit/transactionapi/build/model/do-payment-request';
|
|
10
|
+
export class TransactionPaymentBaseComponent {
|
|
11
|
+
constructor(transactionService, paymentService, transactionEventService, iconCacheService) {
|
|
12
|
+
this.transactionService = transactionService;
|
|
13
|
+
this.paymentService = paymentService;
|
|
14
|
+
this.transactionEventService = transactionEventService;
|
|
15
|
+
this.iconCacheService = iconCacheService;
|
|
16
|
+
this.icons = Icon;
|
|
17
|
+
this.showKeyPad = true;
|
|
18
|
+
this.updateDepositAmount = true;
|
|
19
|
+
this.payed = new EventEmitter();
|
|
20
|
+
this.paymentMethodIdx = 0;
|
|
21
|
+
this.cashRegisterIdx = 0;
|
|
22
|
+
this.paymentMethods = [];
|
|
23
|
+
this.cashRegisters = [];
|
|
24
|
+
this.showCashRegisters = false;
|
|
25
|
+
this.showPspQrCode = false;
|
|
26
|
+
this.showLoader = true;
|
|
27
|
+
this.amountToPay = 0;
|
|
28
|
+
this.depositAmount = 0;
|
|
29
|
+
this.statusMessage = "";
|
|
30
|
+
this._amount = 0;
|
|
31
|
+
this._paymentStatusPollIntervalMs = 5000;
|
|
32
|
+
this._paymentStatusMaxPollInterval = 10;
|
|
33
|
+
this._paymentStatusPollIntervalCount = 0;
|
|
34
|
+
this._subs = [];
|
|
35
|
+
}
|
|
36
|
+
set amount(value) {
|
|
37
|
+
this._amount = value;
|
|
38
|
+
}
|
|
39
|
+
get amount() {
|
|
40
|
+
return this._amount;
|
|
41
|
+
}
|
|
42
|
+
showClass() {
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
ngOnInit() {
|
|
46
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
// if (this.updateDepositAmount) {
|
|
48
|
+
// await this._transactionService.updateHeaderTransactionDepositAmount(this.transactionUuid, this.amountToPay, true);
|
|
49
|
+
// }
|
|
50
|
+
this._getPaymentMethods().then(() => __awaiter(this, void 0, void 0, function* () {
|
|
51
|
+
this.showLoader = false;
|
|
52
|
+
yield this._getDepositPaymentInfo();
|
|
53
|
+
this._prepareCashRegisters();
|
|
54
|
+
this.paymentInfoReady();
|
|
55
|
+
}));
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
ngOnDestroy() {
|
|
59
|
+
this._subs.forEach(s => s.unsubscribe());
|
|
60
|
+
this._clearInterval();
|
|
61
|
+
}
|
|
62
|
+
paymentMethodSelected(method, index) {
|
|
63
|
+
this.paymentMethodIdx = index;
|
|
64
|
+
this._prepareCashRegisters();
|
|
65
|
+
}
|
|
66
|
+
cashRegisterSelected(cashRegister, index) {
|
|
67
|
+
this.cashRegisterIdx = index;
|
|
68
|
+
this.cashRegisterNr = cashRegister.nr;
|
|
69
|
+
this.cashRegisterGroupId = cashRegister.group;
|
|
70
|
+
}
|
|
71
|
+
handlePayment() {
|
|
72
|
+
this.statusMessage = "";
|
|
73
|
+
if (this.currentPaymentMethod && this.currentPaymentMethod.externalSourceId) { // psp payment
|
|
74
|
+
if (this.currentPaymentMethod.pinTerminal) {
|
|
75
|
+
this.paymentService.doPinPayment(this.transId, this.currentPaymentMethod.code, this.cashRegisterNr, this.cashRegisterGroupId, this.amountToPay).then((pspTransactionUuid) => {
|
|
76
|
+
if (pspTransactionUuid) {
|
|
77
|
+
this._paymentStatusPollIntervalCount = 0;
|
|
78
|
+
this._waitForPinPaymentStatus(pspTransactionUuid);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
this.paymentService.createIonePaymentLinkAndQRCode(this.transactionUuid, this.amountToPay, this.currentPaymentMethod.code).then((response) => {
|
|
84
|
+
this._paymentResult = response;
|
|
85
|
+
if (this._paymentResult && this._paymentResult.imageBase64) {
|
|
86
|
+
this.qrCodeImage = this._dataUriToBase64(this._paymentResult.imageBase64, 'image/png');
|
|
87
|
+
this.showPspQrCode = true;
|
|
88
|
+
this._paymentStatusPollIntervalCount = 0;
|
|
89
|
+
this._waitForPaymentStatus();
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
const request = new DoPaymentRequest();
|
|
96
|
+
request.transId = this.transId;
|
|
97
|
+
request.paymentMethodCode = this.currentPaymentMethod.code;
|
|
98
|
+
request.amount = this.amountToPay;
|
|
99
|
+
request.currencyId = this.currencyId;
|
|
100
|
+
request.cashRegisterNr = this.cashRegisterNr;
|
|
101
|
+
request.cashRegisterGroupId = this.cashRegisterGroupId;
|
|
102
|
+
request.cashRegisterDrawerId = null;
|
|
103
|
+
this.paymentService.doPayment(request).then(() => __awaiter(this, void 0, void 0, function* () {
|
|
104
|
+
// this.showKeyPad = false;
|
|
105
|
+
yield this._getDepositPaymentInfo();
|
|
106
|
+
this._handlePayment(false);
|
|
107
|
+
if (this.amountToPay === 0) {
|
|
108
|
+
this._handlePayment();
|
|
109
|
+
}
|
|
110
|
+
}));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
handleKeyPadModelChange(model) {
|
|
114
|
+
this.amountToPay = model;
|
|
115
|
+
}
|
|
116
|
+
paymentInfoReady() {
|
|
117
|
+
}
|
|
118
|
+
_getDepositPaymentInfo() {
|
|
119
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
120
|
+
if (this.updateDepositAmount) {
|
|
121
|
+
const info = yield this.paymentService.getDepositPaymentInfo(this.transactionUuid);
|
|
122
|
+
if (info) {
|
|
123
|
+
this.amountToPay = info.depositRemainderAmount;
|
|
124
|
+
this.depositAmount = info.depositAmount;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
this.amountToPay = this._amount;
|
|
129
|
+
this.depositAmount = this.amountToPay;
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
_dataUriToBase64(uri, mimeType) {
|
|
134
|
+
return uri ? "data:" + mimeType + ";base64," + uri : "";
|
|
135
|
+
}
|
|
136
|
+
_waitForPaymentStatus() {
|
|
137
|
+
if (this._paymentResult && this._paymentResult.paymentLinkUUID) {
|
|
138
|
+
this._paymentStatusInterval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
|
|
139
|
+
if (this._paymentStatusPollIntervalCount >= this._paymentStatusMaxPollInterval) {
|
|
140
|
+
this._clearInterval();
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
const status = yield this.paymentService.getPaymentLinkStatus(this._paymentResult.paymentLinkUUID);
|
|
144
|
+
if (status.payedDate) {
|
|
145
|
+
this._clearInterval();
|
|
146
|
+
this.showPspQrCode = false;
|
|
147
|
+
yield this._getDepositPaymentInfo();
|
|
148
|
+
if (this.amountToPay === 0) {
|
|
149
|
+
this._handlePayment();
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
this._paymentStatusPollIntervalCount++;
|
|
153
|
+
}
|
|
154
|
+
}), this._paymentStatusPollIntervalMs);
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
this._clearInterval();
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
_waitForPinPaymentStatus(pspTransactionUuid) {
|
|
161
|
+
if (pspTransactionUuid) {
|
|
162
|
+
this._paymentStatusInterval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
|
|
163
|
+
if (this._paymentStatusPollIntervalCount >= this._paymentStatusMaxPollInterval) {
|
|
164
|
+
this._clearInterval();
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
const pinStatus = yield this.paymentService.getPspTransactionStatus(pspTransactionUuid);
|
|
168
|
+
if (pinStatus && pinStatus.status) {
|
|
169
|
+
this.statusMessage = pinStatus.status.description;
|
|
170
|
+
}
|
|
171
|
+
if (pinStatus.statusDate && pinStatus.status && pinStatus.status.endStatus) {
|
|
172
|
+
this._clearInterval();
|
|
173
|
+
if (pinStatus.status.code === IonePaymentStatusCode.PAID) {
|
|
174
|
+
yield this._getDepositPaymentInfo();
|
|
175
|
+
if (this.amountToPay === 0) {
|
|
176
|
+
this._handlePayment();
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
this._paymentStatusPollIntervalCount++;
|
|
181
|
+
}
|
|
182
|
+
}), this._paymentStatusPollIntervalMs);
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
this._clearInterval();
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
_clearInterval() {
|
|
189
|
+
clearInterval(this._paymentStatusInterval);
|
|
190
|
+
this._paymentStatusInterval = undefined;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
*
|
|
194
|
+
* @private
|
|
195
|
+
*/
|
|
196
|
+
_prepareCashRegisters() {
|
|
197
|
+
this.currentPaymentMethod = this.paymentMethods[this.paymentMethodIdx].payment;
|
|
198
|
+
if (this.currentPaymentMethod && (!this.currentPaymentMethod.externalSourceId || this.currentPaymentMethod.pinTerminal)) {
|
|
199
|
+
this.cashRegisters.length = 0;
|
|
200
|
+
this.currentPaymentMethod.posGroups.forEach(crg => {
|
|
201
|
+
this._getCashRegisters(this.branch, crg.id);
|
|
202
|
+
});
|
|
203
|
+
this.showCashRegisters = true;
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
this.showCashRegisters = false;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
_getCashRegisters(branch, group) {
|
|
210
|
+
this.transactionService.getCashRegisters(branch, group).then((cashRegisters) => {
|
|
211
|
+
this.cashRegisters.push(...cashRegisters);
|
|
212
|
+
const currentCashRegister = this.cashRegisters[this.cashRegisterIdx];
|
|
213
|
+
if (currentCashRegister) {
|
|
214
|
+
this.cashRegisterNr = currentCashRegister.nr;
|
|
215
|
+
this.cashRegisterGroupId = currentCashRegister.group;
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
_getPaymentMethods() {
|
|
220
|
+
return new Promise((resolve) => {
|
|
221
|
+
this.paymentMethods.length = 0;
|
|
222
|
+
this.paymentService.getPaymentMethodsViewModels(this.branch).then((methods) => {
|
|
223
|
+
this.paymentMethods = methods.slice();
|
|
224
|
+
resolve();
|
|
225
|
+
});
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
_handlePayment(emitPayed = true) {
|
|
229
|
+
this.transactionEventService.transactionPaymentDone.next();
|
|
230
|
+
if (emitPayed) {
|
|
231
|
+
this.payed.emit();
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
TransactionPaymentBaseComponent.decorators = [
|
|
236
|
+
{ type: Directive }
|
|
237
|
+
];
|
|
238
|
+
TransactionPaymentBaseComponent.ctorParameters = () => [
|
|
239
|
+
{ type: TransactionService },
|
|
240
|
+
{ type: PaymentService },
|
|
241
|
+
{ type: TransactionEventService },
|
|
242
|
+
{ type: IconCacheService }
|
|
243
|
+
];
|
|
244
|
+
TransactionPaymentBaseComponent.propDecorators = {
|
|
245
|
+
transId: [{ type: Input }],
|
|
246
|
+
transactionUuid: [{ type: Input }],
|
|
247
|
+
branch: [{ type: Input }],
|
|
248
|
+
amount: [{ type: Input }],
|
|
249
|
+
currencyId: [{ type: Input }],
|
|
250
|
+
cashRegisterNr: [{ type: Input }],
|
|
251
|
+
cashRegisterGroupId: [{ type: Input }],
|
|
252
|
+
showKeyPad: [{ type: Input }],
|
|
253
|
+
updateDepositAmount: [{ type: Input }],
|
|
254
|
+
payed: [{ type: Output }],
|
|
255
|
+
showClass: [{ type: HostBinding, args: ["class.co-payment",] }]
|
|
256
|
+
};
|
|
257
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcGF5bWVudC1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L2NvcmUvYmFzZS90cmFuc2FjdGlvbi1wYXltZW50LWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQVksU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBT25JLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG1FQUFtRSxDQUFDO0FBRXhHLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUU3QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDbkYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFHekYsTUFBTSxPQUFnQiwrQkFBK0I7SUFrRW5ELFlBQ1ksa0JBQXNDLEVBQ3RDLGNBQThCLEVBQzlCLHVCQUFnRCxFQUNuRCxnQkFBa0M7UUFIL0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNuRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBckUzQixVQUFLLEdBQWdCLElBQUksQ0FBQztRQThCbkMsZUFBVSxHQUFZLElBQUksQ0FBQztRQUczQix3QkFBbUIsR0FBWSxJQUFJLENB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QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUEyQixFQUFFLEVBQUU7Z0JBQ2hHLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN0QyxPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sY0FBYyxDQUFDLFlBQXFCLElBQUk7UUFDOUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNELElBQUksU0FBUyxFQUFFO1lBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNuQjtJQUNILENBQUM7OztZQTFRRixTQUFTOzs7WUFORixrQkFBa0I7WUFDbEIsY0FBYztZQUNkLHVCQUF1QjtZQUN2QixnQkFBZ0I7OztzQkFPckIsS0FBSzs4QkFHTCxLQUFLO3FCQUdMLEtBQUs7cUJBR0wsS0FBSzt5QkFTTCxLQUFLOzZCQUdMLEtBQUs7a0NBR0wsS0FBSzt5QkFHTCxLQUFLO2tDQUdMLEtBQUs7b0JBR0wsTUFBTTt3QkFHTixXQUFXLFNBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDYXNoUmVnaXN0ZXJ9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jYXNoLXJlZ2lzdGVyJztcclxuaW1wb3J0IHtQYXltZW50TWV0aG9kfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGF5bWVudC1tZXRob2QuYm8nO1xyXG5pbXBvcnQge1BheW1lbnRMaW5rU3RhdHVzfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGF5bWVudC1saW5rLXN0YXR1cy5ibyc7XHJcbmltcG9ydCB7Q3JlYXRlUGF5bWVudExpbmtSZXN1bHR9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jcmVhdGUtcGF5bWVudC1saW5rLXJlc3VsdC5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25EZXBvc2l0UGF5bWVudEluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1kZXBvc2l0LXBheW1lbnQtaW5mby5ibyc7XHJcbmltcG9ydCB7UHNwVHJhbnNhY3Rpb25TdGF0dXN9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wc3AtdHJhbnNhY3Rpb24tc3RhdHVzLmJvJztcclxuaW1wb3J0IHtJb25lUGF5bWVudFN0YXR1c0NvZGV9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL2lvbmUtcGF5bWVudC1zdGF0dXMtY29kZS5lbnVtJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuaW1wb3J0IHtQYXltZW50Vmlld21vZGVsfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9wYXltZW50LnZpZXdtb2RlbCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1BheW1lbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3BheW1lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RvUGF5bWVudFJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kby1wYXltZW50LXJlcXVlc3QnO1xyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvblBheW1lbnRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB0cmFuc0lkOiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uVXVpZDogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBicmFuY2g6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGFtb3VudCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9hbW91bnQgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYW1vdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fYW1vdW50O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgY3VycmVuY3lJZDogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjYXNoUmVnaXN0ZXJOcjogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjYXNoUmVnaXN0ZXJHcm91cElkOiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dLZXlQYWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB1cGRhdGVEZXBvc2l0QW1vdW50OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHBheWVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXBheW1lbnRcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcGF5bWVudE1ldGhvZElkeDogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgY2FzaFJlZ2lzdGVySWR4OiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBwYXltZW50TWV0aG9kczogUGF5bWVudFZpZXdtb2RlbFtdID0gW107XHJcbiAgcHVibGljIGNhc2hSZWdpc3RlcnM6IGFueVtdID0gW107XHJcbiAgcHVibGljIHNob3dDYXNoUmVnaXN0ZXJzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dQc3BRckNvZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgY3VycmVudFBheW1lbnRNZXRob2Q6IFBheW1lbnRNZXRob2Q7XHJcbiAgcHVibGljIHFyQ29kZUltYWdlOiBzdHJpbmc7XHJcbiAgcHVibGljIHNob3dMb2FkZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHB1YmxpYyBhbW91bnRUb1BheTogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgZGVwb3NpdEFtb3VudDogbnVtYmVyID0gMDtcclxuXHJcbiAgcHVibGljIHN0YXR1c01lc3NhZ2U6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIHByaXZhdGUgX2Ftb3VudDogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIF9wYXltZW50U3RhdHVzSW50ZXJ2YWw6IGFueTtcclxuICBwcml2YXRlIF9wYXltZW50U3RhdHVzUG9sbEludGVydmFsTXM6IG51bWJlciA9IDUwMDA7XHJcbiAgcHJpdmF0ZSBfcGF5bWVudFN0YXR1c01heFBvbGxJbnRlcnZhbDogbnVtYmVyID0gMTA7XHJcbiAgcHJpdmF0ZSBfcGF5bWVudFN0YXR1c1BvbGxJbnRlcnZhbENvdW50OiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgX3BheW1lbnRSZXN1bHQ6IENyZWF0ZVBheW1lbnRMaW5rUmVzdWx0O1xyXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIHRyYW5zYWN0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIHBheW1lbnRTZXJ2aWNlOiBQYXltZW50U2VydmljZSxcclxuICAgIHByb3RlY3RlZCB0cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSApe1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvLyBpZiAodGhpcy51cGRhdGVEZXBvc2l0QW1vdW50KSB7XHJcbiAgICAvLyAgIGF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uU2VydmljZS51cGRhdGVIZWFkZXJUcmFuc2FjdGlvbkRlcG9zaXRBbW91bnQodGhpcy50cmFuc2FjdGlvblV1aWQsIHRoaXMuYW1vdW50VG9QYXksIHRydWUpO1xyXG4gICAgLy8gfVxyXG4gICAgdGhpcy5fZ2V0UGF5bWVudE1ldGhvZHMoKS50aGVuKGFzeW5jICgpID0+IHtcclxuICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIGF3YWl0IHRoaXMuX2dldERlcG9zaXRQYXltZW50SW5mbygpO1xyXG4gICAgICB0aGlzLl9wcmVwYXJlQ2FzaFJlZ2lzdGVycygpO1xyXG4gICAgICB0aGlzLnBheW1lbnRJbmZvUmVhZHkoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgdGhpcy5fY2xlYXJJbnRlcnZhbCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHBheW1lbnRNZXRob2RTZWxlY3RlZChtZXRob2Q6IFBheW1lbnRNZXRob2QsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMucGF5bWVudE1ldGhvZElkeCA9IGluZGV4O1xyXG4gICAgdGhpcy5fcHJlcGFyZUNhc2hSZWdpc3RlcnMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjYXNoUmVnaXN0ZXJTZWxlY3RlZChjYXNoUmVnaXN0ZXI6IENhc2hSZWdpc3RlciwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5jYXNoUmVnaXN0ZXJJZHggPSBpbmRleDtcclxuICAgIHRoaXMuY2FzaFJlZ2lzdGVyTnIgPSBjYXNoUmVnaXN0ZXIubnI7XHJcbiAgICB0aGlzLmNhc2hSZWdpc3Rlckdyb3VwSWQgPSBjYXNoUmVnaXN0ZXIuZ3JvdXA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlUGF5bWVudCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RhdHVzTWVzc2FnZSA9IFwiXCI7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50UGF5bWVudE1ldGhvZCAmJiB0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kLmV4dGVybmFsU291cmNlSWQpIHsgLy8gcHNwIHBheW1lbnRcclxuICAgICAgaWYgKHRoaXMuY3VycmVudFBheW1lbnRNZXRob2QucGluVGVybWluYWwpIHtcclxuICAgICAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmRvUGluUGF5bWVudCh0aGlzLnRyYW5zSWQsIHRoaXMuY3VycmVudFBheW1lbnRNZXRob2QuY29kZSwgdGhpcy5jYXNoUmVnaXN0ZXJOciwgdGhpcy5jYXNoUmVnaXN0ZXJHcm91cElkLCB0aGlzLmFtb3VudFRvUGF5KS50aGVuKChwc3BUcmFuc2FjdGlvblV1aWQ6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgaWYgKHBzcFRyYW5zYWN0aW9uVXVpZCkge1xyXG4gICAgICAgICAgICB0aGlzLl9wYXltZW50U3RhdHVzUG9sbEludGVydmFsQ291bnQgPSAwO1xyXG4gICAgICAgICAgICB0aGlzLl93YWl0Rm9yUGluUGF5bWVudFN0YXR1cyhwc3BUcmFuc2FjdGlvblV1aWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucGF5bWVudFNlcnZpY2UuY3JlYXRlSW9uZVBheW1lbnRMaW5rQW5kUVJDb2RlKHRoaXMudHJhbnNhY3Rpb25VdWlkLCB0aGlzLmFtb3VudFRvUGF5LCB0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kLmNvZGUpLnRoZW4oKHJlc3BvbnNlOiBDcmVhdGVQYXltZW50TGlua1Jlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fcGF5bWVudFJlc3VsdCA9IHJlc3BvbnNlO1xyXG4gICAgICAgICAgaWYgKHRoaXMuX3BheW1lbnRSZXN1bHQgJiYgdGhpcy5fcGF5bWVudFJlc3VsdC5pbWFnZUJhc2U2NCkge1xyXG4gICAgICAgICAgICB0aGlzLnFyQ29kZUltYWdlID0gdGhpcy5fZGF0YVVyaVRvQmFzZTY0KHRoaXMuX3BheW1lbnRSZXN1bHQuaW1hZ2VCYXNlNjQsICdpbWFnZS9wbmcnKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93UHNwUXJDb2RlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5fcGF5bWVudFN0YXR1c1BvbGxJbnRlcnZhbENvdW50ID0gMDtcclxuICAgICAgICAgICAgdGhpcy5fd2FpdEZvclBheW1lbnRTdGF0dXMoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgcmVxdWVzdDogRG9QYXltZW50UmVxdWVzdCA9IG5ldyBEb1BheW1lbnRSZXF1ZXN0KCk7XHJcbiAgICAgIHJlcXVlc3QudHJhbnNJZCA9IHRoaXMudHJhbnNJZDtcclxuICAgICAgcmVxdWVzdC5wYXltZW50TWV0aG9kQ29kZSA9IHRoaXMuY3VycmVudFBheW1lbnRNZXRob2QuY29kZTtcclxuICAgICAgcmVxdWVzdC5hbW91bnQgPSB0aGlzLmFtb3VudFRvUGF5O1xyXG4gICAgICByZXF1ZXN0LmN1cnJlbmN5SWQgPSB0aGlzLmN1cnJlbmN5SWQ7XHJcbiAgICAgIHJlcXVlc3QuY2FzaFJlZ2lzdGVyTnIgPSB0aGlzLmNhc2hSZWdpc3Rlck5yO1xyXG4gICAgICByZXF1ZXN0LmNhc2hSZWdpc3Rlckdyb3VwSWQgPSB0aGlzLmNhc2hSZWdpc3Rlckdyb3VwSWQ7XHJcbiAgICAgIHJlcXVlc3QuY2FzaFJlZ2lzdGVyRHJhd2VySWQgPSBudWxsO1xyXG4gICAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmRvUGF5bWVudChyZXF1ZXN0KS50aGVuKGFzeW5jICgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLnNob3dLZXlQYWQgPSBmYWxzZTtcclxuICAgICAgICBhd2FpdCB0aGlzLl9nZXREZXBvc2l0UGF5bWVudEluZm8oKTtcclxuICAgICAgICB0aGlzLl9oYW5kbGVQYXltZW50KGZhbHNlKTtcclxuICAgICAgICBpZiAodGhpcy5hbW91bnRUb1BheSA9PT0gMCkge1xyXG4gICAgICAgICAgdGhpcy5faGFuZGxlUGF5bWVudCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlS2V5UGFkTW9kZWxDaGFuZ2UobW9kZWw6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5hbW91bnRUb1BheSA9IG1vZGVsO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHBheW1lbnRJbmZvUmVhZHkoKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfZ2V0RGVwb3NpdFBheW1lbnRJbmZvKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMudXBkYXRlRGVwb3NpdEFtb3VudCkge1xyXG4gICAgICBjb25zdCBpbmZvOiBUcmFuc2FjdGlvbkRlcG9zaXRQYXltZW50SW5mbyA9IGF3YWl0IHRoaXMucGF5bWVudFNlcnZpY2UuZ2V0RGVwb3NpdFBheW1lbnRJbmZvKHRoaXMudHJhbnNhY3Rpb25VdWlkKTtcclxuICAgICAgaWYgKGluZm8pIHtcclxuICAgICAgICB0aGlzLmFtb3VudFRvUGF5ID0gaW5mby5kZXBvc2l0UmVtYWluZGVyQW1vdW50O1xyXG4gICAgICAgIHRoaXMuZGVwb3NpdEFtb3VudCA9IGluZm8uZGVwb3NpdEFtb3VudDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hbW91bnRUb1BheSA9IHRoaXMuX2Ftb3VudDtcclxuICAgICAgdGhpcy5kZXBvc2l0QW1vdW50ID0gdGhpcy5hbW91bnRUb1BheTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2RhdGFVcmlUb0Jhc2U2NCh1cmk6IHN0cmluZywgbWltZVR5cGU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdXJpID8gXCJkYXRhOlwiICsgbWltZVR5cGUgKyBcIjtiYXNlNjQsXCIgKyB1cmkgOiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfd2FpdEZvclBheW1lbnRTdGF0dXMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fcGF5bWVudFJlc3VsdCAmJiB0aGlzLl9wYXltZW50UmVzdWx0LnBheW1lbnRMaW5rVVVJRCkge1xyXG4gICAgICB0aGlzLl9wYXltZW50U3RhdHVzSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3BheW1lbnRTdGF0dXNQb2xsSW50ZXJ2YWxDb3VudCA+PSB0aGlzLl9wYXltZW50U3RhdHVzTWF4UG9sbEludGVydmFsKSB7XHJcbiAgICAgICAgICB0aGlzLl9jbGVhckludGVydmFsKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IHN0YXR1czogUGF5bWVudExpbmtTdGF0dXMgPSBhd2FpdCB0aGlzLnBheW1lbnRTZXJ2aWNlLmdldFBheW1lbnRMaW5rU3RhdHVzKHRoaXMuX3BheW1lbnRSZXN1bHQucGF5bWVudExpbmtVVUlEKTtcclxuICAgICAgICAgIGlmIChzdGF0dXMucGF5ZWREYXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NsZWFySW50ZXJ2YWwoKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93UHNwUXJDb2RlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2dldERlcG9zaXRQYXltZW50SW5mbygpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5hbW91bnRUb1BheSA9PT0gMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuX2hhbmRsZVBheW1lbnQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5fcGF5bWVudFN0YXR1c1BvbGxJbnRlcnZhbENvdW50Kys7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCB0aGlzLl9wYXltZW50U3RhdHVzUG9sbEludGVydmFsTXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fY2xlYXJJbnRlcnZhbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfd2FpdEZvclBpblBheW1lbnRTdGF0dXMocHNwVHJhbnNhY3Rpb25VdWlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmIChwc3BUcmFuc2FjdGlvblV1aWQpIHtcclxuICAgICAgdGhpcy5fcGF5bWVudFN0YXR1c0ludGVydmFsID0gc2V0SW50ZXJ2YWwoYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLl9wYXltZW50U3RhdHVzUG9sbEludGVydmFsQ291bnQgPj0gdGhpcy5fcGF5bWVudFN0YXR1c01heFBvbGxJbnRlcnZhbCkge1xyXG4gICAgICAgICAgdGhpcy5fY2xlYXJJbnRlcnZhbCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBwaW5TdGF0dXM6IFBzcFRyYW5zYWN0aW9uU3RhdHVzID0gYXdhaXQgdGhpcy5wYXltZW50U2VydmljZS5nZXRQc3BUcmFuc2FjdGlvblN0YXR1cyhwc3BUcmFuc2FjdGlvblV1aWQpO1xyXG4gICAgICAgICAgaWYgKHBpblN0YXR1cyAmJiBwaW5TdGF0dXMuc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzTWVzc2FnZSA9IHBpblN0YXR1cy5zdGF0dXMuZGVzY3JpcHRpb247XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAocGluU3RhdHVzLnN0YXR1c0RhdGUgJiYgcGluU3RhdHVzLnN0YXR1cyAmJiBwaW5TdGF0dXMuc3RhdHVzLmVuZFN0YXR1cykge1xyXG4gICAgICAgICAgICB0aGlzLl9jbGVhckludGVydmFsKCk7XHJcbiAgICAgICAgICAgIGlmIChwaW5TdGF0dXMuc3RhdHVzLmNvZGUgPT09IElvbmVQYXltZW50U3RhdHVzQ29kZS5QQUlEKSB7XHJcbiAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fZ2V0RGVwb3NpdFBheW1lbnRJbmZvKCk7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuYW1vdW50VG9QYXkgPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZVBheW1lbnQoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuX3BheW1lbnRTdGF0dXNQb2xsSW50ZXJ2YWxDb3VudCsrO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgdGhpcy5fcGF5bWVudFN0YXR1c1BvbGxJbnRlcnZhbE1zKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2NsZWFySW50ZXJ2YWwoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NsZWFySW50ZXJ2YWwoKTogdm9pZCB7XHJcbiAgICBjbGVhckludGVydmFsKHRoaXMuX3BheW1lbnRTdGF0dXNJbnRlcnZhbCk7XHJcbiAgICB0aGlzLl9wYXltZW50U3RhdHVzSW50ZXJ2YWwgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZUNhc2hSZWdpc3RlcnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kID0gdGhpcy5wYXltZW50TWV0aG9kc1t0aGlzLnBheW1lbnRNZXRob2RJZHhdLnBheW1lbnQ7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50UGF5bWVudE1ldGhvZCAmJiAoIXRoaXMuY3VycmVudFBheW1lbnRNZXRob2QuZXh0ZXJuYWxTb3VyY2VJZCB8fCB0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kLnBpblRlcm1pbmFsKSkge1xyXG4gICAgICB0aGlzLmNhc2hSZWdpc3RlcnMubGVuZ3RoID0gMDtcclxuICAgICAgdGhpcy5jdXJyZW50UGF5bWVudE1ldGhvZC5wb3NHcm91cHMuZm9yRWFjaChjcmcgPT4ge1xyXG4gICAgICAgIHRoaXMuX2dldENhc2hSZWdpc3RlcnModGhpcy5icmFuY2gsIGNyZy5pZCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNob3dDYXNoUmVnaXN0ZXJzID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd0Nhc2hSZWdpc3RlcnMgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldENhc2hSZWdpc3RlcnMoYnJhbmNoPzogc3RyaW5nLCBncm91cD86IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0Q2FzaFJlZ2lzdGVycyhicmFuY2gsIGdyb3VwKS50aGVuKChjYXNoUmVnaXN0ZXJzOiBDYXNoUmVnaXN0ZXJbXSkgPT4ge1xyXG4gICAgICB0aGlzLmNhc2hSZWdpc3RlcnMucHVzaCguLi5jYXNoUmVnaXN0ZXJzKTtcclxuICAgICAgY29uc3QgY3VycmVudENhc2hSZWdpc3RlcjogQ2FzaFJlZ2lzdGVyID0gdGhpcy5jYXNoUmVnaXN0ZXJzW3RoaXMuY2FzaFJlZ2lzdGVySWR4XTtcclxuICAgICAgaWYgKGN1cnJlbnRDYXNoUmVnaXN0ZXIpIHtcclxuICAgICAgICB0aGlzLmNhc2hSZWdpc3Rlck5yID0gY3VycmVudENhc2hSZWdpc3Rlci5ucjtcclxuICAgICAgICB0aGlzLmNhc2hSZWdpc3Rlckdyb3VwSWQgPSBjdXJyZW50Q2FzaFJlZ2lzdGVyLmdyb3VwO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldFBheW1lbnRNZXRob2RzKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICB0aGlzLnBheW1lbnRNZXRob2RzLmxlbmd0aCA9IDA7XHJcbiAgICAgIHRoaXMucGF5bWVudFNlcnZpY2UuZ2V0UGF5bWVudE1ldGhvZHNWaWV3TW9kZWxzKHRoaXMuYnJhbmNoKS50aGVuKChtZXRob2RzOiBQYXltZW50Vmlld21vZGVsW10pID0+IHtcclxuICAgICAgICB0aGlzLnBheW1lbnRNZXRob2RzID0gbWV0aG9kcy5zbGljZSgpO1xyXG4gICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hhbmRsZVBheW1lbnQoZW1pdFBheWVkOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS50cmFuc2FjdGlvblBheW1lbnREb25lLm5leHQoKTtcclxuICAgIGlmIChlbWl0UGF5ZWQpIHtcclxuICAgICAgdGhpcy5wYXllZC5lbWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -10,6 +10,7 @@ import { ExternalCatalogStartupInfoRequest } from '@colijnit/articleapi/build/mo
|
|
|
10
10
|
import { ArticleService } from '../../../../service/article.service';
|
|
11
11
|
import { DialogService } from '../../../../service/dialog.service';
|
|
12
12
|
import { ExternalCatalogTypes } from '@colijnit/transactionapi/build/enum/external-catalog-types.enum';
|
|
13
|
+
import { ProductConnectorAdapterService, ProductConnectorService, ProductEventService, ProductSettingsService } from '@colijnit/product';
|
|
13
14
|
export class DialogCatalogComponent {
|
|
14
15
|
constructor(_transactionService, _catalogService, _catalogEventService, _articleService, _dialogService, iconCacheService) {
|
|
15
16
|
this._transactionService = _transactionService;
|
|
@@ -229,7 +230,11 @@ DialogCatalogComponent.decorators = [
|
|
|
229
230
|
</co-dialog>
|
|
230
231
|
`,
|
|
231
232
|
providers: [
|
|
232
|
-
CatalogService
|
|
233
|
+
CatalogService,
|
|
234
|
+
ProductConnectorService,
|
|
235
|
+
ProductConnectorAdapterService,
|
|
236
|
+
ProductSettingsService,
|
|
237
|
+
ProductEventService
|
|
233
238
|
],
|
|
234
239
|
animations: [
|
|
235
240
|
trigger("showHideProduct", [
|
|
@@ -263,4 +268,4 @@ DialogCatalogComponent.propDecorators = {
|
|
|
263
268
|
addExternalArticleClicked: [{ type: Output }],
|
|
264
269
|
showClass: [{ type: HostBinding, args: ["class.co-dialog-catalog",] }]
|
|
265
270
|
};
|
|
266
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNhdGFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvZGlhbG9nL2NhdGFsb2cvZGlhbG9nLWNhdGFsb2cvZGlhbG9nLWNhdGFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUFDLG1CQUFtQixFQUFFLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBSXRFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRS9FLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBQzFHLE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLHdFQUF3RSxDQUFDO0FBQ3pILE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUluRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDakUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0saUVBQWlFLENBQUM7QUE4RXJHLE1BQU0sT0FBTyxzQkFBc0I7SUFpRWpDLFlBQ1ksbUJBQXVDLEVBQ3ZDLGVBQStCLEVBQy9CLG9CQUF5QyxFQUN6QyxlQUErQixFQUMvQixjQUE2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VSxFQUFFO29CQUNWLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTt3QkFDekIsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBQyxTQUFTLEVBQUUsa0JBQWtCLEVBQUMsQ0FBQyxDQUFDO3dCQUNyRCxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFDLFNBQVMsRUFBRSxlQUFlLEVBQUMsQ0FBQyxDQUFDO3dCQUNuRCxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7cUJBQzNELENBQUM7aUJBQ0g7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQTdGTyxrQkFBa0I7WUFDRyxjQUFjO1lBQW5DLG1CQUFtQjtZQVVuQixjQUFjO1lBSWQsYUFBYTtZQVZiLGdCQUFnQjs7O3lDQTRGckIsS0FBSztzQkFHTCxLQUFLO3lCQUdMLEtBQUs7NkJBR0wsS0FBSzswQkFHTCxLQUFLO3lCQUdMLE1BQU07NkJBR04sTUFBTTs2QkFNTixNQUFNO2dDQUlOLE1BQU07dUNBR04sTUFBTTt3Q0FHTixNQUFNO3dCQUdOLFdBQVcsU0FBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtBcnRpY2xlRXh0ZW5kZWR9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZXh0ZW5kZWQuYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtDYXRhbG9nRXZlbnRTZXJ2aWNlLCBDYXRhbG9nU2VydmljZX0gZnJvbSAnQGNvbGlqbml0L2NhdGFsb2cnO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7RXh0ZXJuYWxTb3VyY2V9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2V4dGVybmFsLXNvdXJjZS5ibyc7XHJcbmltcG9ydCB7RXh0ZXJuYWxTb3VyY2VWaWV3bW9kZWx9IGZyb20gJ0Bjb2xpam5pdC9jYXRhbG9nL2xpYi9tb2RlbC9leHRlcm5hbC1zb3VyY2Utdmlld21vZGVsJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSAnLi4vLi4vLi4vLi4vZW51bS9pY29uLmVudW0nO1xyXG5pbXBvcnQge2FuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7Q2F0YWxvZ0RlZmluaXRpb259IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2NhdGFsb2ctZGVmaW5pdGlvbi5ibyc7XHJcbmltcG9ydCB7RXh0ZXJuYWxDYXRhbG9nU3RhcnR1cEluZm99IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2V4dGVybmFsLWNhdGFsb2ctc3RhcnR1cC1pbmZvJztcclxuaW1wb3J0IHtFeHRlcm5hbENhdGFsb2dTdGFydHVwSW5mb1JlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2V4dGVybmFsLWNhdGFsb2ctc3RhcnR1cC1pbmZvLXJlcXVlc3QnO1xyXG5pbXBvcnQge0FydGljbGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlL2FydGljbGUuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLXJlc3BvbnNlLmJvJztcclxuaW1wb3J0IHtPcmRlckxpbmVTZXRJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvb3JkZXItbGluZS1zZXQtaW5mby5ibyc7XHJcbmltcG9ydCB7QXJ0aWNsZUxpc3RPYmplY3RFeHRlbmRlZH0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1saXN0LW9iamVjdC1leHRlbmRlZC5ibyc7XHJcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7RXh0ZXJuYWxDYXRhbG9nVHlwZXN9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL2V4dGVybmFsLWNhdGFsb2ctdHlwZXMuZW51bSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby1kaWFsb2ctY2F0YWxvZ1wiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8Y28tZGlhbG9nIChjbG9zZUNsaWNrKT1cImNsb3NlQ2xpY2suZW1pdCgkZXZlbnQpXCIgW0AuZGlzYWJsZWRdPVwiZGVzdHJveWVkXCI+XHJcbiAgICAgIDxjby1pY29uICpuZ0lmPVwic2hvd0V4dGVybmFsQ2F0YWxvZ1wiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludExlZnQpXCJcclxuICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUJhY2tDbGljaygkZXZlbnQpXCI+PC9jby1pY29uPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNob3dFeHRlcm5hbENhdGFsb2dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLWNhdGFsb2ctcHJvZHVjdC13cmFwcGVyXCIgW2NsYXNzLnNob3ctcHJvZHVjdF09XCJzaG93UHJvZHVjdFwiPlxyXG4gICAgICAgICAgPGNvLWNhdGFsb2ctc2VhcmNoXHJcbiAgICAgICAgICAgICAgW3RpdGxlXT1cIidDQVRBTE9HJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICBbc3ViVGl0bGVdPVwiJ1NFQVJDSF9CWV9BUlRJQ0xFTlVNQkVSX05BTUVfT1JfREVTQ1JJUFRJT04nIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgIFtzZWFyY2hQbGFjZWhvbGRlcl09XCInU0VBUkNIX0JZX0FSVElDTEVOVU1CRVJfT1JfREVTQ1JJUFRJT04nIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgIFtjcmVhdGVGcm96ZW5BcnRpY2xlXT1cImhhbmRsZUFkZEFydGljbGVJbnRlcm5hbGx5XCJcclxuICAgICAgICAgICAgICBbc2hvd05hdmlnYXRpb25dPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW3NldHRpbmdzXT1cImNhdGFsb2dTZXR0aW5nc1wiXHJcbiAgICAgICAgICAgICAgKG9uRXh0ZXJuYWxTb3VyY2VDbGljayk9XCJoYW5kbGVFeHRlcm5hbFNvdXJjZUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChvbkFkZEFydGljbGVCdXR0b25DbGljayk9XCJoYW5kbGVBZGRBcnRpY2xlQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgKG9uTG9va0F0QXJ0aWNsZUJ1dHRvbkNsaWNrKT1cImhhbmRsZUFydGljbGVDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAob25BcnRpY2xlQ2xpY2spPVwiaGFuZGxlQXJ0aWNsZUNsaWNrKCRldmVudClcIj5cclxuICAgICAgICAgIDwvY28tY2F0YWxvZy1zZWFyY2g+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0YWxvZy1hcnRpY2xlLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJiYWNrLWJ1dHRvbi1wcm9kdWN0XCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5BcnJvd1BvaW50TGVmdClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd1Byb2R1Y3QgPSBmYWxzZVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgPGFwcC1pb25lLXByb2R1Y3QgKm5nSWY9XCJzaG93UHJvZHVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtza3VdPVwic2t1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NldHRpbmdzXT1cImNhdGFsb2dTZXR0aW5nc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoYW5kbGVBZGRBcnRpY2xlSW50ZXJuYWxseV09XCJoYW5kbGVBZGRBcnRpY2xlSW50ZXJuYWxseVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkFkZFRvQ2FydCk9XCJoYW5kbGVBZGRBcnRpY2xlRnJvbUFydGljbGVDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgPjwvYXBwLWlvbmUtcHJvZHVjdD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dFeHRlcm5hbENhdGFsb2dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLWNhdGFsb2ctcHJvZHVjdC13cmFwcGVyXCIgW2NsYXNzLnNob3ctcHJvZHVjdF09XCJzaG93UHJvZHVjdFwiPlxyXG5cclxuICAgICAgICAgIDxjby1jYXRhbG9nLWV4dGVybmFsLXNvdXJjZVxyXG4gICAgICAgICAgICAgIFtleHRlcm5hbENhdGFsb2dTdGFydHVwSW5mb109XCJjYXRhbG9nSW5mb1wiXHJcbiAgICAgICAgICAgICAgW3RpdGxlXT1cIidDQVRBTE9HJyB8IGxvY2FsaXplIHwgYXBwZW5kOiAnICcgfCBhcHBlbmQ6IGV4dGVybmFsQ2F0YWxvZ05hbWVcIlxyXG4gICAgICAgICAgICAgIFtzdWJUaXRsZV09XCInU0VBUkNIX0JZX0FSVElDTEVOVU1CRVJfTkFNRV9PUl9ERVNDUklQVElPTicgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgW3NlYXJjaFBsYWNlaG9sZGVyXT1cIidTRUFSQ0hfQllfQVJUSUNMRU5VTUJFUl9PUl9ERVNDUklQVElPTicgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgW25hbWVdPVwiZXh0ZXJuYWxDYXRhbG9nTmFtZVwiXHJcbiAgICAgICAgICAgICAgW29wdGlvbnNdPVwiZXh0ZXJuYWxDYXRhbG9nT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgW3Nob3dOYXZpZ2F0aW9uXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAoYXJ0aWNsZUNsaWNrKT1cImhhbmRsZUNhdEZhcm1BcnRpY2xlQ2xpY2tlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAoYWRkQXJ0aWNsZUNsaWNrKT1cImhhbmRsZUFkZENhdEZhcm1BcnRpY2xlQ2xpY2tlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAoaUZyYW1lRmVlZGJhY2tSZWNlaXZlZCk9XCJoYW5kbGVJRnJhbWVGZWVkYmFjaygkZXZlbnQpXCJcclxuICAgICAgICAgID48L2NvLWNhdGFsb2ctZXh0ZXJuYWwtc291cmNlPlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXRhbG9nLWFydGljbGUtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cImJhY2stYnV0dG9uLXByb2R1Y3RcIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkFycm93UG9pbnRMZWZ0KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93UHJvZHVjdCA9IGZhbHNlXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICA8Y28tcHJvZHVjdC1leHRlcm5hbC1zb3VyY2UgKm5nSWY9XCJzaG93UHJvZHVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXh0ZXJuYWxTb3VyY2VdPVwiZXh0ZXJuYWxTb3VyY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NrdV09XCJjYXRTa3VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFkZFRvQ2FydCk9XCJoYW5kbGVBZGRDYXRGYXJtQXJ0aWNsZUNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgID48L2NvLXByb2R1Y3QtZXh0ZXJuYWwtc291cmNlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9jby1kaWFsb2c+XHJcbiAgICA8Y28tZGlhbG9nICpuZ0lmPVwiYXJ0aWNsZUZvclN0b2NrICYmIHNob3dTdG9ja1wiIChjbG9zZUNsaWNrKT1cImNhbmNlbFN0b2NrQnV0dG9uQ2xpY2soKVwiPlxyXG4gICAgICA8Y28tc3RvY2sgW2FydGljbGVdPVwiYXJ0aWNsZUZvclN0b2NrXCIgKGNhbmNlbEJ1dHRvbkNsaWNrZWQpPVwiY2FuY2VsU3RvY2tCdXR0b25DbGljaygpXCI+PC9jby1zdG9jaz5cclxuICAgIDwvY28tZGlhbG9nPlxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICAgIENhdGFsb2dTZXJ2aWNlXHJcbiAgXSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKFwic2hvd0hpZGVQcm9kdWN0XCIsIFtcclxuICAgICAgc3RhdGUoXCJ0cnVlXCIsIHN0eWxlKHt0cmFuc2Zvcm06IFwidHJhbnNsYXRlWCgtNTAlKVwifSkpLFxyXG4gICAgICBzdGF0ZShcImZhbHNlXCIsIHN0eWxlKHt0cmFuc2Zvcm06IFwidHJhbnNsYXRlWCgwKVwifSkpLFxyXG4gICAgICB0cmFuc2l0aW9uKFwiZmFsc2UgPD0+IHRydWVcIiwgYW5pbWF0ZShcIjIwMG1zIGVhc2UtaW4tb3V0XCIpKVxyXG4gICAgXSlcclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIERpYWxvZ0NhdGFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGhhbmRsZUFkZEFydGljbGVJbnRlcm5hbGx5OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgb3B0aW9uczogYW55O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwYXJhbWV0ZXJzOiBhbnk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dOYXZpZ2F0aW9uOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgY2xvc2VDbGljazogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgYXJ0aWNsZUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxBcnRpY2xlRXh0ZW5kZWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBcnRpY2xlRXh0ZW5kZWQ+KCk7XHJcblxyXG4gIC8qQE91dHB1dCgpXHJcbiAgcHVibGljIGhhbmRsZUFkZEFydGljbGVDbGlja2VkOiBFdmVudEVtaXR0ZXI8QXJ0aWNsZUV4dGVuZGVkPiA9IG5ldyBFdmVudEVtaXR0ZXI8QXJ0aWNsZUV4dGVuZGVkPigpOyovXHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBpRnJhbWVGZWVkYmFjazogRXZlbnRFbWl0dGVyPHtqc29uU3RyaW5nOiBzdHJpbmcsIGNhdGFsb2c6IG51bWJlciwgc291cmNlVHlwZTogc3RyaW5nfT5cclxuICAgICAgPSBuZXcgRXZlbnRFbWl0dGVyPHtqc29uU3RyaW5nOiBzdHJpbmcsIGNhdGFsb2c6IG51bWJlciwgc291cmNlVHlwZTogc3RyaW5nfT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGFkZEFydGljbGVDbGlja2VkOiBFdmVudEVtaXR0ZXI8e2FydGljbGU6IHN0cmluZyB8IEFydGljbGVFeHRlbmRlZCwgcXVhbnRpdHk6IG51bWJlcn0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7YXJ0aWNsZTogc3RyaW5nIHwgQXJ0aWNsZUV4dGVuZGVkLCBxdWFudGl0eTogbnVtYmVyfT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGFkZENhdEZhcm1BcnRpY2xlQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHtqc29uU3RyaW5nOiBzdHJpbmcsIGNhdGFsb2c6IG51bWJlcn0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7anNvblN0cmluZzogc3RyaW5nLCBjYXRhbG9nOiBudW1iZXJ9PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgYWRkRXh0ZXJuYWxBcnRpY2xlQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tZGlhbG9nLWNhdGFsb2dcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2F0YWxvZ1NldHRpbmdzOiBhbnk7XHJcbiAgcHVibGljIGV4dGVybmFsQ2F0YWxvZ05hbWU6IHN0cmluZztcclxuICBwdWJsaWMgc2hvd0V4dGVybmFsQ2F0YWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBleHRlcm5hbFNvdXJjZTogRXh0ZXJuYWxTb3VyY2U7XHJcbiAgcHVibGljIGNhdGFsb2dEZWZpbml0aW9uOiBDYXRhbG9nRGVmaW5pdGlvbjtcclxuICBwdWJsaWMgYXJ0aWNsZUZvclN0b2NrOiBBcnRpY2xlRXh0ZW5kZWQ7XHJcbiAgcHVibGljIHNob3dTdG9jazogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93UHJvZHVjdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93RXh0ZXJuYWxQcm9kdWN0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNrdTogc3RyaW5nO1xyXG4gIHB1YmxpYyBjYXRTa3U6IHN0cmluZztcclxuICBwdWJsaWMgY2F0QXJ0TmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBkZXN0cm95ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZXh0ZXJuYWxDYXRhbG9nT3B0aW9ucyA9IHtcclxuICAgIHNlYXJjaE9uU3RhcnQ6IHRydWVcclxuICB9XHJcbiAgcHVibGljIGNhdGFsb2dJbmZvOiBFeHRlcm5hbENhdGFsb2dTdGFydHVwSW5mbztcclxuXHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIF9jYXRhbG9nU2VydmljZTogQ2F0YWxvZ1NlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgX2NhdGFsb2dFdmVudFNlcnZpY2U6IENhdGFsb2dFdmVudFNlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgX2FydGljbGVTZXJ2aWNlOiBBcnRpY2xlU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5jYXRhbG9nU2V0dGluZ3MgPSB0aGlzLl90cmFuc2FjdGlvblNlcnZpY2Uub3B0aW9uc1NlcnZpY2Uuc2V0dGluZ3M7XHJcbiAgICBpZiAodGhpcy5jYXRhbG9nU2V0dGluZ3MpIHtcclxuICAgICAgdGhpcy5jYXRhbG9nU2V0dGluZ3MuY3JlYXRlV2ViT3JkZXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jYXRhbG9nU2V0dGluZ3Mub3B0aW9ucyA9IHRoaXMub3B0aW9ucztcclxuICAgICAgdGhpcy5jYXRhbG9nU2V0dGluZ3MuY2F0YWxvZ1BhcmFtZXRlcnMgPSB0aGlzLnBhcmFtZXRlcnM7XHJcbiAgICAgIGF3YWl0IHRoaXMuX2NhdGFsb2dTZXJ2aWNlLmluaXQodGhpcy5jYXRhbG9nU2V0dGluZ3MsIHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgdGhpcy5fY2F0YWxvZ0V2ZW50U2VydmljZS5zdG9ja0RldGFpbHNDbGljay5zdWJzY3JpYmUoKGFydGljbGU6IEFydGljbGVFeHRlbmRlZCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlU3RvY2tCdXR0b25DbGljayhhcnRpY2xlKTtcclxuICAgICAgfSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuZGVzdHJveWVkID0gdHJ1ZTtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU3RvY2tCdXR0b25DbGljayhhcnRpY2xlOiBBcnRpY2xlRXh0ZW5kZWQpOiB2b2lkIHtcclxuICAgIHRoaXMuYXJ0aWNsZUZvclN0b2NrID0gYXJ0aWNsZTtcclxuICAgIHRoaXMuc2hvd1N0b2NrID0gIXRoaXMuc2hvd1N0b2NrO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbmNlbFN0b2NrQnV0dG9uQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dTdG9jayA9ICF0aGlzLnNob3dTdG9jaztcclxuICAgIHRoaXMuYXJ0aWNsZUZvclN0b2NrID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jICBoYW5kbGVFeHRlcm5hbFNvdXJjZUNsaWNrKHNvdXJjZT86IEV4dGVybmFsU291cmNlVmlld21vZGVsKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoc291cmNlKSB7XHJcbiAgICAgIHRoaXMuY2F0YWxvZ0RlZmluaXRpb24gPSBzb3VyY2UuY2F0YWxvZ0RlZmluaXRpb247XHJcbiAgICAgIHRoaXMuZXh0ZXJuYWxTb3VyY2UgPSBzb3VyY2UuZXh0ZXJuYWxTb3VyY2U7XHJcbiAgICAgIGxldCBpbmZvOiBFeHRlcm5hbENhdGFsb2dTdGFydHVwSW5mbyA9IG5ldyBFeHRlcm5hbENhdGFsb2dTdGFydHVwSW5mbygpO1xyXG5cclxuICAgICAgaWYodGhpcy5jaGVja0lmT3BlbmluZ0lzQWxsb3dlZCgpKSB7XHJcbiAgICAgICAgY29uc3QgcmVxdWVzdDogRXh0ZXJuYWxDYXRhbG9nU3RhcnR1cEluZm9SZXF1ZXN0ID0gdGhpcy5idWlsZEV4dGVybmFsQ2F0YWxvZ1JlcXVlc3QoKTtcclxuXHJcbiAgICAgICAgaW5mbyA9IGF3YWl0IHRoaXMuX2FydGljbGVTZXJ2aWNlLmdldFdlYlZpZXdTdGFydHVwSW5mbyhyZXF1ZXN0KTtcclxuICAgICAgICB0aGlzLmNhdGFsb2dJbmZvID0gaW5mbztcclxuICAgICAgICB0aGlzLnNob3dFeHRlcm5hbENhdGFsb2cgPSB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2Uuc2hvd1RvYXN0KFwiRVhURVJOQUxfQ0FUQUxPR19JVEVNU19BTFJFQURZX09SREVSRURcIiwgdHJ1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVBcnRpY2xlQ2xpY2soYXJ0aWNsZTogQXJ0aWNsZUV4dGVuZGVkKTogdm9pZCB7XHJcbiAgICAgdGhpcy5za3UgPSBhcnRpY2xlLmFydGljbGVOdW1iZXI7XHJcbiAgICAgdGhpcy5zaG93UHJvZHVjdCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQWRkQXJ0aWNsZUNsaWNrKGpzb246IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5hZGRBcnRpY2xlQ2xpY2tlZC5uZXh0KHsgYXJ0aWNsZToganNvbiwgcXVhbnRpdHk6IDF9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVBZGRBcnRpY2xlRnJvbUFydGljbGVDbGljayhkYXRhOiB7YXJ0aWNsZTogc3RyaW5nIHwgQXJ0aWNsZUV4dGVuZGVkLCBxdWFudGl0eTogbnVtYmVyfSk6IHZvaWQge1xyXG4gICAgdGhpcy5hZGRBcnRpY2xlQ2xpY2tlZC5uZXh0KGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUFkZEV4dGVybmFsQXJ0aWNsZUNsaWNrKGpzb246IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5hZGRFeHRlcm5hbEFydGljbGVDbGlja2VkLm5leHQoanNvbik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQmFja0NsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dFeHRlcm5hbENhdGFsb2cgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVJRnJhbWVGZWVkYmFjayhqc29uOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuaUZyYW1lRmVlZGJhY2suZW1pdCh7anNvblN0cmluZzoganNvbiwgY2F0YWxvZzogdGhpcy5jYXRhbG9nRGVmaW5pdGlvbi5nZXRJZCgpLCBzb3VyY2VUeXBlOiB0aGlzLmV4dGVybmFsU291cmNlLnR5cGV9KTtcclxuICAgIGlmKHRoaXMuZXh0ZXJuYWxTb3VyY2UudHlwZSAhPT0gRXh0ZXJuYWxDYXRhbG9nVHlwZXMuV2Vic2hvcCkge1xyXG4gICAgICB0aGlzLnNob3dFeHRlcm5hbENhdGFsb2cgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDYXRGYXJtQXJ0aWNsZUNsaWNrZWQoZGF0YTogeyBhcnRpY2xlOiBBcnRpY2xlTGlzdE9iamVjdEV4dGVuZGVkLCBzZXR0aW5nczogYW55IH0pOiB2b2lkIHtcclxuICAgIHRoaXMuY2F0U2t1ID0gZGF0YS5hcnRpY2xlLmFydGljbGVOdW1iZXI7XHJcbiAgICB0aGlzLmNhdEFydE5hbWUgPSBkYXRhLmFydGljbGUubmFtZTtcclxuICAgIHRoaXMuc2hvd1Byb2R1Y3QgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUFkZENhdEZhcm1BcnRpY2xlQ2xpY2tlZChqc29uU3RyaW5nOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuYWRkQ2F0RmFybUFydGljbGVDbGlja2VkLmVtaXQoe2pzb25TdHJpbmc6IGpzb25TdHJpbmcsIGNhdGFsb2c6IHRoaXMuY2F0YWxvZ0RlZmluaXRpb24uZ2V0SWQoKX0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrSWZPcGVuaW5nSXNBbGxvd2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLm9yZGVyTGluZVNldHMgJiYgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ub3JkZXJMaW5lU2V0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBvcmRlckxpbmVTZXRDb2Rlczogc3RyaW5nW10gPVxyXG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLm9yZGVyTGluZVNldHMuZmlsdGVyKG8gPT4gby5jYXRhbG9nSWQgPSB0aGlzLmNhdGFsb2dEZWZpbml0aW9uLmdldElkKCkpLm1hcChvID0+IG8ub3JkZXJMaW5lU2V0Q29kZSk7XHJcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzLmZvckVhY2gobCA9PiB7XHJcbiAgICAgICAgICBpZiAoKG9yZGVyTGluZVNldENvZGVzLmZpbmRJbmRleChjID0+IGMgPT09IGwub3JkZXJMaW5lU2V0Q29kZSkgPj0gMClcclxuICAgICAgICAgICAgJiYgbC5hcnRpY2xlTGluZVN0YXR1cyAmJiBsLmFydGljbGVMaW5lU3RhdHVzLmhhc093blByb3BlcnR5KCdxdWFudGl0eU9yZGVyZWQnKSAmJiBsLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5T3JkZXJlZCA+IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkRXh0ZXJuYWxDYXRhbG9nUmVxdWVzdCgpOiBFeHRlcm5hbENhdGFsb2dTdGFydHVwSW5mb1JlcXVlc3Qge1xyXG4gICAgY29uc3QgcmVxdWVzdDogRXh0ZXJuYWxDYXRhbG9nU3RhcnR1cEluZm9SZXF1ZXN0ID0gbmV3IEV4dGVybmFsQ2F0YWxvZ1N0YXJ0dXBJbmZvUmVxdWVzdCgpO1xyXG4gICAgcmVxdWVzdC5jYXRhbG9nSWQgPSB0aGlzLmNhdGFsb2dEZWZpbml0aW9uLmdldElkKCk7XHJcbiAgICByZXF1ZXN0LnBvc0VtcGxveWVlID0gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uc2FsZXNQZXJzb247XHJcbiAgICByZXF1ZXN0LmlvbmVPcmRlck5yID0gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25Oci50b1N0cmluZygpO1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnJlbGF0aW9uKSB7XHJcbiAgICAgIHJlcXVlc3QucG9zTmFtZSA9IHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnJlbGF0aW9uLmZhbWlseU5hbWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXF1ZXN0LnBvc05hbWUgPSAnTk5CJyAvL05vZyBOaWV0IEJlcGFhbGRcclxuICAgIH1cclxuICAgIHRoaXMuZXhwYW5kRXh0ZXJuYWxDYXRhbG9nUmVxdWVzdElmTmVlZGVkKHJlcXVlc3QpO1xyXG4gICAgcmV0dXJuIHJlcXVlc3RcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZXhwYW5kRXh0ZXJuYWxDYXRhbG9nUmVxdWVzdElmTmVlZGVkKHJlcXVlc3Q6IEV4dGVybmFsQ2F0YWxvZ1N0YXJ0dXBJbmZvUmVxdWVzdCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLm9yZGVyTGluZVNldHMgJiYgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ub3JkZXJMaW5lU2V0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBvcmRlckxpbmVTZXQ6IE9yZGVyTGluZVNldEluZm8gPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5vcmRlckxpbmVTZXRzLmZpbmQoc2V0ID0+IHNldC5jYXRhbG9nSWQgPT09IHRoaXMuY2F0YWxvZ0RlZmluaXRpb24uZ2V0SWQoKSk7XHJcbiAgICAgIGlmIChvcmRlckxpbmVTZXQpIHtcclxuICAgICAgICByZXF1ZXN0LnBvc0F1cGluZyA9IG9yZGVyTGluZVNldC5hdXBPcmRlck5yXHJcbiAgICAgICAgaWYgKHJlcXVlc3QucG9zQXVwaW5nKSB7XHJcbiAgICAgICAgICByZXF1ZXN0LnBvc1N0YXR1cyA9ICdDaGFuZ2UnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob3JkZXJMaW5lU2V0LnZkUHJvamVjdElkKSB7XHJcbiAgICAgICAgICByZXF1ZXN0Lm9yZGVySWQgPSBvcmRlckxpbmVTZXQudmRQcm9qZWN0SWQ7XHJcbiAgICAgICAgfSBlbHNlIGlmIChvcmRlckxpbmVTZXQud3RQcm9qZWN0TnIpIHtcclxuICAgICAgICAgIHJlcXVlc3Qub3JkZXJJZCA9IG9yZGVyTGluZVNldC53dFByb2plY3ROcjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
271
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNhdGFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvZGlhbG9nL2NhdGFsb2cvZGlhbG9nLWNhdGFsb2cvZGlhbG9nLWNhdGFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUFDLG1CQUFtQixFQUFFLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBSXRFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRS9FLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBQzFHLE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLHdFQUF3RSxDQUFDO0FBQ3pILE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUluRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDakUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0saUVBQWlFLENBQUM7QUFDckcsT0FBTyxFQUFDLDhCQUE4QixFQUFFLHVCQUF1QixFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFrRnZJLE1B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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZEVDtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsY0FBYztvQkFDZCx1QkFBdUI7b0JBQ3ZCLDhCQUE4QjtvQkFDOUIsc0JBQXNCO29CQUN0QixtQkFBbUI7aUJBQ3BCO2dCQUNELFVBQVUsRUFBRTtvQkFDVixPQUFPLENBQUMsaUJBQWlCLEVBQUU7d0JBQ3pCLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUMsU0FBUyxFQUFFLGtCQUFrQixFQUFDLENBQUMsQ0FBQzt3QkFDckQsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBQyxTQUFTLEVBQUUsZUFBZSxFQUFDLENBQUMsQ0FBQzt3QkFDbkQsVUFBVSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO3FCQUMzRCxDQUFDO2lCQUNIO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUFsR08sa0JBQWtCO1lBQ0csY0FBYztZQUFuQyxtQkFBbUI7WUFVbkIsY0FBYztZQUlkLGFBQWE7WUFWYixnQkFBZ0I7Ozt5Q0FpR3JCLEtBQUs7c0JBR0wsS0FBSzt5QkFHTCxLQUFLOzZCQUdMLEtBQUs7MEJBR0wsS0FBSzt5QkFHTCxNQUFNOzZCQUdOLE1BQU07NkJBTU4sTUFBTTtnQ0FJTixNQUFNO3VDQUdOLE1BQU07d0NBR04sTUFBTTt3QkFHTixXQUFXLFNBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QXJ0aWNsZUV4dGVuZGVkfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWV4dGVuZGVkLmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7Q2F0YWxvZ0V2ZW50U2VydmljZSwgQ2F0YWxvZ1NlcnZpY2V9IGZyb20gJ0Bjb2xpam5pdC9jYXRhbG9nJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0V4dGVybmFsU291cmNlfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9leHRlcm5hbC1zb3VyY2UuYm8nO1xyXG5pbXBvcnQge0V4dGVybmFsU291cmNlVmlld21vZGVsfSBmcm9tICdAY29saWpuaXQvY2F0YWxvZy9saWIvbW9kZWwvZXh0ZXJuYWwtc291cmNlLXZpZXdtb2RlbCc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uLy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuaW1wb3J0IHthbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQge0NhdGFsb2dEZWZpbml0aW9ufSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9jYXRhbG9nLWRlZmluaXRpb24uYm8nO1xyXG5pbXBvcnQge0V4dGVybmFsQ2F0YWxvZ1N0YXJ0dXBJbmZvfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9leHRlcm5hbC1jYXRhbG9nLXN0YXJ0dXAtaW5mbyc7XHJcbmltcG9ydCB7RXh0ZXJuYWxDYXRhbG9nU3RhcnR1cEluZm9SZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9leHRlcm5hbC1jYXRhbG9nLXN0YXJ0dXAtaW5mby1yZXF1ZXN0JztcclxuaW1wb3J0IHtBcnRpY2xlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZS9hcnRpY2xlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ibyc7XHJcbmltcG9ydCB7T3JkZXJMaW5lU2V0SW5mb30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL29yZGVyLWxpbmUtc2V0LWluZm8uYm8nO1xyXG5pbXBvcnQge0FydGljbGVMaXN0T2JqZWN0RXh0ZW5kZWR9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtbGlzdC1vYmplY3QtZXh0ZW5kZWQuYm8nO1xyXG5pbXBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2UvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQge0V4dGVybmFsQ2F0YWxvZ1R5cGVzfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9leHRlcm5hbC1jYXRhbG9nLXR5cGVzLmVudW0nO1xyXG5pbXBvcnQge1Byb2R1Y3RDb25uZWN0b3JBZGFwdGVyU2VydmljZSwgUHJvZHVjdENvbm5lY3RvclNlcnZpY2UsIFByb2R1Y3RFdmVudFNlcnZpY2UsIFByb2R1Y3RTZXR0aW5nc1NlcnZpY2V9IGZyb20gJ0Bjb2xpam5pdC9wcm9kdWN0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLWRpYWxvZy1jYXRhbG9nXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxjby1kaWFsb2cgKGNsb3NlQ2xpY2spPVwiY2xvc2VDbGljay5lbWl0KCRldmVudClcIiBbQC5kaXNhYmxlZF09XCJkZXN0cm95ZWRcIj5cclxuICAgICAgPGNvLWljb24gKm5nSWY9XCJzaG93RXh0ZXJuYWxDYXRhbG9nXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5BcnJvd1BvaW50TGVmdClcIlxyXG4gICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQmFja0NsaWNrKCRldmVudClcIj48L2NvLWljb24+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2hvd0V4dGVybmFsQ2F0YWxvZ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctY2F0YWxvZy1wcm9kdWN0LXdyYXBwZXJcIiBbY2xhc3Muc2hvdy1wcm9kdWN0XT1cInNob3dQcm9kdWN0XCI+XHJcbiAgICAgICAgICA8Y28tY2F0YWxvZy1zZWFyY2hcclxuICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0NBVEFMT0cnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgIFtzdWJUaXRsZV09XCInU0VBUkNIX0JZX0FSVElDTEVOVU1CRVJfTkFNRV9PUl9ERVNDUklQVElPTicgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgW3NlYXJjaFBsYWNlaG9sZGVyXT1cIidTRUFSQ0hfQllfQVJUSUNMRU5VTUJFUl9PUl9ERVNDUklQVElPTicgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgW2NyZWF0ZUZyb3plbkFydGljbGVdPVwiaGFuZGxlQWRkQXJ0aWNsZUludGVybmFsbHlcIlxyXG4gICAgICAgICAgICAgIFtzaG93TmF2aWdhdGlvbl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbc2V0dGluZ3NdPVwiY2F0YWxvZ1NldHRpbmdzXCJcclxuICAgICAgICAgICAgICAob25FeHRlcm5hbFNvdXJjZUNsaWNrKT1cImhhbmRsZUV4dGVybmFsU291cmNlQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgKG9uQWRkQXJ0aWNsZUJ1dHRvbkNsaWNrKT1cImhhbmRsZUFkZEFydGljbGVDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAob25Mb29rQXRBcnRpY2xlQnV0dG9uQ2xpY2spPVwiaGFuZGxlQXJ0aWNsZUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChvbkFydGljbGVDbGljayk9XCJoYW5kbGVBcnRpY2xlQ2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPC9jby1jYXRhbG9nLXNlYXJjaD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXRhbG9nLWFydGljbGUtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cImJhY2stYnV0dG9uLXByb2R1Y3RcIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkFycm93UG9pbnRMZWZ0KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93UHJvZHVjdCA9IGZhbHNlXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICA8YXBwLWlvbmUtcHJvZHVjdCAqbmdJZj1cInNob3dQcm9kdWN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NrdV09XCJza3VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2V0dGluZ3NdPVwiY2F0YWxvZ1NldHRpbmdzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hhbmRsZUFkZEFydGljbGVJbnRlcm5hbGx5XT1cImhhbmRsZUFkZEFydGljbGVJbnRlcm5hbGx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQWRkVG9DYXJ0KT1cImhhbmRsZUFkZEFydGljbGVGcm9tQXJ0aWNsZUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICA+PC9hcHAtaW9uZS1wcm9kdWN0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0V4dGVybmFsQ2F0YWxvZ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctY2F0YWxvZy1wcm9kdWN0LXdyYXBwZXJcIiBbY2xhc3Muc2hvdy1wcm9kdWN0XT1cInNob3dQcm9kdWN0XCI+XHJcblxyXG4gICAgICAgICAgPGNvLWNhdGFsb2ctZXh0ZXJuYWwtc291cmNlXHJcbiAgICAgICAgICAgICAgW2V4dGVybmFsQ2F0YWxvZ1N0YXJ0dXBJbmZvXT1cImNhdGFsb2dJbmZvXCJcclxuICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0NBVEFMT0cnIHwgbG9jYWxpemUgfCBhcHBlbmQ6ICcgJyB8IGFwcGVuZDogZXh0ZXJuYWxDYXRhbG9nTmFtZVwiXHJcbiAgICAgICAgICAgICAgW3N1YlRpdGxlXT1cIidTRUFSQ0hfQllfQVJUSUNMRU5VTUJFUl9OQU1FX09SX0RFU0NSSVBUSU9OJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICBbc2VhcmNoUGxhY2Vob2xkZXJdPVwiJ1NFQVJDSF9CWV9BUlRJQ0xFTlVNQkVSX09SX0RFU0NSSVBUSU9OJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICBbbmFtZV09XCJleHRlcm5hbENhdGFsb2dOYW1lXCJcclxuICAgICAgICAgICAgICBbb3B0aW9uc109XCJleHRlcm5hbENhdGFsb2dPcHRpb25zXCJcclxuICAgICAgICAgICAgICBbc2hvd05hdmlnYXRpb25dPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgIChhcnRpY2xlQ2xpY2spPVwiaGFuZGxlQ2F0RmFybUFydGljbGVDbGlja2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChhZGRBcnRpY2xlQ2xpY2spPVwiaGFuZGxlQWRkQ2F0RmFybUFydGljbGVDbGlja2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChpRnJhbWVGZWVkYmFja1JlY2VpdmVkKT1cImhhbmRsZUlGcmFtZUZlZWRiYWNrKCRldmVudClcIlxyXG4gICAgICAgICAgPjwvY28tY2F0YWxvZy1leHRlcm5hbC1zb3VyY2U+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhdGFsb2ctYXJ0aWNsZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwiYmFjay1idXR0b24tcHJvZHVjdFwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludExlZnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dQcm9kdWN0ID0gZmFsc2VcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgIDxjby1wcm9kdWN0LWV4dGVybmFsLXNvdXJjZSAqbmdJZj1cInNob3dQcm9kdWN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtleHRlcm5hbFNvdXJjZV09XCJleHRlcm5hbFNvdXJjZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2t1XT1cImNhdFNrdVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWRkVG9DYXJ0KT1cImhhbmRsZUFkZENhdEZhcm1BcnRpY2xlQ2xpY2tlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgPjwvY28tcHJvZHVjdC1leHRlcm5hbC1zb3VyY2U+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2NvLWRpYWxvZz5cclxuICAgIDxjby1kaWFsb2cgKm5nSWY9XCJhcnRpY2xlRm9yU3RvY2sgJiYgc2hvd1N0b2NrXCIgKGNsb3NlQ2xpY2spPVwiY2FuY2VsU3RvY2tCdXR0b25DbGljaygpXCI+XHJcbiAgICAgIDxjby1zdG9jayBbYXJ0aWNsZV09XCJhcnRpY2xlRm9yU3RvY2tcIiAoY2FuY2VsQnV0dG9uQ2xpY2tlZCk9XCJjYW5jZWxTdG9ja0J1dHRvbkNsaWNrKClcIj48L2NvLXN0b2NrPlxyXG4gICAgPC9jby1kaWFsb2c+XHJcbiAgYCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIENhdGFsb2dTZXJ2aWNlLFxyXG4gICAgUHJvZHVjdENvbm5lY3RvclNlcnZpY2UsXHJcbiAgICBQcm9kdWN0Q29ubmVjdG9yQWRhcHRlclNlcnZpY2UsXHJcbiAgICBQcm9kdWN0U2V0dGluZ3NTZXJ2aWNlLFxyXG4gICAgUHJvZHVjdEV2ZW50U2VydmljZVxyXG4gIF0sXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcihcInNob3dIaWRlUHJvZHVjdFwiLCBbXHJcbiAgICAgIHN0YXRlKFwidHJ1ZVwiLCBzdHlsZSh7dHJhbnNmb3JtOiBcInRyYW5zbGF0ZVgoLTUwJSlcIn0pKSxcclxuICAgICAgc3RhdGUoXCJmYWxzZVwiLCBzdHlsZSh7dHJhbnNmb3JtOiBcInRyYW5zbGF0ZVgoMClcIn0pKSxcclxuICAgICAgdHJhbnNpdGlvbihcImZhbHNlIDw9PiB0cnVlXCIsIGFuaW1hdGUoXCIyMDBtcyBlYXNlLWluLW91dFwiKSlcclxuICAgIF0pXHJcbiAgXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dDYXRhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBoYW5kbGVBZGRBcnRpY2xlSW50ZXJuYWxseTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG9wdGlvbnM6IGFueTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcGFyYW1ldGVyczogYW55O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93TmF2aWdhdGlvbjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGNsb3NlQ2xpY2s6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGFydGljbGVDbGlja2VkOiBFdmVudEVtaXR0ZXI8QXJ0aWNsZUV4dGVuZGVkPiA9IG5ldyBFdmVudEVtaXR0ZXI8QXJ0aWNsZUV4dGVuZGVkPigpO1xyXG5cclxuICAvKkBPdXRwdXQoKVxyXG4gIHB1YmxpYyBoYW5kbGVBZGRBcnRpY2xlQ2xpY2tlZDogRXZlbnRFbWl0dGVyPEFydGljbGVFeHRlbmRlZD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFydGljbGVFeHRlbmRlZD4oKTsqL1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgaUZyYW1lRmVlZGJhY2s6IEV2ZW50RW1pdHRlcjx7anNvblN0cmluZzogc3RyaW5nLCBjYXRhbG9nOiBudW1iZXIsIHNvdXJjZVR5cGU6IHN0cmluZ30+XHJcbiAgICAgID0gbmV3IEV2ZW50RW1pdHRlcjx7anNvblN0cmluZzogc3RyaW5nLCBjYXRhbG9nOiBudW1iZXIsIHNvdXJjZVR5cGU6IHN0cmluZ30+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBhZGRBcnRpY2xlQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHthcnRpY2xlOiBzdHJpbmcgfCBBcnRpY2xlRXh0ZW5kZWQsIHF1YW50aXR5OiBudW1iZXJ9PiA9IG5ldyBFdmVudEVtaXR0ZXI8e2FydGljbGU6IHN0cmluZyB8IEFydGljbGVFeHRlbmRlZCwgcXVhbnRpdHk6IG51bWJlcn0+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBhZGRDYXRGYXJtQXJ0aWNsZUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjx7anNvblN0cmluZzogc3RyaW5nLCBjYXRhbG9nOiBudW1iZXJ9PiA9IG5ldyBFdmVudEVtaXR0ZXI8e2pzb25TdHJpbmc6IHN0cmluZywgY2F0YWxvZzogbnVtYmVyfT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGFkZEV4dGVybmFsQXJ0aWNsZUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLWRpYWxvZy1jYXRhbG9nXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhdGFsb2dTZXR0aW5nczogYW55O1xyXG4gIHB1YmxpYyBleHRlcm5hbENhdGFsb2dOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHNob3dFeHRlcm5hbENhdGFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZXh0ZXJuYWxTb3VyY2U6IEV4dGVybmFsU291cmNlO1xyXG4gIHB1YmxpYyBjYXRhbG9nRGVmaW5pdGlvbjogQ2F0YWxvZ0RlZmluaXRpb247XHJcbiAgcHVibGljIGFydGljbGVGb3JTdG9jazogQXJ0aWNsZUV4dGVuZGVkO1xyXG4gIHB1YmxpYyBzaG93U3RvY2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1Byb2R1Y3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0V4dGVybmFsUHJvZHVjdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBza3U6IHN0cmluZztcclxuICBwdWJsaWMgY2F0U2t1OiBzdHJpbmc7XHJcbiAgcHVibGljIGNhdEFydE5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgZGVzdHJveWVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGV4dGVybmFsQ2F0YWxvZ09wdGlvbnMgPSB7XHJcbiAgICBzZWFyY2hPblN0YXJ0OiB0cnVlXHJcbiAgfVxyXG4gIHB1YmxpYyBjYXRhbG9nSW5mbzogRXh0ZXJuYWxDYXRhbG9nU3RhcnR1cEluZm87XHJcblxyXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgICBwcml2YXRlIF90cmFuc2FjdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSBfY2F0YWxvZ1NlcnZpY2U6IENhdGFsb2dTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIF9jYXRhbG9nRXZlbnRTZXJ2aWNlOiBDYXRhbG9nRXZlbnRTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIF9hcnRpY2xlU2VydmljZTogQXJ0aWNsZVNlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuY2F0YWxvZ1NldHRpbmdzID0gdGhpcy5fdHJhbnNhY3Rpb25TZXJ2aWNlLm9wdGlvbnNTZXJ2aWNlLnNldHRpbmdzO1xyXG4gICAgaWYgKHRoaXMuY2F0YWxvZ1NldHRpbmdzKSB7XHJcbiAgICAgIHRoaXMuY2F0YWxvZ1NldHRpbmdzLmNyZWF0ZVdlYk9yZGVyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY2F0YWxvZ1NldHRpbmdzLm9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XHJcbiAgICAgIHRoaXMuY2F0YWxvZ1NldHRpbmdzLmNhdGFsb2dQYXJhbWV0ZXJzID0gdGhpcy5wYXJhbWV0ZXJzO1xyXG4gICAgICBhd2FpdCB0aGlzLl9jYXRhbG9nU2VydmljZS5pbml0KHRoaXMuY2F0YWxvZ1NldHRpbmdzLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMuX2NhdGFsb2dFdmVudFNlcnZpY2Uuc3RvY2tEZXRhaWxzQ2xpY2suc3Vic2NyaWJlKChhcnRpY2xlOiBBcnRpY2xlRXh0ZW5kZWQpID0+IHtcclxuICAgICAgICB0aGlzLmhhbmRsZVN0b2NrQnV0dG9uQ2xpY2soYXJ0aWNsZSk7XHJcbiAgICAgIH0pLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3llZCA9IHRydWU7XHJcbiAgICB0aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVN0b2NrQnV0dG9uQ2xpY2soYXJ0aWNsZTogQXJ0aWNsZUV4dGVuZGVkKTogdm9pZCB7XHJcbiAgICB0aGlzLmFydGljbGVGb3JTdG9jayA9IGFydGljbGU7XHJcbiAgICB0aGlzLnNob3dTdG9jayA9ICF0aGlzLnNob3dTdG9jaztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjYW5jZWxTdG9ja0J1dHRvbkNsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93U3RvY2sgPSAhdGhpcy5zaG93U3RvY2s7XHJcbiAgICB0aGlzLmFydGljbGVGb3JTdG9jayA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyAgaGFuZGxlRXh0ZXJuYWxTb3VyY2VDbGljayhzb3VyY2U/OiBFeHRlcm5hbFNvdXJjZVZpZXdtb2RlbCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHNvdXJjZSkge1xyXG4gICAgICB0aGlzLmNhdGFsb2dEZWZpbml0aW9uID0gc291cmNlLmNhdGFsb2dEZWZpbml0aW9uO1xyXG4gICAgICB0aGlzLmV4dGVybmFsU291cmNlID0gc291cmNlLmV4dGVybmFsU291cmNlO1xyXG4gICAgICBsZXQgaW5mbzogRXh0ZXJuYWxDYXRhbG9nU3RhcnR1cEluZm8gPSBuZXcgRXh0ZXJuYWxDYXRhbG9nU3RhcnR1cEluZm8oKTtcclxuXHJcbiAgICAgIGlmKHRoaXMuY2hlY2tJZk9wZW5pbmdJc0FsbG93ZWQoKSkge1xyXG4gICAgICAgIGNvbnN0IHJlcXVlc3Q6IEV4dGVybmFsQ2F0YWxvZ1N0YXJ0dXBJbmZvUmVxdWVzdCA9IHRoaXMuYnVpbGRFeHRlcm5hbENhdGFsb2dSZXF1ZXN0KCk7XHJcblxyXG4gICAgICAgIGluZm8gPSBhd2FpdCB0aGlzLl9hcnRpY2xlU2VydmljZS5nZXRXZWJWaWV3U3RhcnR1cEluZm8ocmVxdWVzdCk7XHJcbiAgICAgICAgdGhpcy5jYXRhbG9nSW5mbyA9IGluZm87XHJcbiAgICAgICAgdGhpcy5zaG93RXh0ZXJuYWxDYXRhbG9nID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLl9kaWFsb2dTZXJ2aWNlLnNob3dUb2FzdChcIkVYVEVSTkFMX0NBVEFMT0dfSVRFTVNfQUxSRUFEWV9PUkRFUkVEXCIsIHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQXJ0aWNsZUNsaWNrKGFydGljbGU6IEFydGljbGVFeHRlbmRlZCk6IHZvaWQge1xyXG4gICAgIHRoaXMuc2t1ID0gYXJ0aWNsZS5hcnRpY2xlTnVtYmVyO1xyXG4gICAgIHRoaXMuc2hvd1Byb2R1Y3QgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUFkZEFydGljbGVDbGljayhqc29uOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuYWRkQXJ0aWNsZUNsaWNrZWQubmV4dCh7IGFydGljbGU6IGpzb24sIHF1YW50aXR5OiAxfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQWRkQXJ0aWNsZUZyb21BcnRpY2xlQ2xpY2soZGF0YToge2FydGljbGU6IHN0cmluZyB8IEFydGljbGVFeHRlbmRlZCwgcXVhbnRpdHk6IG51bWJlcn0pOiB2b2lkIHtcclxuICAgIHRoaXMuYWRkQXJ0aWNsZUNsaWNrZWQubmV4dChkYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVBZGRFeHRlcm5hbEFydGljbGVDbGljayhqc29uOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuYWRkRXh0ZXJuYWxBcnRpY2xlQ2xpY2tlZC5uZXh0KGpzb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUJhY2tDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93RXh0ZXJuYWxDYXRhbG9nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlSUZyYW1lRmVlZGJhY2soanNvbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmlGcmFtZUZlZWRiYWNrLmVtaXQoe2pzb25TdHJpbmc6IGpzb24sIGNhdGFsb2c6IHRoaXMuY2F0YWxvZ0RlZmluaXRpb24uZ2V0SWQoKSwgc291cmNlVHlwZTogdGhpcy5leHRlcm5hbFNvdXJjZS50eXBlfSk7XHJcbiAgICBpZih0aGlzLmV4dGVybmFsU291cmNlLnR5cGUgIT09IEV4dGVybmFsQ2F0YWxvZ1R5cGVzLldlYnNob3ApIHtcclxuICAgICAgdGhpcy5zaG93RXh0ZXJuYWxDYXRhbG9nID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQ2F0RmFybUFydGljbGVDbGlja2VkKGRhdGE6IHsgYXJ0aWNsZTogQXJ0aWNsZUxpc3RPYmplY3RFeHRlbmRlZCwgc2V0dGluZ3M6IGFueSB9KTogdm9pZCB7XHJcbiAgICB0aGlzLmNhdFNrdSA9IGRhdGEuYXJ0aWNsZS5hcnRpY2xlTnVtYmVyO1xyXG4gICAgdGhpcy5jYXRBcnROYW1lID0gZGF0YS5hcnRpY2xlLm5hbWU7XHJcbiAgICB0aGlzLnNob3dQcm9kdWN0ID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVBZGRDYXRGYXJtQXJ0aWNsZUNsaWNrZWQoanNvblN0cmluZzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmFkZENhdEZhcm1BcnRpY2xlQ2xpY2tlZC5lbWl0KHtqc29uU3RyaW5nOiBqc29uU3RyaW5nLCBjYXRhbG9nOiB0aGlzLmNhdGFsb2dEZWZpbml0aW9uLmdldElkKCl9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja0lmT3BlbmluZ0lzQWxsb3dlZCgpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5vcmRlckxpbmVTZXRzICYmIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLm9yZGVyTGluZVNldHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgb3JkZXJMaW5lU2V0Q29kZXM6IHN0cmluZ1tdID1cclxuICAgICAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5vcmRlckxpbmVTZXRzLmZpbHRlcihvID0+IG8uY2F0YWxvZ0lkID0gdGhpcy5jYXRhbG9nRGVmaW5pdGlvbi5nZXRJZCgpKS5tYXAobyA9PiBvLm9yZGVyTGluZVNldENvZGUpO1xyXG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lcy5mb3JFYWNoKGwgPT4ge1xyXG4gICAgICAgICAgaWYgKChvcmRlckxpbmVTZXRDb2Rlcy5maW5kSW5kZXgoYyA9PiBjID09PSBsLm9yZGVyTGluZVNldENvZGUpID49IDApXHJcbiAgICAgICAgICAgICYmIGwuYXJ0aWNsZUxpbmVTdGF0dXMgJiYgbC5hcnRpY2xlTGluZVN0YXR1cy5oYXNPd25Qcm9wZXJ0eSgncXVhbnRpdHlPcmRlcmVkJykgJiYgbC5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eU9yZGVyZWQgPiAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZEV4dGVybmFsQ2F0YWxvZ1JlcXVlc3QoKTogRXh0ZXJuYWxDYXRhbG9nU3RhcnR1cEluZm9SZXF1ZXN0IHtcclxuICAgIGNvbnN0IHJlcXVlc3Q6IEV4dGVybmFsQ2F0YWxvZ1N0YXJ0dXBJbmZvUmVxdWVzdCA9IG5ldyBFeHRlcm5hbENhdGFsb2dTdGFydHVwSW5mb1JlcXVlc3QoKTtcclxuICAgIHJlcXVlc3QuY2F0YWxvZ0lkID0gdGhpcy5jYXRhbG9nRGVmaW5pdGlvbi5nZXRJZCgpO1xyXG4gICAgcmVxdWVzdC5wb3NFbXBsb3llZSA9IHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnNhbGVzUGVyc29uO1xyXG4gICAgcmVxdWVzdC5pb25lT3JkZXJOciA9IHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnRyYW5zYWN0aW9uTnIudG9TdHJpbmcoKTtcclxuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5yZWxhdGlvbikge1xyXG4gICAgICByZXF1ZXN0LnBvc05hbWUgPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5yZWxhdGlvbi5mYW1pbHlOYW1lO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVxdWVzdC5wb3NOYW1lID0gJ05OQicgLy9Ob2cgTmlldCBCZXBhYWxkXHJcbiAgICB9XHJcbiAgICB0aGlzLmV4cGFuZEV4dGVybmFsQ2F0YWxvZ1JlcXVlc3RJZk5lZWRlZChyZXF1ZXN0KTtcclxuICAgIHJldHVybiByZXF1ZXN0XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGV4cGFuZEV4dGVybmFsQ2F0YWxvZ1JlcXVlc3RJZk5lZWRlZChyZXF1ZXN0OiBFeHRlcm5hbENhdGFsb2dTdGFydHVwSW5mb1JlcXVlc3QpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5vcmRlckxpbmVTZXRzICYmIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLm9yZGVyTGluZVNldHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgb3JkZXJMaW5lU2V0OiBPcmRlckxpbmVTZXRJbmZvID0gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ub3JkZXJMaW5lU2V0cy5maW5kKHNldCA9PiBzZXQuY2F0YWxvZ0lkID09PSB0aGlzLmNhdGFsb2dEZWZpbml0aW9uLmdldElkKCkpO1xyXG4gICAgICBpZiAob3JkZXJMaW5lU2V0KSB7XHJcbiAgICAgICAgcmVxdWVzdC5wb3NBdXBpbmcgPSBvcmRlckxpbmVTZXQuYXVwT3JkZXJOclxyXG4gICAgICAgIGlmIChyZXF1ZXN0LnBvc0F1cGluZykge1xyXG4gICAgICAgICAgcmVxdWVzdC5wb3NTdGF0dXMgPSAnQ2hhbmdlJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9yZGVyTGluZVNldC52ZFByb2plY3RJZCkge1xyXG4gICAgICAgICAgcmVxdWVzdC5vcmRlcklkID0gb3JkZXJMaW5lU2V0LnZkUHJvamVjdElkO1xyXG4gICAgICAgIH0gZWxzZSBpZiAob3JkZXJMaW5lU2V0Lnd0UHJvamVjdE5yKSB7XHJcbiAgICAgICAgICByZXF1ZXN0Lm9yZGVySWQgPSBvcmRlckxpbmVTZXQud3RQcm9qZWN0TnI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|