@hmcts/ccpay-web-component 4.0.0-beta60 → 4.0.0-beta604
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 +6868 -2571
- 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/hmcts-ccpay-web-component.js +32 -26
- package/esm2015/lib/components/add-remission/add-remission.component.js +874 -138
- package/esm2015/lib/components/allocate-payments/allocate-payments.component.js +342 -217
- package/esm2015/lib/components/card-details/card-details.component.js +22 -57
- package/esm2015/lib/components/case-transactions/case-transactions.component.js +932 -350
- package/esm2015/lib/components/error-banner/error-banner.component.js +5 -17
- package/esm2015/lib/components/fee-summary/fee-summary.component.js +229 -231
- package/esm2015/lib/components/mark-unidentified-payment/mark-unidentified-payment.component.js +137 -156
- package/esm2015/lib/components/mark-unsolicited-payment/mark-unsolicited-payment.component.js +178 -177
- package/esm2015/lib/components/page-not-found.component.js +3 -4
- package/esm2015/lib/components/payment-list/payment-list.component.js +22 -80
- package/esm2015/lib/components/payment-view/payment-view.component.js +358 -127
- package/esm2015/lib/components/pba-details/pba-details.component.js +5 -39
- package/esm2015/lib/components/process-refund/process-refund.component.js +392 -0
- package/esm2015/lib/components/processed-payments/processed-payments.component.js +13 -41
- package/esm2015/lib/components/refund-list/refund-list.component.js +131 -0
- package/esm2015/lib/components/refund-status/refund-status.component.js +511 -0
- package/esm2015/lib/components/reports/reports.component.js +96 -107
- package/esm2015/lib/components/status-history/status-history.component.js +28 -35
- package/esm2015/lib/components/table/table.component.js +179 -0
- package/esm2015/lib/components/unprocessed-payments/unprocessed-payments.component.js +168 -91
- package/esm2015/lib/interfaces/AddRemissionRequest.js +6 -7
- package/esm2015/lib/interfaces/AddRetroRemissionRequest.js +21 -0
- package/esm2015/lib/interfaces/AllocatePaymentRequest.js +11 -9
- package/esm2015/lib/interfaces/IAllocationPaymentsRequest.js +2 -3
- package/esm2015/lib/interfaces/IBSPayments.js +38 -35
- package/esm2015/lib/interfaces/ICardDetails.js +14 -13
- package/esm2015/lib/interfaces/IFee.js +44 -43
- package/esm2015/lib/interfaces/IOrderReferenceFee.js +25 -0
- package/esm2015/lib/interfaces/IPatchRefundAction.js +15 -0
- package/esm2015/lib/interfaces/IPayment.js +56 -55
- package/esm2015/lib/interfaces/IPaymentGroup.js +12 -11
- package/esm2015/lib/interfaces/IPaymentStatus.js +2 -3
- package/esm2015/lib/interfaces/IPaymentView.js +17 -0
- package/esm2015/lib/interfaces/IPayments.js +6 -5
- package/esm2015/lib/interfaces/IRefundAction.js +15 -0
- package/esm2015/lib/interfaces/IRefundList.js +29 -0
- package/esm2015/lib/interfaces/IRefundReasons.js +19 -0
- package/esm2015/lib/interfaces/IRefundRejectReason.js +15 -0
- package/esm2015/lib/interfaces/IRefundStatus.js +23 -0
- package/esm2015/lib/interfaces/IRefundStatusHistory.js +15 -0
- package/esm2015/lib/interfaces/IRemission.js +18 -17
- package/esm2015/lib/interfaces/IResubmitRefundRequest.js +21 -0
- package/esm2015/lib/interfaces/IStatusHistories.js +12 -11
- package/esm2015/lib/interfaces/IStatusHistory.js +14 -13
- package/esm2015/lib/interfaces/IssueRefundRequest.js +25 -0
- package/esm2015/lib/interfaces/PayhubAntennaRequest.js +28 -0
- package/esm2015/lib/interfaces/PaymentToPayhubRequest.js +7 -12
- package/esm2015/lib/interfaces/PostIssueRefundRetroRemission.js +17 -0
- package/esm2015/lib/interfaces/PostRefundRetroRemission.js +21 -0
- package/esm2015/lib/interfaces/RefundsRequest.js +21 -0
- package/esm2015/lib/interfaces/UnidentifiedPaymentsRequest.js +2 -3
- package/esm2015/lib/interfaces/UnsolicitedPaymentsRequest.js +2 -3
- package/esm2015/lib/payment-lib.component.js +124 -20
- package/esm2015/lib/payment-lib.module.js +27 -6
- package/esm2015/lib/payment-lib.service.js +18 -4
- package/esm2015/lib/pipes/capitalize.pipe.js +24 -0
- package/esm2015/lib/pipes/ccd-hyphens.pipe.js +3 -4
- package/esm2015/lib/pipes/key-value.pipe.js +3 -4
- package/esm2015/lib/pipes/sanitize-html.pipe.js +7 -5
- package/esm2015/lib/services/bulk-scaning-payment/bulk-scaning-payment.service.js +52 -14
- package/esm2015/lib/services/card-details/card-details.service.js +19 -8
- package/esm2015/lib/services/case-transactions/case-transactions.service.js +19 -8
- package/esm2015/lib/services/orderslist.service.js +211 -0
- package/esm2015/lib/services/payment-list/payment-list.service.js +19 -8
- package/esm2015/lib/services/payment-view/payment-view.service.js +96 -11
- package/esm2015/lib/services/refunds/refunds.service.js +203 -0
- package/esm2015/lib/services/shared/error-handler.service.js +24 -4
- package/esm2015/lib/services/shared/httpclient/webcomponent.http.client.js +27 -9
- package/esm2015/lib/services/shared/logger/console-logger.service.js +7 -5
- package/esm2015/lib/services/shared/logger/logger.service.js +7 -5
- package/esm2015/lib/services/status-history/status-history.service.js +19 -8
- package/esm2015/lib/services/xl-file/xl-file.service.js +56 -51
- package/esm2015/public_api.js +1 -2
- package/esm5/hmcts-ccpay-web-component.js +32 -26
- package/esm5/lib/components/add-remission/add-remission.component.js +941 -47
- package/esm5/lib/components/allocate-payments/allocate-payments.component.js +358 -74
- package/esm5/lib/components/card-details/card-details.component.js +22 -9
- package/esm5/lib/components/case-transactions/case-transactions.component.js +1003 -110
- package/esm5/lib/components/error-banner/error-banner.component.js +3 -4
- package/esm5/lib/components/fee-summary/fee-summary.component.js +232 -56
- package/esm5/lib/components/mark-unidentified-payment/mark-unidentified-payment.component.js +136 -45
- package/esm5/lib/components/mark-unsolicited-payment/mark-unsolicited-payment.component.js +179 -65
- package/esm5/lib/components/page-not-found.component.js +3 -4
- package/esm5/lib/components/payment-list/payment-list.component.js +21 -8
- package/esm5/lib/components/payment-view/payment-view.component.js +425 -20
- package/esm5/lib/components/pba-details/pba-details.component.js +5 -6
- package/esm5/lib/components/process-refund/process-refund.component.js +469 -0
- package/esm5/lib/components/processed-payments/processed-payments.component.js +12 -7
- package/esm5/lib/components/refund-list/refund-list.component.js +134 -0
- package/esm5/lib/components/refund-status/refund-status.component.js +570 -0
- package/esm5/lib/components/reports/reports.component.js +97 -26
- package/esm5/lib/components/status-history/status-history.component.js +27 -9
- package/esm5/lib/components/table/table.component.js +214 -0
- package/esm5/lib/components/unprocessed-payments/unprocessed-payments.component.js +178 -27
- package/esm5/lib/interfaces/AddRemissionRequest.js +5 -6
- package/esm5/lib/interfaces/AddRetroRemissionRequest.js +19 -0
- package/esm5/lib/interfaces/AllocatePaymentRequest.js +9 -8
- package/esm5/lib/interfaces/IAllocationPaymentsRequest.js +2 -3
- package/esm5/lib/interfaces/IBSPayments.js +38 -35
- package/esm5/lib/interfaces/ICardDetails.js +14 -13
- package/esm5/lib/interfaces/IFee.js +44 -43
- package/esm5/lib/interfaces/IOrderReferenceFee.js +25 -0
- package/esm5/lib/interfaces/IPatchRefundAction.js +15 -0
- package/esm5/lib/interfaces/IPayment.js +56 -55
- package/esm5/lib/interfaces/IPaymentGroup.js +12 -11
- package/esm5/lib/interfaces/IPaymentStatus.js +2 -3
- package/esm5/lib/interfaces/IPaymentView.js +17 -0
- package/esm5/lib/interfaces/IPayments.js +6 -5
- package/esm5/lib/interfaces/IRefundAction.js +15 -0
- package/esm5/lib/interfaces/IRefundList.js +29 -0
- package/esm5/lib/interfaces/IRefundReasons.js +19 -0
- package/esm5/lib/interfaces/IRefundRejectReason.js +15 -0
- package/esm5/lib/interfaces/IRefundStatus.js +23 -0
- package/esm5/lib/interfaces/IRefundStatusHistory.js +15 -0
- package/esm5/lib/interfaces/IRemission.js +18 -17
- package/esm5/lib/interfaces/IResubmitRefundRequest.js +19 -0
- package/esm5/lib/interfaces/IStatusHistories.js +12 -11
- package/esm5/lib/interfaces/IStatusHistory.js +14 -13
- package/esm5/lib/interfaces/IssueRefundRequest.js +22 -0
- package/esm5/lib/interfaces/PayhubAntennaRequest.js +25 -0
- package/esm5/lib/interfaces/PaymentToPayhubRequest.js +6 -10
- package/esm5/lib/interfaces/PostIssueRefundRetroRemission.js +16 -0
- package/esm5/lib/interfaces/PostRefundRetroRemission.js +19 -0
- package/esm5/lib/interfaces/RefundsRequest.js +19 -0
- package/esm5/lib/interfaces/UnidentifiedPaymentsRequest.js +2 -3
- package/esm5/lib/interfaces/UnsolicitedPaymentsRequest.js +2 -3
- package/esm5/lib/payment-lib.component.js +99 -14
- package/esm5/lib/payment-lib.module.js +27 -6
- package/esm5/lib/payment-lib.service.js +25 -4
- package/esm5/lib/pipes/capitalize.pipe.js +32 -0
- package/esm5/lib/pipes/ccd-hyphens.pipe.js +3 -4
- package/esm5/lib/pipes/key-value.pipe.js +3 -4
- package/esm5/lib/pipes/sanitize-html.pipe.js +7 -5
- package/esm5/lib/services/bulk-scaning-payment/bulk-scaning-payment.service.js +61 -14
- package/esm5/lib/services/card-details/card-details.service.js +19 -8
- package/esm5/lib/services/case-transactions/case-transactions.service.js +19 -8
- package/esm5/lib/services/orderslist.service.js +276 -0
- package/esm5/lib/services/payment-list/payment-list.service.js +19 -8
- package/esm5/lib/services/payment-view/payment-view.service.js +135 -11
- package/esm5/lib/services/refunds/refunds.service.js +243 -0
- package/esm5/lib/services/shared/error-handler.service.js +24 -4
- package/esm5/lib/services/shared/httpclient/webcomponent.http.client.js +27 -9
- package/esm5/lib/services/shared/logger/console-logger.service.js +7 -5
- package/esm5/lib/services/shared/logger/logger.service.js +7 -5
- package/esm5/lib/services/status-history/status-history.service.js +19 -8
- package/esm5/lib/services/xl-file/xl-file.service.js +62 -51
- package/esm5/public_api.js +1 -2
- package/fesm2015/hmcts-ccpay-web-component.js +4622 -2024
- package/fesm2015/hmcts-ccpay-web-component.js.map +1 -1
- package/fesm5/hmcts-ccpay-web-component.js +7021 -2540
- package/fesm5/hmcts-ccpay-web-component.js.map +1 -1
- package/hmcts-ccpay-web-component.d.ts +30 -23
- package/hmcts-ccpay-web-component.metadata.json +1 -1
- package/lib/components/add-remission/add-remission.component.d.ts +100 -3
- package/lib/components/allocate-payments/allocate-payments.component.d.ts +29 -1
- package/lib/components/case-transactions/case-transactions.component.d.ts +64 -2
- package/lib/components/fee-summary/fee-summary.component.d.ts +10 -1
- package/lib/components/mark-unidentified-payment/mark-unidentified-payment.component.d.ts +2 -0
- package/lib/components/mark-unsolicited-payment/mark-unsolicited-payment.component.d.ts +4 -0
- package/lib/components/payment-view/payment-view.component.d.ts +41 -1
- package/lib/components/process-refund/process-refund.component.d.ts +53 -0
- package/lib/components/refund-list/refund-list.component.d.ts +23 -0
- package/lib/components/refund-status/refund-status.component.d.ts +68 -0
- package/lib/components/reports/reports.component.d.ts +4 -1
- package/lib/components/status-history/status-history.component.d.ts +1 -0
- package/lib/components/table/table.component.d.ts +36 -0
- package/lib/components/unprocessed-payments/unprocessed-payments.component.d.ts +24 -4
- package/lib/interfaces/AddRemissionRequest.d.ts +2 -2
- package/lib/interfaces/AddRetroRemissionRequest.d.ts +5 -0
- package/lib/interfaces/AllocatePaymentRequest.d.ts +16 -3
- package/lib/interfaces/IBSPayments.d.ts +1 -0
- package/lib/interfaces/IOrderReferenceFee.d.ts +9 -0
- package/lib/interfaces/IPatchRefundAction.d.ts +4 -0
- package/lib/interfaces/IPaymentView.d.ts +5 -0
- package/lib/interfaces/IRefundAction.d.ts +4 -0
- package/lib/interfaces/IRefundList.d.ts +14 -0
- package/lib/interfaces/IRefundReasons.d.ts +6 -0
- package/lib/interfaces/IRefundRejectReason.d.ts +4 -0
- package/lib/interfaces/IRefundStatus.d.ts +8 -0
- package/lib/interfaces/IRefundStatusHistory.d.ts +5 -0
- package/lib/interfaces/IResubmitRefundRequest.d.ts +5 -0
- package/lib/interfaces/IssueRefundRequest.d.ts +6 -0
- package/lib/interfaces/PayhubAntennaRequest.d.ts +7 -0
- package/lib/interfaces/PaymentToPayhubRequest.d.ts +2 -3
- package/lib/interfaces/PostIssueRefundRetroRemission.d.ts +4 -0
- package/lib/interfaces/PostRefundRetroRemission.d.ts +5 -0
- package/lib/interfaces/RefundsRequest.d.ts +5 -0
- package/lib/payment-lib.component.d.ts +30 -4
- package/lib/payment-lib.service.d.ts +3 -0
- package/lib/pipes/capitalize.pipe.d.ts +5 -0
- package/lib/services/bulk-scaning-payment/bulk-scaning-payment.service.d.ts +2 -0
- package/lib/services/orderslist.service.d.ts +40 -0
- package/lib/services/payment-view/payment-view.service.d.ts +15 -0
- package/lib/services/refunds/refunds.service.d.ts +30 -0
- package/lib/services/xl-file/xl-file.service.d.ts +6 -6
- package/package.json +5 -1
|
@@ -1,17 +1,61 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
|
-
import
|
|
5
|
+
import * as tslib_1 from "tslib";
|
|
6
|
+
import { Component, Input } from '@angular/core';
|
|
6
7
|
import { PaymentViewService } from '../../services/payment-view/payment-view.service';
|
|
7
8
|
import { PaymentLibComponent } from '../../payment-lib.component';
|
|
8
9
|
/** @type {?} */
|
|
9
10
|
var BS_ENABLE_FLAG = 'bulk-scan-enabling-fe';
|
|
11
|
+
import { ChangeDetectorRef } from '@angular/core';
|
|
12
|
+
import { OrderslistService } from '../../services/orderslist.service';
|
|
10
13
|
var PaymentViewComponent = /** @class */ (function () {
|
|
11
|
-
function PaymentViewComponent(paymentViewService, paymentLibComponent) {
|
|
14
|
+
function PaymentViewComponent(paymentViewService, paymentLibComponent, cd, OrderslistService) {
|
|
15
|
+
var _this = this;
|
|
12
16
|
this.paymentViewService = paymentViewService;
|
|
13
17
|
this.paymentLibComponent = paymentLibComponent;
|
|
18
|
+
this.cd = cd;
|
|
19
|
+
this.OrderslistService = OrderslistService;
|
|
20
|
+
this.isRefundRemission = false;
|
|
21
|
+
this.isAddFeeBtnEnabled = false;
|
|
22
|
+
this.isIssueRefunfBtnEnable = false;
|
|
23
|
+
this.allowedRolesToAccessRefund = ['payments-refund-approver', 'payments-refund'];
|
|
24
|
+
this.remissions = [];
|
|
25
|
+
this.check4AllowedRoles2AccessRefund = (/**
|
|
26
|
+
* @return {?}
|
|
27
|
+
*/
|
|
28
|
+
function () {
|
|
29
|
+
return _this.allowedRolesToAccessRefund.some((/**
|
|
30
|
+
* @param {?} role
|
|
31
|
+
* @return {?}
|
|
32
|
+
*/
|
|
33
|
+
function (role) {
|
|
34
|
+
return _this.LOGGEDINUSERROLES.indexOf(role) !== -1;
|
|
35
|
+
}));
|
|
36
|
+
});
|
|
37
|
+
this.allowFurtherAccessAfter4Days = (/**
|
|
38
|
+
* @param {?} payment
|
|
39
|
+
* @return {?}
|
|
40
|
+
*/
|
|
41
|
+
function (payment) {
|
|
42
|
+
if (payment !== null && payment !== undefined) {
|
|
43
|
+
/** @type {?} */
|
|
44
|
+
var tmp4DayAgo = new Date();
|
|
45
|
+
tmp4DayAgo.setDate(tmp4DayAgo.getDate() - 4);
|
|
46
|
+
return tmp4DayAgo >= new Date(payment.date_created);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
14
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* @return {?}
|
|
52
|
+
*/
|
|
53
|
+
PaymentViewComponent.prototype.ngAfterContentChecked = /**
|
|
54
|
+
* @return {?}
|
|
55
|
+
*/
|
|
56
|
+
function () {
|
|
57
|
+
this.cd.detectChanges();
|
|
58
|
+
};
|
|
15
59
|
/**
|
|
16
60
|
* @return {?}
|
|
17
61
|
*/
|
|
@@ -23,13 +67,52 @@ var PaymentViewComponent = /** @class */ (function () {
|
|
|
23
67
|
this.ccdCaseNumber = this.paymentLibComponent.CCD_CASE_NUMBER;
|
|
24
68
|
this.selectedOption = this.paymentLibComponent.SELECTED_OPTION;
|
|
25
69
|
this.dcnNumber = this.paymentLibComponent.DCN_NUMBER;
|
|
26
|
-
this.
|
|
70
|
+
this.isTurnOff = this.paymentLibComponent.ISTURNOFF;
|
|
71
|
+
this.viewStatus = 'paymentview';
|
|
72
|
+
this.paymentViewService.getApportionPaymentDetails(this.paymentLibComponent.paymentReference).subscribe((/**
|
|
73
|
+
* @param {?} paymentGroup
|
|
74
|
+
* @return {?}
|
|
75
|
+
*/
|
|
76
|
+
function (paymentGroup) {
|
|
77
|
+
/** @type {?} */
|
|
78
|
+
var fees = [];
|
|
79
|
+
paymentGroup.fees.forEach((/**
|
|
80
|
+
* @param {?} fee
|
|
81
|
+
* @return {?}
|
|
82
|
+
*/
|
|
83
|
+
function (fee) {
|
|
84
|
+
_this.isRemissionsMatch = false;
|
|
85
|
+
paymentGroup.remissions.forEach((/**
|
|
86
|
+
* @param {?} rem
|
|
87
|
+
* @return {?}
|
|
88
|
+
*/
|
|
89
|
+
function (rem) {
|
|
90
|
+
if (rem.fee_code === fee.code) {
|
|
91
|
+
_this.isRemissionsMatch = true;
|
|
92
|
+
fee['remissions'] = rem;
|
|
93
|
+
fees.push(fee);
|
|
94
|
+
}
|
|
95
|
+
}));
|
|
96
|
+
if (!_this.isRemissionsMatch) {
|
|
97
|
+
fees.push(fee);
|
|
98
|
+
}
|
|
99
|
+
}));
|
|
100
|
+
paymentGroup.fees = fees;
|
|
27
101
|
_this.paymentGroup = paymentGroup;
|
|
28
|
-
_this.paymentGroup.payments = _this.paymentGroup.payments.filter(
|
|
102
|
+
_this.paymentGroup.payments = _this.paymentGroup.payments.filter((/**
|
|
103
|
+
* @param {?} paymentGroupObj
|
|
104
|
+
* @return {?}
|
|
105
|
+
*/
|
|
106
|
+
function (paymentGroupObj) { return paymentGroupObj['reference'].includes(_this.paymentLibComponent.paymentReference); }));
|
|
29
107
|
/** @type {?} */
|
|
30
108
|
var paymentAllocation = _this.paymentGroup.payments[0].payment_allocation;
|
|
31
109
|
_this.isStatusAllocated = paymentAllocation.length > 0 && paymentAllocation[0].allocation_status === 'Allocated' || paymentAllocation.length === 0;
|
|
32
|
-
|
|
110
|
+
console.log(_this.paymentGroup.payments[0] + '1');
|
|
111
|
+
}), (/**
|
|
112
|
+
* @param {?} error
|
|
113
|
+
* @return {?}
|
|
114
|
+
*/
|
|
115
|
+
function (error) { return _this.errorMessage = error; }));
|
|
33
116
|
};
|
|
34
117
|
Object.defineProperty(PaymentViewComponent.prototype, "isCardPayment", {
|
|
35
118
|
get: /**
|
|
@@ -69,33 +152,314 @@ var PaymentViewComponent = /** @class */ (function () {
|
|
|
69
152
|
* @return {?}
|
|
70
153
|
*/
|
|
71
154
|
function (event) {
|
|
72
|
-
var _this = this;
|
|
73
155
|
event.preventDefault();
|
|
156
|
+
this.OrderslistService.setnavigationPage('casetransactions');
|
|
157
|
+
this.OrderslistService.setisFromServiceRequestPage(false);
|
|
74
158
|
this.paymentLibComponent.viewName = 'case-transactions';
|
|
75
|
-
this.
|
|
159
|
+
this.paymentLibComponent.ISBSENABLE = true;
|
|
160
|
+
// this.paymentViewService.getBSfeature().subscribe(
|
|
161
|
+
// features => {
|
|
162
|
+
// let result = JSON.parse(features).filter(feature => feature.uid === BS_ENABLE_FLAG);
|
|
163
|
+
// this.paymentLibComponent.ISBSENABLE = result[0] ? result[0].enable : false;
|
|
164
|
+
// },
|
|
165
|
+
// err => {
|
|
166
|
+
// this.paymentLibComponent.ISBSENABLE = false;
|
|
167
|
+
// }
|
|
168
|
+
// );
|
|
169
|
+
};
|
|
170
|
+
/**
|
|
171
|
+
* @param {?} fee
|
|
172
|
+
* @return {?}
|
|
173
|
+
*/
|
|
174
|
+
PaymentViewComponent.prototype.addRemission = /**
|
|
175
|
+
* @param {?} fee
|
|
176
|
+
* @return {?}
|
|
177
|
+
*/
|
|
178
|
+
function (fee) {
|
|
179
|
+
var _this = this;
|
|
180
|
+
if (this.chkForAddRemission(fee.code)) {
|
|
181
|
+
this.feeId = fee;
|
|
182
|
+
this.paymentViewService.getApportionPaymentDetails(this.paymentGroup.payments[0].reference).subscribe((/**
|
|
183
|
+
* @param {?} paymentGroup
|
|
184
|
+
* @return {?}
|
|
185
|
+
*/
|
|
186
|
+
function (paymentGroup) {
|
|
187
|
+
_this.paymentGroup = paymentGroup;
|
|
188
|
+
_this.paymentGroup.payments = _this.paymentGroup.payments.filter((/**
|
|
189
|
+
* @param {?} paymentGroupObj
|
|
190
|
+
* @return {?}
|
|
191
|
+
*/
|
|
192
|
+
function (paymentGroupObj) { return paymentGroupObj['reference'].includes(_this.paymentLibComponent.paymentReference); }));
|
|
193
|
+
_this.payment = _this.paymentGroup.payments[0];
|
|
194
|
+
_this.paymentLibComponent.isFromPaymentDetailPage = true;
|
|
195
|
+
_this.viewStatus = 'addremission';
|
|
196
|
+
_this.isRefundRemission = true;
|
|
197
|
+
_this.cd.detectChanges();
|
|
198
|
+
}), (/**
|
|
199
|
+
* @param {?} error
|
|
200
|
+
* @return {?}
|
|
201
|
+
*/
|
|
202
|
+
function (error) { return _this.errorMessage = error; }));
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
/**
|
|
206
|
+
* @param {?} paymentGroup
|
|
207
|
+
* @return {?}
|
|
208
|
+
*/
|
|
209
|
+
PaymentViewComponent.prototype.checkForFees = /**
|
|
210
|
+
* @param {?} paymentGroup
|
|
211
|
+
* @return {?}
|
|
212
|
+
*/
|
|
213
|
+
function (paymentGroup) {
|
|
214
|
+
if (paymentGroup !== null && paymentGroup !== undefined) {
|
|
215
|
+
if (paymentGroup.fees !== null && paymentGroup.fees !== undefined) {
|
|
216
|
+
return true;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return false;
|
|
220
|
+
};
|
|
221
|
+
/**
|
|
222
|
+
* @param {?} payment
|
|
223
|
+
* @param {?} remission
|
|
224
|
+
* @param {?} fees
|
|
225
|
+
* @return {?}
|
|
226
|
+
*/
|
|
227
|
+
PaymentViewComponent.prototype.addRefundForRemission = /**
|
|
228
|
+
* @param {?} payment
|
|
229
|
+
* @param {?} remission
|
|
230
|
+
* @param {?} fees
|
|
231
|
+
* @return {?}
|
|
232
|
+
*/
|
|
233
|
+
function (payment, remission, fees) {
|
|
234
|
+
var _this = this;
|
|
235
|
+
if (this.chkIsRefundRemissionBtnEnable()) {
|
|
236
|
+
this.payment = payment;
|
|
237
|
+
this.paymentViewService.getApportionPaymentDetails(this.payment.reference).subscribe((/**
|
|
238
|
+
* @param {?} paymentGroup
|
|
239
|
+
* @return {?}
|
|
240
|
+
*/
|
|
241
|
+
function (paymentGroup) {
|
|
242
|
+
_this.paymentGroup = paymentGroup;
|
|
243
|
+
_this.paymentGroup.payments = _this.paymentGroup.payments.filter((/**
|
|
244
|
+
* @param {?} paymentGroupObj
|
|
245
|
+
* @return {?}
|
|
246
|
+
*/
|
|
247
|
+
function (paymentGroupObj) { return paymentGroupObj['reference'].includes(_this.payment.reference); }));
|
|
248
|
+
_this.payment = _this.paymentGroup.payments[0];
|
|
249
|
+
_this.remissions = remission;
|
|
250
|
+
_this.remissionFeeAmt = fees.filter((/**
|
|
251
|
+
* @param {?} data
|
|
252
|
+
* @return {?}
|
|
253
|
+
*/
|
|
254
|
+
function (data) { return data.code === _this.remissions['fee_code']; }))[0].net_amount;
|
|
255
|
+
_this.viewStatus = 'addrefundforremission';
|
|
256
|
+
// const paymentAllocation = this.paymentGroup.payments[0].payment_allocation;
|
|
257
|
+
// this.isStatusAllocated = paymentAllocation.length > 0 && paymentAllocation[0].allocation_status === 'Allocated' || paymentAllocation.length === 0;
|
|
258
|
+
}), (/**
|
|
259
|
+
* @param {?} error
|
|
260
|
+
* @return {?}
|
|
261
|
+
*/
|
|
262
|
+
function (error) { return _this.errorMessage = error; }));
|
|
263
|
+
}
|
|
264
|
+
};
|
|
265
|
+
/**
|
|
266
|
+
* @return {?}
|
|
267
|
+
*/
|
|
268
|
+
PaymentViewComponent.prototype.chkIsRefundRemissionBtnEnable = /**
|
|
269
|
+
* @return {?}
|
|
270
|
+
*/
|
|
271
|
+
function () {
|
|
272
|
+
var _this = this;
|
|
273
|
+
if (this.paymentGroup !== null && this.paymentGroup !== undefined) {
|
|
274
|
+
this.paymentGroup.payments.forEach((/**
|
|
275
|
+
* @param {?} payment
|
|
276
|
+
* @return {?}
|
|
277
|
+
*/
|
|
278
|
+
function (payment) {
|
|
279
|
+
if (payment.method.toLocaleLowerCase() === 'payment by account' && payment.status.toLocaleLowerCase() === 'success' && _this.allowFurtherAccessAfter4Days(payment)) {
|
|
280
|
+
_this.isRefundRemissionBtnEnable = true;
|
|
281
|
+
}
|
|
282
|
+
}));
|
|
283
|
+
if (this.isRefundRemissionBtnEnable) {
|
|
284
|
+
return true;
|
|
285
|
+
}
|
|
286
|
+
else {
|
|
287
|
+
return false;
|
|
288
|
+
}
|
|
289
|
+
;
|
|
290
|
+
}
|
|
291
|
+
};
|
|
292
|
+
/**
|
|
293
|
+
* @param {?} paymentgrp
|
|
294
|
+
* @return {?}
|
|
295
|
+
*/
|
|
296
|
+
PaymentViewComponent.prototype.issueRefund = /**
|
|
297
|
+
* @param {?} paymentgrp
|
|
298
|
+
* @return {?}
|
|
299
|
+
*/
|
|
300
|
+
function (paymentgrp) {
|
|
301
|
+
if (paymentgrp !== null && paymentgrp !== undefined) {
|
|
302
|
+
if (this.chkIssueRefundBtnEnable(paymentgrp.payments[0])) {
|
|
303
|
+
this.paymentGroup = paymentgrp;
|
|
304
|
+
this.viewStatus = 'issuerefund';
|
|
305
|
+
this.isRefundRemission = true;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
};
|
|
309
|
+
/**
|
|
310
|
+
* @param {?} feeCode
|
|
311
|
+
* @param {?} remissions
|
|
312
|
+
* @return {?}
|
|
313
|
+
*/
|
|
314
|
+
PaymentViewComponent.prototype.getRemissionByFeeCode = /**
|
|
315
|
+
* @param {?} feeCode
|
|
316
|
+
* @param {?} remissions
|
|
317
|
+
* @return {?}
|
|
318
|
+
*/
|
|
319
|
+
function (feeCode, remissions) {
|
|
320
|
+
var e_1, _a;
|
|
321
|
+
if (remissions && remissions.length > 0) {
|
|
322
|
+
try {
|
|
323
|
+
for (var remissions_1 = tslib_1.__values(remissions), remissions_1_1 = remissions_1.next(); !remissions_1_1.done; remissions_1_1 = remissions_1.next()) {
|
|
324
|
+
var remission = remissions_1_1.value;
|
|
325
|
+
if (remission.fee_code === feeCode) {
|
|
326
|
+
return remission;
|
|
327
|
+
// this.isAddFeeBtnEnabled = true;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
332
|
+
finally {
|
|
333
|
+
try {
|
|
334
|
+
if (remissions_1_1 && !remissions_1_1.done && (_a = remissions_1.return)) _a.call(remissions_1);
|
|
335
|
+
}
|
|
336
|
+
finally { if (e_1) throw e_1.error; }
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
return null;
|
|
340
|
+
};
|
|
341
|
+
/**
|
|
342
|
+
* @param {?} payment
|
|
343
|
+
* @return {?}
|
|
344
|
+
*/
|
|
345
|
+
PaymentViewComponent.prototype.chkIssueRefundBtnEnable = /**
|
|
346
|
+
* @param {?} payment
|
|
347
|
+
* @return {?}
|
|
348
|
+
*/
|
|
349
|
+
function (payment) {
|
|
350
|
+
if (this.check4AllowedRoles2AccessRefund() && this.allowFurtherAccessAfter4Days(payment) &&
|
|
351
|
+
payment.method === 'payment by account' && payment.status.toLocaleLowerCase() === 'success') {
|
|
352
|
+
this.isIssueRefunfBtnEnable = true;
|
|
353
|
+
}
|
|
354
|
+
if (this.isIssueRefunfBtnEnable) {
|
|
355
|
+
return true;
|
|
356
|
+
}
|
|
357
|
+
else {
|
|
358
|
+
return false;
|
|
359
|
+
}
|
|
360
|
+
;
|
|
361
|
+
};
|
|
362
|
+
/**
|
|
363
|
+
* @return {?}
|
|
364
|
+
*/
|
|
365
|
+
PaymentViewComponent.prototype.chkForPBAPayment = /**
|
|
366
|
+
* @return {?}
|
|
367
|
+
*/
|
|
368
|
+
function () {
|
|
369
|
+
if (this.paymentGroup !== null && this.paymentGroup !== undefined) {
|
|
76
370
|
/** @type {?} */
|
|
77
|
-
var
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
371
|
+
var payment = this.paymentGroup.payments[0];
|
|
372
|
+
if (payment.method.toLocaleLowerCase() === 'payment by account' && this.allowFurtherAccessAfter4Days(payment)) {
|
|
373
|
+
return true;
|
|
374
|
+
}
|
|
375
|
+
return false;
|
|
376
|
+
}
|
|
377
|
+
};
|
|
378
|
+
/**
|
|
379
|
+
* @param {?} feeCode
|
|
380
|
+
* @return {?}
|
|
381
|
+
*/
|
|
382
|
+
PaymentViewComponent.prototype.chkForAddRemission = /**
|
|
383
|
+
* @param {?} feeCode
|
|
384
|
+
* @return {?}
|
|
385
|
+
*/
|
|
386
|
+
function (feeCode) {
|
|
387
|
+
var e_2, _a;
|
|
388
|
+
if (this.chkForPBAPayment() && this.check4AllowedRoles2AccessRefund() && this.allowFurtherAccessAfter4Days(this.paymentGroup.payments[0])) {
|
|
389
|
+
if (this.paymentGroup.remissions && this.paymentGroup.remissions.length > 0) {
|
|
390
|
+
try {
|
|
391
|
+
for (var _b = tslib_1.__values(this.paymentGroup.remissions), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
392
|
+
var remission = _c.value;
|
|
393
|
+
if (remission.fee_code === feeCode) {
|
|
394
|
+
return false;
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
399
|
+
finally {
|
|
400
|
+
try {
|
|
401
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
402
|
+
}
|
|
403
|
+
finally { if (e_2) throw e_2.error; }
|
|
404
|
+
}
|
|
405
|
+
return true;
|
|
406
|
+
}
|
|
407
|
+
return true;
|
|
408
|
+
}
|
|
409
|
+
else {
|
|
410
|
+
return false;
|
|
411
|
+
}
|
|
82
412
|
};
|
|
83
413
|
PaymentViewComponent.decorators = [
|
|
84
414
|
{ type: Component, args: [{
|
|
85
415
|
selector: 'ccpay-payment-view',
|
|
86
|
-
template: "<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=\"#\" (click)=\"goToCaseTransationPage($event)\" class=\"govuk-back-link\">Back</a>\n </li>\n </ol>\n </div>\n\n <main class=\"govuk-main-wrapper \" 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 *ngIf=\"!errorMessage && paymentGroup\">\n\n <div class=\"govuk-grid-row\">\n <div class=\"column\">\n <h1 class=\"heading-medium\">Payment details</h1>\n </div>\n </div>\n\n <hr class=\"govuk-section-break govuk-section-break--m govuk-section-break--visible\"> \n <table>\n <tbody>\n <tr class=\"section\">\n <td class=\"bold\" width=\"330px\">Payment reference</td>\n <td>{{ paymentGroup.payments[0].reference }}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold\" width=\"330px\">Payment amount</td>\n <td>\u00A3{{ paymentGroup.payments[0].amount | number:'.2' }}</td>\n </tr>\n\n <tr class=\"section\" *ngIf=\"paymentGroup.payments[0] && paymentGroup.payments[0].document_control_number\">\n <td class=\"bold\" width=\"330px\">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\">\n <td class=\"bold\" width=\"330px\">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\">\n <div class=\"column\">\n <h2 class=\"heading-medium\">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\" width=\"330px\">Description</td>\n <td>Application for {{ fee.description }}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold\" width=\"330px\">Fee code</td>\n <td>{{ fee.code }}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold\" width=\"330px\">Fee amount</td>\n <td>\u00A3{{ fee.calculated_amount | number:'.2' }}</td>\n </tr>\n <tr *ngIf=\"fee.net_amount\">\n <td class=\"bold\" width=\"330px\">Allocated amount</td>\n <td>\u00A3{{ fee.apportion_amount | number:'.2' }}</td>\n </tr>\n </tbody>\n <tbody *ngFor=\"let remission of paymentGroup.remissions\">\n <tr *ngIf=\"remission.fee_code === fee.code\">\n <td class=\"bold\" width=\"330px\">Remission code</td>\n <td>{{remission.hwf_reference}}</td>\n </tr>\n <tr *ngIf=\"paymentGroup.remissions?.length > 0\">\n <td class=\"bold\" width=\"330px\">Remission amount</td>\n <td>\u00A3{{ remission.hwf_amount | number:'.2'}}</td>\n </tr>\n </tbody>\n </table>\n\n <hr class=\"govuk-section-break govuk-section-break--m govuk-section-break--visible\"> \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\n <!-- Status histories -->\n <ccpay-payment-statuses *ngIf=\"isStatusAllocated\"></ccpay-payment-statuses>\n\n </div>\n\n </main>\n</div>\n",
|
|
87
|
-
styles: [""]
|
|
88
|
-
}
|
|
416
|
+
template: "\n<ng-container *ngIf=\"viewStatus === 'paymentview'\">\n<div class=\"govuk-width-container\">\n\n <div *ngIf=\"isTakePayment\" 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\">\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\">\n <td class=\"bold tb-col-w\">Payment method</td>\n <td>{{ paymentGroup?.payments[0]?.method }}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Type</td>\n <td *ngIf=\"paymentGroup?.payments[0]?.method !== 'card'\">Credit</td>\n <td *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>{{ 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\">\n <td class=\"bold tb-col-w\">Status</td>\n <td>{{ paymentGroup?.payments[0]?.status }}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Allocaton Status</td>\n <td>{{ paymentGroup?.payments[0]?.payment_allocation[0]?.allocation_status }}</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]=\"!chkIssueRefundBtnEnable(paymentGroup?.payments[0])\" (click)=\"issueRefund(paymentGroup)\" class=\"govuk-button govuk-button--secondary\">Issue refund</button>\n </div>\n \n <div *ngIf=\"checkForFees(paymentGroup)\">\n <div class=\"govuk-grid-row\" *ngIf=\"paymentGroup.fees.length > 0\">\n <div class=\"column\">\n \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>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 \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]=\"!chkForAddRemission(fee.code)\" (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]=\"!chkIsRefundRemissionBtnEnable()\" (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\"></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\"></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 [paymentGroupRef]=\"paymentGroup.payment_group_reference\" \n [ccdCaseNumber]=\"ccdCaseNumber\"></ccpay-add-remission>\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",
|
|
417
|
+
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}.govuk-table__row{line-height:1.3}.govuk-table__cell:last-child{text-align:right}"]
|
|
418
|
+
}] }
|
|
89
419
|
];
|
|
90
420
|
/** @nocollapse */
|
|
91
421
|
PaymentViewComponent.ctorParameters = function () { return [
|
|
92
422
|
{ type: PaymentViewService },
|
|
93
|
-
{ type: PaymentLibComponent }
|
|
423
|
+
{ type: PaymentLibComponent },
|
|
424
|
+
{ type: ChangeDetectorRef },
|
|
425
|
+
{ type: OrderslistService }
|
|
94
426
|
]; };
|
|
427
|
+
PaymentViewComponent.propDecorators = {
|
|
428
|
+
isTurnOff: [{ type: Input }],
|
|
429
|
+
isTakePayment: [{ type: Input }],
|
|
430
|
+
caseType: [{ type: Input }],
|
|
431
|
+
isNewPcipalOff: [{ type: Input }],
|
|
432
|
+
isOldPcipalOff: [{ type: Input }],
|
|
433
|
+
orderRef: [{ type: Input }],
|
|
434
|
+
orderStatus: [{ type: Input }],
|
|
435
|
+
orderTotalPayments: [{ type: Input }],
|
|
436
|
+
payment: [{ type: Input }],
|
|
437
|
+
LOGGEDINUSERROLES: [{ type: Input, args: ['LOGGEDINUSERROLES',] }]
|
|
438
|
+
};
|
|
95
439
|
return PaymentViewComponent;
|
|
96
440
|
}());
|
|
97
441
|
export { PaymentViewComponent };
|
|
98
442
|
if (false) {
|
|
443
|
+
/** @type {?} */
|
|
444
|
+
PaymentViewComponent.prototype.isTurnOff;
|
|
445
|
+
/** @type {?} */
|
|
446
|
+
PaymentViewComponent.prototype.isTakePayment;
|
|
447
|
+
/** @type {?} */
|
|
448
|
+
PaymentViewComponent.prototype.caseType;
|
|
449
|
+
/** @type {?} */
|
|
450
|
+
PaymentViewComponent.prototype.isNewPcipalOff;
|
|
451
|
+
/** @type {?} */
|
|
452
|
+
PaymentViewComponent.prototype.isOldPcipalOff;
|
|
453
|
+
/** @type {?} */
|
|
454
|
+
PaymentViewComponent.prototype.orderRef;
|
|
455
|
+
/** @type {?} */
|
|
456
|
+
PaymentViewComponent.prototype.orderStatus;
|
|
457
|
+
/** @type {?} */
|
|
458
|
+
PaymentViewComponent.prototype.orderTotalPayments;
|
|
459
|
+
/** @type {?} */
|
|
460
|
+
PaymentViewComponent.prototype.payment;
|
|
461
|
+
/** @type {?} */
|
|
462
|
+
PaymentViewComponent.prototype.LOGGEDINUSERROLES;
|
|
99
463
|
/** @type {?} */
|
|
100
464
|
PaymentViewComponent.prototype.paymentGroup;
|
|
101
465
|
/** @type {?} */
|
|
@@ -109,9 +473,50 @@ if (false) {
|
|
|
109
473
|
/** @type {?} */
|
|
110
474
|
PaymentViewComponent.prototype.isStatusAllocated;
|
|
111
475
|
/** @type {?} */
|
|
112
|
-
PaymentViewComponent.prototype.
|
|
476
|
+
PaymentViewComponent.prototype.isRemissionsMatch;
|
|
477
|
+
/** @type {?} */
|
|
478
|
+
PaymentViewComponent.prototype.feeId;
|
|
479
|
+
/** @type {?} */
|
|
480
|
+
PaymentViewComponent.prototype.viewStatus;
|
|
481
|
+
/** @type {?} */
|
|
482
|
+
PaymentViewComponent.prototype.isRefundRemission;
|
|
483
|
+
/** @type {?} */
|
|
484
|
+
PaymentViewComponent.prototype.isStrategicFixEnable;
|
|
485
|
+
/** @type {?} */
|
|
486
|
+
PaymentViewComponent.prototype.isAddFeeBtnEnabled;
|
|
487
|
+
/** @type {?} */
|
|
488
|
+
PaymentViewComponent.prototype.isIssueRefunfBtnEnable;
|
|
113
489
|
/** @type {?} */
|
|
490
|
+
PaymentViewComponent.prototype.allowedRolesToAccessRefund;
|
|
491
|
+
/** @type {?} */
|
|
492
|
+
PaymentViewComponent.prototype.remissions;
|
|
493
|
+
/** @type {?} */
|
|
494
|
+
PaymentViewComponent.prototype.remissionFeeAmt;
|
|
495
|
+
/** @type {?} */
|
|
496
|
+
PaymentViewComponent.prototype.isRefundRemissionBtnEnable;
|
|
497
|
+
/** @type {?} */
|
|
498
|
+
PaymentViewComponent.prototype.check4AllowedRoles2AccessRefund;
|
|
499
|
+
/** @type {?} */
|
|
500
|
+
PaymentViewComponent.prototype.allowFurtherAccessAfter4Days;
|
|
501
|
+
/**
|
|
502
|
+
* @type {?}
|
|
503
|
+
* @private
|
|
504
|
+
*/
|
|
505
|
+
PaymentViewComponent.prototype.paymentViewService;
|
|
506
|
+
/**
|
|
507
|
+
* @type {?}
|
|
508
|
+
* @private
|
|
509
|
+
*/
|
|
114
510
|
PaymentViewComponent.prototype.paymentLibComponent;
|
|
511
|
+
/**
|
|
512
|
+
* @type {?}
|
|
513
|
+
* @private
|
|
514
|
+
*/
|
|
515
|
+
PaymentViewComponent.prototype.cd;
|
|
516
|
+
/**
|
|
517
|
+
* @type {?}
|
|
518
|
+
* @private
|
|
519
|
+
*/
|
|
520
|
+
PaymentViewComponent.prototype.OrderslistService;
|
|
115
521
|
}
|
|
116
|
-
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9jY3BheS13ZWItY29tcG9uZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGF5bWVudC12aWV3L3BheW1lbnQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDcEYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7O0FBR2hFLElBQU0sY0FBYyxHQUFHLHVCQUF1QixDQUFDOztJQTJIN0MsOEJBQW9CLGtCQUFzQyxFQUN0QztRQURBLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsd0JBQW1CLEdBQW5CLG1CQUFtQjtLQUN0Qzs7OztJQUVELHVDQUFROzs7SUFBUjtRQUFBLGlCQWlCQztRQWhCQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUM7UUFDOUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDO1FBQy9ELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQztRQUdyRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLENBQUMsU0FBUyxDQUNyRyxVQUFBLFlBQVk7WUFDVixLQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztZQUNqQyxLQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsR0FBRyxLQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQzdELFVBQUEsZUFBZSxJQUFJLE9BQUEsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFJLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsRUFBaEYsQ0FBZ0YsQ0FBQyxDQUFDOztZQUN0RyxJQUFNLGlCQUFpQixHQUFHLEtBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDO1lBQzNFLEtBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixLQUFLLFdBQVcsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1NBQ25KLEVBQ0QsVUFBQyxLQUFVLElBQUssT0FBQSxLQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssRUFBekIsQ0FBeUIsQ0FDMUMsQ0FBQztLQUVIO0lBRUQsc0JBQUksK0NBQWE7Ozs7UUFBakI7WUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQztTQUN4RDs7O09BQUE7SUFFRCxzQkFBSSxvREFBa0I7Ozs7UUFBdEI7WUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLFdBQVcsQ0FBQztTQUM5RDs7O09BQUE7Ozs7SUFFTSw4Q0FBZTs7OztRQUNwQixJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQzs7Ozs7O0lBR3JELHFEQUFzQjs7OztJQUF0QixVQUF1QixLQUFVO1FBQWpDLGlCQVlDO1FBWEMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFBO1FBQ3RCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEdBQUcsbUJBQW1CLENBQUM7UUFDeEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FDOUMsVUFBQSxRQUFROztZQUNOLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQUEsT0FBTyxJQUFJLE9BQUEsT0FBTyxDQUFDLEdBQUcsS0FBSyxjQUFjLEVBQTlCLENBQThCLENBQUMsQ0FBQztZQUNwRixLQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1NBQzVFLEVBQ0QsVUFBQSxHQUFHO1lBQ0QsS0FBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7U0FDN0MsQ0FDRixDQUFDO0tBQ0g7O2dCQXhLRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFLHVtSUE0R1g7b0JBQ0MsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO2lCQUNiOzs7O2dCQXRITyxrQkFBa0I7Z0JBQ2xCLG1CQUFtQjs7K0JBRjNCOztTQXdIYSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UGF5bWVudFZpZXdTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wYXltZW50LXZpZXcvcGF5bWVudC12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHtQYXltZW50TGliQ29tcG9uZW50fSBmcm9tICcuLi8uLi9wYXltZW50LWxpYi5jb21wb25lbnQnO1xuaW1wb3J0IHtJUGF5bWVudEdyb3VwfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lQYXltZW50R3JvdXAnO1xuXG5jb25zdCBCU19FTkFCTEVfRkxBRyA9ICdidWxrLXNjYW4tZW5hYmxpbmctZmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY3BheS1wYXltZW50LXZpZXcnLFxuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJnb3Z1ay13aWR0aC1jb250YWluZXJcIj5cblxuICA8ZGl2IGNsYXNzPVwiZ292dWstYnJlYWRjcnVtYnNcIj5cbiAgICA8b2wgY2xhc3M9XCJnb3Z1ay1icmVhZGNydW1ic19fbGlzdFwiPlxuICAgICAgPGxpIGNsYXNzPVwiZ292dWstYnJlYWRjcnVtYnNfX2xpc3QtaXRlbVwiPlxuICAgICAgICA8YSBocmVmPVwiI1wiIChjbGljayk9XCJnb1RvQ2FzZVRyYW5zYXRpb25QYWdlKCRldmVudClcIiBjbGFzcz1cImdvdnVrLWJhY2stbGlua1wiPkJhY2s8L2E+XG4gICAgICA8L2xpPlxuICAgIDwvb2w+XG4gIDwvZGl2PlxuXG4gIDxtYWluIGNsYXNzPVwiZ292dWstbWFpbi13cmFwcGVyIFwiIGlkPVwibWFpbi1jb250ZW50XCIgcm9sZT1cIm1haW5cIj5cblxuICAgIDxkaXYgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlcnJvci1zdW1tYXJ5XCIgcm9sZT1cImdyb3VwXCIgYXJpYS1sYWJlbGxlZGJ5PVwiZmFpbHVyZS1lcnJvci1zdW1tYXJ5LWhlYWRpbmdcIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImhlYWRpbmctbWVkaXVtIGVycm9yLXN1bW1hcnktaGVhZGluZ1wiIGlkPVwiZmFpbHVyZS1lcnJvci1zdW1tYXJ5LWhlYWRpbmdcIj5cbiAgICAgICAgICBQYXltZW50IGRldGFpbHMgY291bGQgbm90IGJlIHJldHJpZXZlZFxuICAgICAgICA8L2gyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZXJyb3Itc3VtbWFyeV9fYm9keVwiPlxuICAgICAgICAgIHt7IGVycm9yTWVzc2FnZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIiFlcnJvck1lc3NhZ2UgJiYgcGF5bWVudEdyb3VwXCI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XG4gICAgICAgICAgPGgxIGNsYXNzPVwiaGVhZGluZy1tZWRpdW1cIj5QYXltZW50IGRldGFpbHM8L2gxPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8aHIgY2xhc3M9XCJnb3Z1ay1zZWN0aW9uLWJyZWFrIGdvdnVrLXNlY3Rpb24tYnJlYWstLW0gZ292dWstc2VjdGlvbi1icmVhay0tdmlzaWJsZVwiPiBcbiAgICAgIDx0YWJsZT5cbiAgICAgICAgPHRib2R5PlxuICAgICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiYm9sZFwiIHdpZHRoPVwiMzMwcHhcIj5QYXltZW50IHJlZmVyZW5jZTwvdGQ+XG4gICAgICAgICAgPHRkPnt7IHBheW1lbnRHcm91cC5wYXltZW50c1swXS5yZWZlcmVuY2UgfX08L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiYm9sZFwiIHdpZHRoPVwiMzMwcHhcIj5QYXltZW50IGFtb3VudDwvdGQ+XG4gICAgICAgICAgPHRkPsKje3sgcGF5bWVudEdyb3VwLnBheW1lbnRzWzBdLmFtb3VudCB8IG51bWJlcjonLjInIH19PC90ZD5cbiAgICAgICAgPC90cj5cblxuICAgICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCIgKm5nSWY9XCJwYXltZW50R3JvdXAucGF5bWVudHNbMF0gJiYgcGF5bWVudEdyb3VwLnBheW1lbnRzWzBdLmRvY3VtZW50X2NvbnRyb2xfbnVtYmVyXCI+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiYm9sZFwiIHdpZHRoPVwiMzMwcHhcIj5QYXltZW50IGFzc2V0IG51bWJlcihEQ04pPC90ZD5cbiAgICAgICAgICA8dGQ+e3sgcGF5bWVudEdyb3VwLnBheW1lbnRzWzBdLmRvY3VtZW50X2NvbnRyb2xfbnVtYmVyIH19PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyIGNsYXNzPVwic2VjdGlvblwiICpuZ0lmPVwicGF5bWVudEdyb3VwLnBheW1lbnRzWzBdICYmIHBheW1lbnRHcm91cC5wYXltZW50c1swXS5kb2N1bWVudF9jb250cm9sX251bWJlclwiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImJvbGRcIiB3aWR0aD1cIjMzMHB4XCI+QmFua2VkIGRhdGU8L3RkPlxuICAgICAgICAgIDx0ZD57eyBwYXltZW50R3JvdXAucGF5bWVudHNbMF0uYmFua2VkX2RhdGUgfCBkYXRlOidkZCBNTU0geXl5eScgfX08L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cblxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIj5cbiAgICAgICAgICA8aDIgY2xhc3M9XCJoZWFkaW5nLW1lZGl1bVwiPkZlZSBhbmQgcmVtaXNzaW9uIGRldGFpbHM8L2gyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBmZWUgb2YgcGF5bWVudEdyb3VwLmZlZXNcIj5cbiAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGVcIj5cbiAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgPHRyIGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiYm9sZFwiIHdpZHRoPVwiMzMwcHhcIj5EZXNjcmlwdGlvbjwvdGQ+XG4gICAgICAgICAgICA8dGQ+QXBwbGljYXRpb24gZm9yIHt7IGZlZS5kZXNjcmlwdGlvbiB9fTwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJib2xkXCIgd2lkdGg9XCIzMzBweFwiPkZlZSBjb2RlPC90ZD5cbiAgICAgICAgICAgIDx0ZD57eyBmZWUuY29kZSB9fTwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJib2xkXCIgd2lkdGg9XCIzMzBweFwiPkZlZSBhbW91bnQ8L3RkPlxuICAgICAgICAgICAgPHRkPsKje3sgZmVlLmNhbGN1bGF0ZWRfYW1vdW50IHwgbnVtYmVyOicuMicgfX08L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPHRyICpuZ0lmPVwiZmVlLm5ldF9hbW91bnRcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImJvbGRcIiB3aWR0aD1cIjMzMHB4XCI+QWxsb2NhdGVkIGFtb3VudDwvdGQ+XG4gICAgICAgICAgICA8dGQ+wqN7eyBmZWUuYXBwb3J0aW9uX2Ftb3VudCB8IG51bWJlcjonLjInIH19PC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPHRib2R5ICpuZ0Zvcj1cImxldCByZW1pc3Npb24gb2YgcGF5bWVudEdyb3VwLnJlbWlzc2lvbnNcIj5cbiAgICAgICAgICA8dHIgKm5nSWY9XCJyZW1pc3Npb24uZmVlX2NvZGUgPT09IGZlZS5jb2RlXCI+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJib2xkXCIgd2lkdGg9XCIzMzBweFwiPlJlbWlzc2lvbiBjb2RlPC90ZD5cbiAgICAgICAgICAgIDx0ZD57e3JlbWlzc2lvbi5od2ZfcmVmZXJlbmNlfX08L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPHRyICpuZ0lmPVwicGF5bWVudEdyb3VwLnJlbWlzc2lvbnM/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImJvbGRcIiB3aWR0aD1cIjMzMHB4XCI+UmVtaXNzaW9uIGFtb3VudDwvdGQ+XG4gICAgICAgICAgICA8dGQ+wqN7eyByZW1pc3Npb24uaHdmX2Ftb3VudCB8IG51bWJlcjonLjInfX08L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cblxuICAgICAgICA8aHIgY2xhc3M9XCJnb3Z1ay1zZWN0aW9uLWJyZWFrIGdvdnVrLXNlY3Rpb24tYnJlYWstLW0gZ292dWstc2VjdGlvbi1icmVhay0tdmlzaWJsZVwiPiBcbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIGNhcmQgZGV0YWlscyAtLT5cbiAgICAgIDxjY3BheS1jYXJkLWRldGFpbHMgKm5nSWY9XCJpc0NhcmRQYXltZW50ICYmICFpc1RlbGVwaG9ueVBheW1lbnRcIj48L2NjcGF5LWNhcmQtZGV0YWlscz5cblxuICAgICAgPCEtLSBwYmEgZGV0YWlscyAtLT5cbiAgICAgIDxjY3BheS1wYmEtZGV0YWlscyAqbmdJZj1cIiFpc0NhcmRQYXltZW50XCIgW3BheW1lbnRdPVwicGF5bWVudEdyb3VwLnBheW1lbnRzWzBdXCI+PC9jY3BheS1wYmEtZGV0YWlscz5cblxuICAgICAgPCEtLSBTdGF0dXMgaGlzdG9yaWVzIC0tPlxuICAgICAgPGNjcGF5LXBheW1lbnQtc3RhdHVzZXMgKm5nSWY9XCJpc1N0YXR1c0FsbG9jYXRlZFwiPjwvY2NwYXktcGF5bWVudC1zdGF0dXNlcz5cblxuICAgIDwvZGl2PlxuXG4gIDwvbWFpbj5cbjwvZGl2PlxuYCxcbiAgc3R5bGVzOiBbYGBdXG59KVxuZXhwb3J0IGNsYXNzIFBheW1lbnRWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcGF5bWVudEdyb3VwOiBJUGF5bWVudEdyb3VwO1xuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgY2NkQ2FzZU51bWJlcjogc3RyaW5nO1xuICBzZWxlY3RlZE9wdGlvbjogc3RyaW5nO1xuICBkY25OdW1iZXI6IHN0cmluZztcbiAgaXNTdGF0dXNBbGxvY2F0ZWQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwYXltZW50Vmlld1NlcnZpY2U6IFBheW1lbnRWaWV3U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBwYXltZW50TGliQ29tcG9uZW50OiBQYXltZW50TGliQ29tcG9uZW50KSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNjZENhc2VOdW1iZXIgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuQ0NEX0NBU0VfTlVNQkVSO1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuU0VMRUNURURfT1BUSU9OO1xuICAgIHRoaXMuZGNuTnVtYmVyID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LkRDTl9OVU1CRVI7XG5cblxuICAgIHRoaXMucGF5bWVudFZpZXdTZXJ2aWNlLmdldEFwcG9ydGlvblBheW1lbnREZXRhaWxzKHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5wYXltZW50UmVmZXJlbmNlKS5zdWJzY3JpYmUoXG4gICAgICBwYXltZW50R3JvdXAgPT4ge1xuICAgICAgICB0aGlzLnBheW1lbnRHcm91cCA9IHBheW1lbnRHcm91cDtcbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHMgPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50cy5maWx0ZXJcbiAgICAgICAgKHBheW1lbnRHcm91cE9iaiA9PiBwYXltZW50R3JvdXBPYmpbJ3JlZmVyZW5jZSddLmluY2x1ZGVzKHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5wYXltZW50UmVmZXJlbmNlKSk7XG4gICAgICAgIGNvbnN0IHBheW1lbnRBbGxvY2F0aW9uID0gdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHNbMF0ucGF5bWVudF9hbGxvY2F0aW9uO1xuICAgICAgICB0aGlzLmlzU3RhdHVzQWxsb2NhdGVkID0gcGF5bWVudEFsbG9jYXRpb24ubGVuZ3RoID4gMCAmJiBwYXltZW50QWxsb2NhdGlvblswXS5hbGxvY2F0aW9uX3N0YXR1cyA9PT0gJ0FsbG9jYXRlZCcgfHwgcGF5bWVudEFsbG9jYXRpb24ubGVuZ3RoID09PSAwO1xuICAgICAgfSwgIFxuICAgICAgKGVycm9yOiBhbnkpID0+IHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyb3JcbiAgICApO1xuICAgXG4gIH1cblxuICBnZXQgaXNDYXJkUGF5bWVudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHNbMF0ubWV0aG9kID09PSAnY2FyZCc7XG4gIH1cblxuICBnZXQgaXNUZWxlcGhvbnlQYXltZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50c1swXS5jaGFubmVsID09PSAndGVsZXBob255JztcbiAgfVxuXG4gIHB1YmxpYyBnb1RvUGF5bWVudExpc3QoKTogdm9pZCB7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ3BheW1lbnQtbGlzdCc7XG4gIH1cblxuICBnb1RvQ2FzZVRyYW5zYXRpb25QYWdlKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ2Nhc2UtdHJhbnNhY3Rpb25zJztcbiAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5nZXRCU2ZlYXR1cmUoKS5zdWJzY3JpYmUoXG4gICAgICBmZWF0dXJlcyA9PiB7XG4gICAgICAgIGxldCByZXN1bHQgPSBKU09OLnBhcnNlKGZlYXR1cmVzKS5maWx0ZXIoZmVhdHVyZSA9PiBmZWF0dXJlLnVpZCA9PT0gQlNfRU5BQkxFX0ZMQUcpO1xuICAgICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNCU0VOQUJMRSA9IHJlc3VsdFswXSA/IHJlc3VsdFswXS5lbmFibGUgOiBmYWxzZTtcbiAgICAgIH0sXG4gICAgICBlcnIgPT4ge1xuICAgICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNCU0VOQUJMRSA9IGZhbHNlO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxufVxuIl19
|
|
522
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9jY3BheS13ZWItY29tcG9uZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGF5bWVudC12aWV3L3BheW1lbnQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7SUFLNUQsY0FBYyxHQUFHLHVCQUF1QjtBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFdEU7SUFtQ0UsOEJBQW9CLGtCQUFzQyxFQUNoRCxtQkFBd0MsRUFDeEMsRUFBcUIsRUFDckIsaUJBQW9DO1FBSDlDLGlCQUlDO1FBSm1CLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDaEQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBWjlDLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUVuQyx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDcEMsMkJBQXNCLEdBQVksS0FBSyxDQUFDO1FBQ3hDLCtCQUEwQixHQUFHLENBQUMsMEJBQTBCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUM3RSxlQUFVLEdBQWlCLEVBQUUsQ0FBQztRQWdOOUIsb0NBQStCOzs7UUFBRztZQUNoQyxPQUFPLEtBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJOzs7O1lBQUMsVUFBQSxJQUFJO2dCQUM5QyxPQUFBLEtBQUks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QUEsQUE1UEQsSUE0UEM7U0F2UFksb0JBQW9COzs7SUFDL0IseUNBQTRCOztJQUM1Qiw2Q0FBZ0M7O0lBQ2hDLHdDQUEyQjs7SUFDM0IsOENBQWlDOztJQUNqQyw4Q0FBaUM7O0lBQ2pDLHdDQUEyQjs7SUFDM0IsMkNBQThCOztJQUM5QixrREFBcUM7O0lBQ3JDLHVDQUEyQjs7SUFDM0IsaURBQXdEOztJQUV4RCw0Q0FBNEI7O0lBQzVCLDRDQUFxQjs7SUFDckIsNkNBQXNCOztJQUN0Qiw4Q0FBdUI7O0lBQ3ZCLHlDQUFrQjs7SUFDbEIsaURBQTJCOztJQUMzQixpREFBMkI7O0lBQzNCLHFDQUFZOztJQUNaLDBDQUFtQjs7SUFDbkIsaURBQW1DOztJQUNuQyxvREFBOEI7O0lBQzlCLGtEQUFvQzs7SUFDcEMsc0RBQXdDOztJQUN4QywwREFBNkU7O0lBQzdFLDBDQUE4Qjs7SUFDOUIsK0NBQXdCOztJQUN4QiwwREFBb0M7O0lBOE1wQywrREFJQzs7SUFFRCw0REFNQzs7Ozs7SUF4Tlcsa0RBQThDOzs7OztJQUN4RCxtREFBZ0Q7Ozs7O0lBQ2hELGtDQUE2Qjs7Ozs7SUFDN0IsaURBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYXltZW50Vmlld1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wYXltZW50LXZpZXcvcGF5bWVudC12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHsgUGF5bWVudExpYkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BheW1lbnQtbGliLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJUGF5bWVudEdyb3VwIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUGF5bWVudEdyb3VwJztcbmltcG9ydCB7IElGZWUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lGZWUnO1xuaW1wb3J0IHsgSVBheW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lQYXltZW50JztcbmltcG9ydCB7IElSZW1pc3Npb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lSZW1pc3Npb24nO1xuY29uc3QgQlNfRU5BQkxFX0ZMQUcgPSAnYnVsay1zY2FuLWVuYWJsaW5nLWZlJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPcmRlcnNsaXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29yZGVyc2xpc3Quc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjcGF5LXBheW1lbnQtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYXltZW50LXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYXltZW50LXZpZXcuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBheW1lbnRWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgaXNUdXJuT2ZmOiBib29sZWFuO1xuICBASW5wdXQoKSBpc1Rha2VQYXltZW50OiBib29sZWFuO1xuICBASW5wdXQoKSBjYXNlVHlwZTogYm9vbGVhbjtcbiAgQElucHV0KCkgaXNOZXdQY2lwYWxPZmY6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGlzT2xkUGNpcGFsT2ZmOiBib29sZWFuO1xuICBASW5wdXQoKSBvcmRlclJlZjogYm9vbGVhbjtcbiAgQElucHV0KCkgb3JkZXJTdGF0dXM6IGJvb2xlYW47XG4gIEBJbnB1dCgpIG9yZGVyVG90YWxQYXltZW50czogYm9vbGVhbjtcbiAgQElucHV0KCkgcGF5bWVudDogSVBheW1lbnQ7XG4gIEBJbnB1dCgnTE9HR0VESU5VU0VSUk9MRVMnKSBMT0dHRURJTlVTRVJST0xFUzogc3RyaW5nW107XG5cbiAgcGF5bWVudEdyb3VwOiBJUGF5bWVudEdyb3VwO1xuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgY2NkQ2FzZU51bWJlcjogc3RyaW5nO1xuICBzZWxlY3RlZE9wdGlvbjogc3RyaW5nO1xuICBkY25OdW1iZXI6IHN0cmluZztcbiAgaXNTdGF0dXNBbGxvY2F0ZWQ6IGJvb2xlYW47XG4gIGlzUmVtaXNzaW9uc01hdGNoOiBib29sZWFuO1xuICBmZWVJZDogSUZlZTtcbiAgdmlld1N0YXR1czogc3RyaW5nO1xuICBpc1JlZnVuZFJlbWlzc2lvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1N0cmF0ZWdpY0ZpeEVuYWJsZTogYm9vbGVhbjtcbiAgaXNBZGRGZWVCdG5FbmFibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzSXNzdWVSZWZ1bmZCdG5FbmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgYWxsb3dlZFJvbGVzVG9BY2Nlc3NSZWZ1bmQgPSBbJ3BheW1lbnRzLXJlZnVuZC1hcHByb3ZlcicsICdwYXltZW50cy1yZWZ1bmQnXTtcbiAgcmVtaXNzaW9uczogSVJlbWlzc2lvbltdID0gW107XG4gIHJlbWlzc2lvbkZlZUFtdDogbnVtYmVyO1xuICBpc1JlZnVuZFJlbWlzc2lvbkJ0bkVuYWJsZTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBheW1lbnRWaWV3U2VydmljZTogUGF5bWVudFZpZXdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGF5bWVudExpYkNvbXBvbmVudDogUGF5bWVudExpYkNvbXBvbmVudCxcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIE9yZGVyc2xpc3RTZXJ2aWNlOiBPcmRlcnNsaXN0U2VydmljZSkge1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuIH0gIFxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY2NkQ2FzZU51bWJlciA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5DQ0RfQ0FTRV9OVU1CRVI7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5TRUxFQ1RFRF9PUFRJT047XG4gICAgdGhpcy5kY25OdW1iZXIgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuRENOX05VTUJFUjtcbiAgICB0aGlzLmlzVHVybk9mZiA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU1RVUk5PRkY7XG4gICAgdGhpcy52aWV3U3RhdHVzID0gJ3BheW1lbnR2aWV3JztcbiAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5nZXRBcHBvcnRpb25QYXltZW50RGV0YWlscyh0aGlzLnBheW1lbnRMaWJDb21wb25lbnQucGF5bWVudFJlZmVyZW5jZSkuc3Vic2NyaWJlKFxuICAgICAgcGF5bWVudEdyb3VwID0+IHtcbiAgICAgICAgbGV0IGZlZXMgPSBbXTtcbiAgICAgICAgcGF5bWVudEdyb3VwLmZlZXMuZm9yRWFjaChmZWUgPT4ge1xuICAgICAgICAgIHRoaXMuaXNSZW1pc3Npb25zTWF0Y2ggPSBmYWxzZTtcblxuICAgICAgICAgIHBheW1lbnRHcm91cC5yZW1pc3Npb25zLmZvckVhY2gocmVtID0+IHtcbiAgICAgICAgICAgIGlmIChyZW0uZmVlX2NvZGUgPT09IGZlZS5jb2RlKSB7XG4gICAgICAgICAgICAgIHRoaXMuaXNSZW1pc3Npb25zTWF0Y2ggPSB0cnVlO1xuICAgICAgICAgICAgICBmZWVbJ3JlbWlzc2lvbnMnXSA9IHJlbTtcbiAgICAgICAgICAgICAgZmVlcy5wdXNoKGZlZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKCF0aGlzLmlzUmVtaXNzaW9uc01hdGNoKSB7XG4gICAgICAgICAgICBmZWVzLnB1c2goZmVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBwYXltZW50R3JvdXAuZmVlcyA9IGZlZXNcbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAgPSBwYXltZW50R3JvdXA7XG5cbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHMgPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50cy5maWx0ZXJcbiAgICAgICAgICAocGF5bWVudEdyb3VwT2JqID0+IHBheW1lbnRHcm91cE9ialsncmVmZXJlbmNlJ10uaW5jbHVkZXModGhpcy5wYXltZW50TGliQ29tcG9uZW50LnBheW1lbnRSZWZlcmVuY2UpKTtcbiAgICAgICAgY29uc3QgcGF5bWVudEFsbG9jYXRpb24gPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50c1swXS5wYXltZW50X2FsbG9jYXRpb247XG4gICAgICAgIHRoaXMuaXNTdGF0dXNBbGxvY2F0ZWQgPSBwYXltZW50QWxsb2NhdGlvbi5sZW5ndGggPiAwICYmIHBheW1lbnRBbGxvY2F0aW9uWzBdLmFsbG9jYXRpb25fc3RhdHVzID09PSAnQWxsb2NhdGVkJyB8fCBwYXltZW50QWxsb2NhdGlvbi5sZW5ndGggPT09IDA7XG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzWzBdICsgJzEnKTtcbiAgICAgIH0sXG4gICAgICAoZXJyb3I6IGFueSkgPT4gdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnJvclxuICAgICk7XG5cbiAgfVxuXG4gIGdldCBpc0NhcmRQYXltZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50c1swXS5tZXRob2QgPT09ICdjYXJkJztcbiAgfVxuXG4gIGdldCBpc1RlbGVwaG9ueVBheW1lbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzWzBdLmNoYW5uZWwgPT09ICd0ZWxlcGhvbnknO1xuICB9XG5cbiAgcHVibGljIGdvVG9QYXltZW50TGlzdCgpOiB2b2lkIHtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAncGF5bWVudC1saXN0JztcbiAgfVxuXG4gIGdvVG9DYXNlVHJhbnNhdGlvblBhZ2UoZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRuYXZpZ2F0aW9uUGFnZSgnY2FzZXRyYW5zYWN0aW9ucycpO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0aXNGcm9tU2VydmljZVJlcXVlc3RQYWdlKGZhbHNlKTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAnY2FzZS10cmFuc2FjdGlvbnMnO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU0JTRU5BQkxFID0gdHJ1ZTtcbiAgICAvLyB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5nZXRCU2ZlYXR1cmUoKS5zdWJzY3JpYmUoXG4gICAgLy8gICBmZWF0dXJlcyA9PiB7XG4gICAgLy8gICAgIGxldCByZXN1bHQgPSBKU09OLnBhcnNlKGZlYXR1cmVzKS5maWx0ZXIoZmVhdHVyZSA9PiBmZWF0dXJlLnVpZCA9PT0gQlNfRU5BQkxFX0ZMQUcpO1xuICAgIC8vICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNCU0VOQUJMRSA9IHJlc3VsdFswXSA/IHJlc3VsdFswXS5lbmFibGUgOiBmYWxzZTtcbiAgICAvLyAgIH0sXG4gICAgLy8gICBlcnIgPT4ge1xuICAgIC8vICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNCU0VOQUJMRSA9IGZhbHNlO1xuICAgIC8vICAgfVxuICAgIC8vICk7XG4gIH1cblxuICBhZGRSZW1pc3Npb24oZmVlOiBJRmVlKSB7XG4gICAgaWYodGhpcy5jaGtGb3JBZGRSZW1pc3Npb24oZmVlLmNvZGUpKSB7XG4gICAgdGhpcy5mZWVJZCA9IGZlZTtcbiAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5nZXRBcHBvcnRpb25QYXltZW50RGV0YWlscyh0aGlzLnBheW1lbnRHcm91cC5wYXltZW50c1swXS5yZWZlcmVuY2UpLnN1YnNjcmliZShcbiAgICAgIHBheW1lbnRHcm91cCA9PiB7XG4gICAgICAgIHRoaXMucGF5bWVudEdyb3VwID0gcGF5bWVudEdyb3VwO1xuXG4gICAgICAgIHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzID0gdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHMuZmlsdGVyXG4gICAgICAgICAgKHBheW1lbnRHcm91cE9iaiA9PiBwYXltZW50R3JvdXBPYmpbJ3JlZmVyZW5jZSddLmluY2x1ZGVzKHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5wYXltZW50UmVmZXJlbmNlKSk7XG4gICAgICAgIHRoaXMucGF5bWVudCA9IHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzWzBdO1xuICAgICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNGcm9tUGF5bWVudERldGFpbFBhZ2UgPSB0cnVlO1xuICAgICAgICB0aGlzLnZpZXdTdGF0dXMgPSAnYWRkcmVtaXNzaW9uJztcbiAgICAgICAgdGhpcy5pc1JlZnVuZFJlbWlzc2lvbiA9IHRydWU7XG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSxcbiAgICAgIChlcnJvcjogYW55KSA9PiB0aGlzLmVycm9yTWVzc2FnZSA9IGVycm9yXG4gICAgKTtcbiAgICB9XG4gIH1cblxuICBjaGVja0ZvckZlZXMocGF5bWVudEdyb3VwOiBhbnkpIHtcbiAgICBpZihwYXltZW50R3JvdXAgIT09IG51bGwgJiYgcGF5bWVudEdyb3VwICE9PSB1bmRlZmluZWQpXG4gICAge1xuICAgICAgaWYgKHBheW1lbnRHcm91cC5mZWVzICE9PSBudWxsICYmIHBheW1lbnRHcm91cC5mZWVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgIFxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBhZGRSZWZ1bmRGb3JSZW1pc3Npb24ocGF5bWVudDogSVBheW1lbnQsIHJlbWlzc2lvbjogSVJlbWlzc2lvbltdLGZlZXM6YW55KSB7XG4gaWYodGhpcy5jaGtJc1JlZnVuZFJlbWlzc2lvbkJ0bkVuYWJsZSgpKSB7XG4gICAgdGhpcy5wYXltZW50ID0gcGF5bWVudDtcbiAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5nZXRBcHBvcnRpb25QYXltZW50RGV0YWlscyh0aGlzLnBheW1lbnQucmVmZXJlbmNlKS5zdWJzY3JpYmUoXG4gICAgICBwYXltZW50R3JvdXAgPT4ge1xuICAgICAgICB0aGlzLnBheW1lbnRHcm91cCA9IHBheW1lbnRHcm91cDtcblxuICAgICAgICB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50cyA9IHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzLmZpbHRlclxuICAgICAgICAgIChwYXltZW50R3JvdXBPYmogPT4gcGF5bWVudEdyb3VwT2JqWydyZWZlcmVuY2UnXS5pbmNsdWRlcyh0aGlzLnBheW1lbnQucmVmZXJlbmNlKSk7XG4gICAgICAgIHRoaXMucGF5bWVudCA9IHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzWzBdO1xuICAgICAgICB0aGlzLnJlbWlzc2lvbnMgPSByZW1pc3Npb247XG4gICAgICAgIHRoaXMucmVtaXNzaW9uRmVlQW10ID0gZmVlcy5maWx0ZXIoZGF0YT0+ZGF0YS5jb2RlID09PSB0aGlzLnJlbWlzc2lvbnNbJ2ZlZV9jb2RlJ10pWzBdLm5ldF9hbW91bnQ7XG4gICAgICAgIHRoaXMudmlld1N0YXR1cyA9ICdhZGRyZWZ1bmRmb3JyZW1pc3Npb24nO1xuICAgICAgICAvLyBjb25zdCBwYXltZW50QWxsb2NhdGlvbiA9IHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzWzBdLnBheW1lbnRfYWxsb2NhdGlvbjtcbiAgICAgICAgLy8gdGhpcy5pc1N0YXR1c0FsbG9jYXRlZCA9IHBheW1lbnRBbGxvY2F0aW9uLmxlbmd0aCA+IDAgJiYgcGF5bWVudEFsbG9jYXRpb25bMF0uYWxsb2NhdGlvbl9zdGF0dXMgPT09ICdBbGxvY2F0ZWQnIHx8IHBheW1lbnRBbGxvY2F0aW9uLmxlbmd0aCA9PT0gMDtcbiAgICAgIH0sXG4gICAgICAoZXJyb3I6IGFueSkgPT4gdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnJvclxuICAgICk7XG4gfVxuICB9XG5cbiAgY2hrSXNSZWZ1bmRSZW1pc3Npb25CdG5FbmFibGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMucGF5bWVudEdyb3VwICE9PSBudWxsICYmICB0aGlzLnBheW1lbnRHcm91cCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHMuZm9yRWFjaChwYXltZW50ID0+IHtcbiAgICAgICAgICBpZiAocGF5bWVudC5tZXRob2QudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gJ3BheW1lbnQgYnkgYWNjb3VudCcgJiYgcGF5bWVudC5zdGF0dXMudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gJ3N1Y2Nlc3MnICYmIHRoaXMuYWxsb3dGdXJ0aGVyQWNjZXNzQWZ0ZXI0RGF5cyhwYXltZW50KSkge1xuICAgICAgICAgICAgdGhpcy5pc1JlZnVuZFJlbWlzc2lvbkJ0bkVuYWJsZSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICBpZiAodGhpcy5pc1JlZnVuZFJlbWlzc2lvbkJ0bkVuYWJsZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuICB9XG4gIH1cblxuICBpc3N1ZVJlZnVuZChwYXltZW50Z3JwOiBJUGF5bWVudEdyb3VwKSB7XG4gICAgaWYgKHBheW1lbnRncnAgIT09IG51bGwgJiYgIHBheW1lbnRncnAgIT09IHVuZGVmaW5lZCkge1xuICAgIGlmKHRoaXMuY2hrSXNzdWVSZWZ1bmRCdG5FbmFibGUocGF5bWVudGdycC5wYXltZW50c1swXSkpIHtcbiAgICB0aGlzLnBheW1lbnRHcm91cCA9IHBheW1lbnRncnA7XG4gICAgdGhpcy52aWV3U3RhdHVzID0gJ2lzc3VlcmVmdW5kJztcbiAgICB0aGlzLmlzUmVmdW5kUmVtaXNzaW9uID0gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgfVxuXG4gIGdldFJlbWlzc2lvbkJ5RmVlQ29kZShmZWVDb2RlOiBzdHJpbmcsIHJlbWlzc2lvbnM6IElSZW1pc3Npb25bXSk6IElSZW1pc3Npb24ge1xuICAgIGlmIChyZW1pc3Npb25zICYmIHJlbWlzc2lvbnMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChjb25zdCByZW1pc3Npb24gb2YgcmVtaXNzaW9ucykge1xuICAgICAgICBpZiAocmVtaXNzaW9uLmZlZV9jb2RlID09PSBmZWVDb2RlKSB7XG4gICAgICAgICAgcmV0dXJuIHJlbWlzc2lvbjtcbiAgICAgICAgICAvLyB0aGlzLmlzQWRkRmVlQnRuRW5hYmxlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjaGtJc3N1ZVJlZnVuZEJ0bkVuYWJsZShwYXltZW50OiBJUGF5bWVudCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmNoZWNrNEFsbG93ZWRSb2xlczJBY2Nlc3NSZWZ1bmQoKSAmJiB0aGlzLmFsbG93RnVydGhlckFjY2Vzc0FmdGVyNERheXMocGF5bWVudCkgJiZcbiAgICAgIHBheW1lbnQubWV0aG9kID09PSAncGF5bWVudCBieSBhY2NvdW50JyAmJiBwYXltZW50LnN0YXR1cy50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSAnc3VjY2VzcycpIHtcbiAgICAgIHRoaXMuaXNJc3N1ZVJlZnVuZkJ0bkVuYWJsZSA9IHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzSXNzdWVSZWZ1bmZCdG5FbmFibGUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcbiAgfVxuXG4gIGNoa0ZvclBCQVBheW1lbnQoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMucGF5bWVudEdyb3VwICE9PSBudWxsICYmICB0aGlzLnBheW1lbnRHcm91cCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgbGV0IHBheW1lbnQgPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50c1swXTtcbiAgICBpZiAocGF5bWVudC5tZXRob2QudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gJ3BheW1lbnQgYnkgYWNjb3VudCcgJiYgdGhpcy5hbGxvd0Z1cnRoZXJBY2Nlc3NBZnRlcjREYXlzKHBheW1lbnQpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIH1cblxuICBjaGtGb3JBZGRSZW1pc3Npb24oZmVlQ29kZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuY2hrRm9yUEJBUGF5bWVudCgpICYmIHRoaXMuY2hlY2s0QWxsb3dlZFJvbGVzMkFjY2Vzc1JlZnVuZCgpICYmIHRoaXMuYWxsb3dGdXJ0aGVyQWNjZXNzQWZ0ZXI0RGF5cyh0aGlzLnBheW1lbnRHcm91cC5wYXltZW50c1swXSkpIHtcbiAgICAgIGlmICh0aGlzLnBheW1lbnRHcm91cC5yZW1pc3Npb25zICYmIHRoaXMucGF5bWVudEdyb3VwLnJlbWlzc2lvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICBmb3IgKGNvbnN0IHJlbWlzc2lvbiBvZiB0aGlzLnBheW1lbnRHcm91cC5yZW1pc3Npb25zKSB7XG4gICAgICAgICAgaWYgKHJlbWlzc2lvbi5mZWVfY29kZSA9PT0gZmVlQ29kZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBjaGVjazRBbGxvd2VkUm9sZXMyQWNjZXNzUmVmdW5kID0gKCk6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiB0aGlzLmFsbG93ZWRSb2xlc1RvQWNjZXNzUmVmdW5kLnNvbWUocm9sZSA9PlxuICAgICAgdGhpcy5MT0dHRURJTlVTRVJST0xFUy5pbmRleE9mKHJvbGUpICE9PSAtMVxuICAgICk7XG4gIH1cblxuICBhbGxvd0Z1cnRoZXJBY2Nlc3NBZnRlcjREYXlzID0gKHBheW1lbnQ6IElQYXltZW50KTogYm9vbGVhbiA9PiB7XG4gICAgaWYocGF5bWVudCAhPT0gbnVsbCAmJiBwYXltZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICBsZXQgdG1wNERheUFnbyA9IG5ldyBEYXRlKCk7XG4gICAgdG1wNERheUFnby5zZXREYXRlKHRtcDREYXlBZ28uZ2V0RGF0ZSgpIC0gNCk7XG4gICAgcmV0dXJuIHRtcDREYXlBZ28gPj0gbmV3IERhdGUocGF5bWVudC5kYXRlX2NyZWF0ZWQpO1xuICAgIH1cbiAgfVxufSJdfQ==
|