@hmcts/ccpay-web-component 5.0.8-beta05 → 5.0.8-beta10
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 +1690 -7568
- package/bundles/hmcts-ccpay-web-component.umd.js.map +1 -1
- package/bundles/hmcts-ccpay-web-component.umd.min.js +2 -2
- package/bundles/hmcts-ccpay-web-component.umd.min.js.map +1 -1
- package/esm2015/hmcts-ccpay-web-component.js +2 -7
- package/esm2015/lib/components/add-remission/add-remission.component.js +166 -446
- package/esm2015/lib/components/allocate-payments/allocate-payments.component.js +61 -360
- package/esm2015/lib/components/card-details/card-details.component.js +15 -55
- package/esm2015/lib/components/case-transactions/case-transactions.component.js +127 -698
- package/esm2015/lib/components/error-banner/error-banner.component.js +16 -26
- package/esm2015/lib/components/fee-summary/fee-summary.component.js +59 -268
- package/esm2015/lib/components/mark-unidentified-payment/mark-unidentified-payment.component.js +40 -192
- package/esm2015/lib/components/mark-unsolicited-payment/mark-unsolicited-payment.component.js +44 -236
- package/esm2015/lib/components/page-not-found.component.js +10 -13
- package/esm2015/lib/components/payment-list/payment-list.component.js +15 -56
- package/esm2015/lib/components/payment-view/payment-view.component.js +115 -361
- package/esm2015/lib/components/pba-details/pba-details.component.js +16 -26
- package/esm2015/lib/components/pba-payment/pba-payment.component.js +27 -130
- package/esm2015/lib/components/process-refund/process-refund.component.js +39 -190
- package/esm2015/lib/components/processed-payments/processed-payments.component.js +22 -53
- package/esm2015/lib/components/refund-list/refund-list.component.js +32 -91
- package/esm2015/lib/components/refund-status/refund-status.component.js +58 -270
- package/esm2015/lib/components/reports/reports.component.js +39 -223
- package/esm2015/lib/components/service-request/service-request.component.js +108 -394
- package/esm2015/lib/components/status-history/status-history.component.js +19 -55
- package/esm2015/lib/components/table/table.component.js +39 -120
- package/esm2015/lib/components/unprocessed-payments/unprocessed-payments.component.js +65 -203
- package/esm2015/lib/interfaces/AddRemissionRequest.js +1 -29
- package/esm2015/lib/interfaces/AddRetroRemissionRequest.js +1 -16
- package/esm2015/lib/interfaces/AllocatePaymentRequest.js +1 -43
- package/esm2015/lib/interfaces/IAllocationPaymentsRequest.js +1 -27
- package/esm2015/lib/interfaces/IBSPayments.js +1 -46
- package/esm2015/lib/interfaces/ICardDetails.js +1 -22
- package/esm2015/lib/interfaces/IFee.js +1 -54
- package/esm2015/lib/interfaces/IOrderReferenceFee.js +1 -26
- package/esm2015/lib/interfaces/IPatchRefundAction.js +1 -16
- package/esm2015/lib/interfaces/IPayment.js +1 -66
- package/esm2015/lib/interfaces/IPaymentFailure.js +1 -34
- package/esm2015/lib/interfaces/IPaymentGroup.js +1 -20
- package/esm2015/lib/interfaces/IPaymentStatus.js +1 -26
- package/esm2015/lib/interfaces/IPaymentView.js +1 -18
- package/esm2015/lib/interfaces/IPayments.js +1 -14
- package/esm2015/lib/interfaces/IRefundAction.js +1 -16
- package/esm2015/lib/interfaces/IRefundList.js +1 -30
- package/esm2015/lib/interfaces/IRefundReasons.js +1 -20
- package/esm2015/lib/interfaces/IRefundRejectReason.js +1 -16
- package/esm2015/lib/interfaces/IRefundStatus.js +1 -24
- package/esm2015/lib/interfaces/IRefundStatusHistory.js +1 -16
- package/esm2015/lib/interfaces/IRemission.js +1 -26
- package/esm2015/lib/interfaces/IResubmitRefundRequest.js +1 -16
- package/esm2015/lib/interfaces/IStatusHistories.js +1 -20
- package/esm2015/lib/interfaces/IStatusHistory.js +1 -22
- package/esm2015/lib/interfaces/IserviceRequestCardPayment.js +1 -17
- package/esm2015/lib/interfaces/IserviceRequestPbaPayment.js +1 -24
- package/esm2015/lib/interfaces/IssueRefundRequest.js +1 -19
- package/esm2015/lib/interfaces/PayhubAntennaRequest.js +2 -22
- package/esm2015/lib/interfaces/PaymentToPayhubRequest.js +2 -28
- package/esm2015/lib/interfaces/PostIssueRefundRetroRemission.js +1 -13
- package/esm2015/lib/interfaces/PostRefundRetroRemission.js +1 -16
- package/esm2015/lib/interfaces/RefundsRequest.js +1 -16
- package/esm2015/lib/interfaces/UnidentifiedPaymentsRequest.js +1 -21
- package/esm2015/lib/interfaces/UnsolicitedPaymentsRequest.js +1 -30
- package/esm2015/lib/payment-lib.component.js +120 -188
- package/esm2015/lib/payment-lib.module.js +55 -58
- package/esm2015/lib/payment-lib.service.js +12 -54
- package/esm2015/lib/pipes/capitalize.pipe.js +11 -20
- package/esm2015/lib/pipes/ccd-hyphens.pipe.js +11 -21
- package/esm2015/lib/pipes/key-value.pipe.js +11 -20
- package/esm2015/lib/pipes/sanitize-html.pipe.js +10 -27
- package/esm2015/lib/services/bulk-scaning-payment/bulk-scaning-payment.service.js +22 -110
- package/esm2015/lib/services/card-details/card-details.service.js +15 -47
- package/esm2015/lib/services/case-transactions/case-transactions.service.js +15 -47
- package/esm2015/lib/services/orderslist.service.js +12 -260
- package/esm2015/lib/services/payment-list/payment-list.service.js +15 -50
- package/esm2015/lib/services/payment-view/payment-view.service.js +18 -177
- package/esm2015/lib/services/refunds/refunds.service.js +21 -117
- package/esm2015/lib/services/shared/error-handler.service.js +12 -28
- package/esm2015/lib/services/shared/httpclient/webcomponent.http.client.js +15 -88
- package/esm2015/lib/services/shared/logger/console-logger.service.js +12 -35
- package/esm2015/lib/services/shared/logger/logger.service.js +12 -43
- package/esm2015/lib/services/status-history/status-history.service.js +15 -48
- package/esm2015/lib/services/xl-file/xl-file.service.js +10 -67
- package/esm2015/public_api.js +4 -9
- package/esm5/hmcts-ccpay-web-component.js +2 -7
- package/esm5/lib/components/add-remission/add-remission.component.js +185 -542
- package/esm5/lib/components/allocate-payments/allocate-payments.component.js +75 -420
- package/esm5/lib/components/card-details/card-details.component.js +14 -54
- package/esm5/lib/components/case-transactions/case-transactions.component.js +160 -851
- package/esm5/lib/components/error-banner/error-banner.component.js +15 -29
- package/esm5/lib/components/fee-summary/fee-summary.component.js +70 -321
- package/esm5/lib/components/mark-unidentified-payment/mark-unidentified-payment.component.js +46 -224
- package/esm5/lib/components/mark-unsolicited-payment/mark-unsolicited-payment.component.js +52 -278
- package/esm5/lib/components/page-not-found.component.js +7 -11
- package/esm5/lib/components/payment-list/payment-list.component.js +14 -61
- package/esm5/lib/components/payment-view/payment-view.component.js +134 -440
- package/esm5/lib/components/pba-details/pba-details.component.js +15 -29
- package/esm5/lib/components/pba-payment/pba-payment.component.js +30 -150
- package/esm5/lib/components/process-refund/process-refund.component.js +45 -272
- package/esm5/lib/components/processed-payments/processed-payments.component.js +22 -63
- package/esm5/lib/components/refund-list/refund-list.component.js +30 -90
- package/esm5/lib/components/refund-status/refund-status.component.js +71 -335
- package/esm5/lib/components/reports/reports.component.js +49 -276
- package/esm5/lib/components/service-request/service-request.component.js +122 -462
- package/esm5/lib/components/status-history/status-history.component.js +17 -53
- package/esm5/lib/components/table/table.component.js +44 -154
- package/esm5/lib/components/unprocessed-payments/unprocessed-payments.component.js +75 -259
- package/esm5/lib/interfaces/AddRemissionRequest.js +1 -22
- package/esm5/lib/interfaces/AddRetroRemissionRequest.js +1 -12
- package/esm5/lib/interfaces/AllocatePaymentRequest.js +1 -36
- package/esm5/lib/interfaces/IAllocationPaymentsRequest.js +1 -20
- package/esm5/lib/interfaces/IBSPayments.js +1 -46
- package/esm5/lib/interfaces/ICardDetails.js +1 -22
- package/esm5/lib/interfaces/IFee.js +1 -54
- package/esm5/lib/interfaces/IOrderReferenceFee.js +1 -26
- package/esm5/lib/interfaces/IPatchRefundAction.js +1 -16
- package/esm5/lib/interfaces/IPayment.js +1 -66
- package/esm5/lib/interfaces/IPaymentFailure.js +1 -34
- package/esm5/lib/interfaces/IPaymentGroup.js +1 -20
- package/esm5/lib/interfaces/IPaymentStatus.js +1 -26
- package/esm5/lib/interfaces/IPaymentView.js +1 -18
- package/esm5/lib/interfaces/IPayments.js +1 -14
- package/esm5/lib/interfaces/IRefundAction.js +1 -16
- package/esm5/lib/interfaces/IRefundList.js +1 -30
- package/esm5/lib/interfaces/IRefundReasons.js +1 -20
- package/esm5/lib/interfaces/IRefundRejectReason.js +1 -16
- package/esm5/lib/interfaces/IRefundStatus.js +1 -24
- package/esm5/lib/interfaces/IRefundStatusHistory.js +1 -16
- package/esm5/lib/interfaces/IRemission.js +1 -26
- package/esm5/lib/interfaces/IResubmitRefundRequest.js +1 -12
- package/esm5/lib/interfaces/IStatusHistories.js +1 -20
- package/esm5/lib/interfaces/IStatusHistory.js +1 -22
- package/esm5/lib/interfaces/IserviceRequestCardPayment.js +1 -14
- package/esm5/lib/interfaces/IserviceRequestPbaPayment.js +1 -18
- package/esm5/lib/interfaces/IssueRefundRequest.js +1 -14
- package/esm5/lib/interfaces/PayhubAntennaRequest.js +2 -17
- package/esm5/lib/interfaces/PaymentToPayhubRequest.js +2 -23
- package/esm5/lib/interfaces/PostIssueRefundRetroRemission.js +1 -10
- package/esm5/lib/interfaces/PostRefundRetroRemission.js +1 -12
- package/esm5/lib/interfaces/RefundsRequest.js +1 -12
- package/esm5/lib/interfaces/UnidentifiedPaymentsRequest.js +1 -16
- package/esm5/lib/interfaces/UnsolicitedPaymentsRequest.js +1 -22
- package/esm5/lib/payment-lib.component.js +114 -184
- package/esm5/lib/payment-lib.module.js +52 -56
- package/esm5/lib/payment-lib.service.js +17 -88
- package/esm5/lib/pipes/capitalize.pipe.js +9 -24
- package/esm5/lib/pipes/ccd-hyphens.pipe.js +9 -25
- package/esm5/lib/pipes/key-value.pipe.js +9 -23
- package/esm5/lib/pipes/sanitize-html.pipe.js +8 -27
- package/esm5/lib/services/bulk-scaning-payment/bulk-scaning-payment.service.js +28 -153
- package/esm5/lib/services/card-details/card-details.service.js +13 -44
- package/esm5/lib/services/case-transactions/case-transactions.service.js +13 -44
- package/esm5/lib/services/orderslist.service.js +45 -420
- package/esm5/lib/services/payment-list/payment-list.service.js +13 -48
- package/esm5/lib/services/payment-view/payment-view.service.js +40 -307
- package/esm5/lib/services/refunds/refunds.service.js +29 -164
- package/esm5/lib/services/shared/error-handler.service.js +11 -38
- package/esm5/lib/services/shared/httpclient/webcomponent.http.client.js +18 -120
- package/esm5/lib/services/shared/logger/console-logger.service.js +13 -42
- package/esm5/lib/services/shared/logger/logger.service.js +11 -54
- package/esm5/lib/services/status-history/status-history.service.js +13 -46
- package/esm5/lib/services/xl-file/xl-file.service.js +15 -115
- package/esm5/public_api.js +4 -9
- package/fesm2015/hmcts-ccpay-web-component.js +1435 -6224
- package/fesm2015/hmcts-ccpay-web-component.js.map +1 -1
- package/fesm5/hmcts-ccpay-web-component.js +1694 -7576
- package/fesm5/hmcts-ccpay-web-component.js.map +1 -1
- package/hmcts-ccpay-web-component.metadata.json +1 -1
- package/lib/components/card-details/card-details.component.d.ts +1 -1
- package/lib/components/payment-view/payment-view.component.d.ts +2 -2
- package/lib/services/shared/logger/console-logger.service.d.ts +3 -3
- package/package.json +2 -2
|
@@ -1,23 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/components/process-refund/process-refund.component.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
6
2
|
import { Component, Input } from '@angular/core';
|
|
7
|
-
import { FormBuilder, Validators, FormControl } from '@angular/forms';
|
|
3
|
+
import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';
|
|
8
4
|
import { RefundsService } from '../../services/refunds/refunds.service';
|
|
9
5
|
import { OrderslistService } from '../../services/orderslist.service';
|
|
10
6
|
import { PaymentLibComponent } from '../../payment-lib.component';
|
|
11
7
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* @param {?} RefundsService
|
|
15
|
-
* @param {?} formBuilder
|
|
16
|
-
* @param {?} OrderslistService
|
|
17
|
-
* @param {?} paymentLibComponent
|
|
18
|
-
* @param {?} router
|
|
19
|
-
* @param {?} activeRoute
|
|
20
|
-
*/
|
|
8
|
+
let ProcessRefundComponent = class ProcessRefundComponent {
|
|
21
9
|
constructor(RefundsService, formBuilder, OrderslistService, paymentLibComponent, router, activeRoute) {
|
|
22
10
|
this.RefundsService = RefundsService;
|
|
23
11
|
this.formBuilder = formBuilder;
|
|
@@ -44,24 +32,13 @@ export class ProcessRefundComponent {
|
|
|
44
32
|
this.successMsg = null;
|
|
45
33
|
this.isConfirmButtondisabled = true;
|
|
46
34
|
}
|
|
47
|
-
/**
|
|
48
|
-
* @return {?}
|
|
49
|
-
*/
|
|
50
35
|
ngOnInit() {
|
|
51
36
|
this.viewStatus = 'RefundProcess';
|
|
52
|
-
this.RefundsService.getRefundActions(this.refundReference).subscribe(
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
*/
|
|
56
|
-
refundActionList => {
|
|
57
|
-
this.refundActionList = (/** @type {?} */ (refundActionList));
|
|
58
|
-
}), (/**
|
|
59
|
-
* @param {?} err
|
|
60
|
-
* @return {?}
|
|
61
|
-
*/
|
|
62
|
-
err => {
|
|
37
|
+
this.RefundsService.getRefundActions(this.refundReference).subscribe(refundActionList => {
|
|
38
|
+
this.refundActionList = refundActionList;
|
|
39
|
+
}, err => {
|
|
63
40
|
this.errorMessage = this.getErrorMessage(true, err.statusCode, err.err, err);
|
|
64
|
-
})
|
|
41
|
+
});
|
|
65
42
|
this.processRefundForm = this.formBuilder.group({
|
|
66
43
|
refundActionField: new FormControl('', Validators.compose([
|
|
67
44
|
Validators.required
|
|
@@ -86,10 +63,6 @@ export class ProcessRefundComponent {
|
|
|
86
63
|
this.isFromRefundListPage = true;
|
|
87
64
|
}
|
|
88
65
|
}
|
|
89
|
-
/**
|
|
90
|
-
* @param {?} code
|
|
91
|
-
* @return {?}
|
|
92
|
-
*/
|
|
93
66
|
checkRefundActions(code) {
|
|
94
67
|
this.refundActionsHasError = false;
|
|
95
68
|
this.isReasonFieldEmpty = false;
|
|
@@ -112,19 +85,11 @@ export class ProcessRefundComponent {
|
|
|
112
85
|
this.isRejectClicked = true;
|
|
113
86
|
this.isSendMeBackClicked = false;
|
|
114
87
|
this.isOtherClicked = false;
|
|
115
|
-
this.RefundsService.getRefundRejectReasons().subscribe(
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
*/
|
|
119
|
-
refundRejectReasonList => {
|
|
120
|
-
this.refundRejectReasonList = (/** @type {?} */ (refundRejectReasonList));
|
|
121
|
-
}), (/**
|
|
122
|
-
* @param {?} err
|
|
123
|
-
* @return {?}
|
|
124
|
-
*/
|
|
125
|
-
err => {
|
|
88
|
+
this.RefundsService.getRefundRejectReasons().subscribe(refundRejectReasonList => {
|
|
89
|
+
this.refundRejectReasonList = refundRejectReasonList;
|
|
90
|
+
}, err => {
|
|
126
91
|
this.errorMessage = this.getErrorMessage(true, err.statusCode, err.err, err);
|
|
127
|
-
})
|
|
92
|
+
});
|
|
128
93
|
}
|
|
129
94
|
else if (code === 'RE005') {
|
|
130
95
|
this.isOtherClicked = true;
|
|
@@ -133,18 +98,11 @@ export class ProcessRefundComponent {
|
|
|
133
98
|
this.isOtherClicked = false;
|
|
134
99
|
}
|
|
135
100
|
}
|
|
136
|
-
/**
|
|
137
|
-
* @return {?}
|
|
138
|
-
*/
|
|
139
101
|
processRefundSubmit() {
|
|
140
|
-
/** @type {?} */
|
|
141
102
|
let processRefundRequest;
|
|
142
|
-
/** @type {?} */
|
|
143
103
|
let status;
|
|
144
104
|
this.resetForm([false, false, false, false, false, false, false, false], 'all');
|
|
145
|
-
/** @type {?} */
|
|
146
105
|
const controls = this.processRefundForm.controls;
|
|
147
|
-
/** @type {?} */
|
|
148
106
|
const processFormError = controls.sendMeBackField.errors;
|
|
149
107
|
if (this.processRefundForm.dirty && controls.refundActionField.valid
|
|
150
108
|
&& (controls.refundActionField.value == 'Approve'
|
|
@@ -172,21 +130,13 @@ export class ProcessRefundComponent {
|
|
|
172
130
|
reason: controls.sendMeBackField.value
|
|
173
131
|
};
|
|
174
132
|
}
|
|
175
|
-
this.RefundsService.patchRefundActions(processRefundRequest, this.refundReference, status).subscribe(
|
|
176
|
-
* @param {?} response
|
|
177
|
-
* @return {?}
|
|
178
|
-
*/
|
|
179
|
-
response => {
|
|
133
|
+
this.RefundsService.patchRefundActions(processRefundRequest, this.refundReference, status).subscribe(response => {
|
|
180
134
|
this.isSuccesspageEnable = true;
|
|
181
135
|
// this.successMsg = JSON.parse(response)['data'];
|
|
182
136
|
this.successMsg = response.replace(/['"]+/g, '');
|
|
183
|
-
}
|
|
184
|
-
* @param {?} err
|
|
185
|
-
* @return {?}
|
|
186
|
-
*/
|
|
187
|
-
err => {
|
|
137
|
+
}, err => {
|
|
188
138
|
this.errorMessage = this.getErrorMessage(true, err.statusCode, err.err, err);
|
|
189
|
-
})
|
|
139
|
+
});
|
|
190
140
|
}
|
|
191
141
|
else {
|
|
192
142
|
if (controls.refundActionField.value == "") {
|
|
@@ -219,15 +169,7 @@ export class ProcessRefundComponent {
|
|
|
219
169
|
}
|
|
220
170
|
}
|
|
221
171
|
}
|
|
222
|
-
/**
|
|
223
|
-
* @param {?} isErrorExist
|
|
224
|
-
* @param {?} status
|
|
225
|
-
* @param {?} errorMsg
|
|
226
|
-
* @param {?} err
|
|
227
|
-
* @return {?}
|
|
228
|
-
*/
|
|
229
172
|
getErrorMessage(isErrorExist, status, errorMsg, err) {
|
|
230
|
-
/** @type {?} */
|
|
231
173
|
let bodyTxt = 'Please try again later';
|
|
232
174
|
if (status !== 500) {
|
|
233
175
|
if (errorMsg !== undefined) {
|
|
@@ -243,15 +185,8 @@ export class ProcessRefundComponent {
|
|
|
243
185
|
showError: isErrorExist
|
|
244
186
|
};
|
|
245
187
|
}
|
|
246
|
-
/**
|
|
247
|
-
* @return {?}
|
|
248
|
-
*/
|
|
249
188
|
loadRefundListPage() {
|
|
250
|
-
this.OrderslistService.getnavigationPageValue().subscribe((
|
|
251
|
-
* @param {?} data
|
|
252
|
-
* @return {?}
|
|
253
|
-
*/
|
|
254
|
-
(data) => this.navigationpage = data));
|
|
189
|
+
this.OrderslistService.getnavigationPageValue().subscribe((data) => this.navigationpage = data);
|
|
255
190
|
if (this.navigationpage === 'casetransactions') {
|
|
256
191
|
// window.location.href='/refund-list?takePayment=false&refundlist=true';
|
|
257
192
|
// // this.OrderslistService.setnavigationPage('casetransactions');
|
|
@@ -268,9 +203,6 @@ export class ProcessRefundComponent {
|
|
|
268
203
|
this.paymentLibComponent.isRefundStatusView = true;
|
|
269
204
|
}
|
|
270
205
|
}
|
|
271
|
-
/**
|
|
272
|
-
* @return {?}
|
|
273
|
-
*/
|
|
274
206
|
loadRefundsHomePage() {
|
|
275
207
|
if (typeof this.paymentLibComponent.TAKEPAYMENT === 'string' && this.paymentLibComponent.TAKEPAYMENT === 'false') {
|
|
276
208
|
//window.location.href='/refund-list?takePayment=false&refundlist=true';
|
|
@@ -285,9 +217,6 @@ export class ProcessRefundComponent {
|
|
|
285
217
|
this.paymentLibComponent.isRefundStatusView = false;
|
|
286
218
|
}
|
|
287
219
|
}
|
|
288
|
-
/**
|
|
289
|
-
* @return {?}
|
|
290
|
-
*/
|
|
291
220
|
redirecttoRefundListPage() {
|
|
292
221
|
if ((typeof this.paymentLibComponent.TAKEPAYMENT === 'string' && this.paymentLibComponent.TAKEPAYMENT === 'false') || (typeof this.paymentLibComponent.TAKEPAYMENT === 'boolean' && !this.paymentLibComponent.TAKEPAYMENT)) {
|
|
293
222
|
// window.location.href='/refund-list?takePayment=false&refundlist=true';
|
|
@@ -321,11 +250,6 @@ export class ProcessRefundComponent {
|
|
|
321
250
|
// let url = `/payment-history/${this.ccdCaseNumber}?view=case-transactions&takePayment=true&${partUrl}`;
|
|
322
251
|
// this.router.navigateByUrl(url);
|
|
323
252
|
// }
|
|
324
|
-
/**
|
|
325
|
-
* @param {?} vals
|
|
326
|
-
* @param {?} field
|
|
327
|
-
* @return {?}
|
|
328
|
-
*/
|
|
329
253
|
resetForm(vals, field) {
|
|
330
254
|
if (field === 'action' || field === 'all') {
|
|
331
255
|
this.refundActionsHasError = vals[0];
|
|
@@ -344,21 +268,10 @@ export class ProcessRefundComponent {
|
|
|
344
268
|
this.isReasonInvalid = vals[7];
|
|
345
269
|
}
|
|
346
270
|
}
|
|
347
|
-
/**
|
|
348
|
-
* @return {?}
|
|
349
|
-
*/
|
|
350
271
|
goToCaseReview() {
|
|
351
272
|
this.router.navigate([`/cases/case-details/${this.ccdCaseNumber}`], { relativeTo: this.activeRoute });
|
|
352
273
|
}
|
|
353
|
-
}
|
|
354
|
-
ProcessRefundComponent.decorators = [
|
|
355
|
-
{ type: Component, args: [{
|
|
356
|
-
selector: 'ccpay-process-refund',
|
|
357
|
-
template: "<ng-container *ngIf=\"viewStatus === 'RefundProcess'\">\n<div class=\"govuk-width-container\">\n\n <main class=\"govuk-main-wrapper govuk-!-padding-top-0\" [ngClass]=\"{'govuk-radios__conditional--hidden': isSuccesspageEnable}\" id=\"main-content\" role=\"main\">\n <div *ngIf=\"errorMessage.showError\">\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 {{errorMessage.title}}\n </h2>\n <div class=\"govuk-error-summary__body process-refund-font\">\n {{errorMessage.body}}\n </div>\n </div>\n </div>\n\n <div class=\"payment-view-alignment\">\n\n <div class=\"govuk-grid-row\">\n <div class=\"column\">\n <h1 class=\"heading-large govuk-!-margin-top-0\">Review refund details</h1>\n </div>\n </div>\n <table>\n <tbody>\n\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Payment to be refunded</td>\n <td>\t{{refundlistsource?.refund_reference}} ({{refundlistsource.amount | currency :'GBP':'symbol':'1.2-2' }})</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Reason for refund</td>\n <td>\t{{refundlistsource?.reason}}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Amount to be refunded</td>\n <td>{{refundlistsource?.amount | currency :'GBP':'symbol':'1.2-2' }}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Submitted by</td>\n <td>{{refundlistsource?.user_full_name}}</td>\n\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Date submitted</td>\n <td>\t{{refundlistsource?.date_created | date:'d MMMM yyyy' }}</td>\n </tr>\n\n </tbody>\n </table>\n\n <div>\n </div>\n </div>\n <div class=\"process-refund__panel\">\n <form [formGroup]=\"processRefundForm\" novalidate>\n <div class=\"\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"sign-in-hint\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--l\">\n <h1 class=\"heading-large\">\n What do you want to do with this refund?\n </h1>\n </legend>\n <div class=\"govuk-radios\" [ngClass]=\"{'form-group-error': refundActionsHasError}\">\n <p class=\"inline-error-message\"\n *ngIf=\"refundActionsHasError\">\n <span *ngIf=\"refundActionsHasError\">Please select an action</span>\n </p>\n <div class=\"govuk-radios__item\" *ngFor=\"let refundAction of refundActionList; let i = index;\">\n <input class=\"govuk-radios__input\" \n id=\"refundAction-{{i}}\" \n name=\"refundActionField\"\n type=\"radio\"\n formControlName=\"refundActionField\"\n (click)=\"checkRefundActions(refundAction.code)\"\n value=\"{{refundAction.code}}\">\n <label class=\"govuk-label govuk-radios__label process-refund-font\" for=\"refundAction-{{i}}\">\n {{refundAction.code}}\n </label>\n <div id=\"sign-in-item-hint\" class=\"govuk-hint govuk-radios__hint process-refund-font\">\n {{refundAction.label}}\n </div>\n </div>\n <div class=\"govuk-radios__conditional\" [ngClass]=\"{'govuk-radios__conditional--hidden': !isSendMeBackClicked}\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label process-refund-font\" for=\"contact-by-text\">\n Add a reason\n </label>\n <p class=\"inline-error-message\"\n *ngIf=\"isReasonFieldEmpty || isReasonFieldInvalid || reasonFieldMinHasError || reasonFieldMaxHasError\">\n <span *ngIf=\"isReasonFieldEmpty\">Add a reason</span>\n <span *ngIf=\"isReasonFieldInvalid\">Add a valid reason</span>\n <span *ngIf=\"reasonFieldMinHasError\">Reason should be at least 3 characters.</span>\n <span *ngIf=\"reasonFieldMaxHasError\">Reason should be 255 characters or under.</span>\n </p>\n <textarea class=\"govuk-textarea govuk-!-width-one-third reason-font\"\n [ngClass]=\"{'inline-error-class': isReasonFieldEmpty || isReasonFieldInvalid || reasonFieldMinHasError || reasonFieldMaxHasError}\"\n id=\"sendmeback\"\n name=\"sendMeBackField\" \n formControlName=\"sendMeBackField\"\n rows=\"5\"></textarea>\n \n </div>\n\n </div>\n \n </div>\n \n </fieldset>\n </div>\n\n <div [ngClass]=\"{'govuk-radios__conditional--hidden': !isRejectClicked}\">\n <fieldset class=\"govuk-fieldset\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--l\">\n <h2 class=\"heading-medium\">\n Why are you rejecting this refund?\n </h2>\n </legend>\n <div class=\"govuk-radios\" [ngClass]=\"{'form-group-error': refundRejectReasonHasError}\">\n <p class=\"inline-error-message\"\n *ngIf=\"refundRejectReasonHasError\">\n <span *ngIf=\"refundRejectReasonHasError\">Please select a reject reason</span>\n </p>\n <div class=\"govuk-radios__item\" *ngFor=\"let refundRejectReason of refundRejectReasonList; let j = index;\">\n <input class=\"govuk-radios__input\" \n id=\"refundRejectReason-{{j}}\"\n formControlName=\"refundRejectReasonField\"\n name=\"refundRejectReasonField\"\n (click)=\"checkRefundActions(refundRejectReason.code)\"\n type=\"radio\" value=\"{{refundRejectReason.code}}\">\n <label class=\"govuk-label govuk-radios__label process-refund-font\" for=\"refundRejectReason-{{j}}\">\n {{refundRejectReason.name}}\n </label>\n </div>\n </div>\n <div class=\"govuk-radios__conditional\" [ngClass]=\"{'govuk-radios__conditional--hidden': !isOtherClicked}\" id=\"conditional-contact-3\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label process-refund-font \" for=\"contact-by-text\">\n Enter reason\n </label>\n <p class=\"inline-error-message\" *ngIf=\"isReasonEmpty || isReasonInvalid\">\n <span *ngIf=\"isReasonEmpty\">Enter reason.</span>\n <span *ngIf=\"isReasonInvalid\">Enter a valid reason</span>\n </p>\n <input class=\"govuk-input govuk-!-width-one-third reason-font\" id=\"otherReason\" \n [ngClass]=\"{'inline-error-class': isReasonEmpty || isReasonInvalid}\"\n formControlName=\"enterReasonField\" name=\"enterReasonField\" type=\"text\"></div>\n \n </div>\n \n </fieldset>\n </div>\n\n <div class=\"govuk-button-group\">\n <button (click)=\"redirecttoRefundListPage()\" class=\"govuk-button govuk-button--secondary marginright\"> Previous</button>\n <button (click)=\"processRefundSubmit()\" class=\"govuk-button button\"\n data-module=\"govuk-button\">\n Submit \n </button>\n <br/><br/>\n </div>\n \n <div *ngIf=\"!isFromRefundListPage\" class=\"govuk-button-group margin\">\n\n <p><a (click)=\"loadRefundsHomePage()\" class=\"govuk-link pointer\" data-module=\"govuk-button\">Cancel</a></p>\n</div>\n</form>\n </div>\n \n\n </main>\n \n <main class=\"govuk-main-wrapper govuk-main-wrapper--l success-page-padding--top25\" [ngClass]=\"{'govuk-radios__conditional--hidden': !isSuccesspageEnable}\" id=\"main-content\" role=\"main\" >\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-panel govuk-panel-refund--confirmation\">\n <h1 class=\"heading-xlarge\">\n {{successMsg}}\n </h1>\n </div>\n <p class=\"govuk-body process-refund-font\">\n <a (click) = \"goToCaseReview()\" class=\"govuk-link pointer\">Return to case</a>\n </p>\n </div>\n </main>\n</div>\n</ng-container>\n\n",
|
|
358
|
-
styles: [".tb-col-w{width:330px}.tr-border{border-bottom:2px solid}.payment-view-alignment{margin-left:30px}.govuk-button{float:left!important;font-size:19px;margin-top:2em!important}.remission{margin-bottom:7em}.process-refund-font{font-size:19px!important}.govuk-radios__conditional--hidden{display:none}.inline-error-message{color:#c11717;font-weight:700;margin-top:10px;border-color:#c11717}.inline-error-class{outline:#c11717 solid 3px;outline-offset:0;border-color:#c11717}.form-group-error{border-left:5px solid #c11717;padding-left:15px}.govuk-panel-refund--confirmation{color:#fff;background:#00703c}.process-refund__panel{display:flex;flex-direction:column;margin-left:25px;margin-top:30px}.button-margin--left25{margin-left:25px}.success-page-padding--top25{padding-top:25px}.margin{margin-top:5em}.marginright{margin-right:1.5em}.govuk-textarea{line-height:2.25}.reason-font{font-size:19px!important}.pointer{cursor:pointer}"]
|
|
359
|
-
}] }
|
|
360
|
-
];
|
|
361
|
-
/** @nocollapse */
|
|
274
|
+
};
|
|
362
275
|
ProcessRefundComponent.ctorParameters = () => [
|
|
363
276
|
{ type: RefundsService },
|
|
364
277
|
{ type: FormBuilder },
|
|
@@ -367,90 +280,26 @@ ProcessRefundComponent.ctorParameters = () => [
|
|
|
367
280
|
{ type: Router },
|
|
368
281
|
{ type: ActivatedRoute }
|
|
369
282
|
];
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
ProcessRefundComponent.prototype.isSendMeBackClicked;
|
|
393
|
-
/** @type {?} */
|
|
394
|
-
ProcessRefundComponent.prototype.isRejectClicked;
|
|
395
|
-
/** @type {?} */
|
|
396
|
-
ProcessRefundComponent.prototype.isOtherClicked;
|
|
397
|
-
/** @type {?} */
|
|
398
|
-
ProcessRefundComponent.prototype.isSuccesspageEnable;
|
|
399
|
-
/** @type {?} */
|
|
400
|
-
ProcessRefundComponent.prototype.refundActionsHasError;
|
|
401
|
-
/** @type {?} */
|
|
402
|
-
ProcessRefundComponent.prototype.refundRejectReasonHasError;
|
|
403
|
-
/** @type {?} */
|
|
404
|
-
ProcessRefundComponent.prototype.isReasonFieldEmpty;
|
|
405
|
-
/** @type {?} */
|
|
406
|
-
ProcessRefundComponent.prototype.isReasonFieldInvalid;
|
|
407
|
-
/** @type {?} */
|
|
408
|
-
ProcessRefundComponent.prototype.reasonFieldMinHasError;
|
|
409
|
-
/** @type {?} */
|
|
410
|
-
ProcessRefundComponent.prototype.reasonFieldMaxHasError;
|
|
411
|
-
/** @type {?} */
|
|
412
|
-
ProcessRefundComponent.prototype.isReasonEmpty;
|
|
413
|
-
/** @type {?} */
|
|
414
|
-
ProcessRefundComponent.prototype.isReasonInvalid;
|
|
415
|
-
/** @type {?} */
|
|
416
|
-
ProcessRefundComponent.prototype.successMsg;
|
|
417
|
-
/** @type {?} */
|
|
418
|
-
ProcessRefundComponent.prototype.navigationpage;
|
|
419
|
-
/** @type {?} */
|
|
420
|
-
ProcessRefundComponent.prototype.ccdCaseNumber;
|
|
421
|
-
/** @type {?} */
|
|
422
|
-
ProcessRefundComponent.prototype.isFromRefundListPage;
|
|
423
|
-
/** @type {?} */
|
|
424
|
-
ProcessRefundComponent.prototype.isConfirmButtondisabled;
|
|
425
|
-
/**
|
|
426
|
-
* @type {?}
|
|
427
|
-
* @private
|
|
428
|
-
*/
|
|
429
|
-
ProcessRefundComponent.prototype.RefundsService;
|
|
430
|
-
/**
|
|
431
|
-
* @type {?}
|
|
432
|
-
* @private
|
|
433
|
-
*/
|
|
434
|
-
ProcessRefundComponent.prototype.formBuilder;
|
|
435
|
-
/**
|
|
436
|
-
* @type {?}
|
|
437
|
-
* @private
|
|
438
|
-
*/
|
|
439
|
-
ProcessRefundComponent.prototype.OrderslistService;
|
|
440
|
-
/**
|
|
441
|
-
* @type {?}
|
|
442
|
-
* @private
|
|
443
|
-
*/
|
|
444
|
-
ProcessRefundComponent.prototype.paymentLibComponent;
|
|
445
|
-
/**
|
|
446
|
-
* @type {?}
|
|
447
|
-
* @private
|
|
448
|
-
*/
|
|
449
|
-
ProcessRefundComponent.prototype.router;
|
|
450
|
-
/**
|
|
451
|
-
* @type {?}
|
|
452
|
-
* @private
|
|
453
|
-
*/
|
|
454
|
-
ProcessRefundComponent.prototype.activeRoute;
|
|
455
|
-
}
|
|
456
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1yZWZ1bmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9wcm9jZXNzLXJlZnVuZC9wcm9jZXNzLXJlZnVuZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFVLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFJdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBQyxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU94RCxNQUFNLE9BQU8sc0JBQXNCOzs7Ozs7Ozs7SUE4QmpDLFlBQW9CLGNBQThCLEVBQzlCLFdBQXdCLEVBQ3hCLGlCQUFvQyxFQUNwQyxtQkFBd0MsRUFDeEMsTUFBYyxFQUNkLFdBQTJCO1FBTDNCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQTdCL0MsaUJBQVksR0FBSSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELGVBQVUsR0FBVyxJQUFJLENBQUM7UUFFMUIscUJBQWdC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Q2hDO0lBQ0gsQ0FBQzs7OztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLHVCQUF1QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBRSxFQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFDLENBQUMsQ0FBQztJQUN0RyxDQUFDOzs7WUFyU0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLG94UUFBOEM7O2FBRS9DOzs7O1lBWk8sY0FBYztZQURiLFdBQVc7WUFLWCxpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ0osTUFBTTtZQUFyQixjQUFjOzs7OEJBUXBCLEtBQUs7K0JBQ0wsS0FBSzs7OztJQUROLGlEQUFpQzs7SUFDakMsa0RBQXVDOztJQUV2QyxtREFBNkI7O0lBRTdCLDhDQUF3RDs7SUFDeEQsNENBQTBCOztJQUMxQiw0Q0FBbUI7O0lBQ25CLGtEQUF1Qzs7SUFDdkMsd0RBQW1EOztJQUNuRCxxREFBcUM7O0lBQ3JDLGlEQUFpQzs7SUFDakMsZ0RBQWdDOztJQUNoQyxxREFBcUM7O0lBRXJDLHVEQUF1Qzs7SUFDdkMsNERBQTRDOztJQUM1QyxvREFBb0M7O0lBQ3BDLHNEQUFzQzs7SUFDdEMsd0RBQXdDOztJQUN4Qyx3REFBd0M7O0lBQ3hDLCtDQUErQjs7SUFDL0IsaURBQWlDOztJQUNqQyw0Q0FBMEI7O0lBQzFCLGdEQUF1Qjs7SUFDdkIsK0NBQXNCOztJQUN0QixzREFBOEI7O0lBRTlCLHlEQUF3Qzs7Ozs7SUFDNUIsZ0RBQXNDOzs7OztJQUN0Qyw2Q0FBZ0M7Ozs7O0lBQ2hDLG1EQUE0Qzs7Ozs7SUFDNUMscURBQWdEOzs7OztJQUNoRCx3Q0FBc0I7Ozs7O0lBQ3RCLDZDQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBPbkluaXQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtSZWZ1bmRzU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVmdW5kcy9yZWZ1bmRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgSVJlZnVuZEFjdGlvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVJlZnVuZEFjdGlvbic7XG5pbXBvcnQgeyBJUmVmdW5kTGlzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVJlZnVuZExpc3QnO1xuaW1wb3J0IHsgSVJlZnVuZFJlamVjdFJlYXNvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVJlZnVuZFJlamVjdFJlYXNvbic7XG5pbXBvcnQgeyBPcmRlcnNsaXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29yZGVyc2xpc3Quc2VydmljZSc7XG5pbXBvcnQgeyBQYXltZW50TGliQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGF5bWVudC1saWIuY29tcG9uZW50JztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjcGF5LXByb2Nlc3MtcmVmdW5kJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2Nlc3MtcmVmdW5kLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvY2Vzcy1yZWZ1bmQuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFByb2Nlc3NSZWZ1bmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSByZWZ1bmRSZWZlcmVuY2U6IHN0cmluZztcbiAgQElucHV0KCkgcmVmdW5kbGlzdHNvdXJjZTogSVJlZnVuZExpc3Q7XG5cbiAgcHJvY2Vzc1JlZnVuZEZvcm06IEZvcm1Hcm91cDtcblxuICBlcnJvck1lc3NhZ2UgPSAgdGhpcy5nZXRFcnJvck1lc3NhZ2UoZmFsc2UsICcnLCAnJywgJycpO1xuICBzZW5kbWViYWNrOiBzdHJpbmcgPSBudWxsO1xuICB2aWV3U3RhdHVzOiBzdHJpbmc7XG4gIHJlZnVuZEFjdGlvbkxpc3Q6IElSZWZ1bmRBY3Rpb25bXSA9IFtdOyBcbiAgcmVmdW5kUmVqZWN0UmVhc29uTGlzdDogSVJlZnVuZFJlamVjdFJlYXNvbltdID0gW107IFxuICBpc1NlbmRNZUJhY2tDbGlja2VkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUmVqZWN0Q2xpY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc090aGVyQ2xpY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1N1Y2Nlc3NwYWdlRW5hYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcmVmdW5kQWN0aW9uc0hhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIHJlZnVuZFJlamVjdFJlYXNvbkhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUmVhc29uRmllbGRFbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1JlYXNvbkZpZWxkSW52YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xuICByZWFzb25GaWVsZE1pbkhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIHJlYXNvbkZpZWxkTWF4SGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNSZWFzb25FbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1JlYXNvbkludmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc3VjY2Vzc01zZzogc3RyaW5nID0gbnVsbDtcbiAgbmF2aWdhdGlvbnBhZ2U6IHN0cmluZztcbiAgY2NkQ2FzZU51bWJlcjogc3RyaW5nO1xuICBpc0Zyb21SZWZ1bmRMaXN0UGFnZTogYm9vbGVhbjtcblxuICBpc0NvbmZpcm1CdXR0b25kaXNhYmxlZDogYm9vbGVhbiA9IHRydWU7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgUmVmdW5kc1NlcnZpY2U6IFJlZnVuZHNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBPcmRlcnNsaXN0U2VydmljZTogT3JkZXJzbGlzdFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcGF5bWVudExpYkNvbXBvbmVudDogUGF5bWVudExpYkNvbXBvbmVudCxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBhY3RpdmVSb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudmlld1N0YXR1cyA9ICdSZWZ1bmRQcm9jZXNzJztcbiAgICB0aGlzLlJlZnVuZHNTZXJ2aWNlLmdldFJlZnVuZEFjdGlvbnModGhpcy5yZWZ1bmRSZWZlcmVuY2UpLnN1YnNjcmliZShcbiAgICAgIHJlZnVuZEFjdGlvbkxpc3QgPT4ge1xuICAgICAgICB0aGlzLnJlZnVuZEFjdGlvbkxpc3QgPSA8YW55PnJlZnVuZEFjdGlvbkxpc3Q7XG4gICAgICB9LFxuICAgICAgZXJyID0+IHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmdldEVycm9yTWVzc2FnZSh0cnVlLCBlcnIuc3RhdHVzQ29kZSwgZXJyLmVyciwgZXJyKTtcbiAgICAgIH1cbiAgICApO1xuICAgIHRoaXMucHJvY2Vzc1JlZnVuZEZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIHJlZnVuZEFjdGlvbkZpZWxkOiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAgIF0pKSxcbiAgICAgIHJlZnVuZFJlamVjdFJlYXNvbkZpZWxkOiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAgIF0pKSxcbiAgICAgIHNlbmRNZUJhY2tGaWVsZDogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICBWYWxpZGF0b3JzLm1pbkxlbmd0aCgzKSxcbiAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjU1KSxcbiAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKCdeKFthLXpBLVowLTlcXFxccyxcXFxcLl0qKSQnKSxcblxuICAgICAgXSkpLFxuICAgICAgZW50ZXJSZWFzb25GaWVsZDogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCgzMCksXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybignXihbYS16QS1aMC05LlxcXFxzXSopJCcpLFxuICAgICAgXSkpLFxuICAgIH0pO1xuICAgdGhpcy5jY2RDYXNlTnVtYmVyID0gdGhpcy5yZWZ1bmRsaXN0c291cmNlLmNjZF9jYXNlX251bWJlcjtcblxuICAgaWYoKHR5cGVvZiB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPT09ICdzdHJpbmcnICYmIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVCA9PT0gJ2ZhbHNlJykgfHwgKHR5cGVvZiB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPT09ICdib29sZWFuJyAmJiAhdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlRBS0VQQVlNRU5UKSApIHtcbiAgICB0aGlzLmlzRnJvbVJlZnVuZExpc3RQYWdlID0gdHJ1ZTtcbiAgIH1cbiAgfVxuICBjaGVja1JlZnVuZEFjdGlvbnMoY29kZTogc3RyaW5nKSB7XG4gICAgdGhpcy5yZWZ1bmRBY3Rpb25zSGFzRXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLmlzUmVhc29uRmllbGRFbXB0eSA9IGZhbHNlO1xuICAgIHRoaXMuaXNSZWFzb25FbXB0eSA9IGZhbHNlO1xuICAgIHRoaXMuaXNSZWFzb25JbnZhbGlkID0gZmFsc2U7XG4gICAgdGhpcy5yZWZ1bmRSZWplY3RSZWFzb25IYXNFcnJvciA9IGZhbHNlO1xuICAgIGlmKGNvZGUgPT09ICdSZXR1cm4gdG8gY2FzZXdvcmtlcicpIHtcbiAgICAgIHRoaXMuaXNDb25maXJtQnV0dG9uZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgdGhpcy5pc1NlbmRNZUJhY2tDbGlja2VkID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNSZWplY3RDbGlja2VkID0gZmFsc2U7XG4gICAgICB0aGlzLmlzT3RoZXJDbGlja2VkID0gZmFsc2U7XG5cbiAgICB9IGVsc2UgaWYgKGNvZGUgPT09ICdBcHByb3ZlJykge1xuICAgICAgdGhpcy5pc1NlbmRNZUJhY2tDbGlja2VkID0gZmFsc2U7XG4gICAgICB0aGlzLmlzQ29uZmlybUJ1dHRvbmRpc2FibGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmlzUmVqZWN0Q2xpY2tlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5pc090aGVyQ2xpY2tlZCA9IGZhbHNlO1xuXG4gICAgfSBlbHNlIGlmIChjb2RlID09PSAnUmVqZWN0Jykge1xuICAgICAgdGhpcy5pc1JlamVjdENsaWNrZWQgPSB0cnVlO1xuICAgICAgdGhpcy5pc1NlbmRNZUJhY2tDbGlja2VkID0gZmFsc2U7XG4gICAgICB0aGlzLmlzT3RoZXJDbGlja2VkID0gZmFsc2U7XG4gICAgICB0aGlzLlJlZnVuZHNTZXJ2aWNlLmdldFJlZnVuZFJlamVjdFJlYXNvbnMoKS5zdWJzY3JpYmUoXG4gICAgICAgIHJlZnVuZFJlamVjdFJlYXNvbkxpc3QgPT4ge1xuICAgICAgICAgIHRoaXMucmVmdW5kUmVqZWN0UmVhc29uTGlzdCA9IDxhbnk+cmVmdW5kUmVqZWN0UmVhc29uTGlzdDtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuZ2V0RXJyb3JNZXNzYWdlKHRydWUsIGVyci5zdGF0dXNDb2RlLCBlcnIuZXJyLCBlcnIpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoY29kZSA9PT0gJ1JFMDA1Jykge1xuICAgICAgdGhpcy5pc090aGVyQ2xpY2tlZCA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChjb2RlICE9PSAnUkUwMDUnKSB7XG4gICAgICB0aGlzLmlzT3RoZXJDbGlja2VkID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIHByb2Nlc3NSZWZ1bmRTdWJtaXQoKSB7XG4gICAgbGV0IHByb2Nlc3NSZWZ1bmRSZXF1ZXN0O1xuICAgIGxldCBzdGF0dXM7XG4gICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sICdhbGwnKTtcbiAgICBjb25zdCBjb250cm9scyA9IHRoaXMucHJvY2Vzc1JlZnVuZEZvcm0uY29udHJvbHM7XG4gICAgY29uc3QgcHJvY2Vzc0Zvcm1FcnJvciA9IGNvbnRyb2xzLnNlbmRNZUJhY2tGaWVsZC5lcnJvcnM7XG5cbiAgICBpZiAodGhpcy5wcm9jZXNzUmVmdW5kRm9ybS5kaXJ0eSAmJiBjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWxpZCBcbiAgICAgICYmIChjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWx1ZSA9PSAnQXBwcm92ZSdcbiAgICAgIHx8IChjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWx1ZSA9PSAnUmVqZWN0JyAmJiBjb250cm9scy5yZWZ1bmRSZWplY3RSZWFzb25GaWVsZC52YWxpZCAmJiBjb250cm9scy5yZWZ1bmRSZWplY3RSZWFzb25GaWVsZC52YWx1ZSAhPSAnUkUwMDUnKVxuICAgICAgfHwgKGNvbnRyb2xzLnJlZnVuZEFjdGlvbkZpZWxkLnZhbHVlID09ICdSZWplY3QnICYmIGNvbnRyb2xzLnJlZnVuZFJlamVjdFJlYXNvbkZpZWxkLnZhbHVlID09ICdSRTAwNScgJiYgY29udHJvbHMuZW50ZXJSZWFzb25GaWVsZC52YWxpZClcbiAgICAgIHx8IChjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWx1ZSA9PSAnUmV0dXJuIHRvIGNhc2V3b3JrZXInICYmIGNvbnRyb2xzLnNlbmRNZUJhY2tGaWVsZC52YWxpZCkpKSB7XG4gICAgICBpZiAoY29udHJvbHMucmVmdW5kQWN0aW9uRmllbGQudmFsdWUgPT09ICdBcHByb3ZlJyl7XG4gICAgICAgIHN0YXR1cyA9ICdBUFBST1ZFJztcbiAgICAgICAgcHJvY2Vzc1JlZnVuZFJlcXVlc3QgPSB7XG4gICAgICAgICAgY29kZTonJyxcbiAgICAgICAgICByZWFzb246ICcnXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKGNvbnRyb2xzLnJlZnVuZEFjdGlvbkZpZWxkLnZhbHVlID09PSAnUmVqZWN0Jykge1xuICAgICAgICBzdGF0dXMgPSAnUkVKRUNUJztcblxuICAgICAgICBwcm9jZXNzUmVmdW5kUmVxdWVzdCA9IHtcbiAgICAgICAgICBjb2RlOiBjb250cm9scy5yZWZ1bmRSZWplY3RSZWFzb25GaWVsZC52YWx1ZSA/IGNvbnRyb2xzLnJlZnVuZFJlamVjdFJlYXNvbkZpZWxkLnZhbHVlIDogJycsXG4gICAgICAgICAgcmVhc29uOiBjb250cm9scy5yZWZ1bmRSZWplY3RSZWFzb25GaWVsZC52YWx1ZSA9PSAnUkUwMDUnID8gY29udHJvbHMuZW50ZXJSZWFzb25GaWVsZC52YWx1ZSA6ICcnXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKGNvbnRyb2xzLnJlZnVuZEFjdGlvbkZpZWxkLnZhbHVlID09PSAnUmV0dXJuIHRvIGNhc2V3b3JrZXInKSB7XG4gICAgICAgIHN0YXR1cyA9ICdTRU5EQkFDSyc7XG5cbiAgICAgICAgcHJvY2Vzc1JlZnVuZFJlcXVlc3QgPSB7XG4gICAgICAgICAgY29kZTogJycsXG4gICAgICAgICAgcmVhc29uOiBjb250cm9scy5zZW5kTWVCYWNrRmllbGQudmFsdWVcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHRoaXMuUmVmdW5kc1NlcnZpY2UucGF0Y2hSZWZ1bmRBY3Rpb25zKHByb2Nlc3NSZWZ1bmRSZXF1ZXN0LCB0aGlzLnJlZnVuZFJlZmVyZW5jZSwgc3RhdHVzKS5zdWJzY3JpYmUoXG4gICAgICAgIHJlc3BvbnNlID0+IHtcbiAgICAgICAgICB0aGlzLmlzU3VjY2Vzc3BhZ2VFbmFibGUgPSB0cnVlO1xuICAgICAgICAgIC8vIHRoaXMuc3VjY2Vzc01zZyA9IEpTT04ucGFyc2UocmVzcG9uc2UpWydkYXRhJ107XG4gICAgICAgICAgdGhpcy5zdWNjZXNzTXNnID0gcmVzcG9uc2UucmVwbGFjZSgvWydcIl0rL2csICcnKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuZ2V0RXJyb3JNZXNzYWdlKHRydWUsIGVyci5zdGF0dXNDb2RlLCBlcnIuZXJyLCBlcnIpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZihjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWx1ZSA9PSBcIlwiKSB7XG4gICAgICAgIHRoaXMucmVzZXRGb3JtKFt0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sICdhY3Rpb24nKTtcbiAgICAgIH1cbiAgICAgIGlmKGNvbnRyb2xzLnJlZnVuZEFjdGlvbkZpZWxkLnZhbHVlID09ICdSZWplY3QnICYmIGNvbnRyb2xzLnJlZnVuZFJlamVjdFJlYXNvbkZpZWxkLnZhbHVlID09IFwiXCIpIHtcbiAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXSwgJ3JlamVjdFJlYXNvbicpO1xuICAgICAgfVxuICAgICAgaWYoY29udHJvbHMucmVmdW5kQWN0aW9uRmllbGQudmFsdWUgPT0gJ1JldHVybiB0byBjYXNld29ya2VyJykge1xuICAgICAgICBpZihjb250cm9scy5zZW5kTWVCYWNrRmllbGQudmFsdWUgPT0gJycgKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXSwgJ2FkZEFyZWFzb24nKTtcbiAgICAgICAgfVxuICAgICAgICBpZihjb250cm9scy5zZW5kTWVCYWNrRmllbGQudmFsdWUgIT0gJycgJiYgY29udHJvbHMuc2VuZE1lQmFja0ZpZWxkLmludmFsaWQgKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXSwgJ2FkZEFyZWFzb24nKTtcbiAgICAgICAgfVxuICAgICAgICBpZihwcm9jZXNzRm9ybUVycm9yICYmIHByb2Nlc3NGb3JtRXJyb3IubWlubGVuZ3RoICYmIHByb2Nlc3NGb3JtRXJyb3IubWlubGVuZ3RoLmFjdHVhbExlbmd0aCA8IDMgKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXSwgJ2FkZEFyZWFzb24nKTtcbiAgICAgICAgfVxuICAgICAgICBpZihwcm9jZXNzRm9ybUVycm9yICYmIHByb2Nlc3NGb3JtRXJyb3IubWF4bGVuZ3RoICYmIHByb2Nlc3NGb3JtRXJyb3IubWF4bGVuZ3RoLmFjdHVhbExlbmd0aCA+IDI1NSApIHtcbiAgICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2VdLCAnYWRkQXJlYXNvbicpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZihjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWx1ZSA9PSAnUmVqZWN0JyAmJiBjb250cm9scy5yZWZ1bmRSZWplY3RSZWFzb25GaWVsZC52YWx1ZSA9PSAnUkUwMDUnKSB7XG4gICAgICAgIGlmKGNvbnRyb2xzLmVudGVyUmVhc29uRmllbGQudmFsdWUgPT09IFwiXCIpIHtcbiAgICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2VdLCAnZW50ZXJSZWFzb24nKTtcbiAgICAgICAgfVxuICAgICAgICBpZihjb250cm9scy5lbnRlclJlYXNvbkZpZWxkLnZhbHVlIT09IFwiXCIgJiYgY29udHJvbHMuZW50ZXJSZWFzb25GaWVsZC5pbnZhbGlkKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlXSwgJ2VudGVyUmVhc29uJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuICBnZXRFcnJvck1lc3NhZ2UoaXNFcnJvckV4aXN0LCBzdGF0dXMsIGVycm9yTXNnLCBlcnIpIHtcbiAgICBsZXQgYm9keVR4dCA9ICdQbGVhc2UgdHJ5IGFnYWluIGxhdGVyJztcbiAgICBpZiAoc3RhdHVzICE9PSA1MDApIHtcbiAgICAgIGlmIChlcnJvck1zZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGJvZHlUeHQgPSBlcnJvck1zZztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJvZHlUeHQgPSBlcnI7XG4gICAgICB9XG4gICAgICBcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiAnU29tZXRoaW5nIHdlbnQgd3JvbmcnLFxuICAgICAgYm9keTogYm9keVR4dCxcbiAgICAgIHNob3dFcnJvcjogaXNFcnJvckV4aXN0XG4gICAgfTtcbiAgfVxuICBsb2FkUmVmdW5kTGlzdFBhZ2UoKSB7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRuYXZpZ2F0aW9uUGFnZVZhbHVlKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLm5hdmlnYXRpb25wYWdlID0gZGF0YSk7XG4gICAgaWYgKHRoaXMubmF2aWdhdGlvbnBhZ2UgPT09ICdjYXNldHJhbnNhY3Rpb25zJykge1xuICAgICAgLy8gd2luZG93LmxvY2F0aW9uLmhyZWY9Jy9yZWZ1bmQtbGlzdD90YWtlUGF5bWVudD1mYWxzZSZyZWZ1bmRsaXN0PXRydWUnO1xuICAgICAgLy8gLy8gdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRuYXZpZ2F0aW9uUGFnZSgnY2FzZXRyYW5zYWN0aW9ucycpO1xuICAgICAgLy8gLy8gdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRpc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2UoZmFsc2UpO1xuICAgICAgLy8gLy8gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlZJRVcgPSdjYXNlLXRyYW5zYWN0aW9ucyc7XG4gICAgICAvLyAvLyB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAnY2FzZS10cmFuc2FjdGlvbnMnO1xuICAgICAgLy8gLy8gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPSB0cnVlO1xuICAgICAgLy8gLy8gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzUmVmdW5kU3RhdHVzVmlldyA9IGZhbHNlO1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ3JlZnVuZHN0YXR1c2xpc3QnO1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzUmVmdW5kU3RhdHVzVmlldyA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdyZWZ1bmRzdGF0dXNsaXN0JztcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc1JlZnVuZFN0YXR1c1ZpZXcgPSB0cnVlO1xuICAgIH1cbiAgfVxuICBsb2FkUmVmdW5kc0hvbWVQYWdlKCkge1xuICAgIGlmKHR5cGVvZiB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPT09ICdzdHJpbmcnICYmIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVCA9PT0gJ2ZhbHNlJykge1xuICAgICAgLy93aW5kb3cubG9jYXRpb24uaHJlZj0nL3JlZnVuZC1saXN0P3Rha2VQYXltZW50PWZhbHNlJnJlZnVuZGxpc3Q9dHJ1ZSc7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAncmVmdW5kLWxpc3QnO1xuICAgICB9XG4gICAgIGVsc2Uge1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRuYXZpZ2F0aW9uUGFnZSgnY2FzZXRyYW5zYWN0aW9ucycpO1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRpc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2UoZmFsc2UpO1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlZJRVcgPSdjYXNlLXRyYW5zYWN0aW9ucyc7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAnY2FzZS10cmFuc2FjdGlvbnMnO1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPSB0cnVlO1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzUmVmdW5kU3RhdHVzVmlldyA9IGZhbHNlO1xuICAgICB9XG4gIH1cbiByZWRpcmVjdHRvUmVmdW5kTGlzdFBhZ2UoKSB7XG4gICBpZigodHlwZW9mIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVCA9PT0gJ3N0cmluZycgJiYgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlRBS0VQQVlNRU5UID09PSAnZmFsc2UnKSB8fCAodHlwZW9mIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVCA9PT0gJ2Jvb2xlYW4nICYmICF0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQpICkge1xuICAgLy8gd2luZG93LmxvY2F0aW9uLmhyZWY9Jy9yZWZ1bmQtbGlzdD90YWtlUGF5bWVudD1mYWxzZSZyZWZ1bmRsaXN0PXRydWUnO1xuICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ3JlZnVuZC1saXN0JztcbiAgIH1cbiAgIGVsc2Uge1xuICAgIHRoaXMubG9hZFJlZnVuZExpc3RQYWdlKCk7XG4gICB9XG4gIH1cbiAgLy8gbG9hZENhc2VUcmFuc2FjdGlvblBhZ2UoKSB7XG4gIC8vICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzUmVmdW5kU3RhdHVzVmlldyA9IGZhbHNlO1xuICAvLyAgIHRoaXMucGF5bWVudExpYkNvfW1wb25lbnQuVEFLRVBBWU1FTlQgPSB0cnVlO1xuICAvLyAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdjYXNlLXRyYW5zYWN0aW9ucyc7XG4gIC8vICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UuZ2V0QlNmZWF0dXJlKCkuc3Vic2NyaWJlKFxuICAvLyAgICAgZmVhdHVyZXMgPT4ge1xuICAvLyAgICAgICBsZXQgcmVzdWx0ID0gSlNPTi5wYXJzZShmZWF0dXJlcykuZmlsdGVyKGZlYXR1cmUgPT4gZmVhdHVyZS51aWQgPT09IEJTX0VOQUJMRV9GTEFHKTtcbiAgLy8gICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPSByZXN1bHRbMF0gPyByZXN1bHRbMF0uZW5hYmxlIDogZmFsc2U7XG4gIC8vICAgICB9LFxuICAvLyAgICAgZXJyID0+IHtcbiAgLy8gICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPSBmYWxzZTtcbiAgLy8gICAgIH1cbiAgLy8gICApO1xuXG4gIC8vICAgbGV0IHBhcnRVcmwgPSBgc2VsZWN0ZWRPcHRpb249JHt0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuU0VMRUNURURfT1BUSU9OfWA7XG4gIC8vICAgcGFydFVybCArPSB0aGlzLmJzUGF5bWVudERjbk51bWJlciA/IGAmZGNuPSR7dGhpcy5ic1BheW1lbnREY25OdW1iZXJ9YCA6ICcnO1xuICAvLyAgIHBhcnRVcmwgKz0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPyAnJmlzQnVsa1NjYW5uaW5nPUVuYWJsZScgOiAnJmlzQnVsa1NjYW5uaW5nPURpc2FibGUnO1xuICAvLyAgIHBhcnRVcmwgKz0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTVFVSTk9GRiA/ICcmaXNUdXJuT2ZmPUVuYWJsZScgOiAnJmlzVHVybk9mZj1EaXNhYmxlJztcbiAgLy8gICBwYXJ0VXJsICs9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU1NGRU5BQkxFID8gJyZpc1N0Rml4RW5hYmxlPUVuYWJsZScgOiAnJmlzU3RGaXhFbmFibGU9RGlzYWJsZSc7XG4gIC8vICAgcGFydFVybCArPSBgJmNhc2VUeXBlPSR7dGhpcy5wYXltZW50TGliQ29tcG9uZW50LkNBU0VUWVBFfWA7XG4gIC8vICAgcGFydFVybCArPSB0aGlzLmlzTmV3UGNpcGFsT2ZmID8gJyZpc05ld1BjaXBhbE9mZj1FbmFibGUnIDogJyZpc05ld1BjaXBhbE9mZj1EaXNhYmxlJztcbiAgLy8gICBwYXJ0VXJsICs9IHRoaXMuaXNPbGRQY2lwYWxPZmYgPyAnJmlzT2xkUGNpcGFsT2ZmPUVuYWJsZScgOiAnJmlzT2xkUGNpcGFsT2ZmPURpc2FibGUnO1xuICAvLyAgIGxldCB1cmwgPSBgL3BheW1lbnQtaGlzdG9yeS8ke3RoaXMuY2NkQ2FzZU51bWJlcn0/dmlldz1jYXNlLXRyYW5zYWN0aW9ucyZ0YWtlUGF5bWVudD10cnVlJiR7cGFydFVybH1gO1xuICAvLyAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodXJsKTtcbiAgLy8gfVxuXG4gIHJlc2V0Rm9ybSh2YWxzLCBmaWVsZCkge1xuICAgIGlmKGZpZWxkPT09J2FjdGlvbicgfHwgZmllbGQ9PT0nYWxsJykge1xuICAgICAgdGhpcy5yZWZ1bmRBY3Rpb25zSGFzRXJyb3IgPSB2YWxzWzBdO1xuICAgIH1cbiAgICBpZihmaWVsZD09PSdyZWplY3RSZWFzb24nIHx8IGZpZWxkPT09J2FsbCcpIHtcbiAgICAgIHRoaXMucmVmdW5kUmVqZWN0UmVhc29uSGFzRXJyb3IgPSB2YWxzWzFdO1xuICAgIH1cbiAgICBpZihmaWVsZD09PSdhZGRBcmVhc29uJyB8fCBmaWVsZD09PSdhbGwnKSB7XG4gICAgICB0aGlzLmlzUmVhc29uRmllbGRFbXB0eSA9IHZhbHNbMl07XG4gICAgICB0aGlzLmlzUmVhc29uRmllbGRJbnZhbGlkID0gdmFsc1szXTtcbiAgICAgIHRoaXMucmVhc29uRmllbGRNaW5IYXNFcnJvciA9IHZhbHNbNF07XG4gICAgICB0aGlzLnJlYXNvbkZpZWxkTWF4SGFzRXJyb3IgPSB2YWxzWzVdO1xuICAgIH1cbiAgICBpZihmaWVsZD09PSdlbnRlclJlYXNvbicgfHwgZmllbGQ9PT0nYWxsJykge1xuICAgICAgdGhpcy5pc1JlYXNvbkVtcHR5ID0gdmFsc1s2XTtcbiAgICAgIHRoaXMuaXNSZWFzb25JbnZhbGlkID0gdmFsc1s3XTtcbiAgICB9XG4gIH1cblxuICBnb1RvQ2FzZVJldmlldygpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9jYXNlcy9jYXNlLWRldGFpbHMvJHt0aGlzLmNjZENhc2VOdW1iZXJ9YF0sIHtyZWxhdGl2ZVRvOiB0aGlzLmFjdGl2ZVJvdXRlfSk7XG4gIH1cbn1cbiJdfQ==
|
|
283
|
+
__decorate([
|
|
284
|
+
Input(),
|
|
285
|
+
__metadata("design:type", String)
|
|
286
|
+
], ProcessRefundComponent.prototype, "refundReference", void 0);
|
|
287
|
+
__decorate([
|
|
288
|
+
Input(),
|
|
289
|
+
__metadata("design:type", Object)
|
|
290
|
+
], ProcessRefundComponent.prototype, "refundlistsource", void 0);
|
|
291
|
+
ProcessRefundComponent = __decorate([
|
|
292
|
+
Component({
|
|
293
|
+
selector: 'ccpay-process-refund',
|
|
294
|
+
template: "<ng-container *ngIf=\"viewStatus === 'RefundProcess'\">\n<div class=\"govuk-width-container\">\n\n <main class=\"govuk-main-wrapper govuk-!-padding-top-0\" [ngClass]=\"{'govuk-radios__conditional--hidden': isSuccesspageEnable}\" id=\"main-content\" role=\"main\">\n <div *ngIf=\"errorMessage.showError\">\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 {{errorMessage.title}}\n </h2>\n <div class=\"govuk-error-summary__body process-refund-font\">\n {{errorMessage.body}}\n </div>\n </div>\n </div>\n\n <div class=\"payment-view-alignment\">\n\n <div class=\"govuk-grid-row\">\n <div class=\"column\">\n <h1 class=\"heading-large govuk-!-margin-top-0\">Review refund details</h1>\n </div>\n </div>\n <table>\n <tbody>\n\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Payment to be refunded</td>\n <td>\t{{refundlistsource?.refund_reference}} ({{refundlistsource.amount | currency :'GBP':'symbol':'1.2-2' }})</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Reason for refund</td>\n <td>\t{{refundlistsource?.reason}}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Amount to be refunded</td>\n <td>{{refundlistsource?.amount | currency :'GBP':'symbol':'1.2-2' }}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Submitted by</td>\n <td>{{refundlistsource?.user_full_name}}</td>\n\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Date submitted</td>\n <td>\t{{refundlistsource?.date_created | date:'d MMMM yyyy' }}</td>\n </tr>\n\n </tbody>\n </table>\n\n <div>\n </div>\n </div>\n <div class=\"process-refund__panel\">\n <form [formGroup]=\"processRefundForm\" novalidate>\n <div class=\"\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"sign-in-hint\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--l\">\n <h1 class=\"heading-large\">\n What do you want to do with this refund?\n </h1>\n </legend>\n <div class=\"govuk-radios\" [ngClass]=\"{'form-group-error': refundActionsHasError}\">\n <p class=\"inline-error-message\"\n *ngIf=\"refundActionsHasError\">\n <span *ngIf=\"refundActionsHasError\">Please select an action</span>\n </p>\n <div class=\"govuk-radios__item\" *ngFor=\"let refundAction of refundActionList; let i = index;\">\n <input class=\"govuk-radios__input\" \n id=\"refundAction-{{i}}\" \n name=\"refundActionField\"\n type=\"radio\"\n formControlName=\"refundActionField\"\n (click)=\"checkRefundActions(refundAction.code)\"\n value=\"{{refundAction.code}}\">\n <label class=\"govuk-label govuk-radios__label process-refund-font\" for=\"refundAction-{{i}}\">\n {{refundAction.code}}\n </label>\n <div id=\"sign-in-item-hint\" class=\"govuk-hint govuk-radios__hint process-refund-font\">\n {{refundAction.label}}\n </div>\n </div>\n <div class=\"govuk-radios__conditional\" [ngClass]=\"{'govuk-radios__conditional--hidden': !isSendMeBackClicked}\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label process-refund-font\" for=\"contact-by-text\">\n Add a reason\n </label>\n <p class=\"inline-error-message\"\n *ngIf=\"isReasonFieldEmpty || isReasonFieldInvalid || reasonFieldMinHasError || reasonFieldMaxHasError\">\n <span *ngIf=\"isReasonFieldEmpty\">Add a reason</span>\n <span *ngIf=\"isReasonFieldInvalid\">Add a valid reason</span>\n <span *ngIf=\"reasonFieldMinHasError\">Reason should be at least 3 characters.</span>\n <span *ngIf=\"reasonFieldMaxHasError\">Reason should be 255 characters or under.</span>\n </p>\n <textarea class=\"govuk-textarea govuk-!-width-one-third reason-font\"\n [ngClass]=\"{'inline-error-class': isReasonFieldEmpty || isReasonFieldInvalid || reasonFieldMinHasError || reasonFieldMaxHasError}\"\n id=\"sendmeback\"\n name=\"sendMeBackField\" \n formControlName=\"sendMeBackField\"\n rows=\"5\"></textarea>\n \n </div>\n\n </div>\n \n </div>\n \n </fieldset>\n </div>\n\n <div [ngClass]=\"{'govuk-radios__conditional--hidden': !isRejectClicked}\">\n <fieldset class=\"govuk-fieldset\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--l\">\n <h2 class=\"heading-medium\">\n Why are you rejecting this refund?\n </h2>\n </legend>\n <div class=\"govuk-radios\" [ngClass]=\"{'form-group-error': refundRejectReasonHasError}\">\n <p class=\"inline-error-message\"\n *ngIf=\"refundRejectReasonHasError\">\n <span *ngIf=\"refundRejectReasonHasError\">Please select a reject reason</span>\n </p>\n <div class=\"govuk-radios__item\" *ngFor=\"let refundRejectReason of refundRejectReasonList; let j = index;\">\n <input class=\"govuk-radios__input\" \n id=\"refundRejectReason-{{j}}\"\n formControlName=\"refundRejectReasonField\"\n name=\"refundRejectReasonField\"\n (click)=\"checkRefundActions(refundRejectReason.code)\"\n type=\"radio\" value=\"{{refundRejectReason.code}}\">\n <label class=\"govuk-label govuk-radios__label process-refund-font\" for=\"refundRejectReason-{{j}}\">\n {{refundRejectReason.name}}\n </label>\n </div>\n </div>\n <div class=\"govuk-radios__conditional\" [ngClass]=\"{'govuk-radios__conditional--hidden': !isOtherClicked}\" id=\"conditional-contact-3\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label process-refund-font \" for=\"contact-by-text\">\n Enter reason\n </label>\n <p class=\"inline-error-message\" *ngIf=\"isReasonEmpty || isReasonInvalid\">\n <span *ngIf=\"isReasonEmpty\">Enter reason.</span>\n <span *ngIf=\"isReasonInvalid\">Enter a valid reason</span>\n </p>\n <input class=\"govuk-input govuk-!-width-one-third reason-font\" id=\"otherReason\" \n [ngClass]=\"{'inline-error-class': isReasonEmpty || isReasonInvalid}\"\n formControlName=\"enterReasonField\" name=\"enterReasonField\" type=\"text\"></div>\n \n </div>\n \n </fieldset>\n </div>\n\n <div class=\"govuk-button-group\">\n <button (click)=\"redirecttoRefundListPage()\" class=\"govuk-button govuk-button--secondary marginright\"> Previous</button>\n <button (click)=\"processRefundSubmit()\" class=\"govuk-button button\"\n data-module=\"govuk-button\">\n Submit \n </button>\n <br/><br/>\n </div>\n \n <div *ngIf=\"!isFromRefundListPage\" class=\"govuk-button-group margin\">\n\n <p><a (click)=\"loadRefundsHomePage()\" class=\"govuk-link pointer\" data-module=\"govuk-button\">Cancel</a></p>\n</div>\n</form>\n </div>\n \n\n </main>\n \n <main class=\"govuk-main-wrapper govuk-main-wrapper--l success-page-padding--top25\" [ngClass]=\"{'govuk-radios__conditional--hidden': !isSuccesspageEnable}\" id=\"main-content\" role=\"main\" >\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-panel govuk-panel-refund--confirmation\">\n <h1 class=\"heading-xlarge\">\n {{successMsg}}\n </h1>\n </div>\n <p class=\"govuk-body process-refund-font\">\n <a (click) = \"goToCaseReview()\" class=\"govuk-link pointer\">Return to case</a>\n </p>\n </div>\n </main>\n</div>\n</ng-container>\n\n",
|
|
295
|
+
styles: [".tb-col-w{width:330px}.tr-border{border-bottom:2px solid}.payment-view-alignment{margin-left:30px}.govuk-button{float:left!important;font-size:19px;margin-top:2em!important}.remission{margin-bottom:7em}.process-refund-font{font-size:19px!important}.govuk-radios__conditional--hidden{display:none}.inline-error-message{color:#c11717;font-weight:700;margin-top:10px;border-color:#c11717}.inline-error-class{outline:#c11717 solid 3px;outline-offset:0;border-color:#c11717}.form-group-error{border-left:5px solid #c11717;padding-left:15px}.govuk-panel-refund--confirmation{color:#fff;background:#00703c}.process-refund__panel{display:flex;flex-direction:column;margin-left:25px;margin-top:30px}.button-margin--left25{margin-left:25px}.success-page-padding--top25{padding-top:25px}.margin{margin-top:5em}.marginright{margin-right:1.5em}.govuk-textarea{line-height:2.25}.reason-font{font-size:19px!important}.pointer{cursor:pointer}"]
|
|
296
|
+
}),
|
|
297
|
+
__metadata("design:paramtypes", [RefundsService,
|
|
298
|
+
FormBuilder,
|
|
299
|
+
OrderslistService,
|
|
300
|
+
PaymentLibComponent,
|
|
301
|
+
Router,
|
|
302
|
+
ActivatedRoute])
|
|
303
|
+
], ProcessRefundComponent);
|
|
304
|
+
export { ProcessRefundComponent };
|
|
305
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1yZWZ1bmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9wcm9jZXNzLXJlZnVuZC9wcm9jZXNzLXJlZnVuZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQVUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFJdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBQyxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU94RCxJQUFhLHNCQUFzQixHQUFuQyxNQUFhLHNCQUFzQjtJQThCakMsWUFBb0IsY0FBOEIsRUFDOUIsV0FBd0IsRUFDeEIsaUJBQW9DLEVBQ3BDLG1CQUF3QyxFQUN4QyxNQUFjLEVBQ2QsV0FBMkI7UUFMM0IsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBN0IvQyxpQkFBWSxHQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEQsZUFBVSxHQUFXLElBQUksQ0FBQztR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Q0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2QztRQUNELElBQUcsS0FBSyxLQUFHLGFBQWEsSUFBSSxLQUFLLEtBQUcsS0FBSyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLHVCQUF1QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBRSxFQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFDLENBQUMsQ0FBQztJQUN0RyxDQUFDO0NBQ0YsQ0FBQTs7WUFuUXFDLGNBQWM7WUFDakIsV0FBVztZQUNMLGlCQUFpQjtZQUNmLG1CQUFtQjtZQUNoQyxNQUFNO1lBQ0QsY0FBYzs7QUFsQ3RDO0lBQVIsS0FBSyxFQUFFOzsrREFBeUI7QUFDeEI7SUFBUixLQUFLLEVBQUU7O2dFQUErQjtBQUY1QixzQkFBc0I7SUFMbEMsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLHNCQUFzQjtRQUNoQyxveFFBQThDOztLQUUvQyxDQUFDO3FDQStCb0MsY0FBYztRQUNqQixXQUFXO1FBQ0wsaUJBQWlCO1FBQ2YsbUJBQW1CO1FBQ2hDLE1BQU07UUFDRCxjQUFjO0dBbkNwQyxzQkFBc0IsQ0FpU2xDO1NBalNZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBPbkluaXQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtSZWZ1bmRzU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVmdW5kcy9yZWZ1bmRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgSVJlZnVuZEFjdGlvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVJlZnVuZEFjdGlvbic7XG5pbXBvcnQgeyBJUmVmdW5kTGlzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVJlZnVuZExpc3QnO1xuaW1wb3J0IHsgSVJlZnVuZFJlamVjdFJlYXNvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVJlZnVuZFJlamVjdFJlYXNvbic7XG5pbXBvcnQgeyBPcmRlcnNsaXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29yZGVyc2xpc3Quc2VydmljZSc7XG5pbXBvcnQgeyBQYXltZW50TGliQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGF5bWVudC1saWIuY29tcG9uZW50JztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjcGF5LXByb2Nlc3MtcmVmdW5kJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2Nlc3MtcmVmdW5kLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvY2Vzcy1yZWZ1bmQuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFByb2Nlc3NSZWZ1bmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSByZWZ1bmRSZWZlcmVuY2U6IHN0cmluZztcbiAgQElucHV0KCkgcmVmdW5kbGlzdHNvdXJjZTogSVJlZnVuZExpc3Q7XG5cbiAgcHJvY2Vzc1JlZnVuZEZvcm06IEZvcm1Hcm91cDtcblxuICBlcnJvck1lc3NhZ2UgPSAgdGhpcy5nZXRFcnJvck1lc3NhZ2UoZmFsc2UsICcnLCAnJywgJycpO1xuICBzZW5kbWViYWNrOiBzdHJpbmcgPSBudWxsO1xuICB2aWV3U3RhdHVzOiBzdHJpbmc7XG4gIHJlZnVuZEFjdGlvbkxpc3Q6IElSZWZ1bmRBY3Rpb25bXSA9IFtdOyBcbiAgcmVmdW5kUmVqZWN0UmVhc29uTGlzdDogSVJlZnVuZFJlamVjdFJlYXNvbltdID0gW107IFxuICBpc1NlbmRNZUJhY2tDbGlja2VkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUmVqZWN0Q2xpY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc090aGVyQ2xpY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1N1Y2Nlc3NwYWdlRW5hYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcmVmdW5kQWN0aW9uc0hhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIHJlZnVuZFJlamVjdFJlYXNvbkhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUmVhc29uRmllbGRFbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1JlYXNvbkZpZWxkSW52YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xuICByZWFzb25GaWVsZE1pbkhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIHJlYXNvbkZpZWxkTWF4SGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNSZWFzb25FbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1JlYXNvbkludmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc3VjY2Vzc01zZzogc3RyaW5nID0gbnVsbDtcbiAgbmF2aWdhdGlvbnBhZ2U6IHN0cmluZztcbiAgY2NkQ2FzZU51bWJlcjogc3RyaW5nO1xuICBpc0Zyb21SZWZ1bmRMaXN0UGFnZTogYm9vbGVhbjtcblxuICBpc0NvbmZpcm1CdXR0b25kaXNhYmxlZDogYm9vbGVhbiA9IHRydWU7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgUmVmdW5kc1NlcnZpY2U6IFJlZnVuZHNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBPcmRlcnNsaXN0U2VydmljZTogT3JkZXJzbGlzdFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcGF5bWVudExpYkNvbXBvbmVudDogUGF5bWVudExpYkNvbXBvbmVudCxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBhY3RpdmVSb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudmlld1N0YXR1cyA9ICdSZWZ1bmRQcm9jZXNzJztcbiAgICB0aGlzLlJlZnVuZHNTZXJ2aWNlLmdldFJlZnVuZEFjdGlvbnModGhpcy5yZWZ1bmRSZWZlcmVuY2UpLnN1YnNjcmliZShcbiAgICAgIHJlZnVuZEFjdGlvbkxpc3QgPT4ge1xuICAgICAgICB0aGlzLnJlZnVuZEFjdGlvbkxpc3QgPSA8YW55PnJlZnVuZEFjdGlvbkxpc3Q7XG4gICAgICB9LFxuICAgICAgZXJyID0+IHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmdldEVycm9yTWVzc2FnZSh0cnVlLCBlcnIuc3RhdHVzQ29kZSwgZXJyLmVyciwgZXJyKTtcbiAgICAgIH1cbiAgICApO1xuICAgIHRoaXMucHJvY2Vzc1JlZnVuZEZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIHJlZnVuZEFjdGlvbkZpZWxkOiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAgIF0pKSxcbiAgICAgIHJlZnVuZFJlamVjdFJlYXNvbkZpZWxkOiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAgIF0pKSxcbiAgICAgIHNlbmRNZUJhY2tGaWVsZDogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICBWYWxpZGF0b3JzLm1pbkxlbmd0aCgzKSxcbiAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjU1KSxcbiAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKCdeKFthLXpBLVowLTlcXFxccyxcXFxcLl0qKSQnKSxcblxuICAgICAgXSkpLFxuICAgICAgZW50ZXJSZWFzb25GaWVsZDogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCgzMCksXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybignXihbYS16QS1aMC05LlxcXFxzXSopJCcpLFxuICAgICAgXSkpLFxuICAgIH0pO1xuICAgdGhpcy5jY2RDYXNlTnVtYmVyID0gdGhpcy5yZWZ1bmRsaXN0c291cmNlLmNjZF9jYXNlX251bWJlcjtcblxuICAgaWYoKHR5cGVvZiB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPT09ICdzdHJpbmcnICYmIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVCA9PT0gJ2ZhbHNlJykgfHwgKHR5cGVvZiB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPT09ICdib29sZWFuJyAmJiAhdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlRBS0VQQVlNRU5UKSApIHtcbiAgICB0aGlzLmlzRnJvbVJlZnVuZExpc3RQYWdlID0gdHJ1ZTtcbiAgIH1cbiAgfVxuICBjaGVja1JlZnVuZEFjdGlvbnMoY29kZTogc3RyaW5nKSB7XG4gICAgdGhpcy5yZWZ1bmRBY3Rpb25zSGFzRXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLmlzUmVhc29uRmllbGRFbXB0eSA9IGZhbHNlO1xuICAgIHRoaXMuaXNSZWFzb25FbXB0eSA9IGZhbHNlO1xuICAgIHRoaXMuaXNSZWFzb25JbnZhbGlkID0gZmFsc2U7XG4gICAgdGhpcy5yZWZ1bmRSZWplY3RSZWFzb25IYXNFcnJvciA9IGZhbHNlO1xuICAgIGlmKGNvZGUgPT09ICdSZXR1cm4gdG8gY2FzZXdvcmtlcicpIHtcbiAgICAgIHRoaXMuaXNDb25maXJtQnV0dG9uZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgdGhpcy5pc1NlbmRNZUJhY2tDbGlja2VkID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNSZWplY3RDbGlja2VkID0gZmFsc2U7XG4gICAgICB0aGlzLmlzT3RoZXJDbGlja2VkID0gZmFsc2U7XG5cbiAgICB9IGVsc2UgaWYgKGNvZGUgPT09ICdBcHByb3ZlJykge1xuICAgICAgdGhpcy5pc1NlbmRNZUJhY2tDbGlja2VkID0gZmFsc2U7XG4gICAgICB0aGlzLmlzQ29uZmlybUJ1dHRvbmRpc2FibGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmlzUmVqZWN0Q2xpY2tlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5pc090aGVyQ2xpY2tlZCA9IGZhbHNlO1xuXG4gICAgfSBlbHNlIGlmIChjb2RlID09PSAnUmVqZWN0Jykge1xuICAgICAgdGhpcy5pc1JlamVjdENsaWNrZWQgPSB0cnVlO1xuICAgICAgdGhpcy5pc1NlbmRNZUJhY2tDbGlja2VkID0gZmFsc2U7XG4gICAgICB0aGlzLmlzT3RoZXJDbGlja2VkID0gZmFsc2U7XG4gICAgICB0aGlzLlJlZnVuZHNTZXJ2aWNlLmdldFJlZnVuZFJlamVjdFJlYXNvbnMoKS5zdWJzY3JpYmUoXG4gICAgICAgIHJlZnVuZFJlamVjdFJlYXNvbkxpc3QgPT4ge1xuICAgICAgICAgIHRoaXMucmVmdW5kUmVqZWN0UmVhc29uTGlzdCA9IDxhbnk+cmVmdW5kUmVqZWN0UmVhc29uTGlzdDtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuZ2V0RXJyb3JNZXNzYWdlKHRydWUsIGVyci5zdGF0dXNDb2RlLCBlcnIuZXJyLCBlcnIpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoY29kZSA9PT0gJ1JFMDA1Jykge1xuICAgICAgdGhpcy5pc090aGVyQ2xpY2tlZCA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChjb2RlICE9PSAnUkUwMDUnKSB7XG4gICAgICB0aGlzLmlzT3RoZXJDbGlja2VkID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIHByb2Nlc3NSZWZ1bmRTdWJtaXQoKSB7XG4gICAgbGV0IHByb2Nlc3NSZWZ1bmRSZXF1ZXN0O1xuICAgIGxldCBzdGF0dXM7XG4gICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sICdhbGwnKTtcbiAgICBjb25zdCBjb250cm9scyA9IHRoaXMucHJvY2Vzc1JlZnVuZEZvcm0uY29udHJvbHM7XG4gICAgY29uc3QgcHJvY2Vzc0Zvcm1FcnJvciA9IGNvbnRyb2xzLnNlbmRNZUJhY2tGaWVsZC5lcnJvcnM7XG5cbiAgICBpZiAodGhpcy5wcm9jZXNzUmVmdW5kRm9ybS5kaXJ0eSAmJiBjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWxpZCBcbiAgICAgICYmIChjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWx1ZSA9PSAnQXBwcm92ZSdcbiAgICAgIHx8IChjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWx1ZSA9PSAnUmVqZWN0JyAmJiBjb250cm9scy5yZWZ1bmRSZWplY3RSZWFzb25GaWVsZC52YWxpZCAmJiBjb250cm9scy5yZWZ1bmRSZWplY3RSZWFzb25GaWVsZC52YWx1ZSAhPSAnUkUwMDUnKVxuICAgICAgfHwgKGNvbnRyb2xzLnJlZnVuZEFjdGlvbkZpZWxkLnZhbHVlID09ICdSZWplY3QnICYmIGNvbnRyb2xzLnJlZnVuZFJlamVjdFJlYXNvbkZpZWxkLnZhbHVlID09ICdSRTAwNScgJiYgY29udHJvbHMuZW50ZXJSZWFzb25GaWVsZC52YWxpZClcbiAgICAgIHx8IChjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWx1ZSA9PSAnUmV0dXJuIHRvIGNhc2V3b3JrZXInICYmIGNvbnRyb2xzLnNlbmRNZUJhY2tGaWVsZC52YWxpZCkpKSB7XG4gICAgICBpZiAoY29udHJvbHMucmVmdW5kQWN0aW9uRmllbGQudmFsdWUgPT09ICdBcHByb3ZlJyl7XG4gICAgICAgIHN0YXR1cyA9ICdBUFBST1ZFJztcbiAgICAgICAgcHJvY2Vzc1JlZnVuZFJlcXVlc3QgPSB7XG4gICAgICAgICAgY29kZTonJyxcbiAgICAgICAgICByZWFzb246ICcnXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKGNvbnRyb2xzLnJlZnVuZEFjdGlvbkZpZWxkLnZhbHVlID09PSAnUmVqZWN0Jykge1xuICAgICAgICBzdGF0dXMgPSAnUkVKRUNUJztcblxuICAgICAgICBwcm9jZXNzUmVmdW5kUmVxdWVzdCA9IHtcbiAgICAgICAgICBjb2RlOiBjb250cm9scy5yZWZ1bmRSZWplY3RSZWFzb25GaWVsZC52YWx1ZSA/IGNvbnRyb2xzLnJlZnVuZFJlamVjdFJlYXNvbkZpZWxkLnZhbHVlIDogJycsXG4gICAgICAgICAgcmVhc29uOiBjb250cm9scy5yZWZ1bmRSZWplY3RSZWFzb25GaWVsZC52YWx1ZSA9PSAnUkUwMDUnID8gY29udHJvbHMuZW50ZXJSZWFzb25GaWVsZC52YWx1ZSA6ICcnXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKGNvbnRyb2xzLnJlZnVuZEFjdGlvbkZpZWxkLnZhbHVlID09PSAnUmV0dXJuIHRvIGNhc2V3b3JrZXInKSB7XG4gICAgICAgIHN0YXR1cyA9ICdTRU5EQkFDSyc7XG5cbiAgICAgICAgcHJvY2Vzc1JlZnVuZFJlcXVlc3QgPSB7XG4gICAgICAgICAgY29kZTogJycsXG4gICAgICAgICAgcmVhc29uOiBjb250cm9scy5zZW5kTWVCYWNrRmllbGQudmFsdWVcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHRoaXMuUmVmdW5kc1NlcnZpY2UucGF0Y2hSZWZ1bmRBY3Rpb25zKHByb2Nlc3NSZWZ1bmRSZXF1ZXN0LCB0aGlzLnJlZnVuZFJlZmVyZW5jZSwgc3RhdHVzKS5zdWJzY3JpYmUoXG4gICAgICAgIHJlc3BvbnNlID0+IHtcbiAgICAgICAgICB0aGlzLmlzU3VjY2Vzc3BhZ2VFbmFibGUgPSB0cnVlO1xuICAgICAgICAgIC8vIHRoaXMuc3VjY2Vzc01zZyA9IEpTT04ucGFyc2UocmVzcG9uc2UpWydkYXRhJ107XG4gICAgICAgICAgdGhpcy5zdWNjZXNzTXNnID0gcmVzcG9uc2UucmVwbGFjZSgvWydcIl0rL2csICcnKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuZ2V0RXJyb3JNZXNzYWdlKHRydWUsIGVyci5zdGF0dXNDb2RlLCBlcnIuZXJyLCBlcnIpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZihjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWx1ZSA9PSBcIlwiKSB7XG4gICAgICAgIHRoaXMucmVzZXRGb3JtKFt0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sICdhY3Rpb24nKTtcbiAgICAgIH1cbiAgICAgIGlmKGNvbnRyb2xzLnJlZnVuZEFjdGlvbkZpZWxkLnZhbHVlID09ICdSZWplY3QnICYmIGNvbnRyb2xzLnJlZnVuZFJlamVjdFJlYXNvbkZpZWxkLnZhbHVlID09IFwiXCIpIHtcbiAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXSwgJ3JlamVjdFJlYXNvbicpO1xuICAgICAgfVxuICAgICAgaWYoY29udHJvbHMucmVmdW5kQWN0aW9uRmllbGQudmFsdWUgPT0gJ1JldHVybiB0byBjYXNld29ya2VyJykge1xuICAgICAgICBpZihjb250cm9scy5zZW5kTWVCYWNrRmllbGQudmFsdWUgPT0gJycgKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXSwgJ2FkZEFyZWFzb24nKTtcbiAgICAgICAgfVxuICAgICAgICBpZihjb250cm9scy5zZW5kTWVCYWNrRmllbGQudmFsdWUgIT0gJycgJiYgY29udHJvbHMuc2VuZE1lQmFja0ZpZWxkLmludmFsaWQgKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXSwgJ2FkZEFyZWFzb24nKTtcbiAgICAgICAgfVxuICAgICAgICBpZihwcm9jZXNzRm9ybUVycm9yICYmIHByb2Nlc3NGb3JtRXJyb3IubWlubGVuZ3RoICYmIHByb2Nlc3NGb3JtRXJyb3IubWlubGVuZ3RoLmFjdHVhbExlbmd0aCA8IDMgKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXSwgJ2FkZEFyZWFzb24nKTtcbiAgICAgICAgfVxuICAgICAgICBpZihwcm9jZXNzRm9ybUVycm9yICYmIHByb2Nlc3NGb3JtRXJyb3IubWF4bGVuZ3RoICYmIHByb2Nlc3NGb3JtRXJyb3IubWF4bGVuZ3RoLmFjdHVhbExlbmd0aCA+IDI1NSApIHtcbiAgICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2VdLCAnYWRkQXJlYXNvbicpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZihjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWx1ZSA9PSAnUmVqZWN0JyAmJiBjb250cm9scy5yZWZ1bmRSZWplY3RSZWFzb25GaWVsZC52YWx1ZSA9PSAnUkUwMDUnKSB7XG4gICAgICAgIGlmKGNvbnRyb2xzLmVudGVyUmVhc29uRmllbGQudmFsdWUgPT09IFwiXCIpIHtcbiAgICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2VdLCAnZW50ZXJSZWFzb24nKTtcbiAgICAgICAgfVxuICAgICAgICBpZihjb250cm9scy5lbnRlclJlYXNvbkZpZWxkLnZhbHVlIT09IFwiXCIgJiYgY29udHJvbHMuZW50ZXJSZWFzb25GaWVsZC5pbnZhbGlkKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlXSwgJ2VudGVyUmVhc29uJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuICBnZXRFcnJvck1lc3NhZ2UoaXNFcnJvckV4aXN0LCBzdGF0dXMsIGVycm9yTXNnLCBlcnIpIHtcbiAgICBsZXQgYm9keVR4dCA9ICdQbGVhc2UgdHJ5IGFnYWluIGxhdGVyJztcbiAgICBpZiAoc3RhdHVzICE9PSA1MDApIHtcbiAgICAgIGlmIChlcnJvck1zZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGJvZHlUeHQgPSBlcnJvck1zZztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJvZHlUeHQgPSBlcnI7XG4gICAgICB9XG4gICAgICBcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiAnU29tZXRoaW5nIHdlbnQgd3JvbmcnLFxuICAgICAgYm9keTogYm9keVR4dCxcbiAgICAgIHNob3dFcnJvcjogaXNFcnJvckV4aXN0XG4gICAgfTtcbiAgfVxuICBsb2FkUmVmdW5kTGlzdFBhZ2UoKSB7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRuYXZpZ2F0aW9uUGFnZVZhbHVlKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLm5hdmlnYXRpb25wYWdlID0gZGF0YSk7XG4gICAgaWYgKHRoaXMubmF2aWdhdGlvbnBhZ2UgPT09ICdjYXNldHJhbnNhY3Rpb25zJykge1xuICAgICAgLy8gd2luZG93LmxvY2F0aW9uLmhyZWY9Jy9yZWZ1bmQtbGlzdD90YWtlUGF5bWVudD1mYWxzZSZyZWZ1bmRsaXN0PXRydWUnO1xuICAgICAgLy8gLy8gdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRuYXZpZ2F0aW9uUGFnZSgnY2FzZXRyYW5zYWN0aW9ucycpO1xuICAgICAgLy8gLy8gdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRpc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2UoZmFsc2UpO1xuICAgICAgLy8gLy8gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlZJRVcgPSdjYXNlLXRyYW5zYWN0aW9ucyc7XG4gICAgICAvLyAvLyB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAnY2FzZS10cmFuc2FjdGlvbnMnO1xuICAgICAgLy8gLy8gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPSB0cnVlO1xuICAgICAgLy8gLy8gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzUmVmdW5kU3RhdHVzVmlldyA9IGZhbHNlO1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ3JlZnVuZHN0YXR1c2xpc3QnO1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzUmVmdW5kU3RhdHVzVmlldyA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdyZWZ1bmRzdGF0dXNsaXN0JztcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc1JlZnVuZFN0YXR1c1ZpZXcgPSB0cnVlO1xuICAgIH1cbiAgfVxuICBsb2FkUmVmdW5kc0hvbWVQYWdlKCkge1xuICAgIGlmKHR5cGVvZiB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPT09ICdzdHJpbmcnICYmIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVCA9PT0gJ2ZhbHNlJykge1xuICAgICAgLy93aW5kb3cubG9jYXRpb24uaHJlZj0nL3JlZnVuZC1saXN0P3Rha2VQYXltZW50PWZhbHNlJnJlZnVuZGxpc3Q9dHJ1ZSc7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAncmVmdW5kLWxpc3QnO1xuICAgICB9XG4gICAgIGVsc2Uge1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRuYXZpZ2F0aW9uUGFnZSgnY2FzZXRyYW5zYWN0aW9ucycpO1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRpc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2UoZmFsc2UpO1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlZJRVcgPSdjYXNlLXRyYW5zYWN0aW9ucyc7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAnY2FzZS10cmFuc2FjdGlvbnMnO1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPSB0cnVlO1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzUmVmdW5kU3RhdHVzVmlldyA9IGZhbHNlO1xuICAgICB9XG4gIH1cbiByZWRpcmVjdHRvUmVmdW5kTGlzdFBhZ2UoKSB7XG4gICBpZigodHlwZW9mIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVCA9PT0gJ3N0cmluZycgJiYgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlRBS0VQQVlNRU5UID09PSAnZmFsc2UnKSB8fCAodHlwZW9mIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVCA9PT0gJ2Jvb2xlYW4nICYmICF0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQpICkge1xuICAgLy8gd2luZG93LmxvY2F0aW9uLmhyZWY9Jy9yZWZ1bmQtbGlzdD90YWtlUGF5bWVudD1mYWxzZSZyZWZ1bmRsaXN0PXRydWUnO1xuICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ3JlZnVuZC1saXN0JztcbiAgIH1cbiAgIGVsc2Uge1xuICAgIHRoaXMubG9hZFJlZnVuZExpc3RQYWdlKCk7XG4gICB9XG4gIH1cbiAgLy8gbG9hZENhc2VUcmFuc2FjdGlvblBhZ2UoKSB7XG4gIC8vICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzUmVmdW5kU3RhdHVzVmlldyA9IGZhbHNlO1xuICAvLyAgIHRoaXMucGF5bWVudExpYkNvfW1wb25lbnQuVEFLRVBBWU1FTlQgPSB0cnVlO1xuICAvLyAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdjYXNlLXRyYW5zYWN0aW9ucyc7XG4gIC8vICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UuZ2V0QlNmZWF0dXJlKCkuc3Vic2NyaWJlKFxuICAvLyAgICAgZmVhdHVyZXMgPT4ge1xuICAvLyAgICAgICBsZXQgcmVzdWx0ID0gSlNPTi5wYXJzZShmZWF0dXJlcykuZmlsdGVyKGZlYXR1cmUgPT4gZmVhdHVyZS51aWQgPT09IEJTX0VOQUJMRV9GTEFHKTtcbiAgLy8gICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPSByZXN1bHRbMF0gPyByZXN1bHRbMF0uZW5hYmxlIDogZmFsc2U7XG4gIC8vICAgICB9LFxuICAvLyAgICAgZXJyID0+IHtcbiAgLy8gICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPSBmYWxzZTtcbiAgLy8gICAgIH1cbiAgLy8gICApO1xuXG4gIC8vICAgbGV0IHBhcnRVcmwgPSBgc2VsZWN0ZWRPcHRpb249JHt0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuU0VMRUNURURfT1BUSU9OfWA7XG4gIC8vICAgcGFydFVybCArPSB0aGlzLmJzUGF5bWVudERjbk51bWJlciA/IGAmZGNuPSR7dGhpcy5ic1BheW1lbnREY25OdW1iZXJ9YCA6ICcnO1xuICAvLyAgIHBhcnRVcmwgKz0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPyAnJmlzQnVsa1NjYW5uaW5nPUVuYWJsZScgOiAnJmlzQnVsa1NjYW5uaW5nPURpc2FibGUnO1xuICAvLyAgIHBhcnRVcmwgKz0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTVFVSTk9GRiA/ICcmaXNUdXJuT2ZmPUVuYWJsZScgOiAnJmlzVHVybk9mZj1EaXNhYmxlJztcbiAgLy8gICBwYXJ0VXJsICs9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU1NGRU5BQkxFID8gJyZpc1N0Rml4RW5hYmxlPUVuYWJsZScgOiAnJmlzU3RGaXhFbmFibGU9RGlzYWJsZSc7XG4gIC8vICAgcGFydFVybCArPSBgJmNhc2VUeXBlPSR7dGhpcy5wYXltZW50TGliQ29tcG9uZW50LkNBU0VUWVBFfWA7XG4gIC8vICAgcGFydFVybCArPSB0aGlzLmlzTmV3UGNpcGFsT2ZmID8gJyZpc05ld1BjaXBhbE9mZj1FbmFibGUnIDogJyZpc05ld1BjaXBhbE9mZj1EaXNhYmxlJztcbiAgLy8gICBwYXJ0VXJsICs9IHRoaXMuaXNPbGRQY2lwYWxPZmYgPyAnJmlzT2xkUGNpcGFsT2ZmPUVuYWJsZScgOiAnJmlzT2xkUGNpcGFsT2ZmPURpc2FibGUnO1xuICAvLyAgIGxldCB1cmwgPSBgL3BheW1lbnQtaGlzdG9yeS8ke3RoaXMuY2NkQ2FzZU51bWJlcn0/dmlldz1jYXNlLXRyYW5zYWN0aW9ucyZ0YWtlUGF5bWVudD10cnVlJiR7cGFydFVybH1gO1xuICAvLyAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodXJsKTtcbiAgLy8gfVxuXG4gIHJlc2V0Rm9ybSh2YWxzLCBmaWVsZCkge1xuICAgIGlmKGZpZWxkPT09J2FjdGlvbicgfHwgZmllbGQ9PT0nYWxsJykge1xuICAgICAgdGhpcy5yZWZ1bmRBY3Rpb25zSGFzRXJyb3IgPSB2YWxzWzBdO1xuICAgIH1cbiAgICBpZihmaWVsZD09PSdyZWplY3RSZWFzb24nIHx8IGZpZWxkPT09J2FsbCcpIHtcbiAgICAgIHRoaXMucmVmdW5kUmVqZWN0UmVhc29uSGFzRXJyb3IgPSB2YWxzWzFdO1xuICAgIH1cbiAgICBpZihmaWVsZD09PSdhZGRBcmVhc29uJyB8fCBmaWVsZD09PSdhbGwnKSB7XG4gICAgICB0aGlzLmlzUmVhc29uRmllbGRFbXB0eSA9IHZhbHNbMl07XG4gICAgICB0aGlzLmlzUmVhc29uRmllbGRJbnZhbGlkID0gdmFsc1szXTtcbiAgICAgIHRoaXMucmVhc29uRmllbGRNaW5IYXNFcnJvciA9IHZhbHNbNF07XG4gICAgICB0aGlzLnJlYXNvbkZpZWxkTWF4SGFzRXJyb3IgPSB2YWxzWzVdO1xuICAgIH1cbiAgICBpZihmaWVsZD09PSdlbnRlclJlYXNvbicgfHwgZmllbGQ9PT0nYWxsJykge1xuICAgICAgdGhpcy5pc1JlYXNvbkVtcHR5ID0gdmFsc1s2XTtcbiAgICAgIHRoaXMuaXNSZWFzb25JbnZhbGlkID0gdmFsc1s3XTtcbiAgICB9XG4gIH1cblxuICBnb1RvQ2FzZVJldmlldygpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9jYXNlcy9jYXNlLWRldGFpbHMvJHt0aGlzLmNjZENhc2VOdW1iZXJ9YF0sIHtyZWxhdGl2ZVRvOiB0aGlzLmFjdGl2ZVJvdXRlfSk7XG4gIH1cbn1cbiJdfQ==
|