@hmcts/ccpay-web-component 5.0.1-beta158 → 5.0.1-beta160
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/hmcts-ccpay-web-component.umd.js +258 -113
- package/bundles/hmcts-ccpay-web-component.umd.js.map +1 -1
- package/bundles/hmcts-ccpay-web-component.umd.min.js +1 -1
- package/bundles/hmcts-ccpay-web-component.umd.min.js.map +1 -1
- package/esm2015/lib/components/case-transactions/case-transactions.component.js +50 -43
- package/esm2015/lib/components/contact-details/contact-details.component.js +13 -5
- package/esm2015/lib/components/payment-view/payment-view.component.js +16 -3
- package/esm2015/lib/components/pba-payment/pba-payment.component.js +84 -35
- package/esm2015/lib/components/refund-list/refund-list.component.js +2 -2
- package/esm2015/lib/components/refund-status/refund-status.component.js +2 -1
- package/esm2015/lib/components/service-request/service-request.component.js +23 -20
- package/esm2015/lib/components/table/table.component.js +3 -3
- package/esm2015/lib/interfaces/IserviceRequestPbaPayment.js +6 -2
- package/esm2015/lib/payment-lib.component.js +5 -1
- package/esm2015/lib/payment-lib.service.js +16 -1
- package/esm2015/lib/services/payment-view/payment-view.service.js +7 -1
- package/esm2015/lib/services/refunds/refunds.service.js +16 -3
- package/esm2015/lib/services/shared/httpclient/webcomponent.http.client.js +16 -3
- package/esm5/lib/components/case-transactions/case-transactions.component.js +53 -43
- package/esm5/lib/components/contact-details/contact-details.component.js +13 -5
- package/esm5/lib/components/payment-view/payment-view.component.js +19 -3
- package/esm5/lib/components/pba-payment/pba-payment.component.js +88 -35
- package/esm5/lib/components/refund-list/refund-list.component.js +2 -2
- package/esm5/lib/components/refund-status/refund-status.component.js +2 -1
- package/esm5/lib/components/service-request/service-request.component.js +44 -25
- package/esm5/lib/components/table/table.component.js +3 -3
- package/esm5/lib/interfaces/IserviceRequestPbaPayment.js +5 -2
- package/esm5/lib/payment-lib.component.js +5 -1
- package/esm5/lib/payment-lib.service.js +23 -1
- package/esm5/lib/services/payment-view/payment-view.service.js +7 -1
- package/esm5/lib/services/refunds/refunds.service.js +16 -3
- package/esm5/lib/services/shared/httpclient/webcomponent.http.client.js +16 -3
- package/fesm2015/hmcts-ccpay-web-component.js +224 -108
- package/fesm2015/hmcts-ccpay-web-component.js.map +1 -1
- package/fesm5/hmcts-ccpay-web-component.js +261 -113
- package/fesm5/hmcts-ccpay-web-component.js.map +1 -1
- package/hmcts-ccpay-web-component.metadata.json +1 -1
- package/lib/components/case-transactions/case-transactions.component.d.ts +1 -0
- package/lib/components/payment-view/payment-view.component.d.ts +2 -0
- package/lib/components/pba-payment/pba-payment.component.d.ts +6 -0
- package/lib/components/service-request/service-request.component.d.ts +3 -2
- package/lib/interfaces/IserviceRequestPbaPayment.d.ts +2 -1
- package/lib/payment-lib.component.d.ts +1 -0
- package/lib/payment-lib.service.d.ts +3 -0
- package/package.json +1 -1
|
@@ -143,10 +143,18 @@ export class ContactDetailsComponent {
|
|
|
143
143
|
/** @type {?} */
|
|
144
144
|
const emailField = this.emailAddressForm.controls.email;
|
|
145
145
|
if (this.emailAddressForm.valid) {
|
|
146
|
-
this.
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
146
|
+
if (!this.isEditOperationInRefundList) {
|
|
147
|
+
this.assignContactDetails.emit({
|
|
148
|
+
email: emailField.value,
|
|
149
|
+
notification_type: 'EMAIL'
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
this.assignContactDetailsInFefundsList.emit({
|
|
154
|
+
email: emailField.value,
|
|
155
|
+
notification_type: 'EMAIL'
|
|
156
|
+
});
|
|
157
|
+
}
|
|
150
158
|
}
|
|
151
159
|
else {
|
|
152
160
|
if (emailField.value == '') {
|
|
@@ -425,4 +433,4 @@ if (false) {
|
|
|
425
433
|
*/
|
|
426
434
|
ContactDetailsComponent.prototype.paymentLibComponent;
|
|
427
435
|
}
|
|
428
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9jY3BheS13ZWItY29tcG9uZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY29udGFjdC1kZXRhaWxzL2NvbnRhY3QtZGV0YWlscy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFPdkYsTUFBTSxPQUFPLHVCQUF1Qjs7Ozs7O0lBbUNsQyxZQUFvQixXQUF3QixFQUN4QixtQkFBd0MsRUFDeEMsbUJBQXdDO1FBRnhDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQWpDbEQseUJBQW9CLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0Qsc0NBQWlDLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUUsMEJBQXFCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEUsY0FBUyxHQUFXLHdCQUF3QixDQUFDO1FBRTdDLDJCQUFzQixHQUFZLElBQUksQ0FBQztRQUN2QyxzQkFBaUIsR0FBYSxLQUFLLENBQUM7UUFDcEMsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBQ25DLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQUl4Qyx3QkFBbUIsR0FBUyxFQUFFLENBQUM7UUFFL0Isc0JBQWlCLEdBQVksS0FBSyxDQUFD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K0NBQThCOztJQUM5QixnREFBK0I7O0lBQy9CLGtEQUFpQzs7SUFDakMsbURBQWtDOztJQUNsQyxzREFBcUM7O0lBQ3JDLHVEQUFzQzs7SUFDdEMsdURBQXNDOztJQUN0QyxvREFBbUM7O0lBQ25DLHFEQUFvQzs7SUFDcEMsZ0RBQStCOztJQUMvQixpREFBZ0M7O0lBQ2hDLG1EQUFrQzs7SUFDbEMsb0RBQW1DOztJQUNuQyxpREFBZ0M7Ozs7O0lBRXBCLDhDQUFnQzs7Ozs7SUFDaEMsc0RBQWdEOzs7OztJQUNoRCxzREFBZ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFBheW1lbnRMaWJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wYXltZW50LWxpYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjcGF5LWNvbnRhY3QtZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250YWN0LWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb250YWN0LWRldGFpbHMuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIENvbnRhY3REZXRhaWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCdpc0VkaXRPcGVyYXRpb24nKSBpc0VkaXRPcGVyYXRpb246IGJvb2xlYW47XG4gIEBJbnB1dCgnaXNFZGl0T3BlcmF0aW9uSW5SZWZ1bmRMaXN0JykgaXNFZGl0T3BlcmF0aW9uSW5SZWZ1bmRMaXN0OiBib29sZWFuO1xuICBASW5wdXQoJ2FkZHJlc3NPYmonKSBhZGRyZXNzT2JqOiBhbnk7XG4gIEBPdXRwdXQoKSBhc3NpZ25Db250YWN0RGV0YWlsczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBhc3NpZ25Db250YWN0RGV0YWlsc0luRmVmdW5kc0xpc3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcmVkaXJlY3RUb0lzc3VlUmVmdW5kOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgcGFnZVRpdGxlOiBzdHJpbmcgPSAnUGF5bWVudCBzdGF0dXMgaGlzdG9yeSc7XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICBpc0VtYWlsU0FkZHJlc3NDbGlja2VkOiBib29sZWFuID0gdHJ1ZTtcbiAgaXNTaG93UGlja0FkZHJlc3M6ICBib29sZWFuID0gZmFsc2U7XG4gIGlzUG9zdGNvZGVDbGlja2VkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzTWFudWFsQWRkcmVzc0NsaWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZW1haWxBZGRyZXNzRm9ybTogRm9ybUdyb3VwO1xuICBwb3N0Q29kZUZvcm06IEZvcm1Hcm91cDtcbiAgbWFudWFsQWRkcmVzc0Zvcm06IEZvcm1Hcm91cDtcbiAgYWRkcmVzc1Bvc3Rjb2RlTGlzdDphbnlbXSA9IFtdO1xuICBwb3N0Y29kZUFkZHJlc3M6YW55O1xuICBpc0FkZHJlc3NCb3hFbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGlzRW1haWxFbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xuICBlbWFpbEhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUG9zdGNvZGVFbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xuICBwb3N0Y29kZUhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIGlzYWRkcmVzc0xpbmUxRW1wdHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgYWRkcmVzc0xpbmUxSGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgYWRkcmVzc0xpbmUySGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNUb3duT3JDaXR5RW1wdHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdG93bk9yQ2l0eUhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIGlzQ291bnR5RW1wdHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY291bnR5SGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNNUG9zdGNvZGVFbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xuICBtcG9zdGNvZGVIYXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0NvdW50cnlFbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcGF5bWVudExpYkNvbXBvbmVudDogUGF5bWVudExpYkNvbXBvbmVudCkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlXSwgJ2FsbCcpO1xuXG4gICAgdGhpcy5lbWFpbEFkZHJlc3NGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBlbWFpbDogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oJ15bYS16MC05Ll8lKy1dK0BbYS16MC05LV0rXFxcXC5bYS16XXsyLDR9JCcpXG4gICAgICBdKSlcbiAgICB9KTtcbiAgICB0aGlzLnBvc3RDb2RlRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgcG9zdGNvZGU6IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKCdeKFtBLVpdezEsMn1bMC05XXsxLDJ9W0EtWl17MCwxfSA/WzAtOV1bQS1aXXsyfSknKVxuICAgICAgXSkpXG4gICAgfSk7XG4gICAgdGhpcy5tYW51YWxBZGRyZXNzRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgYWRkcmVzc2wxOiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybignXlthLXpBLVowLTlcXFxccyxcXCctXSokJylcbiAgICAgIF0pKSxcbiAgICAgIGFkZHJlc3NsMjogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oJ15bYS16QS1aMC05XFxcXHMsXFwnLV0qJCcpXG4gICAgICBdKSksXG4gICAgICB0b3dub3JjaXR5OiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybignXlthLXpBLVowLTlcXFxccyxcXCctXSokJylcbiAgICAgIF0pKSxcbiAgICAgIGNvdW50eTogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oJ15bYS16QS1aMC05XFxcXHMsXFwnLV0qJCcpXG4gICAgICBdKSksXG4gICAgICBtcG9zdGNvZGU6IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKCdeKFtBLVpdezEsMn1bMC05XXsxLDJ9W0EtWl17MCwxfSA/WzAtOV1bQS1aXXsyfSknKVxuICAgICAgXSkpLFxuICAgICAgY291bnRyeTogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXG4gICAgICBdKSlcbiAgICB9KTtcbiAgICBpZih0aGlzLmFkZHJlc3NPYmogIT09IHVuZGVmaW5lZCAmJiB0aGlzLmFkZHJlc3NPYmogIT09ICcnKSB7XG4gICAgICB0aGlzLnNldEVkaXREZXRhaWxzKCk7XG4gICAgfVxuICAgIGlmKHRoaXMuaXNFZGl0T3BlcmF0aW9uSW5SZWZ1bmRMaXN0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuaXNFZGl0T3BlcmF0aW9uSW5SZWZ1bmRMaXN0ID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIHNldEVkaXREZXRhaWxzKCkge1xuICAgIGlmKHRoaXMuYWRkcmVzc09iai5ub3RpZmljYXRpb25fdHlwZSA9PT0gJ0VNQUlMJykge1xuICAgICAgdGhpcy5pc0VtYWlsU0FkZHJlc3NDbGlja2VkID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNQb3N0Y29kZUNsaWNrZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNNYW51YWxBZGRyZXNzQ2xpY2tlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5lbWFpbEFkZHJlc3NGb3JtLnNldFZhbHVlKHsgZW1haWw6IHRoaXMuYWRkcmVzc09iai5jb250YWN0X2RldGFpbHMuZW1haWwgfSk7XG4gICAgfSBlbHNlIGlmKHRoaXMuYWRkcmVzc09iai5ub3RpZmljYXRpb25fdHlwZSA9PT0gJ0xFVFRFUicpIHtcbiAgICAgIHRoaXMuaXNFbWFpbFNBZGRyZXNzQ2xpY2tlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5pc1Bvc3Rjb2RlQ2xpY2tlZCA9IHRydWU7XG4gICAgICB0aGlzLmlzTWFudWFsQWRkcmVzc0NsaWNrZWQgPSB0cnVlO1xuICAgICAgdGhpcy5tYW51YWxBZGRyZXNzRm9ybS5wYXRjaFZhbHVlKHsgXG4gICAgICAgIGFkZHJlc3NsMTogdGhpcy5hZGRyZXNzT2JqLmNvbnRhY3RfZGV0YWlscy5hZGRyZXNzX2xpbmUsXG4gICAgICAgIHRvd25vcmNpdHk6IHRoaXMuYWRkcmVzc09iai5jb250YWN0X2RldGFpbHMuY2l0eSxcbiAgICAgICAgY291bnR5OiB0aGlzLmFkZHJlc3NPYmouY29udGFjdF9kZXRhaWxzLmNvdW50eSxcbiAgICAgICAgY291bnRyeTogdGhpcy5hZGRyZXNzT2JqLmNvbnRhY3RfZGV0YWlscy5jb3VudHJ5LFxuICAgICAgICBtcG9zdGNvZGU6IHRoaXMuYWRkcmVzc09iai5jb250YWN0X2RldGFpbHMucG9zdGFsX2NvZGVcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdENvbnRhY3RPcHRpb24odHlwZSwgaXNMaW5rZWRDbGllZCkge1xuICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV0sICdhbGwnKTtcbiAgICBpZiggdHlwZSA9PT0gJ0VtYWlsJyAmJiBpc0xpbmtlZENsaWVkID09PSAnZmFsc2UnKXtcbiAgICAgIHRoaXMuaXNFbWFpbFNBZGRyZXNzQ2xpY2tlZCA9IHRydWU7XG4gICAgICB0aGlzLmlzUG9zdGNvZGVDbGlja2VkID0gZmFsc2U7XG4gICAgICB0aGlzLmlzTWFudWFsQWRkcmVzc0NsaWNrZWQgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYodHlwZSA9PT0gJ1Bvc3Rjb2RlJyAmJiBpc0xpbmtlZENsaWVkID09PSAnZmFsc2UnKSB7XG4gICAgICB0aGlzLmlzRW1haWxTQWRkcmVzc0NsaWNrZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNQb3N0Y29kZUNsaWNrZWQgPSB0cnVlO1xuICAgICAgdGhpcy5pc01hbnVhbEFkZHJlc3NDbGlja2VkID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmKHR5cGUgPT09ICdQb3N0Y29kZScgJiYgaXNMaW5rZWRDbGllZCA9PT0gJ3RydWUnKSB7XG4gICAgICB0aGlzLmlzRW1haWxTQWRkcmVzc0NsaWNrZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNQb3N0Y29kZUNsaWNrZWQgPSB0cnVlO1xuICAgICAgdGhpcy5pc01hbnVhbEFkZHJlc3NDbGlja2VkID0gdHJ1ZTtcblxuICAgIH1cbiAgfVxuXG4gIGZpbmFsRm9ybVN1Ym1pdCgpIHtcbiAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2VdLCAnYWxsJyk7XG4gICAgaWYoIHRoaXMuaXNFbWFpbFNBZGRyZXNzQ2xpY2tlZCApe1xuICAgICAgY29uc3QgZW1haWxGaWVsZCA9IHRoaXMuZW1haWxBZGRyZXNzRm9ybS5jb250cm9scy5lbWFpbDtcbiAgICAgIGlmICh0aGlzLmVtYWlsQWRkcmVzc0Zvcm0udmFsaWQpIHtcbiAgICAgICAgdGhpcy5hc3NpZ25Db250YWN0RGV0YWlscy5lbWl0KCB7XG4gICAgICAgICAgZW1haWw6IGVtYWlsRmllbGQudmFsdWUsXG4gICAgICAgICAgbm90aWZpY2F0aW9uX3R5cGU6ICdFTUFJTCdcbiAgICAgICAgfSApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYoIGVtYWlsRmllbGQudmFsdWUgPT0gJycgKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm0oW3RydWUsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2VdLCAnZW1haWwnKTtcbiAgICAgICAgfVxuICAgICAgICBpZihlbWFpbEZpZWxkLnZhbHVlICE9ICcnICYmIGVtYWlsRmllbGQuaW52YWxpZCApIHtcbiAgICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV0sICdlbWFpbCcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmKCB0aGlzLmlzUG9zdGNvZGVDbGlja2VkICYmICF0aGlzLmlzTWFudWFsQWRkcmVzc0NsaWNrZWQgKSB7XG4gICAgICB0aGlzLnBvc3Rjb2RlVmFsaWRhdGlvbignRlMnKTtcbiAgICB9IGVsc2UgaWYodGhpcy5pc1Bvc3Rjb2RlQ2xpY2tlZCAmJiB0aGlzLmlzTWFudWFsQWRkcmVzc0NsaWNrZWQpIHtcbiAgICAgIGNvbnN0IGZpZWxkQ3RybHMgPSB0aGlzLm1hbnVhbEFkZHJlc3NGb3JtLmNvbnRyb2xzO1xuICAgICAgaWYgKHRoaXMubWFudWFsQWRkcmVzc0Zvcm0udmFsaWQpIHtcbiAgICAgICAgaWYoIXRoaXMuaXNFZGl0T3BlcmF0aW9uSW5SZWZ1bmRMaXN0KSB7XG4gICAgICAgIHRoaXMuYXNzaWduQ29udGFjdERldGFpbHMuZW1pdCh7XG4gICAgICAgICAgYWRkcmVzc19saW5lOiBmaWVsZEN0cmxzLmFkZHJlc3NsMS52YWx1ZSsnICcrZmllbGRDdHJscy5hZGRyZXNzbDIudmFsdWUsXG4gICAgICAgICAgY2l0eTogZmllbGRDdHJscy50b3dub3JjaXR5LnZhbHVlLFxuICAgICAgICAgIGNvdW50eTogZmllbGRDdHJscy5jb3VudHkudmFsdWUsXG4gICAgICAgICAgcG9zdGFsX2NvZGU6IGZpZWxkQ3RybHMubXBvc3Rjb2RlLnZhbHVlLFxuICAgICAgICAgIGNvdW50cnk6IGZpZWxkQ3RybHMuY291bnRyeS52YWx1ZSxcbiAgICAgICAgICBub3RpZmljYXRpb25fdHlwZTogJ0xFVFRFUidcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFzc2lnbkNvbnRhY3REZXRhaWxzSW5GZWZ1bmRzTGlzdC5lbWl0KHtcbiAgICAgICAgICBhZGRyZXNzX2xpbmU6IGZpZWxkQ3RybHMuYWRkcmVzc2wxLnZhbHVlKycgJytmaWVsZEN0cmxzLmFkZHJlc3NsMi52YWx1ZSxcbiAgICAgICAgICBjaXR5OiBmaWVsZEN0cmxzLnRvd25vcmNpdHkudmFsdWUsXG4gICAgICAgICAgY291bnR5OiBmaWVsZEN0cmxzLmNvdW50eS52YWx1ZSxcbiAgICAgICAgICBwb3N0YWxfY29kZTogZmllbGRDdHJscy5tcG9zdGNvZGUudmFsdWUsXG4gICAgICAgICAgY291bnRyeTogZmllbGRDdHJscy5jb3VudHJ5LnZhbHVlLFxuICAgICAgICAgIG5vdGlmaWNhdGlvbl90eXBlOiAnTEVUVEVSJ1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmKCBmaWVsZEN0cmxzLmFkZHJlc3NsMS52YWx1ZSA9PSAnJyApIHtcbiAgICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV0sICdhZGRyZXNzMScpO1xuICAgICAgICB9XG4gICAgICAgIGlmKGZpZWxkQ3RybHMuYWRkcmVzc2wxLnZhbHVlICE9ICcnICYmIGZpZWxkQ3RybHMuYWRkcmVzc2wxLmludmFsaWQgKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2VdLCAnYWRkcmVzczEnKTtcbiAgICAgICAgfVxuICAgICAgICBpZihmaWVsZEN0cmxzLmFkZHJlc3NsMi52YWx1ZSAhPSAnJyAmJiBmaWVsZEN0cmxzLmFkZHJlc3NsMi5pbnZhbGlkICkge1xuICAgICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlXSwgJ2FkZHJlc3MyJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYoIGZpZWxkQ3RybHMudG93bm9yY2l0eS52YWx1ZSA9PSAnJyApIHtcbiAgICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV0sICd0b3duJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYoZmllbGRDdHJscy50b3dub3JjaXR5LnZhbHVlICE9ICcnICYmIGZpZWxkQ3RybHMudG93bm9yY2l0eS5pbnZhbGlkICkge1xuICAgICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlXSwgJ3Rvd24nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiggZmllbGRDdHJscy5jb3VudHkudmFsdWUgPT0gJycgKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2VdLCAnY291bnR5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYoZmllbGRDdHJscy5jb3VudHkudmFsdWUgIT0gJycgJiYgZmllbGRDdHJscy5jb3VudHkuaW52YWxpZCApIHtcbiAgICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZV0sICdjb3VudHknKTtcbiAgICAgICAgfVxuICAgICAgICBpZiggZmllbGRDdHJscy5tcG9zdGNvZGUudmFsdWUgPT0gJycgKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2VdLCAnbXBvc3Rjb2RlJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYoZmllbGRDdHJscy5tcG9zdGNvZGUudmFsdWUgIT0gJycgJiYgZmllbGRDdHJscy5tcG9zdGNvZGUuaW52YWxpZCApIHtcbiAgICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZV0sICdtcG9zdGNvZGUnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiggZmllbGRDdHJscy5jb3VudHJ5LnZhbHVlID09ICcnICkge1xuICAgICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSx0cnVlXSwgJ2NvdW50cnknKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuXG4gIH1cblxuICBwb3N0Y29kZVZhbGlkYXRpb24oc3RyKSB7XG4gICAgY29uc3QgcG9zdGNvZGVGaWVsZCA9IHRoaXMucG9zdENvZGVGb3JtLmNvbnRyb2xzLnBvc3Rjb2RlO1xuICAgIGlmICh0aGlzLnBvc3RDb2RlRm9ybS52YWxpZCkge1xuICAgICAgaWYoc3RyID09PSAnRkEnKSB7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5nZXRBZGRyZXNzQnlQb3N0Y29kZShwb3N0Y29kZUZpZWxkLnZhbHVlKS5zdWJzY3JpYmUoXG4gICAgICAgICAgcmVmdW5kc05vdGlmaWNhdGlvbiA9PiB7XG4gICAgICAgICAgICB0aGlzLmFkZHJlc3NQb3N0Y29kZUxpc3QgPSByZWZ1bmRzTm90aWZpY2F0aW9uWydkYXRhJ11bJ3Jlc3VsdHMnXTtcbiAgICAgICAgICAgIHRoaXMuaXNTaG93UGlja0FkZHJlc3MgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgKSxcbiAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmlzU2hvd1BpY2tBZGRyZXNzID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnJvci5yZXBsYWNlKC9cIi9nLFwiXCIpO1xuICAgICAgICB9OyBcbiAgICAgIH0gZWxzZSBpZiAoc3RyID09PSAnRlMnKSB7XG4gICAgICAgIGlmKHRoaXMucG9zdGNvZGVBZGRyZXNzICE9PSB1bmRlZmluZWQgJiYgdGhpcy5wb3N0Y29kZUFkZHJlc3MpIHtcbiAgICAgICAgICB0aGlzLmlzQWRkcmVzc0JveEVtcHR5ID0gZmFsc2U7XG4gICAgICAgICAgbGV0IGFkZHJlc3NMaW5lPVwiXCI7XG4gICAgICAgICAgbGV0IGFkZHJlc3NBcnJheSA9IHRoaXMucG9zdGNvZGVBZGRyZXNzLkFERFJFU1Muc3BsaXQoXCIsXCIpO1xuICAgICAgICAgIGZvciggbGV0IGk9MDsgaTxhZGRyZXNzQXJyYXkubGVuZ3RoLTI7IGkrKyApIHtcbiAgICAgICAgICAgIGFkZHJlc3NMaW5lICs9YWRkcmVzc0FycmF5W2ldOyBcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLmFzc2lnbkNvbnRhY3REZXRhaWxzLmVtaXQoe1xuICAgICAgICAgICAgYWRkcmVzc19saW5lOiBhZGRyZXNzTGluZSxcbiAgICAgICAgICAgIGNpdHk6IHRoaXMucG9zdGNvZGVBZGRyZXNzLlBPU1RfVE9XTixcbiAgICAgICAgICAgIGNvdW50eTogdGhpcy5wb3N0Y29kZUFkZHJlc3MuTE9DQUxfQ1VTVE9ESUFOX0NPREVfREVTQ1JJUFRJT04sXG4gICAgICAgICAgICBwb3N0YWxfY29kZTogdGhpcy5wb3N0Y29kZUFkZHJlc3MuUE9TVENPREUsXG4gICAgICAgICAgICBjb3VudHJ5OiAnVW5pdGVkIEtpbmdkb20nLFxuICAgICAgICAgICAgbm90aWZpY2F0aW9uX3R5cGU6ICdMRVRURVInXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5pc0FkZHJlc3NCb3hFbXB0eSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYoIHBvc3Rjb2RlRmllbGQudmFsdWUgPT0gJycgKSB7XG4gICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlXSwgJ3Bvc3Rjb2RlJyk7XG4gICAgICB9XG4gICAgICBpZihwb3N0Y29kZUZpZWxkLnZhbHVlICE9ICcnICYmIHBvc3Rjb2RlRmllbGQuaW52YWxpZCApIHtcbiAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2VdLCAncG9zdGNvZGUnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmVkaXJlY3Rpb24oZXZlbnQ6YW55KSB7XG4gICAgdGhpcy5yZWRpcmVjdFRvSXNzdWVSZWZ1bmQuZW1pdChldmVudCk7XG4gIH1cbiAgcmVzZXRGb3JtKHZhbCwgZmllbGQpIHtcbiAgICBpZihmaWVsZD09PSdlbWFpbCcgfHwgZmllbGQ9PT0nYWxsJykge1xuICAgICAgdGhpcy5pc0VtYWlsRW1wdHkgPSB2YWxbMF07XG4gICAgICB0aGlzLmVtYWlsSGFzRXJyb3IgPSB2YWxbMV07XG4gICAgfVxuICAgIGlmKGZpZWxkPT09J3Bvc3Rjb2RlJyB8fCBmaWVsZD09PSdhbGwnKSB7XG4gICAgICB0aGlzLmlzUG9zdGNvZGVFbXB0eSA9IHZhbFsyXTtcbiAgICAgIHRoaXMucG9zdGNvZGVIYXNFcnJvciA9IHZhbFszXTtcbiAgICB9XG4gICAgaWYoZmllbGQ9PT0nYWRkcmVzczEnIHx8IGZpZWxkPT09J2FsbCcpIHtcbiAgICAgIHRoaXMuaXNhZGRyZXNzTGluZTFFbXB0eSA9IHZhbFs0XTtcbiAgICAgIHRoaXMuYWRkcmVzc0xpbmUxSGFzRXJyb3IgPSB2YWxbNV07XG4gICAgfVxuICAgIGlmKGZpZWxkPT09J2FkZHJlc3MyJyB8fCBmaWVsZD09PSdhbGwnKSB7XG4gICAgICB0aGlzLmFkZHJlc3NMaW5lMkhhc0Vycm9yID0gdmFsWzZdO1xuICAgIH1cbiAgICBpZihmaWVsZD09PSd0b3duJyB8fCBmaWVsZD09PSdhbGwnKSB7XG4gICAgICB0aGlzLmlzVG93bk9yQ2l0eUVtcHR5ID0gdmFsWzddO1xuICAgICAgdGhpcy50b3duT3JDaXR5SGFzRXJyb3IgPSB2YWxbOF07XG4gICAgfVxuICAgIGlmKGZpZWxkPT09J2NvdW50eScgfHwgZmllbGQ9PT0nYWxsJykge1xuICAgICAgdGhpcy5pc0NvdW50eUVtcHR5ID0gdmFsWzldO1xuICAgICAgdGhpcy5jb3VudHlIYXNFcnJvciA9IHZhbFsxMF07XG4gICAgfVxuICAgIGlmKGZpZWxkPT09J21wb3N0Y29kZScgfHwgZmllbGQ9PT0nYWxsJykge1xuICAgICAgdGhpcy5pc01Qb3N0Y29kZUVtcHR5ID0gdmFsWzExXTtcbiAgICAgIHRoaXMubXBvc3Rjb2RlSGFzRXJyb3IgPSB2YWxbMTJdO1xuICAgIH1cbiAgICBpZihmaWVsZD09PSdjb3VudHJ5JyB8fCBmaWVsZD09PSdhbGwnKSB7XG4gICAgICB0aGlzLmlzQ291bnRyeUVtcHR5ID0gdmFsWzEzXTtcbiAgICB9XG4gIFxuICB9XG59XG4iXX0=
|
|
436
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9jY3BheS13ZWItY29tcG9uZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY29udGFjdC1kZXRhaWxzL2NvbnRhY3QtZGV0YWlscy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFPdkYsTUFBTSxPQUFPLHVCQUF1Qjs7Ozs7O0lBbUNsQyxZQUFvQixXQUF3QixFQUN4QixtQkFBd0MsRUFDeEMsbUJBQXdDO1FBRnhDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQWpDbEQseUJBQW9CLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0Qsc0NBQWlDLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUUsMEJBQXFCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEUsY0FBUyxHQUFXLHdCQUF3QixDQUFDO1FBRTdDLDJCQUFzQixHQUFZLElBQUksQ0FBQztRQUN2QyxzQkFBaUIsR0FBYSxLQUFLLENBQUM7UUFDcEMsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBQ25DLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQUl4Qyx3QkFBbUIsR0FBUyxFQUFFLENBQUM7UUFFL0Isc0JBQWlCLEdBQVksS0FBSyxDQUFD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NENBQTZDOztJQUM3QywrQ0FBcUI7O0lBQ3JCLHlEQUF1Qzs7SUFDdkMsb0RBQW9DOztJQUNwQyxvREFBbUM7O0lBQ25DLHlEQUF3Qzs7SUFDeEMsbURBQTRCOztJQUM1QiwrQ0FBd0I7O0lBQ3hCLG9EQUE2Qjs7SUFDN0Isc0RBQStCOztJQUMvQixrREFBb0I7O0lBQ3BCLG9EQUFtQzs7SUFFbkMsK0NBQThCOztJQUM5QixnREFBK0I7O0lBQy9CLGtEQUFpQzs7SUFDakMsbURBQWtDOztJQUNsQyxzREFBcUM7O0lBQ3JDLHVEQUFzQzs7SUFDdEMsdURBQXNDOztJQUN0QyxvREFBbUM7O0lBQ25DLHFEQUFvQzs7SUFDcEMsZ0RBQStCOztJQUMvQixpREFBZ0M7O0lBQ2hDLG1EQUFrQzs7SUFDbEMsb0RBQW1DOztJQUNuQyxpREFBZ0M7Ozs7O0lBRXBCLDhDQUFnQzs7Ozs7SUFDaEMsc0RBQWdEOzs7OztJQUNoRCxzREFBZ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFBheW1lbnRMaWJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wYXltZW50LWxpYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjcGF5LWNvbnRhY3QtZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250YWN0LWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb250YWN0LWRldGFpbHMuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIENvbnRhY3REZXRhaWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCdpc0VkaXRPcGVyYXRpb24nKSBpc0VkaXRPcGVyYXRpb246IGJvb2xlYW47XG4gIEBJbnB1dCgnaXNFZGl0T3BlcmF0aW9uSW5SZWZ1bmRMaXN0JykgaXNFZGl0T3BlcmF0aW9uSW5SZWZ1bmRMaXN0OiBib29sZWFuO1xuICBASW5wdXQoJ2FkZHJlc3NPYmonKSBhZGRyZXNzT2JqOiBhbnk7XG4gIEBPdXRwdXQoKSBhc3NpZ25Db250YWN0RGV0YWlsczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBhc3NpZ25Db250YWN0RGV0YWlsc0luRmVmdW5kc0xpc3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcmVkaXJlY3RUb0lzc3VlUmVmdW5kOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgcGFnZVRpdGxlOiBzdHJpbmcgPSAnUGF5bWVudCBzdGF0dXMgaGlzdG9yeSc7XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICBpc0VtYWlsU0FkZHJlc3NDbGlja2VkOiBib29sZWFuID0gdHJ1ZTtcbiAgaXNTaG93UGlja0FkZHJlc3M6ICBib29sZWFuID0gZmFsc2U7XG4gIGlzUG9zdGNvZGVDbGlja2VkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzTWFudWFsQWRkcmVzc0NsaWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZW1haWxBZGRyZXNzRm9ybTogRm9ybUdyb3VwO1xuICBwb3N0Q29kZUZvcm06IEZvcm1Hcm91cDtcbiAgbWFudWFsQWRkcmVzc0Zvcm06IEZvcm1Hcm91cDtcbiAgYWRkcmVzc1Bvc3Rjb2RlTGlzdDphbnlbXSA9IFtdO1xuICBwb3N0Y29kZUFkZHJlc3M6YW55O1xuICBpc0FkZHJlc3NCb3hFbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGlzRW1haWxFbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xuICBlbWFpbEhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUG9zdGNvZGVFbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xuICBwb3N0Y29kZUhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIGlzYWRkcmVzc0xpbmUxRW1wdHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgYWRkcmVzc0xpbmUxSGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgYWRkcmVzc0xpbmUySGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNUb3duT3JDaXR5RW1wdHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdG93bk9yQ2l0eUhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIGlzQ291bnR5RW1wdHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY291bnR5SGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNNUG9zdGNvZGVFbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xuICBtcG9zdGNvZGVIYXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0NvdW50cnlFbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcGF5bWVudExpYkNvbXBvbmVudDogUGF5bWVudExpYkNvbXBvbmVudCkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlXSwgJ2FsbCcpO1xuXG4gICAgdGhpcy5lbWFpbEFkZHJlc3NGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBlbWFpbDogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oJ15bYS16MC05Ll8lKy1dK0BbYS16MC05LV0rXFxcXC5bYS16XXsyLDR9JCcpXG4gICAgICBdKSlcbiAgICB9KTtcbiAgICB0aGlzLnBvc3RDb2RlRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgcG9zdGNvZGU6IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKCdeKFtBLVpdezEsMn1bMC05XXsxLDJ9W0EtWl17MCwxfSA/WzAtOV1bQS1aXXsyfSknKVxuICAgICAgXSkpXG4gICAgfSk7XG4gICAgdGhpcy5tYW51YWxBZGRyZXNzRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgYWRkcmVzc2wxOiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybignXlthLXpBLVowLTlcXFxccyxcXCctXSokJylcbiAgICAgIF0pKSxcbiAgICAgIGFkZHJlc3NsMjogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oJ15bYS16QS1aMC05XFxcXHMsXFwnLV0qJCcpXG4gICAgICBdKSksXG4gICAgICB0b3dub3JjaXR5OiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybignXlthLXpBLVowLTlcXFxccyxcXCctXSokJylcbiAgICAgIF0pKSxcbiAgICAgIGNvdW50eTogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oJ15bYS16QS1aMC05XFxcXHMsXFwnLV0qJCcpXG4gICAgICBdKSksXG4gICAgICBtcG9zdGNvZGU6IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKCdeKFtBLVpdezEsMn1bMC05XXsxLDJ9W0EtWl17MCwxfSA/WzAtOV1bQS1aXXsyfSknKVxuICAgICAgXSkpLFxuICAgICAgY291bnRyeTogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXG4gICAgICBdKSlcbiAgICB9KTtcbiAgICBpZih0aGlzLmFkZHJlc3NPYmogIT09IHVuZGVmaW5lZCAmJiB0aGlzLmFkZHJlc3NPYmogIT09ICcnKSB7XG4gICAgICB0aGlzLnNldEVkaXREZXRhaWxzKCk7XG4gICAgfVxuICAgIGlmKHRoaXMuaXNFZGl0T3BlcmF0aW9uSW5SZWZ1bmRMaXN0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuaXNFZGl0T3BlcmF0aW9uSW5SZWZ1bmRMaXN0ID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIHNldEVkaXREZXRhaWxzKCkge1xuICAgIGlmKHRoaXMuYWRkcmVzc09iai5ub3RpZmljYXRpb25fdHlwZSA9PT0gJ0VNQUlMJykge1xuICAgICAgdGhpcy5pc0VtYWlsU0FkZHJlc3NDbGlja2VkID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNQb3N0Y29kZUNsaWNrZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNNYW51YWxBZGRyZXNzQ2xpY2tlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5lbWFpbEFkZHJlc3NGb3JtLnNldFZhbHVlKHsgZW1haWw6IHRoaXMuYWRkcmVzc09iai5jb250YWN0X2RldGFpbHMuZW1haWwgfSk7XG4gICAgfSBlbHNlIGlmKHRoaXMuYWRkcmVzc09iai5ub3RpZmljYXRpb25fdHlwZSA9PT0gJ0xFVFRFUicpIHtcbiAgICAgIHRoaXMuaXNFbWFpbFNBZGRyZXNzQ2xpY2tlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5pc1Bvc3Rjb2RlQ2xpY2tlZCA9IHRydWU7XG4gICAgICB0aGlzLmlzTWFudWFsQWRkcmVzc0NsaWNrZWQgPSB0cnVlO1xuICAgICAgdGhpcy5tYW51YWxBZGRyZXNzRm9ybS5wYXRjaFZhbHVlKHsgXG4gICAgICAgIGFkZHJlc3NsMTogdGhpcy5hZGRyZXNzT2JqLmNvbnRhY3RfZGV0YWlscy5hZGRyZXNzX2xpbmUsXG4gICAgICAgIHRvd25vcmNpdHk6IHRoaXMuYWRkcmVzc09iai5jb250YWN0X2RldGFpbHMuY2l0eSxcbiAgICAgICAgY291bnR5OiB0aGlzLmFkZHJlc3NPYmouY29udGFjdF9kZXRhaWxzLmNvdW50eSxcbiAgICAgICAgY291bnRyeTogdGhpcy5hZGRyZXNzT2JqLmNvbnRhY3RfZGV0YWlscy5jb3VudHJ5LFxuICAgICAgICBtcG9zdGNvZGU6IHRoaXMuYWRkcmVzc09iai5jb250YWN0X2RldGFpbHMucG9zdGFsX2NvZGVcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdENvbnRhY3RPcHRpb24odHlwZSwgaXNMaW5rZWRDbGllZCkge1xuICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV0sICdhbGwnKTtcbiAgICBpZiggdHlwZSA9PT0gJ0VtYWlsJyAmJiBpc0xpbmtlZENsaWVkID09PSAnZmFsc2UnKXtcbiAgICAgIHRoaXMuaXNFbWFpbFNBZGRyZXNzQ2xpY2tlZCA9IHRydWU7XG4gICAgICB0aGlzLmlzUG9zdGNvZGVDbGlja2VkID0gZmFsc2U7XG4gICAgICB0aGlzLmlzTWFudWFsQWRkcmVzc0NsaWNrZWQgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYodHlwZSA9PT0gJ1Bvc3Rjb2RlJyAmJiBpc0xpbmtlZENsaWVkID09PSAnZmFsc2UnKSB7XG4gICAgICB0aGlzLmlzRW1haWxTQWRkcmVzc0NsaWNrZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNQb3N0Y29kZUNsaWNrZWQgPSB0cnVlO1xuICAgICAgdGhpcy5pc01hbnVhbEFkZHJlc3NDbGlja2VkID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmKHR5cGUgPT09ICdQb3N0Y29kZScgJiYgaXNMaW5rZWRDbGllZCA9PT0gJ3RydWUnKSB7XG4gICAgICB0aGlzLmlzRW1haWxTQWRkcmVzc0NsaWNrZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNQb3N0Y29kZUNsaWNrZWQgPSB0cnVlO1xuICAgICAgdGhpcy5pc01hbnVhbEFkZHJlc3NDbGlja2VkID0gdHJ1ZTtcblxuICAgIH1cbiAgfVxuXG4gIGZpbmFsRm9ybVN1Ym1pdCgpIHtcbiAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2VdLCAnYWxsJyk7XG4gICAgaWYoIHRoaXMuaXNFbWFpbFNBZGRyZXNzQ2xpY2tlZCApe1xuICAgICAgY29uc3QgZW1haWxGaWVsZCA9IHRoaXMuZW1haWxBZGRyZXNzRm9ybS5jb250cm9scy5lbWFpbDtcbiAgICAgIGlmICh0aGlzLmVtYWlsQWRkcmVzc0Zvcm0udmFsaWQpIHtcbiAgICAgICAgaWYoIXRoaXMuaXNFZGl0T3BlcmF0aW9uSW5SZWZ1bmRMaXN0KSB7XG4gICAgICAgIHRoaXMuYXNzaWduQ29udGFjdERldGFpbHMuZW1pdCgge1xuICAgICAgICAgIGVtYWlsOiBlbWFpbEZpZWxkLnZhbHVlLFxuICAgICAgICAgIG5vdGlmaWNhdGlvbl90eXBlOiAnRU1BSUwnXG4gICAgICAgIH0gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYXNzaWduQ29udGFjdERldGFpbHNJbkZlZnVuZHNMaXN0LmVtaXQoe1xuICAgICAgICAgIGVtYWlsOiBlbWFpbEZpZWxkLnZhbHVlLFxuICAgICAgICAgIG5vdGlmaWNhdGlvbl90eXBlOiAnRU1BSUwnXG4gICAgICAgIH0gKTtcbiAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmKCBlbWFpbEZpZWxkLnZhbHVlID09ICcnICkge1xuICAgICAgICAgIHRoaXMucmVzZXRGb3JtKFt0cnVlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlXSwgJ2VtYWlsJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYoZW1haWxGaWVsZC52YWx1ZSAhPSAnJyAmJiBlbWFpbEZpZWxkLmludmFsaWQgKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2VdLCAnZW1haWwnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiggdGhpcy5pc1Bvc3Rjb2RlQ2xpY2tlZCAmJiAhdGhpcy5pc01hbnVhbEFkZHJlc3NDbGlja2VkICkge1xuICAgICAgdGhpcy5wb3N0Y29kZVZhbGlkYXRpb24oJ0ZTJyk7XG4gICAgfSBlbHNlIGlmKHRoaXMuaXNQb3N0Y29kZUNsaWNrZWQgJiYgdGhpcy5pc01hbnVhbEFkZHJlc3NDbGlja2VkKSB7XG4gICAgICBjb25zdCBmaWVsZEN0cmxzID0gdGhpcy5tYW51YWxBZGRyZXNzRm9ybS5jb250cm9scztcbiAgICAgIGlmICh0aGlzLm1hbnVhbEFkZHJlc3NGb3JtLnZhbGlkKSB7XG4gICAgICAgIGlmKCF0aGlzLmlzRWRpdE9wZXJhdGlvbkluUmVmdW5kTGlzdCkge1xuICAgICAgICB0aGlzLmFzc2lnbkNvbnRhY3REZXRhaWxzLmVtaXQoe1xuICAgICAgICAgIGFkZHJlc3NfbGluZTogZmllbGRDdHJscy5hZGRyZXNzbDEudmFsdWUrJyAnK2ZpZWxkQ3RybHMuYWRkcmVzc2wyLnZhbHVlLFxuICAgICAgICAgIGNpdHk6IGZpZWxkQ3RybHMudG93bm9yY2l0eS52YWx1ZSxcbiAgICAgICAgICBjb3VudHk6IGZpZWxkQ3RybHMuY291bnR5LnZhbHVlLFxuICAgICAgICAgIHBvc3RhbF9jb2RlOiBmaWVsZEN0cmxzLm1wb3N0Y29kZS52YWx1ZSxcbiAgICAgICAgICBjb3VudHJ5OiBmaWVsZEN0cmxzLmNvdW50cnkudmFsdWUsXG4gICAgICAgICAgbm90aWZpY2F0aW9uX3R5cGU6ICdMRVRURVInXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hc3NpZ25Db250YWN0RGV0YWlsc0luRmVmdW5kc0xpc3QuZW1pdCh7XG4gICAgICAgICAgYWRkcmVzc19saW5lOiBmaWVsZEN0cmxzLmFkZHJlc3NsMS52YWx1ZSsnICcrZmllbGRDdHJscy5hZGRyZXNzbDIudmFsdWUsXG4gICAgICAgICAgY2l0eTogZmllbGRDdHJscy50b3dub3JjaXR5LnZhbHVlLFxuICAgICAgICAgIGNvdW50eTogZmllbGRDdHJscy5jb3VudHkudmFsdWUsXG4gICAgICAgICAgcG9zdGFsX2NvZGU6IGZpZWxkQ3RybHMubXBvc3Rjb2RlLnZhbHVlLFxuICAgICAgICAgIGNvdW50cnk6IGZpZWxkQ3RybHMuY291bnRyeS52YWx1ZSxcbiAgICAgICAgICBub3RpZmljYXRpb25fdHlwZTogJ0xFVFRFUidcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiggZmllbGRDdHJscy5hZGRyZXNzbDEudmFsdWUgPT0gJycgKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2VdLCAnYWRkcmVzczEnKTtcbiAgICAgICAgfVxuICAgICAgICBpZihmaWVsZEN0cmxzLmFkZHJlc3NsMS52YWx1ZSAhPSAnJyAmJiBmaWVsZEN0cmxzLmFkZHJlc3NsMS5pbnZhbGlkICkge1xuICAgICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlXSwgJ2FkZHJlc3MxJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYoZmllbGRDdHJscy5hZGRyZXNzbDIudmFsdWUgIT0gJycgJiYgZmllbGRDdHJscy5hZGRyZXNzbDIuaW52YWxpZCApIHtcbiAgICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV0sICdhZGRyZXNzMicpO1xuICAgICAgICB9XG4gICAgICAgIGlmKCBmaWVsZEN0cmxzLnRvd25vcmNpdHkudmFsdWUgPT0gJycgKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2VdLCAndG93bicpO1xuICAgICAgICB9XG4gICAgICAgIGlmKGZpZWxkQ3RybHMudG93bm9yY2l0eS52YWx1ZSAhPSAnJyAmJiBmaWVsZEN0cmxzLnRvd25vcmNpdHkuaW52YWxpZCApIHtcbiAgICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV0sICd0b3duJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYoIGZpZWxkQ3RybHMuY291bnR5LnZhbHVlID09ICcnICkge1xuICAgICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlXSwgJ2NvdW50eScpO1xuICAgICAgICB9XG4gICAgICAgIGlmKGZpZWxkQ3RybHMuY291bnR5LnZhbHVlICE9ICcnICYmIGZpZWxkQ3RybHMuY291bnR5LmludmFsaWQgKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLHRydWUsZmFsc2UsZmFsc2UsZmFsc2VdLCAnY291bnR5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYoIGZpZWxkQ3RybHMubXBvc3Rjb2RlLnZhbHVlID09ICcnICkge1xuICAgICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLGZhbHNlXSwgJ21wb3N0Y29kZScpO1xuICAgICAgICB9XG4gICAgICAgIGlmKGZpZWxkQ3RybHMubXBvc3Rjb2RlLnZhbHVlICE9ICcnICYmIGZpZWxkQ3RybHMubXBvc3Rjb2RlLmludmFsaWQgKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLHRydWUsZmFsc2VdLCAnbXBvc3Rjb2RlJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYoIGZpZWxkQ3RybHMuY291bnRyeS52YWx1ZSA9PSAnJyApIHtcbiAgICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsdHJ1ZV0sICdjb3VudHJ5Jyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cblxuICB9XG5cbiAgcG9zdGNvZGVWYWxpZGF0aW9uKHN0cikge1xuICAgIGNvbnN0IHBvc3Rjb2RlRmllbGQgPSB0aGlzLnBvc3RDb2RlRm9ybS5jb250cm9scy5wb3N0Y29kZTtcbiAgICBpZiAodGhpcy5wb3N0Q29kZUZvcm0udmFsaWQpIHtcbiAgICAgIGlmKHN0ciA9PT0gJ0ZBJykge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZ2V0QWRkcmVzc0J5UG9zdGNvZGUocG9zdGNvZGVGaWVsZC52YWx1ZSkuc3Vic2NyaWJlKFxuICAgICAgICAgIHJlZnVuZHNOb3RpZmljYXRpb24gPT4ge1xuICAgICAgICAgICAgdGhpcy5hZGRyZXNzUG9zdGNvZGVMaXN0ID0gcmVmdW5kc05vdGlmaWNhdGlvblsnZGF0YSddWydyZXN1bHRzJ107XG4gICAgICAgICAgICB0aGlzLmlzU2hvd1BpY2tBZGRyZXNzID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICksXG4gICAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5pc1Nob3dQaWNrQWRkcmVzcyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyb3IucmVwbGFjZSgvXCIvZyxcIlwiKTtcbiAgICAgICAgfTsgXG4gICAgICB9IGVsc2UgaWYgKHN0ciA9PT0gJ0ZTJykge1xuICAgICAgICBpZih0aGlzLnBvc3Rjb2RlQWRkcmVzcyAhPT0gdW5kZWZpbmVkICYmIHRoaXMucG9zdGNvZGVBZGRyZXNzKSB7XG4gICAgICAgICAgdGhpcy5pc0FkZHJlc3NCb3hFbXB0eSA9IGZhbHNlO1xuICAgICAgICAgIGxldCBhZGRyZXNzTGluZT1cIlwiO1xuICAgICAgICAgIGxldCBhZGRyZXNzQXJyYXkgPSB0aGlzLnBvc3Rjb2RlQWRkcmVzcy5BRERSRVNTLnNwbGl0KFwiLFwiKTtcbiAgICAgICAgICBmb3IoIGxldCBpPTA7IGk8YWRkcmVzc0FycmF5Lmxlbmd0aC0yOyBpKysgKSB7XG4gICAgICAgICAgICBhZGRyZXNzTGluZSArPWFkZHJlc3NBcnJheVtpXTsgXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5hc3NpZ25Db250YWN0RGV0YWlscy5lbWl0KHtcbiAgICAgICAgICAgIGFkZHJlc3NfbGluZTogYWRkcmVzc0xpbmUsXG4gICAgICAgICAgICBjaXR5OiB0aGlzLnBvc3Rjb2RlQWRkcmVzcy5QT1NUX1RPV04sXG4gICAgICAgICAgICBjb3VudHk6IHRoaXMucG9zdGNvZGVBZGRyZXNzLkxPQ0FMX0NVU1RPRElBTl9DT0RFX0RFU0NSSVBUSU9OLFxuICAgICAgICAgICAgcG9zdGFsX2NvZGU6IHRoaXMucG9zdGNvZGVBZGRyZXNzLlBPU1RDT0RFLFxuICAgICAgICAgICAgY291bnRyeTogJ1VuaXRlZCBLaW5nZG9tJyxcbiAgICAgICAgICAgIG5vdGlmaWNhdGlvbl90eXBlOiAnTEVUVEVSJ1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuaXNBZGRyZXNzQm94RW1wdHkgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmKCBwb3N0Y29kZUZpZWxkLnZhbHVlID09ICcnICkge1xuICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV0sICdwb3N0Y29kZScpO1xuICAgICAgfVxuICAgICAgaWYocG9zdGNvZGVGaWVsZC52YWx1ZSAhPSAnJyAmJiBwb3N0Y29kZUZpZWxkLmludmFsaWQgKSB7XG4gICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlXSwgJ3Bvc3Rjb2RlJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJlZGlyZWN0aW9uKGV2ZW50OmFueSkge1xuICAgIHRoaXMucmVkaXJlY3RUb0lzc3VlUmVmdW5kLmVtaXQoZXZlbnQpO1xuICB9XG4gIHJlc2V0Rm9ybSh2YWwsIGZpZWxkKSB7XG4gICAgaWYoZmllbGQ9PT0nZW1haWwnIHx8IGZpZWxkPT09J2FsbCcpIHtcbiAgICAgIHRoaXMuaXNFbWFpbEVtcHR5ID0gdmFsWzBdO1xuICAgICAgdGhpcy5lbWFpbEhhc0Vycm9yID0gdmFsWzFdO1xuICAgIH1cbiAgICBpZihmaWVsZD09PSdwb3N0Y29kZScgfHwgZmllbGQ9PT0nYWxsJykge1xuICAgICAgdGhpcy5pc1Bvc3Rjb2RlRW1wdHkgPSB2YWxbMl07XG4gICAgICB0aGlzLnBvc3Rjb2RlSGFzRXJyb3IgPSB2YWxbM107XG4gICAgfVxuICAgIGlmKGZpZWxkPT09J2FkZHJlc3MxJyB8fCBmaWVsZD09PSdhbGwnKSB7XG4gICAgICB0aGlzLmlzYWRkcmVzc0xpbmUxRW1wdHkgPSB2YWxbNF07XG4gICAgICB0aGlzLmFkZHJlc3NMaW5lMUhhc0Vycm9yID0gdmFsWzVdO1xuICAgIH1cbiAgICBpZihmaWVsZD09PSdhZGRyZXNzMicgfHwgZmllbGQ9PT0nYWxsJykge1xuICAgICAgdGhpcy5hZGRyZXNzTGluZTJIYXNFcnJvciA9IHZhbFs2XTtcbiAgICB9XG4gICAgaWYoZmllbGQ9PT0ndG93bicgfHwgZmllbGQ9PT0nYWxsJykge1xuICAgICAgdGhpcy5pc1Rvd25PckNpdHlFbXB0eSA9IHZhbFs3XTtcbiAgICAgIHRoaXMudG93bk9yQ2l0eUhhc0Vycm9yID0gdmFsWzhdO1xuICAgIH1cbiAgICBpZihmaWVsZD09PSdjb3VudHknIHx8IGZpZWxkPT09J2FsbCcpIHtcbiAgICAgIHRoaXMuaXNDb3VudHlFbXB0eSA9IHZhbFs5XTtcbiAgICAgIHRoaXMuY291bnR5SGFzRXJyb3IgPSB2YWxbMTBdO1xuICAgIH1cbiAgICBpZihmaWVsZD09PSdtcG9zdGNvZGUnIHx8IGZpZWxkPT09J2FsbCcpIHtcbiAgICAgIHRoaXMuaXNNUG9zdGNvZGVFbXB0eSA9IHZhbFsxMV07XG4gICAgICB0aGlzLm1wb3N0Y29kZUhhc0Vycm9yID0gdmFsWzEyXTtcbiAgICB9XG4gICAgaWYoZmllbGQ9PT0nY291bnRyeScgfHwgZmllbGQ9PT0nYWxsJykge1xuICAgICAgdGhpcy5pc0NvdW50cnlFbXB0eSA9IHZhbFsxM107XG4gICAgfVxuICBcbiAgfVxufVxuIl19
|
|
@@ -127,6 +127,16 @@ export class PaymentViewComponent {
|
|
|
127
127
|
goToPaymentList() {
|
|
128
128
|
this.paymentLibComponent.viewName = 'payment-list';
|
|
129
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* @return {?}
|
|
132
|
+
*/
|
|
133
|
+
goToServiceRequestPage() {
|
|
134
|
+
this.paymentLibComponent.viewName = 'case-transactions';
|
|
135
|
+
this.paymentLibComponent.TAKEPAYMENT = false;
|
|
136
|
+
this.paymentLibComponent.SERVICEREQUEST = 'true';
|
|
137
|
+
this.paymentLibComponent.isFromServiceRequestPage = true;
|
|
138
|
+
window.location.reload();
|
|
139
|
+
}
|
|
130
140
|
/**
|
|
131
141
|
* @param {?} event
|
|
132
142
|
* @return {?}
|
|
@@ -384,7 +394,7 @@ export class PaymentViewComponent {
|
|
|
384
394
|
PaymentViewComponent.decorators = [
|
|
385
395
|
{ type: Component, args: [{
|
|
386
396
|
selector: 'ccpay-payment-view',
|
|
387
|
-
template: "\n<ng-container *ngIf=\"viewStatus === 'paymentview'\">\n<div class=\"govuk-width-container\">\n\n <div class=\"govuk-breadcrumbs\">\n <ol class=\"govuk-breadcrumbs__list\">\n <li class=\"govuk-breadcrumbs__list-item\">\n <a href=\"javascript:void(0)\" (click)=\"goToCaseTransationPage($event)\" class=\"govuk-back-link\">Back</a>\n </li>\n </ol>\n </div>\n\n <main class=\"govuk-main-wrapper govuk-!-padding-top-0\" id=\"main-content\" role=\"main\">\n\n <div *ngIf=\"errorMessage\">\n <div class=\"error-summary\" role=\"group\" aria-labelledby=\"failure-error-summary-heading\" tabindex=\"-1\">\n <h2 class=\"heading-medium error-summary-heading\" id=\"failure-error-summary-heading\">\n Payment details could not be retrieved\n </h2>\n <div class=\"govuk-error-summary__body\">\n {{ errorMessage }}\n </div>\n </div>\n </div>\n\n <div class=\"payment-view-alignment\" *ngIf=\"!errorMessage && paymentGroup?.payments[0]\">\n\n <input #myInput type='hidden' id='iFrameDrivenImageValue' value='PAYMENTDETAILS'>\n <div class=\"govuk-grid-row\">\n <div class=\"column\">\n <h1 class=\"heading-large govuk-!-margin-top-0\">Payment details</h1>\n </div>\n </div>\n <table>\n <tbody>\n \n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Service request reference</td>\n <td class=\"tb-col-w\">{{ serviceReference }}</td> \n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Payment reference</td>\n <td class=\"tb-col-w\">{{ paymentGroup?.payments[0]?.reference }}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Payment amount</td>\n <td class=\"tb-col-w\">\u00A3{{ paymentGroup?.payments[0]?.amount | number:'.2' }}</td>\n </tr>\n <tr class=\"section\" *ngIf=\"paymentGroup?.payments[0] && paymentGroup?.payments[0]?.document_control_number && !paymentGroup?.payments[0]?.external_reference\">\n <td class=\"bold tb-col-w\">Payment asset number(DCN)</td>\n <td class=\"tb-col-w\">{{ paymentGroup?.payments[0]?.document_control_number }}</td>\n </tr>\n <tr class=\"section\" *ngIf=\"paymentGroup?.payments[0] && paymentGroup?.payments[0]?.document_control_number && !paymentGroup?.payments[0]?.external_reference\">\n <td class=\"bold tb-col-w\">Banked date</td>\n <td class=\"tb-col-w\">{{ paymentGroup?.payments[0]?.banked_date | date:'dd MMM yyyy' }}</td>\n </tr>\n <tr class=\"section\" *ngIf=\"paymentGroup?.payments[0] && paymentGroup?.payments[0]?.external_reference\">\n <td class=\"bold tb-col-w\">GovPay Transaction ID</td>\n <td class=\"tb-col-w\">{{ paymentGroup?.payments[0]?.external_reference }}</td>\n </tr>\n <tr class=\"section\" >\n <td class=\"bold tb-col-w\">Payment method</td>\n <td class=\"tb-col-w text-transform\">{{ paymentGroup?.payments[0]?.method }}</td>\n </tr>\n <tr class=\"section\" *ngIf=\"paymentGroup?.payments[0]?.method === 'payment by account'\" >\n <td class=\"bold tb-col-w\">Type</td>\n <td class=\"tb-col-w\" *ngIf=\"paymentGroup?.payments[0]?.method !== 'card'\">Credit</td>\n <td class=\"tb-col-w\" *ngIf=\"paymentGroup?.payments[0]?.method === 'card'\">Card</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Channel</td>\n <td class=\"tb-col-w text-transform\">{{ paymentGroup?.payments[0]?.channel }}</td>\n </tr>\n <!-- <tr class=\"section\">\n <td class=\"bold tb-col-w\">Method</td>\n <td *ngIf=\"paymentGroup?.payments[0]?.method !== 'card'\">{{ paymentGroup?.payments[0]?.method }}</td>\n <td *ngIf=\"paymentGroup?.payments[0]?.method === 'card'\">CARD</td>\n </tr> -->\n <!-- <tr class=\"section\" *ngIf=\"paymentGroup?.payments[0]?.channel !== 'telephony'\">\n <td class=\"bold tb-col-w\">Status</td>\n <td>{{ paymentGroup?.payments[0]?.status }}</td>\n </tr> -->\n <tr class=\"section\" *ngIf=\"paymentGroup?.payments[0]?.payment_allocation[0] !== undefined\">\n <td class=\"bold tb-col-w\">Allocaton status</td>\n <td class=\"tb-col-w\">{{ paymentGroup?.payments[0]?.payment_allocation[0]?.allocation_status }}</td>\n </tr>\n \n <tr *ngIf=\"paymentGroup?.payments[0].organisation_name\">\n <td class=\"bold tb-col-w\">PBA account name</td>\n <td class=\"tb-col-w\">{{ paymentGroup?.payments[0]?.organisation_name }}</td>\n </tr>\n\n <tr *ngIf=\"paymentGroup?.payments[0].account_number\">\n <td class=\"bold tb-col-w\">PBA number</td>\n <td class=\"tb-col-w\">{{ paymentGroup?.payments[0]?.account_number }}</td>\n </tr>\n\n <tr *ngIf=\"paymentGroup?.payments[0].customer_reference\">\n <td class=\"bold tb-col-w\">Customer internal reference</td>\n <td class=\"tb-col-w\">{{ paymentGroup?.payments[0]?.customer_reference }}</td>\n </tr>\n \n </tbody>\n </table>\n\n <div>\n <!-- Status histories -->\n <ccpay-payment-statuses *ngIf=\"isStatusAllocated\" [isTakePayment]=\"isTakePayment\"></ccpay-payment-statuses>\n </div>\n <div class=\"remission\">\n <button [disabled]=\"!paymentGroup?.payments[0]?.refund_enable\" (click)=\"issueRefund(paymentGroup)\" class=\"govuk-button govuk-button--secondary\">Issue refund</button>\n </div>\n \n <div *ngIf=\"checkForFees(paymentGroup)\">\n <div *ngIf=\"paymentGroup.fees.length > 0\">\n <div class=\"column\">\n <br/>\n <br/>\n <h2 class=\"heading-large\">Fee and remission details</h2>\n \n </div>\n </div>\n \n <div *ngFor=\"let fee of paymentGroup.fees\">\n <table class=\"table\">\n <tbody>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Description</td>\n <td class=\"tb-col-w\">Application for {{ fee.description }}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Fee code</td>\n <td class=\"tb-col-w\">{{ fee?.code }}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\" [ngClass]=\"{'tr-border': !fee.apportion_amount && !fee.remissions && !isTurnOff }\">Fee amount</td>\n <td [ngClass]=\"{'tr-border': !fee.apportion_amount && !fee.remissions && !isTurnOff}\">\u00A3{{ fee?.calculated_amount | number:'.2' }}</td>\n </tr>\n \n <tr *ngIf=\"fee.apportion_amount\">\n <td class=\"bold tb-col-w tr-border\" [ngClass]=\"{'tr-border': !fee.remissions}\">Allocated amount</td>\n <td [ngClass]=\"{'tr-border': !fee.remissions}\">\u00A3{{ fee?.apportion_amount | number:'.2' }}</td>\n </tr>\n\n </tbody>\n </table>\n <button [disabled]=\"!fee.remission_enable\" (click)=\"addRemission(fee)\" class=\"govuk-button govuk-button--secondary\"> Add remission</button>\n\n\n \n <!-- <button *ngIf=\"paymentGroup.payments[0].method === 'payment by account'\" (click)=\"addRemission(fee)\" class=\"govuk-button govuk-button--secondary\"> Add remission</button>\n -->\n\n </div>\n\n <!-- remissions -->\n <div class=\"order-class\">\n <div class=\"column\">\n <table class=\"govuk-table\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__header col-24 whitespace-inherit\" scope=\"col\">Help with fees or remission code</td>\n <td class=\"govuk-table__header col-27 whitespace-inherit\" scope=\"col\">Reference</td>\n <td class=\"govuk-table__header whitespace-inherit\" scope=\"col\">Fee</td>\n <td class=\"govuk-table__header whitespace-inherit\" scope=\"col\">Amount</td>\n <td class=\"govuk-table__header whitespace-inherit refundBtn\" scope=\"col\"></td>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\" *ngFor=\"let remission of paymentGroup.remissions\">\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell whitespace-inherit\">{{ remission?.hwf_reference }}</td>\n <td class=\"govuk-table__cell whitespace-inherit\">{{ remission?.remission_reference }}</td>\n <td class=\"govuk-table__cell whitespace-inherit\">{{ remission?.fee_code }}</td>\n <td class=\"govuk-table__cell whitespace-inherit\">{{ remission?.hwf_amount | currency:'GBP':'symbol-narrow':'1.2-2'}}</td>\n <td class=\"govuk-table__cell refundBtn whitespace-inherit\" >\n <button [disabled]=\"!paymentGroup.payments[0].refund_enable\" (click)=\"addRefundForRemission(paymentGroup.payments[0],remission,paymentGroup.fees)\" class=\"govuk-button govuk-button--secondary\"> Add refund</button>\n </td>\n <!-- <td *ngIf=\"!chkIsRefundRemissionBtnEnable()\" class=\"govuk-table__cell refundBtn whitespace-inherit\" >\n \n </td> -->\n </tr>\n </tbody>\n \n\n </table>\n </div></div>\n \n <div *ngIf=\"paymentGroup.remissions?.length === 0\">\n <span class=\"mar-17\" >No help with fees or remissions.</span>\n </div>\n \n </div>\n\n\n\n <!-- card details -->\n <!-- <ccpay-card-details *ngIf=\"isCardPayment && !isTelephonyPayment\"></ccpay-card-details> -->\n\n <!-- pba details -->\n <!-- <ccpay-pba-details *ngIf=\"!isCardPayment\" [payment]=\"paymentGroup.payments[0]\"></ccpay-pba-details> -->\n\n \n\n </div>\n\n </main>\n</div>\n\n</ng-container>\n<ng-container *ngIf=\"viewStatus === 'addremission' && feeId\">\n<ccpay-add-remission \n[isTurnOff]=\"isTurnOff\"\n[isStrategicFixEnable]=\"isStrategicFixEnable\" \n[isOldPcipalOff]=\"isOldPcipalOff\" \n[viewCompStatus]= \"viewStatus\"\n[isNewPcipalOff]=\"isNewPcipalOff\" \n[fee]=\"feeId\" \n[payment] = \"payment\"\n[orderStatus] =\"paymentGroup.payments[0].status\"\n[paidAmount]= \"paymentGroup.payments[0].amount\"\n[isRefundRemission]=\"isRefundRemission\"\n[caseType]=\"caseType\" \n[paymentGroupRef]=\"paymentGroup.payment_group_reference\" \n[isFromPaymentDetailPage] = \"true\"\n[ccdCaseNumber]=\"ccdCaseNumber\"\n[orderFeesTotal] = \"orderFeesTotal\"\n[orderTotalPayments] = \"orderTotalPayments\"\n[orderRemissionTotal] = \"orderRemissionTotal\"\n[orderRef] = \"orderRef\"\n[orderCreated] = \"orderCreated\"\n[orderParty] = \"orderParty\"\n[orderCCDEvent] = \"orderCCDEvent\"\n[orderDetail] = \"orderDetail\"\n[LOGGEDINUSERROLES] = \"LOGGEDINUSERROLES\"></ccpay-add-remission>\n</ng-container>\n\n<ng-container *ngIf=\"viewStatus === 'addrefundforremission' && payment\">\n\n<ccpay-add-remission \n[isTurnOff]=\"isTurnOff\"\n[isStrategicFixEnable]=\"isStrategicFixEnable\" \n[isOldPcipalOff]=\"isOldPcipalOff\" \n[viewCompStatus]= \"viewStatus\"\n[isNewPcipalOff]=\"isNewPcipalOff\" \n[payment]=\"payment\" \n[orderStatus] =\"orderStatus\"\n[paidAmount]= \"orderTotalPayments\"\n[isRefundRemission]=\"isRefundRemission\"\n[caseType]=\"caseType\" \n[feeamount]=\"remissionFeeAmt\"\n[remission] = \"remissions\"\n[isFromServiceRequestPage]=\"false\" \n[paymentGroupRef]=\"paymentGroup.payment_group_reference\"\n[ccdCaseNumber]=\"ccdCaseNumber\"\n[orderFeesTotal] = \"orderFeesTotal\"\n[orderTotalPayments] = \"orderTotalPayments\"\n[orderRemissionTotal] = \"orderRemissionTotal\"\n[orderRef] = \"orderRef\"\n[orderCreated] = \"orderCreated\"\n[orderParty] = \"orderParty\"\n[orderCCDEvent] = \"orderCCDEvent\"\n[orderDetail] = \"orderDetail\"\n[LOGGEDINUSERROLES] = \"LOGGEDINUSERROLES\"></ccpay-add-remission>\n</ng-container>\n\n<ng-container *ngIf=\"viewStatus === 'issuerefund'\">\n <ccpay-add-remission \n [isTurnOff]=\"isTurnOff\"\n [isStrategicFixEnable]=\"isStrategicFixEnable\" \n [isOldPcipalOff]=\"isOldPcipalOff\" \n [payment] = 'paymentGroup.payments[0]'\n [viewCompStatus]= \"viewStatus\"\n [isNewPcipalOff]=\"isNewPcipalOff\" \n [orderStatus] =\"paymentGroup.payments[0].status\"\n [paidAmount]= \"paymentGroup.payments[0].amount\"\n [isRefundRemission]=\"isRefundRemission\"\n [caseType]=\"caseType\" \n [isFromServiceRequestPage]=\"isFromServiceRequestPage\"\n [isFromPaymentDetailPage] = \"isFromPaymentDetailPage\"\n [paymentGroupRef]=\"paymentGroup.payment_group_reference\" \n [ccdCaseNumber]=\"ccdCaseNumber\"\n [orderFeesTotal] = \"orderFeesTotal\"\n [orderTotalPayments] = \"orderTotalPayments\"\n [orderRemissionTotal] = \"orderRemissionTotal\"\n [orderRef] = \"orderRef\"\n [orderCreated] = \"orderCreated\"\n [orderParty] = \"orderParty\"\n [orderCCDEvent] = \"orderCCDEvent\"\n [orderDetail] = \"orderDetail\"\n [LOGGEDINUSERROLES] = \"LOGGEDINUSERROLES\">\n ></ccpay-add-remission>\n</ng-container>\n<ng-container *ngIf=\"viewStatus === 'order-full-view'\">\n <ccpay-service-request\n [viewStatus] = \"viewStatus\"\n [orderRef] = \"orderRef\"\n [orderStatus] = \"orderStatus\"\n [orderCreated] = \"orderCreated\"\n [orderParty] = \"orderParty\"\n [orderCCDEvent] = \"orderCCDEvent\"\n [orderDetail] = \"orderDetail\"\n [LOGGEDINUSERROLES] = \"LOGGEDINUSERROLES\"\n [takePayment] = \"isTakePayment\"\n [ccdCaseNumber] = \"ccdCaseNumber\"\n [orderFeesTotal] = \"orderFeesTotal\"\n [orderTotalPayments] = \"orderTotalPayments\"\n [orderRemissionTotal] = \"orderRemissionTotal\">\n</ccpay-service-request>\n</ng-container>\n<!-- <ng-container *ngIf=\"isTakePayment\">\n <div class=\"govuk-width-container\">\n <div class=\"govuk-breadcrumbs\">\n <ol class=\"govuk-breadcrumbs__list\">\n <li class=\"govuk-breadcrumbs__list-item\">\n <a href=\"#\" (click)=\"goToCaseTransationPage($event)\" class=\"govuk-back-link\">Back</a>\n </li>\n </ol>\n </div>\n \n <main class=\"govuk-main-wrapper govuk-!-padding-top-0\" id=\"main-content\" role=\"main\">\n \n <div *ngIf=\"errorMessage\">\n <div class=\"error-summary\" role=\"group\" aria-labelledby=\"failure-error-summary-heading\" tabindex=\"-1\">\n <h2 class=\"heading-medium error-summary-heading\" id=\"failure-error-summary-heading\">\n Payment details could not be retrieved\n </h2>\n <div class=\"govuk-error-summary__body\">\n {{ errorMessage }}\n </div>\n </div>\n </div>\n \n <div class=\"payment-view-alignment\" *ngIf=\"!errorMessage && paymentGroup\">\n \n <input #myInput type='hidden' id='iFrameDrivenImageValue' value='PAYMENTDETAILS'>\n <div class=\"govuk-grid-row\">\n <div class=\"column\">\n <h1 class=\"heading-large govuk-!-margin-top-0\">Payment details</h1>\n </div>\n </div>\n <table>\n <tbody>\n <tr class=\"section\" *ngIf=\"isTurnOff\">\n <td class=\"bold tb-col-w\">Payment group reference</td>\n <td>{{ paymentGroup.payment_group_reference }}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Payment reference</td>\n <td>{{ paymentGroup.payments[0].reference }}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Payment amount</td>\n <td>\u00A3{{ paymentGroup.payments[0].amount | number:'.2' }}</td>\n </tr>\n <tr class=\"section\" *ngIf=\"paymentGroup.payments[0] && paymentGroup.payments[0].external_reference\">\n <td class=\"bold tb-col-w\">GovPay Transaction ID</td>\n <td>{{ paymentGroup.payments[0].external_reference }}</td>\n </tr>\n <tr class=\"section\" *ngIf=\"paymentGroup.payments[0] && paymentGroup.payments[0].document_control_number && !paymentGroup.payments[0].external_reference\">\n <td class=\"bold tb-col-w\">Payment asset number(DCN)</td>\n <td>{{ paymentGroup.payments[0].document_control_number }}</td>\n </tr>\n <tr class=\"section\" *ngIf=\"paymentGroup.payments[0] && paymentGroup.payments[0].document_control_number && !paymentGroup.payments[0].external_reference\">\n <td class=\"bold tb-col-w\">Banked date</td>\n <td>{{ paymentGroup.payments[0].banked_date | date:'dd MMM yyyy' }}</td>\n </tr>\n </tbody>\n </table>\n \n <div class=\"govuk-grid-row\" *ngIf=\"paymentGroup.fees.length > 0\">\n <div class=\"column\">\n <h2 class=\"heading-large\">Fee and remission details</h2>\n </div>\n </div>\n \n <div *ngFor=\"let fee of paymentGroup.fees\">\n <table class=\"table\">\n <tbody>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Description</td>\n <td>Application for {{ fee.description }}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Fee code</td>\n <td>{{ fee.code }}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\" [ngClass]=\"{'tr-border': !fee.apportion_amount && !fee.remissions && !isTurnOff }\">Fee amount</td>\n <td [ngClass]=\"{'tr-border': !fee.apportion_amount && !fee.remissions && !isTurnOff }\">\u00A3{{ fee.calculated_amount | number:'.2' }}</td>\n </tr>\n <tr *ngIf=\"fee.net_amount && isTurnOff\">\n <td class=\"bold tb-col-w\" [ngClass]=\"{'tr-border': !fee.apportion_amount && !fee.remissions}\" >Net amount</td>\n <td [ngClass]=\"{'tr-border': !fee.apportion_amount && !fee.remissions}\">\u00A3{{ fee.net_amount | number:'.2' }}</td>\n </tr>\n <tr *ngIf=\"fee.apportion_amount\">\n <td class=\"bold tb-col-w tr-border\" [ngClass]=\"{'tr-border': !fee.remissions}\">Allocated amount</td>\n <td [ngClass]=\"{'tr-border': !fee.remissions}\">\u00A3{{ fee.apportion_amount | number:'.2' }}</td>\n </tr>\n \n <tr *ngIf=\"fee.remissions\">\n <td class=\"bold tb-col-w\">Remission code</td>\n <td>{{fee.remissions.hwf_reference}}</td>\n </tr>\n <tr *ngIf=\"fee.remissions\">\n <td class=\"bold tb-col-w tr-border\">Remission amount</td>\n <td class=\"tr-border\">\u00A3{{ fee.remissions.hwf_amount | number:'.2'}}</td>\n </tr>\n </tbody>\n </table>\n \n </div>\n \n <!-- card details -->\n <!-- <ccpay-card-details *ngIf=\"isCardPayment && !isTelephonyPayment\"></ccpay-card-details>\n -->\n <!-- pba details -->\n <!-- <ccpay-pba-details *ngIf=\"!isCardPayment\" [payment]=\"paymentGroup.payments[0]\"></ccpay-pba-details> -->\n <!-- Status histories -->\n <!-- <ccpay-payment-statuses *ngIf=\"isStatusAllocated\"[isTakePayment]=\"isTakePayment\" ></ccpay-payment-statuses>\n \n </div>\n \n </main>\n </div> -->\n<!-- </ng-container> --> \n",
|
|
397
|
+
template: "\n<ng-container *ngIf=\"viewStatus === 'paymentview'\">\n<div class=\"govuk-width-container\">\n\n <div class=\"govuk-breadcrumbs\">\n <ol class=\"govuk-breadcrumbs__list\">\n <li class=\"govuk-breadcrumbs__list-item\">\n <a href=\"javascript:void(0)\" (click)=\"goToCaseTransationPage($event)\" class=\"govuk-back-link\">Back</a>\n </li>\n </ol>\n </div>\n\n <main class=\"govuk-main-wrapper govuk-!-padding-top-0\" id=\"main-content\" role=\"main\">\n\n <div *ngIf=\"errorMessage\">\n <div class=\"error-summary\" role=\"group\" aria-labelledby=\"failure-error-summary-heading\" tabindex=\"-1\">\n <h2 class=\"heading-medium error-summary-heading\" id=\"failure-error-summary-heading\">\n Payment details could not be retrieved\n </h2>\n <div class=\"govuk-error-summary__body\">\n {{ errorMessage }}\n </div>\n </div>\n </div>\n\n <div class=\"payment-view-alignment\" *ngIf=\"!errorMessage && paymentGroup?.payments[0]\">\n\n <input #myInput type='hidden' id='iFrameDrivenImageValue' value='PAYMENTDETAILS'>\n <div class=\"govuk-grid-row\">\n <div class=\"column\">\n <h1 class=\"heading-large govuk-!-margin-top-0\">Payment details</h1>\n </div>\n </div>\n <table>\n <tbody>\n \n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Service request reference</td>\n <td class=\"tb-col-w\">{{ serviceReference }}</td> \n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Payment reference</td>\n <td class=\"tb-col-w\">{{ paymentGroup?.payments[0]?.reference }}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Payment amount</td>\n <td class=\"tb-col-w\">\u00A3{{ paymentGroup?.payments[0]?.amount | number:'.2' }}</td>\n </tr>\n <tr class=\"section\" *ngIf=\"paymentGroup?.payments[0] && paymentGroup?.payments[0]?.document_control_number && !paymentGroup?.payments[0]?.external_reference\">\n <td class=\"bold tb-col-w\">Payment asset number(DCN)</td>\n <td class=\"tb-col-w\">{{ paymentGroup?.payments[0]?.document_control_number }}</td>\n </tr>\n <tr class=\"section\" *ngIf=\"paymentGroup?.payments[0] && paymentGroup?.payments[0]?.document_control_number && !paymentGroup?.payments[0]?.external_reference\">\n <td class=\"bold tb-col-w\">Banked date</td>\n <td class=\"tb-col-w\">{{ paymentGroup?.payments[0]?.banked_date | date:'dd MMM yyyy' }}</td>\n </tr>\n <tr class=\"section\" *ngIf=\"paymentGroup?.payments[0] && paymentGroup?.payments[0]?.external_reference\">\n <td class=\"bold tb-col-w\">GovPay Transaction ID</td>\n <td class=\"tb-col-w\">{{ paymentGroup?.payments[0]?.external_reference }}</td>\n </tr>\n <tr class=\"section\" >\n <td class=\"bold tb-col-w\">Payment method</td>\n <td class=\"tb-col-w text-transform\">{{ paymentGroup?.payments[0]?.method }}</td>\n </tr>\n <tr class=\"section\" *ngIf=\"paymentGroup?.payments[0]?.method === 'payment by account'\" >\n <td class=\"bold tb-col-w\">Type</td>\n <td class=\"tb-col-w\" *ngIf=\"paymentGroup?.payments[0]?.method !== 'card'\">Credit</td>\n <td class=\"tb-col-w\" *ngIf=\"paymentGroup?.payments[0]?.method === 'card'\">Card</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Channel</td>\n <td class=\"tb-col-w text-transform\">{{ paymentGroup?.payments[0]?.channel }}</td>\n </tr>\n <!-- <tr class=\"section\">\n <td class=\"bold tb-col-w\">Method</td>\n <td *ngIf=\"paymentGroup?.payments[0]?.method !== 'card'\">{{ paymentGroup?.payments[0]?.method }}</td>\n <td *ngIf=\"paymentGroup?.payments[0]?.method === 'card'\">CARD</td>\n </tr> -->\n <!-- <tr class=\"section\" *ngIf=\"paymentGroup?.payments[0]?.channel !== 'telephony'\">\n <td class=\"bold tb-col-w\">Status</td>\n <td>{{ paymentGroup?.payments[0]?.status }}</td>\n </tr> -->\n <tr class=\"section\" *ngIf=\"paymentGroup?.payments[0]?.payment_allocation[0] !== undefined\">\n <td class=\"bold tb-col-w\">Allocaton status</td>\n <td class=\"tb-col-w\">{{ paymentGroup?.payments[0]?.payment_allocation[0]?.allocation_status }}</td>\n </tr>\n \n <tr *ngIf=\"paymentGroup?.payments[0].organisation_name\">\n <td class=\"bold tb-col-w\">PBA account name</td>\n <td class=\"tb-col-w\">{{ paymentGroup?.payments[0]?.organisation_name }}</td>\n </tr>\n\n <tr *ngIf=\"paymentGroup?.payments[0].account_number\">\n <td class=\"bold tb-col-w\">PBA number</td>\n <td class=\"tb-col-w\">{{ paymentGroup?.payments[0]?.account_number }}</td>\n </tr>\n\n <tr *ngIf=\"paymentGroup?.payments[0].customer_reference\">\n <td class=\"bold tb-col-w\">Customer internal reference</td>\n <td class=\"tb-col-w\">{{ paymentGroup?.payments[0]?.customer_reference }}</td>\n </tr>\n \n </tbody>\n </table>\n\n <div>\n <!-- Status histories -->\n <ccpay-payment-statuses *ngIf=\"isStatusAllocated\" [isTakePayment]=\"isTakePayment\"></ccpay-payment-statuses>\n </div>\n <div class=\"remission\">\n <button [disabled]=\"!paymentGroup?.payments[0]?.refund_enable\" (click)=\"issueRefund(paymentGroup)\" class=\"govuk-button govuk-button--secondary\">Issue refund</button>\n </div>\n \n <div *ngIf=\"checkForFees(paymentGroup)\">\n <div *ngIf=\"paymentGroup.fees.length > 0\">\n <div class=\"column\">\n <br/>\n <br/>\n <h2 class=\"heading-large\">Fee and remission details</h2>\n \n </div>\n </div>\n \n <div *ngFor=\"let fee of paymentGroup.fees\">\n <table class=\"table\">\n <tbody>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Description</td>\n <td class=\"tb-col-w\">Application for {{ fee.description }}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Fee code</td>\n <td class=\"tb-col-w\">{{ fee?.code }}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\" [ngClass]=\"{'tr-border': !fee.apportion_amount && !fee.remissions && !isTurnOff }\">Fee amount</td>\n <td [ngClass]=\"{'tr-border': !fee.apportion_amount && !fee.remissions && !isTurnOff}\">\u00A3{{ fee?.calculated_amount | number:'.2' }}</td>\n </tr>\n \n <tr *ngIf=\"fee.apportion_amount\">\n <td class=\"bold tb-col-w tr-border\" [ngClass]=\"{'tr-border': !fee.remissions}\">Allocated amount</td>\n <td [ngClass]=\"{'tr-border': !fee.remissions}\">\u00A3{{ fee?.apportion_amount | number:'.2' }}</td>\n </tr>\n\n </tbody>\n </table>\n <button [disabled]=\"!fee.remission_enable\" (click)=\"addRemission(fee)\" class=\"govuk-button govuk-button--secondary\"> Add remission</button>\n\n\n \n <!-- <button *ngIf=\"paymentGroup.payments[0].method === 'payment by account'\" (click)=\"addRemission(fee)\" class=\"govuk-button govuk-button--secondary\"> Add remission</button>\n -->\n\n </div>\n\n <!-- remissions -->\n <div class=\"order-class\">\n <div class=\"column\">\n <table class=\"govuk-table\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__header col-24 whitespace-inherit\" scope=\"col\">Help with fees or remission code</td>\n <td class=\"govuk-table__header col-27 whitespace-inherit\" scope=\"col\">Reference</td>\n <td class=\"govuk-table__header whitespace-inherit\" scope=\"col\">Fee</td>\n <td class=\"govuk-table__header whitespace-inherit\" scope=\"col\">Amount</td>\n <td class=\"govuk-table__header whitespace-inherit refundBtn\" scope=\"col\"></td>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\" *ngFor=\"let remission of paymentGroup.remissions\">\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell whitespace-inherit\">{{ remission?.hwf_reference }}</td>\n <td class=\"govuk-table__cell whitespace-inherit\">{{ remission?.remission_reference }}</td>\n <td class=\"govuk-table__cell whitespace-inherit\">{{ remission?.fee_code }}</td>\n <td class=\"govuk-table__cell whitespace-inherit\">{{ remission?.hwf_amount | currency:'GBP':'symbol-narrow':'1.2-2'}}</td>\n <td class=\"govuk-table__cell refundBtn whitespace-inherit\" >\n <button [disabled]=\"!paymentGroup.payments[0].refund_enable\" (click)=\"addRefundForRemission(paymentGroup.payments[0],remission,paymentGroup.fees)\" class=\"govuk-button govuk-button--secondary\"> Add refund</button>\n </td>\n <!-- <td *ngIf=\"!chkIsRefundRemissionBtnEnable()\" class=\"govuk-table__cell refundBtn whitespace-inherit\" >\n \n </td> -->\n </tr>\n </tbody>\n \n\n </table>\n </div></div>\n \n <div *ngIf=\"paymentGroup.remissions?.length === 0\">\n <span class=\"mar-17\" >No help with fees or remissions.</span>\n </div>\n \n </div>\n\n\n\n <!-- card details -->\n <!-- <ccpay-card-details *ngIf=\"isCardPayment && !isTelephonyPayment\"></ccpay-card-details> -->\n\n <!-- pba details -->\n <!-- <ccpay-pba-details *ngIf=\"!isCardPayment\" [payment]=\"paymentGroup.payments[0]\"></ccpay-pba-details> -->\n\n \n\n </div>\n\n </main>\n</div>\n\n</ng-container>\n<ng-container *ngIf=\"viewStatus === 'addremission' && feeId\">\n<ccpay-add-remission \n[isTurnOff]=\"isTurnOff\"\n[isStrategicFixEnable]=\"isStrategicFixEnable\" \n[isOldPcipalOff]=\"isOldPcipalOff\" \n[viewCompStatus]= \"viewStatus\"\n[isNewPcipalOff]=\"isNewPcipalOff\" \n[fee]=\"feeId\" \n[payment] = \"payment\"\n[orderStatus] =\"paymentGroup.payments[0].status\"\n[paidAmount]= \"paymentGroup.payments[0].amount\"\n[isRefundRemission]=\"isRefundRemission\"\n[caseType]=\"caseType\" \n[paymentGroupRef]=\"paymentGroup.payment_group_reference\" \n[isFromPaymentDetailPage] = \"true\"\n[ccdCaseNumber]=\"ccdCaseNumber\"\n[orderFeesTotal] = \"orderFeesTotal\"\n[orderTotalPayments] = \"orderTotalPayments\"\n[orderRemissionTotal] = \"orderRemissionTotal\"\n[orderRef] = \"orderRef\"\n[orderCreated] = \"orderCreated\"\n[orderParty] = \"orderParty\"\n[orderCCDEvent] = \"orderCCDEvent\"\n[orderDetail] = \"orderDetail\"\n[LOGGEDINUSERROLES] = \"LOGGEDINUSERROLES\"></ccpay-add-remission>\n</ng-container>\n\n<ng-container *ngIf=\"viewStatus === 'addrefundforremission' && payment\">\n\n<ccpay-add-remission \n[isTurnOff]=\"isTurnOff\"\n[isStrategicFixEnable]=\"isStrategicFixEnable\" \n[isOldPcipalOff]=\"isOldPcipalOff\" \n[viewCompStatus]= \"viewStatus\"\n[isNewPcipalOff]=\"isNewPcipalOff\" \n[payment]=\"payment\" \n[orderStatus] =\"orderStatus\"\n[paidAmount]= \"orderTotalPayments\"\n[isRefundRemission]=\"isRefundRemission\"\n[caseType]=\"caseType\" \n[feeamount]=\"remissionFeeAmt\"\n[remission] = \"remissions\"\n[isFromServiceRequestPage]=\"false\" \n[paymentGroupRef]=\"paymentGroup.payment_group_reference\"\n[ccdCaseNumber]=\"ccdCaseNumber\"\n[orderFeesTotal] = \"orderFeesTotal\"\n[orderTotalPayments] = \"orderTotalPayments\"\n[orderRemissionTotal] = \"orderRemissionTotal\"\n[orderRef] = \"orderRef\"\n[orderCreated] = \"orderCreated\"\n[orderParty] = \"orderParty\"\n[orderCCDEvent] = \"orderCCDEvent\"\n[orderDetail] = \"orderDetail\"\n[LOGGEDINUSERROLES] = \"LOGGEDINUSERROLES\"></ccpay-add-remission>\n</ng-container>\n\n<ng-container *ngIf=\"viewStatus === 'issuerefund'\">\n <ccpay-add-remission \n [isTurnOff]=\"isTurnOff\"\n [isStrategicFixEnable]=\"isStrategicFixEnable\" \n [isOldPcipalOff]=\"isOldPcipalOff\" \n [payment] = 'paymentGroup.payments[0]'\n [viewCompStatus]= \"viewStatus\"\n [isNewPcipalOff]=\"isNewPcipalOff\" \n [orderStatus] =\"paymentGroup.payments[0].status\"\n [paidAmount]= \"paymentGroup.payments[0].amount\"\n [isRefundRemission]=\"isRefundRemission\"\n [caseType]=\"caseType\" \n [isFromServiceRequestPage]=\"isFromServiceRequestPage\"\n [isFromPaymentDetailPage] = \"isFromPaymentDetailPage\"\n [paymentGroupRef]=\"paymentGroup.payment_group_reference\" \n [ccdCaseNumber]=\"ccdCaseNumber\"\n [orderFeesTotal] = \"orderFeesTotal\"\n [orderTotalPayments] = \"orderTotalPayments\"\n [orderRemissionTotal] = \"orderRemissionTotal\"\n [orderRef] = \"orderRef\"\n [orderCreated] = \"orderCreated\"\n [orderParty] = \"orderParty\"\n [orderCCDEvent] = \"orderCCDEvent\"\n [orderDetail] = \"orderDetail\"\n [LOGGEDINUSERROLES] = \"LOGGEDINUSERROLES\">\n ></ccpay-add-remission>\n</ng-container>\n<ng-container *ngIf=\"viewStatus === 'order-full-view'\">\n <ccpay-service-request\n [viewStatus] = \"viewStatus\"\n [orderRef] = \"orderRef\"\n [orderStatus] = \"orderStatus\"\n [orderCreated] = \"orderCreated\"\n [orderParty] = \"orderParty\"\n [orderCCDEvent] = \"orderCCDEvent\"\n [orderDetail] = \"orderDetail\"\n [LOGGEDINUSERROLES] = \"LOGGEDINUSERROLES\"\n [takePayment] = \"isTakePayment\"\n [ccdCaseNumber] = \"ccdCaseNumber\"\n [orderFeesTotal] = \"orderFeesTotal\"\n [orderTotalPayments] = \"orderTotalPayments\"\n [orderRemissionTotal] = \"orderRemissionTotal\"\n [isServiceRequest] = \"isServiceRequest\"\n (goToServiceRquestComponent) = \"goToServiceRequestPage()\"\n>\n</ccpay-service-request>\n\n\n\n\n</ng-container>\n<!-- <ng-container *ngIf=\"isTakePayment\">\n <div class=\"govuk-width-container\">\n <div class=\"govuk-breadcrumbs\">\n <ol class=\"govuk-breadcrumbs__list\">\n <li class=\"govuk-breadcrumbs__list-item\">\n <a href=\"#\" (click)=\"goToCaseTransationPage($event)\" class=\"govuk-back-link\">Back</a>\n </li>\n </ol>\n </div>\n \n <main class=\"govuk-main-wrapper govuk-!-padding-top-0\" id=\"main-content\" role=\"main\">\n \n <div *ngIf=\"errorMessage\">\n <div class=\"error-summary\" role=\"group\" aria-labelledby=\"failure-error-summary-heading\" tabindex=\"-1\">\n <h2 class=\"heading-medium error-summary-heading\" id=\"failure-error-summary-heading\">\n Payment details could not be retrieved\n </h2>\n <div class=\"govuk-error-summary__body\">\n {{ errorMessage }}\n </div>\n </div>\n </div>\n \n <div class=\"payment-view-alignment\" *ngIf=\"!errorMessage && paymentGroup\">\n \n <input #myInput type='hidden' id='iFrameDrivenImageValue' value='PAYMENTDETAILS'>\n <div class=\"govuk-grid-row\">\n <div class=\"column\">\n <h1 class=\"heading-large govuk-!-margin-top-0\">Payment details</h1>\n </div>\n </div>\n <table>\n <tbody>\n <tr class=\"section\" *ngIf=\"isTurnOff\">\n <td class=\"bold tb-col-w\">Payment group reference</td>\n <td>{{ paymentGroup.payment_group_reference }}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Payment reference</td>\n <td>{{ paymentGroup.payments[0].reference }}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Payment amount</td>\n <td>\u00A3{{ paymentGroup.payments[0].amount | number:'.2' }}</td>\n </tr>\n <tr class=\"section\" *ngIf=\"paymentGroup.payments[0] && paymentGroup.payments[0].external_reference\">\n <td class=\"bold tb-col-w\">GovPay Transaction ID</td>\n <td>{{ paymentGroup.payments[0].external_reference }}</td>\n </tr>\n <tr class=\"section\" *ngIf=\"paymentGroup.payments[0] && paymentGroup.payments[0].document_control_number && !paymentGroup.payments[0].external_reference\">\n <td class=\"bold tb-col-w\">Payment asset number(DCN)</td>\n <td>{{ paymentGroup.payments[0].document_control_number }}</td>\n </tr>\n <tr class=\"section\" *ngIf=\"paymentGroup.payments[0] && paymentGroup.payments[0].document_control_number && !paymentGroup.payments[0].external_reference\">\n <td class=\"bold tb-col-w\">Banked date</td>\n <td>{{ paymentGroup.payments[0].banked_date | date:'dd MMM yyyy' }}</td>\n </tr>\n </tbody>\n </table>\n \n <div class=\"govuk-grid-row\" *ngIf=\"paymentGroup.fees.length > 0\">\n <div class=\"column\">\n <h2 class=\"heading-large\">Fee and remission details</h2>\n </div>\n </div>\n \n <div *ngFor=\"let fee of paymentGroup.fees\">\n <table class=\"table\">\n <tbody>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Description</td>\n <td>Application for {{ fee.description }}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Fee code</td>\n <td>{{ fee.code }}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\" [ngClass]=\"{'tr-border': !fee.apportion_amount && !fee.remissions && !isTurnOff }\">Fee amount</td>\n <td [ngClass]=\"{'tr-border': !fee.apportion_amount && !fee.remissions && !isTurnOff }\">\u00A3{{ fee.calculated_amount | number:'.2' }}</td>\n </tr>\n <tr *ngIf=\"fee.net_amount && isTurnOff\">\n <td class=\"bold tb-col-w\" [ngClass]=\"{'tr-border': !fee.apportion_amount && !fee.remissions}\" >Net amount</td>\n <td [ngClass]=\"{'tr-border': !fee.apportion_amount && !fee.remissions}\">\u00A3{{ fee.net_amount | number:'.2' }}</td>\n </tr>\n <tr *ngIf=\"fee.apportion_amount\">\n <td class=\"bold tb-col-w tr-border\" [ngClass]=\"{'tr-border': !fee.remissions}\">Allocated amount</td>\n <td [ngClass]=\"{'tr-border': !fee.remissions}\">\u00A3{{ fee.apportion_amount | number:'.2' }}</td>\n </tr>\n \n <tr *ngIf=\"fee.remissions\">\n <td class=\"bold tb-col-w\">Remission code</td>\n <td>{{fee.remissions.hwf_reference}}</td>\n </tr>\n <tr *ngIf=\"fee.remissions\">\n <td class=\"bold tb-col-w tr-border\">Remission amount</td>\n <td class=\"tr-border\">\u00A3{{ fee.remissions.hwf_amount | number:'.2'}}</td>\n </tr>\n </tbody>\n </table>\n \n </div>\n \n <!-- card details -->\n <!-- <ccpay-card-details *ngIf=\"isCardPayment && !isTelephonyPayment\"></ccpay-card-details>\n -->\n <!-- pba details -->\n <!-- <ccpay-pba-details *ngIf=\"!isCardPayment\" [payment]=\"paymentGroup.payments[0]\"></ccpay-pba-details> -->\n <!-- Status histories -->\n <!-- <ccpay-payment-statuses *ngIf=\"isStatusAllocated\"[isTakePayment]=\"isTakePayment\" ></ccpay-payment-statuses>\n \n </div>\n \n </main>\n </div> -->\n<!-- </ng-container> --> \n",
|
|
388
398
|
styles: [".tb-col-w{width:330px}.tr-border{border-bottom:2px solid}.payment-view-alignment{margin-left:30px}.govuk-button{font-size:19px;float:left;margin-top:2em}.remission{margin-bottom:7em}.govuk-error-summary__title{font-size:24px!important}.govuk-table__cell,.govuk-table__header{padding:0;line-height:1.3;vertical-align:middle}.govuk-table__row{line-height:1.3}.govuk-table__cell:last-child{text-align:right}.text-transform::first-letter{text-transform:capitalize}.govuk-link{cursor:pointer}.mar-17{font-size:19px!important}"]
|
|
389
399
|
}] }
|
|
390
400
|
];
|
|
@@ -411,7 +421,8 @@ PaymentViewComponent.propDecorators = {
|
|
|
411
421
|
orderCCDEvent: [{ type: Input }],
|
|
412
422
|
orderFeesTotal: [{ type: Input }],
|
|
413
423
|
orderRemissionTotal: [{ type: Input }],
|
|
414
|
-
orderDetail: [{ type: Input }]
|
|
424
|
+
orderDetail: [{ type: Input }],
|
|
425
|
+
isServiceRequest: [{ type: Input, args: ["isServiceRequest",] }]
|
|
415
426
|
};
|
|
416
427
|
if (false) {
|
|
417
428
|
/** @type {?} */
|
|
@@ -447,6 +458,8 @@ if (false) {
|
|
|
447
458
|
/** @type {?} */
|
|
448
459
|
PaymentViewComponent.prototype.orderDetail;
|
|
449
460
|
/** @type {?} */
|
|
461
|
+
PaymentViewComponent.prototype.isServiceRequest;
|
|
462
|
+
/** @type {?} */
|
|
450
463
|
PaymentViewComponent.prototype.paymentGroup;
|
|
451
464
|
/** @type {?} */
|
|
452
465
|
PaymentViewComponent.prototype.errorMessage;
|
|
@@ -511,4 +524,4 @@ if (false) {
|
|
|
511
524
|
*/
|
|
512
525
|
PaymentViewComponent.prototype.OrderslistService;
|
|
513
526
|
}
|
|
514
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9jY3BheS13ZWItY29tcG9uZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGF5bWVudC12aWV3L3BheW1lbnQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztNQUs1RCxjQUFjLEdBQUcsdUJBQXVCO0FBQzlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQU90RSxNQUFNLE9BQU8sb0JBQW9COzs7Ozs7O0lBdUMvQixZQUFvQixrQkFBc0MsRUFDaEQsbUJBQXdDLEVBQ3hDLEVBQXFCLEVBQ3JCLGlCQUFvQztRQUgxQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ2hELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQWY5QyxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFFbkMsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBQ3BDLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQUN4QywrQkFBMEIsR0FBRyxDQUFDLDBCQUEwQixFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDN0UsZUFBVSxHQUFpQixFQUFFLENBQUM7UUE0TjlCLG9DQUErQjs7O1FBQUcsR0FBWSxFQUFFO1lBQzlDLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUk7Ozs7WUFBQyxJQUFJLENB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VyxrREFBOEM7Ozs7O0lBQ3hELG1EQUFnRDs7Ozs7SUFDaEQsa0NBQTZCOzs7OztJQUM3QixpREFBNEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBheW1lbnRWaWV3U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BheW1lbnQtdmlldy9wYXltZW50LXZpZXcuc2VydmljZSc7XG5pbXBvcnQgeyBQYXltZW50TGliQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGF5bWVudC1saWIuY29tcG9uZW50JztcbmltcG9ydCB7IElQYXltZW50R3JvdXAgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lQYXltZW50R3JvdXAnO1xuaW1wb3J0IHsgSUZlZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSUZlZSc7XG5pbXBvcnQgeyBJUGF5bWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVBheW1lbnQnO1xuaW1wb3J0IHsgSVJlbWlzc2lvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVJlbWlzc2lvbic7XG5jb25zdCBCU19FTkFCTEVfRkxBRyA9ICdidWxrLXNjYW4tZW5hYmxpbmctZmUnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9yZGVyc2xpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3JkZXJzbGlzdC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NwYXktcGF5bWVudC12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BheW1lbnQtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BheW1lbnQtdmlldy5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGF5bWVudFZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBpc1R1cm5PZmY6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGlzVGFrZVBheW1lbnQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGNhc2VUeXBlOiBib29sZWFuO1xuICBASW5wdXQoKSBpc05ld1BjaXBhbE9mZjogYm9vbGVhbjtcbiAgQElucHV0KCkgaXNPbGRQY2lwYWxPZmY6IGJvb2xlYW47XG4gIEBJbnB1dCgpIG9yZGVyUmVmOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG9yZGVyU3RhdHVzOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG9yZGVyVG90YWxQYXltZW50czogbnVtYmVyO1xuICBASW5wdXQoKSBwYXltZW50OiBJUGF5bWVudDtcbiAgQElucHV0KCkgTE9HR0VESU5VU0VSUk9MRVM6IHN0cmluZ1tdO1xuICBASW5wdXQoKSBvcmRlclBhcnR5OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG9yZGVyQ3JlYXRlZDogRGF0ZTtcbiAgQElucHV0KCkgb3JkZXJDQ0RFdmVudDogc3RyaW5nO1xuICBASW5wdXQoKSBvcmRlckZlZXNUb3RhbDogbnVtYmVyO1xuICBASW5wdXQoKSBvcmRlclJlbWlzc2lvblRvdGFsOiBudW1iZXI7XG4gIEBJbnB1dCgpIG9yZGVyRGV0YWlsOiBhbnlbXTtcblxuICBwYXltZW50R3JvdXA6IElQYXltZW50R3JvdXA7XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICBjY2RDYXNlTnVtYmVyOiBzdHJpbmc7XG4gIHNlbGVjdGVkT3B0aW9uOiBzdHJpbmc7XG4gIGRjbk51bWJlcjogc3RyaW5nO1xuICBpc1N0YXR1c0FsbG9jYXRlZDogYm9vbGVhbjtcbiAgaXNSZW1pc3Npb25zTWF0Y2g6IGJvb2xlYW47XG4gIGZlZUlkOiBJRmVlO1xuICB2aWV3U3RhdHVzOiBzdHJpbmc7XG4gIGlzUmVmdW5kUmVtaXNzaW9uOiBib29sZWFuID0gZmFsc2U7XG4gIGlzU3RyYXRlZ2ljRml4RW5hYmxlOiBib29sZWFuO1xuICBpc0FkZEZlZUJ0bkVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNJc3N1ZVJlZnVuZkJ0bkVuYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBhbGxvd2VkUm9sZXNUb0FjY2Vzc1JlZnVuZCA9IFsncGF5bWVudHMtcmVmdW5kLWFwcHJvdmVyJywgJ3BheW1lbnRzLXJlZnVuZCddO1xuICByZW1pc3Npb25zOiBJUmVtaXNzaW9uW10gPSBbXTtcbiAgcmVtaXNzaW9uRmVlQW10OiBudW1iZXI7XG4gIGlzUmVmdW5kUmVtaXNzaW9uQnRuRW5hYmxlOiBib29sZWFuO1xuICBzZXJ2aWNlUmVmZXJlbmNlOiBzdHJpbmc7XG4gIGlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZTogYm9vbGVhbjtcbiAgaXNGcm9tUGF5bWVudERldGFpbFBhZ2U6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwYXltZW50Vmlld1NlcnZpY2U6IFBheW1lbnRWaWV3U2VydmljZSxcbiAgICBwcml2YXRlIHBheW1lbnRMaWJDb21wb25lbnQ6IFBheW1lbnRMaWJDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBPcmRlcnNsaXN0U2VydmljZTogT3JkZXJzbGlzdFNlcnZpY2UpIHtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiB9ICBcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNjZENhc2VOdW1iZXIgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuQ0NEX0NBU0VfTlVNQkVSO1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuU0VMRUNURURfT1BUSU9OO1xuICAgIHRoaXMuZGNuTnVtYmVyID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LkRDTl9OVU1CRVI7XG4gICAgdGhpcy5pc1R1cm5PZmYgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNUVVJOT0ZGO1xuICAgIHRoaXMuc2VydmljZVJlZmVyZW5jZSA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5wYXltZW50R3JvdXBSZWZlcmVuY2U7XG4gICAgdGhpcy52aWV3U3RhdHVzID0gJ3BheW1lbnR2aWV3JztcbiAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5nZXRBcHBvcnRpb25QYXltZW50RGV0YWlscyh0aGlzLnBheW1lbnRMaWJDb21wb25lbnQucGF5bWVudFJlZmVyZW5jZSkuc3Vic2NyaWJlKFxuICAgICAgcGF5bWVudEdyb3VwID0+IHtcbiAgICAgICAgbGV0IGZlZXMgPSBbXTtcbiAgICAgICAgcGF5bWVudEdyb3VwLmZlZXMuZm9yRWFjaChmZWUgPT4ge1xuICAgICAgICAgIHRoaXMuaXNSZW1pc3Npb25zTWF0Y2ggPSBmYWxzZTtcblxuICAgICAgICAgIHBheW1lbnRHcm91cC5yZW1pc3Npb25zLmZvckVhY2gocmVtID0+IHtcbiAgICAgICAgICAgIGlmIChyZW0uZmVlX2NvZGUgPT09IGZlZS5jb2RlKSB7XG4gICAgICAgICAgICAgIHRoaXMuaXNSZW1pc3Npb25zTWF0Y2ggPSB0cnVlO1xuICAgICAgICAgICAgICBmZWVbJ3JlbWlzc2lvbnMnXSA9IHJlbTtcbiAgICAgICAgICAgICAgZmVlcy5wdXNoKGZlZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKCF0aGlzLmlzUmVtaXNzaW9uc01hdGNoKSB7XG4gICAgICAgICAgICBmZWVzLnB1c2goZmVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBwYXltZW50R3JvdXAuZmVlcyA9IGZlZXNcbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAgPSBwYXltZW50R3JvdXA7XG5cbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHMgPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50cy5maWx0ZXJcbiAgICAgICAgICAocGF5bWVudEdyb3VwT2JqID0+IHBheW1lbnRHcm91cE9ialsncmVmZXJlbmNlJ10uaW5jbHVkZXModGhpcy5wYXltZW50TGliQ29tcG9uZW50LnBheW1lbnRSZWZlcmVuY2UpKTtcbiAgICAgICAgY29uc3QgcGF5bWVudEFsbG9jYXRpb24gPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50c1swXS5wYXltZW50X2FsbG9jYXRpb247XG4gICAgICAgIHRoaXMuaXNTdGF0dXNBbGxvY2F0ZWQgPSBwYXltZW50QWxsb2NhdGlvbi5sZW5ndGggPiAwICYmIHBheW1lbnRBbGxvY2F0aW9uWzBdLmFsbG9jYXRpb25fc3RhdHVzID09PSAnQWxsb2NhdGVkJyB8fCBwYXltZW50QWxsb2NhdGlvbi5sZW5ndGggPT09IDA7XG4gICAgICAgXG4gICAgICB9LFxuICAgICAgKGVycm9yOiBhbnkpID0+IHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyb3JcbiAgICApO1xuXG4gIH1cblxuICBnZXQgaXNDYXJkUGF5bWVudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHNbMF0ubWV0aG9kID09PSAnY2FyZCc7XG4gIH1cblxuICBnZXQgaXNUZWxlcGhvbnlQYXltZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50c1swXS5jaGFubmVsID09PSAndGVsZXBob255JztcbiAgfVxuXG4gIHB1YmxpYyBnb1RvUGF5bWVudExpc3QoKTogdm9pZCB7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ3BheW1lbnQtbGlzdCc7XG4gIH1cblxuICBnb1RvQ2FzZVRyYW5zYXRpb25QYWdlKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgaWYgKCF0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlKSB7XG4gICAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0bmF2aWdhdGlvblBhZ2UoJ2Nhc2V0cmFuc2FjdGlvbnMnKTtcbiAgICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRpc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2UoZmFsc2UpO1xuICAgICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAnY2FzZS10cmFuc2FjdGlvbnMnO1xuICAgICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNCU0VOQUJMRSA9IHRydWU7XG4gICAgICAgIHRoaXMucmVzZXRPcmRlckRhdGEoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRvcmRlclJlZnMoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMub3JkZXJSZWYgPSBkYXRhKTtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0b3JkZXJDQ0RFdmVudHMoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMub3JkZXJDQ0RFdmVudCA9IGRhdGEpO1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRvcmRlckNyZWF0ZWRzKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLm9yZGVyQ3JlYXRlZCA9IGRhdGEpO1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRvcmRlckRldGFpbCgpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5vcmRlckRldGFpbCA9IGRhdGEpO1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRvcmRlclBhcnR5cygpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5vcmRlclBhcnR5ID0gZGF0YSk7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldG9yZGVyUmVtaXNzaW9uVG90YWxzKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLm9yZGVyUmVtaXNzaW9uVG90YWwgPSBkYXRhKTtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0b3JkZXJGZWVzVG90YWxzKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLm9yZGVyRmVlc1RvdGFsID0gZGF0YSk7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldG9vcmRlclRvdGFsUGF5bWVudHNzKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLm9yZGVyVG90YWxQYXltZW50cyA9IGRhdGEpO1xuICAgICAgdGhpcy52aWV3U3RhdHVzID0gJ29yZGVyLWZ1bGwtdmlldyc7XG4gICAgfVxuICAgIFxuICB9XG5cbiAgYWRkUmVtaXNzaW9uKGZlZTogSUZlZSkge1xuICAgIGlmKHRoaXMuY2hrRm9yQWRkUmVtaXNzaW9uKGZlZS5jb2RlKSkge1xuICAgIHRoaXMuZmVlSWQgPSBmZWU7XG4gICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UuZ2V0QXBwb3J0aW9uUGF5bWVudERldGFpbHModGhpcy5wYXltZW50R3JvdXAucGF5bWVudHNbMF0ucmVmZXJlbmNlKS5zdWJzY3JpYmUoXG4gICAgICBwYXltZW50R3JvdXAgPT4ge1xuICAgICAgICB0aGlzLnBheW1lbnRHcm91cCA9IHBheW1lbnRHcm91cDtcblxuICAgICAgICB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50cyA9IHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzLmZpbHRlclxuICAgICAgICAgIChwYXltZW50R3JvdXBPYmogPT4gcGF5bWVudEdyb3VwT2JqWydyZWZlcmVuY2UnXS5pbmNsdWRlcyh0aGlzLnBheW1lbnRMaWJDb21wb25lbnQucGF5bWVudFJlZmVyZW5jZSkpO1xuICAgICAgICB0aGlzLnBheW1lbnQgPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50c1swXTtcbiAgICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVBheW1lbnREZXRhaWxQYWdlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy52aWV3U3RhdHVzID0gJ2FkZHJlbWlzc2lvbic7XG4gICAgICAgIHRoaXMuaXNSZWZ1bmRSZW1pc3Npb24gPSB0cnVlO1xuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0sXG4gICAgICAoZXJyb3I6IGFueSkgPT4gdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnJvclxuICAgICk7XG4gICAgfVxuICB9XG5cbiAgY2hlY2tGb3JGZWVzKHBheW1lbnRHcm91cDogYW55KSB7XG4gICAgaWYocGF5bWVudEdyb3VwICE9PSBudWxsICYmIHBheW1lbnRHcm91cCAhPT0gdW5kZWZpbmVkKVxuICAgIHtcbiAgICAgIGlmIChwYXltZW50R3JvdXAuZmVlcyAhPT0gbnVsbCAmJiBwYXltZW50R3JvdXAuZmVlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICBcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgYWRkUmVmdW5kRm9yUmVtaXNzaW9uKHBheW1lbnQ6IElQYXltZW50LCByZW1pc3Npb246IElSZW1pc3Npb25bXSxmZWVzOmFueSkge1xuIGlmKHRoaXMuY2hrSXNSZWZ1bmRSZW1pc3Npb25CdG5FbmFibGUoKSkge1xuICAgIHRoaXMucGF5bWVudCA9IHBheW1lbnQ7XG4gICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UuZ2V0QXBwb3J0aW9uUGF5bWVudERldGFpbHModGhpcy5wYXltZW50LnJlZmVyZW5jZSkuc3Vic2NyaWJlKFxuICAgICAgcGF5bWVudEdyb3VwID0+IHtcbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAgPSBwYXltZW50R3JvdXA7XG5cbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHMgPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50cy5maWx0ZXJcbiAgICAgICAgICAocGF5bWVudEdyb3VwT2JqID0+IHBheW1lbnRHcm91cE9ialsncmVmZXJlbmNlJ10uaW5jbHVkZXModGhpcy5wYXltZW50LnJlZmVyZW5jZSkpO1xuICAgICAgICB0aGlzLnBheW1lbnQgPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50c1swXTtcbiAgICAgICAgdGhpcy5yZW1pc3Npb25zID0gcmVtaXNzaW9uO1xuICAgICAgICB0aGlzLnJlbWlzc2lvbkZlZUFtdCA9IGZlZXMuZmlsdGVyKGRhdGE9PmRhdGEuY29kZSA9PT0gdGhpcy5yZW1pc3Npb25zWydmZWVfY29kZSddKVswXS5uZXRfYW1vdW50O1xuICAgICAgICB0aGlzLnZpZXdTdGF0dXMgPSAnYWRkcmVmdW5kZm9ycmVtaXNzaW9uJztcbiAgICAgICAgLy8gY29uc3QgcGF5bWVudEFsbG9jYXRpb24gPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50c1swXS5wYXltZW50X2FsbG9jYXRpb247XG4gICAgICAgIC8vIHRoaXMuaXNTdGF0dXNBbGxvY2F0ZWQgPSBwYXltZW50QWxsb2NhdGlvbi5sZW5ndGggPiAwICYmIHBheW1lbnRBbGxvY2F0aW9uWzBdLmFsbG9jYXRpb25fc3RhdHVzID09PSAnQWxsb2NhdGVkJyB8fCBwYXltZW50QWxsb2NhdGlvbi5sZW5ndGggPT09IDA7XG4gICAgICB9LFxuICAgICAgKGVycm9yOiBhbnkpID0+IHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyb3JcbiAgICApO1xuIH1cbiAgfVxuXG4gIGNoa0lzUmVmdW5kUmVtaXNzaW9uQnRuRW5hYmxlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLnBheW1lbnRHcm91cCAhPT0gbnVsbCAmJiAgdGhpcy5wYXltZW50R3JvdXAgIT09IHVuZGVmaW5lZCkge1xuICAgIHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzLmZvckVhY2gocGF5bWVudCA9PiB7XG4gICAgICAgICAgaWYgKHBheW1lbnQubWV0aG9kLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09ICdwYXltZW50IGJ5IGFjY291bnQnICYmIHBheW1lbnQuc3RhdHVzLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09ICdzdWNjZXNzJyAmJiB0aGlzLmFsbG93RnVydGhlckFjY2Vzc0FmdGVyNERheXMocGF5bWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuaXNSZWZ1bmRSZW1pc3Npb25CdG5FbmFibGUgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgaWYgKHRoaXMuaXNSZWZ1bmRSZW1pc3Npb25CdG5FbmFibGUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcbiAgfVxuICB9XG5cbiAgaXNzdWVSZWZ1bmQocGF5bWVudGdycDogSVBheW1lbnRHcm91cCkge1xuICAgIGlmIChwYXltZW50Z3JwICE9PSBudWxsICYmICBwYXltZW50Z3JwICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZih0aGlzLmNoa0lzc3VlUmVmdW5kQnRuRW5hYmxlKHBheW1lbnRncnAucGF5bWVudHNbMF0pKSB7XG4gICAgdGhpcy5wYXltZW50R3JvdXAgPSBwYXltZW50Z3JwO1xuICAgIHRoaXMudmlld1N0YXR1cyA9ICdpc3N1ZXJlZnVuZCc7XG4gICAgdGhpcy5pc1JlZnVuZFJlbWlzc2lvbiA9IHRydWU7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVBheW1lbnREZXRhaWxQYWdlID0gdHJ1ZTtcbiAgICB0aGlzLmlzRnJvbVBheW1lbnREZXRhaWxQYWdlID0gdHJ1ZTtcbiAgICB0aGlzLmlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZSA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2U7XG4gICAgfVxuICB9XG4gIH1cblxuICBnZXRSZW1pc3Npb25CeUZlZUNvZGUoZmVlQ29kZTogc3RyaW5nLCByZW1pc3Npb25zOiBJUmVtaXNzaW9uW10pOiBJUmVtaXNzaW9uIHtcbiAgICBpZiAocmVtaXNzaW9ucyAmJiByZW1pc3Npb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAoY29uc3QgcmVtaXNzaW9uIG9mIHJlbWlzc2lvbnMpIHtcbiAgICAgICAgaWYgKHJlbWlzc2lvbi5mZWVfY29kZSA9PT0gZmVlQ29kZSkge1xuICAgICAgICAgIHJldHVybiByZW1pc3Npb247XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjaGtJc3N1ZVJlZnVuZEJ0bkVuYWJsZShwYXltZW50OiBJUGF5bWVudCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmNoZWNrNEFsbG93ZWRSb2xlczJBY2Nlc3NSZWZ1bmQoKSAmJiB0aGlzLmFsbG93RnVydGhlckFjY2Vzc0FmdGVyNERheXMocGF5bWVudCkgJiZcbiAgICAgIHBheW1lbnQubWV0aG9kID09PSAncGF5bWVudCBieSBhY2NvdW50JyAmJiBwYXltZW50LnN0YXR1cy50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSAnc3VjY2VzcycpIHtcbiAgICAgIHRoaXMuaXNJc3N1ZVJlZnVuZkJ0bkVuYWJsZSA9IHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzSXNzdWVSZWZ1bmZCdG5FbmFibGUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcbiAgfVxuXG4gIGNoa0ZvclBCQVBheW1lbnQoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMucGF5bWVudEdyb3VwICE9PSBudWxsICYmICB0aGlzLnBheW1lbnRHcm91cCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgbGV0IHBheW1lbnQgPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50c1swXTtcbiAgICBpZiAocGF5bWVudC5tZXRob2QudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gJ3BheW1lbnQgYnkgYWNjb3VudCcgJiYgdGhpcy5hbGxvd0Z1cnRoZXJBY2Nlc3NBZnRlcjREYXlzKHBheW1lbnQpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIH1cblxuICBjaGtGb3JBZGRSZW1pc3Npb24oZmVlQ29kZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuY2hrRm9yUEJBUGF5bWVudCgpICYmIHRoaXMuY2hlY2s0QWxsb3dlZFJvbGVzMkFjY2Vzc1JlZnVuZCgpICYmIHRoaXMuYWxsb3dGdXJ0aGVyQWNjZXNzQWZ0ZXI0RGF5cyh0aGlzLnBheW1lbnRHcm91cC5wYXltZW50c1swXSkpIHtcbiAgICAgIGlmICh0aGlzLnBheW1lbnRHcm91cC5yZW1pc3Npb25zICYmIHRoaXMucGF5bWVudEdyb3VwLnJlbWlzc2lvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICBmb3IgKGNvbnN0IHJlbWlzc2lvbiBvZiB0aGlzLnBheW1lbnRHcm91cC5yZW1pc3Npb25zKSB7XG4gICAgICAgICAgaWYgKHJlbWlzc2lvbi5mZWVfY29kZSA9PT0gZmVlQ29kZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBjaGVjazRBbGxvd2VkUm9sZXMyQWNjZXNzUmVmdW5kID0gKCk6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiB0aGlzLmFsbG93ZWRSb2xlc1RvQWNjZXNzUmVmdW5kLnNvbWUocm9sZSA9PlxuICAgICAgdGhpcy5MT0dHRURJTlVTRVJST0xFUy5pbmRleE9mKHJvbGUpICE9PSAtMVxuICAgICk7XG4gIH1cblxuICBhbGxvd0Z1cnRoZXJBY2Nlc3NBZnRlcjREYXlzID0gKHBheW1lbnQ6IElQYXltZW50KTogYm9vbGVhbiA9PiB7XG4gICAgaWYocGF5bWVudCAhPT0gbnVsbCAmJiBwYXltZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICBsZXQgdG1wNERheUFnbyA9IG5ldyBEYXRlKCk7XG4gICAgdG1wNERheUFnby5zZXREYXRlKHRtcDREYXlBZ28uZ2V0RGF0ZSgpIC0gNCk7XG4gICAgcmV0dXJuIHRtcDREYXlBZ28gPj0gbmV3IERhdGUocGF5bWVudC5kYXRlX2NyZWF0ZWQpO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0T3JkZXJEYXRhKCkge1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0T3JkZXJSZWYobnVsbCk7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRvcmRlckNDREV2ZW50KG51bGwpO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0b3JkZXJDcmVhdGVkKG51bGwpO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0b3JkZXJEZXRhaWwobnVsbCk7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRvcmRlclBhcnR5KG51bGwpO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0b3JkZXJUb3RhbFBheW1lbnRzKG51bGwpO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0b3JkZXJSZW1pc3Npb25Ub3RhbChudWxsKTtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG9yZGVyRmVlc1RvdGFsKG51bGwpO1xuICB9XG59Il19
|
|
527
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9jY3BheS13ZWItY29tcG9uZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGF5bWVudC12aWV3L3BheW1lbnQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUF3QixNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7TUFLNUQsY0FBYyxHQUFHLHVCQUF1QjtBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFPdEUsTUFBTSxPQUFPLG9CQUFvQjs7Ozs7OztJQXdDL0IsWUFBb0Isa0JBQXNDLEVBQ2hELG1CQUF3QyxFQUN4QyxFQUFxQixFQUNyQixpQkFBb0M7UUFIMUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUNoRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFmOUMsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBRW5DLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUNwQywyQkFBc0IsR0FBWSxLQUFLLENBQUM7UUFDeEMsK0JBQTBCLEdBQUcsQ0FBQywwQkFBMEIsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQzdFLGVBQVUsR0FBaUIsRUFBRSxDQUFDO1FBaU85QixvQ0FBK0I7OztRQUFHLEdBQVksRUFBRTtZQUM5QyxPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJOzs7O1lBQUMsSUFBSSxD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QUE0Qjs7SUFDNUIsNENBQXFCOztJQUNyQiw2Q0FBc0I7O0lBQ3RCLDhDQUF1Qjs7SUFDdkIseUNBQWtCOztJQUNsQixpREFBMkI7O0lBQzNCLGlEQUEyQjs7SUFDM0IscUNBQVk7O0lBQ1osMENBQW1COztJQUNuQixpREFBbUM7O0lBQ25DLG9EQUE4Qjs7SUFDOUIsa0RBQW9DOztJQUNwQyxzREFBd0M7O0lBQ3hDLDBEQUE2RTs7SUFDN0UsMENBQThCOztJQUM5QiwrQ0FBd0I7O0lBQ3hCLDBEQUFvQzs7SUFDcEMsZ0RBQXlCOztJQUN6Qix3REFBa0M7O0lBQ2xDLHVEQUFpQzs7SUE0TmpDLCtEQUlDOztJQUVELDREQU1DOzs7OztJQXRPVyxrREFBOEM7Ozs7O0lBQ3hELG1EQUFnRDs7Ozs7SUFDaEQsa0NBQTZCOzs7OztJQUM3QixpREFBNEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYXltZW50Vmlld1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wYXltZW50LXZpZXcvcGF5bWVudC12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHsgUGF5bWVudExpYkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BheW1lbnQtbGliLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJUGF5bWVudEdyb3VwIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUGF5bWVudEdyb3VwJztcbmltcG9ydCB7IElGZWUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lGZWUnO1xuaW1wb3J0IHsgSVBheW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lQYXltZW50JztcbmltcG9ydCB7IElSZW1pc3Npb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lSZW1pc3Npb24nO1xuY29uc3QgQlNfRU5BQkxFX0ZMQUcgPSAnYnVsay1zY2FuLWVuYWJsaW5nLWZlJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPcmRlcnNsaXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29yZGVyc2xpc3Quc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjcGF5LXBheW1lbnQtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYXltZW50LXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYXltZW50LXZpZXcuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBheW1lbnRWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgaXNUdXJuT2ZmOiBib29sZWFuO1xuICBASW5wdXQoKSBpc1Rha2VQYXltZW50OiBib29sZWFuO1xuICBASW5wdXQoKSBjYXNlVHlwZTogYm9vbGVhbjtcbiAgQElucHV0KCkgaXNOZXdQY2lwYWxPZmY6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGlzT2xkUGNpcGFsT2ZmOiBib29sZWFuO1xuICBASW5wdXQoKSBvcmRlclJlZjogc3RyaW5nO1xuICBASW5wdXQoKSBvcmRlclN0YXR1czogc3RyaW5nO1xuICBASW5wdXQoKSBvcmRlclRvdGFsUGF5bWVudHM6IG51bWJlcjtcbiAgQElucHV0KCkgcGF5bWVudDogSVBheW1lbnQ7XG4gIEBJbnB1dCgpIExPR0dFRElOVVNFUlJPTEVTOiBzdHJpbmdbXTtcbiAgQElucHV0KCkgb3JkZXJQYXJ0eTogc3RyaW5nO1xuICBASW5wdXQoKSBvcmRlckNyZWF0ZWQ6IERhdGU7XG4gIEBJbnB1dCgpIG9yZGVyQ0NERXZlbnQ6IHN0cmluZztcbiAgQElucHV0KCkgb3JkZXJGZWVzVG90YWw6IG51bWJlcjtcbiAgQElucHV0KCkgb3JkZXJSZW1pc3Npb25Ub3RhbDogbnVtYmVyO1xuICBASW5wdXQoKSBvcmRlckRldGFpbDogYW55W107XG4gIEBJbnB1dChcImlzU2VydmljZVJlcXVlc3RcIikgaXNTZXJ2aWNlUmVxdWVzdDogc3RyaW5nO1xuXG4gIHBheW1lbnRHcm91cDogSVBheW1lbnRHcm91cDtcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gIGNjZENhc2VOdW1iZXI6IHN0cmluZztcbiAgc2VsZWN0ZWRPcHRpb246IHN0cmluZztcbiAgZGNuTnVtYmVyOiBzdHJpbmc7XG4gIGlzU3RhdHVzQWxsb2NhdGVkOiBib29sZWFuO1xuICBpc1JlbWlzc2lvbnNNYXRjaDogYm9vbGVhbjtcbiAgZmVlSWQ6IElGZWU7XG4gIHZpZXdTdGF0dXM6IHN0cmluZztcbiAgaXNSZWZ1bmRSZW1pc3Npb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNTdHJhdGVnaWNGaXhFbmFibGU6IGJvb2xlYW47XG4gIGlzQWRkRmVlQnRuRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0lzc3VlUmVmdW5mQnRuRW5hYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIGFsbG93ZWRSb2xlc1RvQWNjZXNzUmVmdW5kID0gWydwYXltZW50cy1yZWZ1bmQtYXBwcm92ZXInLCAncGF5bWVudHMtcmVmdW5kJ107XG4gIHJlbWlzc2lvbnM6IElSZW1pc3Npb25bXSA9IFtdO1xuICByZW1pc3Npb25GZWVBbXQ6IG51bWJlcjtcbiAgaXNSZWZ1bmRSZW1pc3Npb25CdG5FbmFibGU6IGJvb2xlYW47XG4gIHNlcnZpY2VSZWZlcmVuY2U6IHN0cmluZztcbiAgaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlOiBib29sZWFuO1xuICBpc0Zyb21QYXltZW50RGV0YWlsUGFnZTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBheW1lbnRWaWV3U2VydmljZTogUGF5bWVudFZpZXdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGF5bWVudExpYkNvbXBvbmVudDogUGF5bWVudExpYkNvbXBvbmVudCxcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIE9yZGVyc2xpc3RTZXJ2aWNlOiBPcmRlcnNsaXN0U2VydmljZSkge1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuIH0gIFxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY2NkQ2FzZU51bWJlciA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5DQ0RfQ0FTRV9OVU1CRVI7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5TRUxFQ1RFRF9PUFRJT047XG4gICAgdGhpcy5kY25OdW1iZXIgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuRENOX05VTUJFUjtcbiAgICB0aGlzLmlzVHVybk9mZiA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU1RVUk5PRkY7XG4gICAgdGhpcy5zZXJ2aWNlUmVmZXJlbmNlID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnBheW1lbnRHcm91cFJlZmVyZW5jZTtcbiAgICB0aGlzLnZpZXdTdGF0dXMgPSAncGF5bWVudHZpZXcnO1xuICAgIHRoaXMucGF5bWVudFZpZXdTZXJ2aWNlLmdldEFwcG9ydGlvblBheW1lbnREZXRhaWxzKHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5wYXltZW50UmVmZXJlbmNlKS5zdWJzY3JpYmUoXG4gICAgICBwYXltZW50R3JvdXAgPT4ge1xuICAgICAgICBsZXQgZmVlcyA9IFtdO1xuICAgICAgICBwYXltZW50R3JvdXAuZmVlcy5mb3JFYWNoKGZlZSA9PiB7XG4gICAgICAgICAgdGhpcy5pc1JlbWlzc2lvbnNNYXRjaCA9IGZhbHNlO1xuXG4gICAgICAgICAgcGF5bWVudEdyb3VwLnJlbWlzc2lvbnMuZm9yRWFjaChyZW0gPT4ge1xuICAgICAgICAgICAgaWYgKHJlbS5mZWVfY29kZSA9PT0gZmVlLmNvZGUpIHtcbiAgICAgICAgICAgICAgdGhpcy5pc1JlbWlzc2lvbnNNYXRjaCA9IHRydWU7XG4gICAgICAgICAgICAgIGZlZVsncmVtaXNzaW9ucyddID0gcmVtO1xuICAgICAgICAgICAgICBmZWVzLnB1c2goZmVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoIXRoaXMuaXNSZW1pc3Npb25zTWF0Y2gpIHtcbiAgICAgICAgICAgIGZlZXMucHVzaChmZWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHBheW1lbnRHcm91cC5mZWVzID0gZmVlc1xuICAgICAgICB0aGlzLnBheW1lbnRHcm91cCA9IHBheW1lbnRHcm91cDtcblxuICAgICAgICB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50cyA9IHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzLmZpbHRlclxuICAgICAgICAgIChwYXltZW50R3JvdXBPYmogPT4gcGF5bWVudEdyb3VwT2JqWydyZWZlcmVuY2UnXS5pbmNsdWRlcyh0aGlzLnBheW1lbnRMaWJDb21wb25lbnQucGF5bWVudFJlZmVyZW5jZSkpO1xuICAgICAgICBjb25zdCBwYXltZW50QWxsb2NhdGlvbiA9IHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzWzBdLnBheW1lbnRfYWxsb2NhdGlvbjtcbiAgICAgICAgdGhpcy5pc1N0YXR1c0FsbG9jYXRlZCA9IHBheW1lbnRBbGxvY2F0aW9uLmxlbmd0aCA+IDAgJiYgcGF5bWVudEFsbG9jYXRpb25bMF0uYWxsb2NhdGlvbl9zdGF0dXMgPT09ICdBbGxvY2F0ZWQnIHx8IHBheW1lbnRBbGxvY2F0aW9uLmxlbmd0aCA9PT0gMDtcbiAgICAgICBcbiAgICAgIH0sXG4gICAgICAoZXJyb3I6IGFueSkgPT4gdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnJvclxuICAgICk7XG5cbiAgfVxuXG4gIGdldCBpc0NhcmRQYXltZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50c1swXS5tZXRob2QgPT09ICdjYXJkJztcbiAgfVxuXG4gIGdldCBpc1RlbGVwaG9ueVBheW1lbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzWzBdLmNoYW5uZWwgPT09ICd0ZWxlcGhvbnknO1xuICB9XG5cbiAgcHVibGljIGdvVG9QYXltZW50TGlzdCgpOiB2b2lkIHtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAncGF5bWVudC1saXN0JztcbiAgfVxuICBnb1RvU2VydmljZVJlcXVlc3RQYWdlKCkge1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdjYXNlLXRyYW5zYWN0aW9ucyc7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlRBS0VQQVlNRU5UID0gZmFsc2U7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlNFUlZJQ0VSRVFVRVNUID0gJ3RydWUnO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2UgPSB0cnVlO1xuICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgfVxuICBnb1RvQ2FzZVRyYW5zYXRpb25QYWdlKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICghdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZSkge1xuICAgICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG5hdmlnYXRpb25QYWdlKCdjYXNldHJhbnNhY3Rpb25zJyk7XG4gICAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0aXNGcm9tU2VydmljZVJlcXVlc3RQYWdlKGZhbHNlKTtcbiAgICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ2Nhc2UtdHJhbnNhY3Rpb25zJztcbiAgICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPSB0cnVlO1xuICAgICAgICB0aGlzLnJlc2V0T3JkZXJEYXRhKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0b3JkZXJSZWZzKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLm9yZGVyUmVmID0gZGF0YSk7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldG9yZGVyQ0NERXZlbnRzKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLm9yZGVyQ0NERXZlbnQgPSBkYXRhKTtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0b3JkZXJDcmVhdGVkcygpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5vcmRlckNyZWF0ZWQgPSBkYXRhKTtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0b3JkZXJEZXRhaWwoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMub3JkZXJEZXRhaWwgPSBkYXRhKTtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0b3JkZXJQYXJ0eXMoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMub3JkZXJQYXJ0eSA9IGRhdGEpO1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRvcmRlclJlbWlzc2lvblRvdGFscygpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5vcmRlclJlbWlzc2lvblRvdGFsID0gZGF0YSk7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldG9yZGVyRmVlc1RvdGFscygpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5vcmRlckZlZXNUb3RhbCA9IGRhdGEpO1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRvb3JkZXJUb3RhbFBheW1lbnRzcygpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5vcmRlclRvdGFsUGF5bWVudHMgPSBkYXRhKTtcbiAgICAgIHRoaXMudmlld1N0YXR1cyA9ICdvcmRlci1mdWxsLXZpZXcnO1xuICAgIH1cbiAgICBcbiAgfVxuXG4gIGFkZFJlbWlzc2lvbihmZWU6IElGZWUpIHtcbiAgICBpZih0aGlzLmNoa0ZvckFkZFJlbWlzc2lvbihmZWUuY29kZSkpIHtcbiAgICB0aGlzLmZlZUlkID0gZmVlO1xuICAgIHRoaXMucGF5bWVudFZpZXdTZXJ2aWNlLmdldEFwcG9ydGlvblBheW1lbnREZXRhaWxzKHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzWzBdLnJlZmVyZW5jZSkuc3Vic2NyaWJlKFxuICAgICAgcGF5bWVudEdyb3VwID0+IHtcbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAgPSBwYXltZW50R3JvdXA7XG5cbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHMgPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50cy5maWx0ZXJcbiAgICAgICAgICAocGF5bWVudEdyb3VwT2JqID0+IHBheW1lbnRHcm91cE9ialsncmVmZXJlbmNlJ10uaW5jbHVkZXModGhpcy5wYXltZW50TGliQ29tcG9uZW50LnBheW1lbnRSZWZlcmVuY2UpKTtcbiAgICAgICAgdGhpcy5wYXltZW50ID0gdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHNbMF07XG4gICAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc0Zyb21QYXltZW50RGV0YWlsUGFnZSA9IHRydWU7XG4gICAgICAgIHRoaXMudmlld1N0YXR1cyA9ICdhZGRyZW1pc3Npb24nO1xuICAgICAgICB0aGlzLmlzUmVmdW5kUmVtaXNzaW9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9LFxuICAgICAgKGVycm9yOiBhbnkpID0+IHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyb3JcbiAgICApO1xuICAgIH1cbiAgfVxuXG4gIGNoZWNrRm9yRmVlcyhwYXltZW50R3JvdXA6IGFueSkge1xuICAgIGlmKHBheW1lbnRHcm91cCAhPT0gbnVsbCAmJiBwYXltZW50R3JvdXAgIT09IHVuZGVmaW5lZClcbiAgICB7XG4gICAgICBpZiAocGF5bWVudEdyb3VwLmZlZXMgIT09IG51bGwgJiYgcGF5bWVudEdyb3VwLmZlZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgXG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGFkZFJlZnVuZEZvclJlbWlzc2lvbihwYXltZW50OiBJUGF5bWVudCwgcmVtaXNzaW9uOiBJUmVtaXNzaW9uW10sZmVlczphbnkpIHtcbiBpZih0aGlzLmNoa0lzUmVmdW5kUmVtaXNzaW9uQnRuRW5hYmxlKCkpIHtcbiAgICB0aGlzLnBheW1lbnQgPSBwYXltZW50O1xuICAgIHRoaXMucGF5bWVudFZpZXdTZXJ2aWNlLmdldEFwcG9ydGlvblBheW1lbnREZXRhaWxzKHRoaXMucGF5bWVudC5yZWZlcmVuY2UpLnN1YnNjcmliZShcbiAgICAgIHBheW1lbnRHcm91cCA9PiB7XG4gICAgICAgIHRoaXMucGF5bWVudEdyb3VwID0gcGF5bWVudEdyb3VwO1xuXG4gICAgICAgIHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzID0gdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHMuZmlsdGVyXG4gICAgICAgICAgKHBheW1lbnRHcm91cE9iaiA9PiBwYXltZW50R3JvdXBPYmpbJ3JlZmVyZW5jZSddLmluY2x1ZGVzKHRoaXMucGF5bWVudC5yZWZlcmVuY2UpKTtcbiAgICAgICAgdGhpcy5wYXltZW50ID0gdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHNbMF07XG4gICAgICAgIHRoaXMucmVtaXNzaW9ucyA9IHJlbWlzc2lvbjtcbiAgICAgICAgdGhpcy5yZW1pc3Npb25GZWVBbXQgPSBmZWVzLmZpbHRlcihkYXRhPT5kYXRhLmNvZGUgPT09IHRoaXMucmVtaXNzaW9uc1snZmVlX2NvZGUnXSlbMF0ubmV0X2Ftb3VudDtcbiAgICAgICAgdGhpcy52aWV3U3RhdHVzID0gJ2FkZHJlZnVuZGZvcnJlbWlzc2lvbic7XG4gICAgICAgIC8vIGNvbnN0IHBheW1lbnRBbGxvY2F0aW9uID0gdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHNbMF0ucGF5bWVudF9hbGxvY2F0aW9uO1xuICAgICAgICAvLyB0aGlzLmlzU3RhdHVzQWxsb2NhdGVkID0gcGF5bWVudEFsbG9jYXRpb24ubGVuZ3RoID4gMCAmJiBwYXltZW50QWxsb2NhdGlvblswXS5hbGxvY2F0aW9uX3N0YXR1cyA9PT0gJ0FsbG9jYXRlZCcgfHwgcGF5bWVudEFsbG9jYXRpb24ubGVuZ3RoID09PSAwO1xuICAgICAgfSxcbiAgICAgIChlcnJvcjogYW55KSA9PiB0aGlzLmVycm9yTWVzc2FnZSA9IGVycm9yXG4gICAgKTtcbiB9XG4gIH1cblxuICBjaGtJc1JlZnVuZFJlbWlzc2lvbkJ0bkVuYWJsZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5wYXltZW50R3JvdXAgIT09IG51bGwgJiYgIHRoaXMucGF5bWVudEdyb3VwICE9PSB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50cy5mb3JFYWNoKHBheW1lbnQgPT4ge1xuICAgICAgICAgIGlmIChwYXltZW50Lm1ldGhvZC50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSAncGF5bWVudCBieSBhY2NvdW50JyAmJiBwYXltZW50LnN0YXR1cy50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSAnc3VjY2VzcycgJiYgdGhpcy5hbGxvd0Z1cnRoZXJBY2Nlc3NBZnRlcjREYXlzKHBheW1lbnQpKSB7XG4gICAgICAgICAgICB0aGlzLmlzUmVmdW5kUmVtaXNzaW9uQnRuRW5hYmxlID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIGlmICh0aGlzLmlzUmVmdW5kUmVtaXNzaW9uQnRuRW5hYmxlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG4gIH1cbiAgfVxuXG4gIGlzc3VlUmVmdW5kKHBheW1lbnRncnA6IElQYXltZW50R3JvdXApIHtcbiAgICBpZiAocGF5bWVudGdycCAhPT0gbnVsbCAmJiAgcGF5bWVudGdycCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYodGhpcy5jaGtJc3N1ZVJlZnVuZEJ0bkVuYWJsZShwYXltZW50Z3JwLnBheW1lbnRzWzBdKSkge1xuICAgIHRoaXMucGF5bWVudEdyb3VwID0gcGF5bWVudGdycDtcbiAgICB0aGlzLnZpZXdTdGF0dXMgPSAnaXNzdWVyZWZ1bmQnO1xuICAgIHRoaXMuaXNSZWZ1bmRSZW1pc3Npb24gPSB0cnVlO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc0Zyb21QYXltZW50RGV0YWlsUGFnZSA9IHRydWU7XG4gICAgdGhpcy5pc0Zyb21QYXltZW50RGV0YWlsUGFnZSA9IHRydWU7XG4gICAgdGhpcy5pc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2UgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlO1xuICAgIH1cbiAgfVxuICB9XG5cbiAgZ2V0UmVtaXNzaW9uQnlGZWVDb2RlKGZlZUNvZGU6IHN0cmluZywgcmVtaXNzaW9uczogSVJlbWlzc2lvbltdKTogSVJlbWlzc2lvbiB7XG4gICAgaWYgKHJlbWlzc2lvbnMgJiYgcmVtaXNzaW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IHJlbWlzc2lvbiBvZiByZW1pc3Npb25zKSB7XG4gICAgICAgIGlmIChyZW1pc3Npb24uZmVlX2NvZGUgPT09IGZlZUNvZGUpIHtcbiAgICAgICAgICByZXR1cm4gcmVtaXNzaW9uO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY2hrSXNzdWVSZWZ1bmRCdG5FbmFibGUocGF5bWVudDogSVBheW1lbnQpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5jaGVjazRBbGxvd2VkUm9sZXMyQWNjZXNzUmVmdW5kKCkgJiYgdGhpcy5hbGxvd0Z1cnRoZXJBY2Nlc3NBZnRlcjREYXlzKHBheW1lbnQpICYmXG4gICAgICBwYXltZW50Lm1ldGhvZCA9PT0gJ3BheW1lbnQgYnkgYWNjb3VudCcgJiYgcGF5bWVudC5zdGF0dXMudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICB0aGlzLmlzSXNzdWVSZWZ1bmZCdG5FbmFibGUgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc0lzc3VlUmVmdW5mQnRuRW5hYmxlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG4gIH1cblxuICBjaGtGb3JQQkFQYXltZW50KCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLnBheW1lbnRHcm91cCAhPT0gbnVsbCAmJiAgdGhpcy5wYXltZW50R3JvdXAgIT09IHVuZGVmaW5lZCkge1xuICAgIGxldCBwYXltZW50ID0gdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHNbMF07XG4gICAgaWYgKHBheW1lbnQubWV0aG9kLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09ICdwYXltZW50IGJ5IGFjY291bnQnICYmIHRoaXMuYWxsb3dGdXJ0aGVyQWNjZXNzQWZ0ZXI0RGF5cyhwYXltZW50KSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB9XG5cbiAgY2hrRm9yQWRkUmVtaXNzaW9uKGZlZUNvZGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmNoa0ZvclBCQVBheW1lbnQoKSAmJiB0aGlzLmNoZWNrNEFsbG93ZWRSb2xlczJBY2Nlc3NSZWZ1bmQoKSAmJiB0aGlzLmFsbG93RnVydGhlckFjY2Vzc0FmdGVyNERheXModGhpcy5wYXltZW50R3JvdXAucGF5bWVudHNbMF0pKSB7XG4gICAgICBpZiAodGhpcy5wYXltZW50R3JvdXAucmVtaXNzaW9ucyAmJiB0aGlzLnBheW1lbnRHcm91cC5yZW1pc3Npb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZm9yIChjb25zdCByZW1pc3Npb24gb2YgdGhpcy5wYXltZW50R3JvdXAucmVtaXNzaW9ucykge1xuICAgICAgICAgIGlmIChyZW1pc3Npb24uZmVlX2NvZGUgPT09IGZlZUNvZGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcblxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgY2hlY2s0QWxsb3dlZFJvbGVzMkFjY2Vzc1JlZnVuZCA9ICgpOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gdGhpcy5hbGxvd2VkUm9sZXNUb0FjY2Vzc1JlZnVuZC5zb21lKHJvbGUgPT5cbiAgICAgIHRoaXMuTE9HR0VESU5VU0VSUk9MRVMuaW5kZXhPZihyb2xlKSAhPT0gLTFcbiAgICApO1xuICB9XG5cbiAgYWxsb3dGdXJ0aGVyQWNjZXNzQWZ0ZXI0RGF5cyA9IChwYXltZW50OiBJUGF5bWVudCk6IGJvb2xlYW4gPT4ge1xuICAgIGlmKHBheW1lbnQgIT09IG51bGwgJiYgcGF5bWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgbGV0IHRtcDREYXlBZ28gPSBuZXcgRGF0ZSgpO1xuICAgIHRtcDREYXlBZ28uc2V0RGF0ZSh0bXA0RGF5QWdvLmdldERhdGUoKSAtIDQpO1xuICAgIHJldHVybiB0bXA0RGF5QWdvID49IG5ldyBEYXRlKHBheW1lbnQuZGF0ZV9jcmVhdGVkKTtcbiAgICB9XG4gIH1cblxuICByZXNldE9yZGVyRGF0YSgpIHtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldE9yZGVyUmVmKG51bGwpO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0b3JkZXJDQ0RFdmVudChudWxsKTtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG9yZGVyQ3JlYXRlZChudWxsKTtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG9yZGVyRGV0YWlsKG51bGwpO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0b3JkZXJQYXJ0eShudWxsKTtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG9yZGVyVG90YWxQYXltZW50cyhudWxsKTtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG9yZGVyUmVtaXNzaW9uVG90YWwobnVsbCk7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRvcmRlckZlZXNUb3RhbChudWxsKTtcbiAgfVxufSJdfQ==
|