@hmcts/ccpay-web-component 4.0.0-beta513 → 4.0.0-beta514

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/bundles/hmcts-ccpay-web-component.umd.js +6650 -2965
  2. package/bundles/hmcts-ccpay-web-component.umd.js.map +1 -1
  3. package/bundles/hmcts-ccpay-web-component.umd.min.js +1 -1
  4. package/bundles/hmcts-ccpay-web-component.umd.min.js.map +1 -1
  5. package/esm2015/hmcts-ccpay-web-component.js +33 -26
  6. package/esm2015/lib/components/add-remission/add-remission.component.js +848 -144
  7. package/esm2015/lib/components/allocate-payments/allocate-payments.component.js +194 -277
  8. package/esm2015/lib/components/card-details/card-details.component.js +22 -34
  9. package/esm2015/lib/components/case-transactions/case-transactions.component.js +726 -537
  10. package/esm2015/lib/components/error-banner/error-banner.component.js +5 -17
  11. package/esm2015/lib/components/fee-summary/fee-summary.component.js +146 -257
  12. package/esm2015/lib/components/mark-unidentified-payment/mark-unidentified-payment.component.js +86 -143
  13. package/esm2015/lib/components/mark-unsolicited-payment/mark-unsolicited-payment.component.js +106 -162
  14. package/esm2015/lib/components/page-not-found.component.js +3 -4
  15. package/esm2015/lib/components/payment-list/payment-list.component.js +22 -80
  16. package/esm2015/lib/components/payment-view/payment-view.component.js +319 -137
  17. package/esm2015/lib/components/pba-details/pba-details.component.js +5 -32
  18. package/esm2015/lib/components/process-refund/process-refund.component.js +380 -0
  19. package/esm2015/lib/components/processed-payments/processed-payments.component.js +13 -41
  20. package/esm2015/lib/components/refund-list/refund-list.component.js +140 -0
  21. package/esm2015/lib/components/refund-status/refund-status.component.js +509 -0
  22. package/esm2015/lib/components/refunds/refunds.component.js +23 -0
  23. package/esm2015/lib/components/reports/reports.component.js +54 -109
  24. package/esm2015/lib/components/status-history/status-history.component.js +28 -42
  25. package/esm2015/lib/components/table/table.component.js +171 -0
  26. package/esm2015/lib/components/unprocessed-payments/unprocessed-payments.component.js +115 -113
  27. package/esm2015/lib/interfaces/AddRemissionRequest.js +2 -3
  28. package/esm2015/lib/interfaces/AddRetroRemissionRequest.js +21 -0
  29. package/esm2015/lib/interfaces/AllocatePaymentRequest.js +2 -3
  30. package/esm2015/lib/interfaces/IAllocationPaymentsRequest.js +2 -3
  31. package/esm2015/lib/interfaces/IBSPayments.js +38 -35
  32. package/esm2015/lib/interfaces/ICardDetails.js +14 -13
  33. package/esm2015/lib/interfaces/IFee.js +44 -43
  34. package/esm2015/lib/interfaces/IOrderReferenceFee.js +25 -0
  35. package/esm2015/lib/interfaces/IPatchRefundAction.js +15 -0
  36. package/esm2015/lib/interfaces/IPayment.js +56 -55
  37. package/esm2015/lib/interfaces/IPaymentGroup.js +12 -11
  38. package/esm2015/lib/interfaces/IPaymentStatus.js +2 -3
  39. package/esm2015/lib/interfaces/IPaymentView.js +17 -0
  40. package/esm2015/lib/interfaces/IPayments.js +6 -5
  41. package/esm2015/lib/interfaces/IRefundAction.js +15 -0
  42. package/esm2015/lib/interfaces/IRefundList.js +29 -0
  43. package/esm2015/lib/interfaces/IRefundReasons.js +19 -0
  44. package/esm2015/lib/interfaces/IRefundRejectReason.js +15 -0
  45. package/esm2015/lib/interfaces/IRefundStatus.js +23 -0
  46. package/esm2015/lib/interfaces/IRefundStatusHistory.js +15 -0
  47. package/esm2015/lib/interfaces/IRemission.js +18 -17
  48. package/esm2015/lib/interfaces/IResubmitRefundRequest.js +21 -0
  49. package/esm2015/lib/interfaces/IStatusHistories.js +12 -11
  50. package/esm2015/lib/interfaces/IStatusHistory.js +14 -13
  51. package/esm2015/lib/interfaces/IssueRefundRequest.js +25 -0
  52. package/esm2015/lib/interfaces/PayhubAntennaRequest.js +3 -4
  53. package/esm2015/lib/interfaces/PaymentToPayhubRequest.js +3 -4
  54. package/esm2015/lib/interfaces/PostIssueRefundRetroRemission.js +17 -0
  55. package/esm2015/lib/interfaces/PostRefundRetroRemission.js +21 -0
  56. package/esm2015/lib/interfaces/RefundsRequest.js +21 -0
  57. package/esm2015/lib/interfaces/UnidentifiedPaymentsRequest.js +2 -3
  58. package/esm2015/lib/interfaces/UnsolicitedPaymentsRequest.js +2 -3
  59. package/esm2015/lib/payment-lib.component.js +71 -9
  60. package/esm2015/lib/payment-lib.module.js +29 -6
  61. package/esm2015/lib/payment-lib.service.js +18 -4
  62. package/esm2015/lib/pipes/capitalize.pipe.js +24 -0
  63. package/esm2015/lib/pipes/ccd-hyphens.pipe.js +3 -4
  64. package/esm2015/lib/pipes/key-value.pipe.js +3 -4
  65. package/esm2015/lib/pipes/sanitize-html.pipe.js +7 -5
  66. package/esm2015/lib/services/bulk-scaning-payment/bulk-scaning-payment.service.js +37 -14
  67. package/esm2015/lib/services/card-details/card-details.service.js +19 -8
  68. package/esm2015/lib/services/case-transactions/case-transactions.service.js +19 -8
  69. package/esm2015/lib/services/orderslist.service.js +211 -0
  70. package/esm2015/lib/services/payment-list/payment-list.service.js +19 -8
  71. package/esm2015/lib/services/payment-view/payment-view.service.js +81 -10
  72. package/esm2015/lib/services/refunds/refunds.service.js +196 -0
  73. package/esm2015/lib/services/shared/error-handler.service.js +6 -4
  74. package/esm2015/lib/services/shared/httpclient/webcomponent.http.client.js +17 -8
  75. package/esm2015/lib/services/shared/logger/console-logger.service.js +7 -5
  76. package/esm2015/lib/services/shared/logger/logger.service.js +7 -5
  77. package/esm2015/lib/services/status-history/status-history.service.js +19 -8
  78. package/esm2015/lib/services/xl-file/xl-file.service.js +56 -51
  79. package/esm2015/public_api.js +1 -2
  80. package/esm5/hmcts-ccpay-web-component.js +33 -26
  81. package/esm5/lib/components/add-remission/add-remission.component.js +916 -51
  82. package/esm5/lib/components/allocate-payments/allocate-payments.component.js +203 -63
  83. package/esm5/lib/components/card-details/card-details.component.js +20 -7
  84. package/esm5/lib/components/case-transactions/case-transactions.component.js +797 -71
  85. package/esm5/lib/components/error-banner/error-banner.component.js +3 -4
  86. package/esm5/lib/components/fee-summary/fee-summary.component.js +149 -44
  87. package/esm5/lib/components/mark-unidentified-payment/mark-unidentified-payment.component.js +84 -29
  88. package/esm5/lib/components/mark-unsolicited-payment/mark-unsolicited-payment.component.js +104 -40
  89. package/esm5/lib/components/page-not-found.component.js +3 -4
  90. package/esm5/lib/components/payment-list/payment-list.component.js +21 -8
  91. package/esm5/lib/components/payment-view/payment-view.component.js +379 -21
  92. package/esm5/lib/components/pba-details/pba-details.component.js +3 -4
  93. package/esm5/lib/components/process-refund/process-refund.component.js +456 -0
  94. package/esm5/lib/components/processed-payments/processed-payments.component.js +11 -6
  95. package/esm5/lib/components/refund-list/refund-list.component.js +143 -0
  96. package/esm5/lib/components/refund-status/refund-status.component.js +568 -0
  97. package/esm5/lib/components/refunds/refunds.component.js +29 -0
  98. package/esm5/lib/components/reports/reports.component.js +52 -18
  99. package/esm5/lib/components/status-history/status-history.component.js +27 -9
  100. package/esm5/lib/components/table/table.component.js +201 -0
  101. package/esm5/lib/components/unprocessed-payments/unprocessed-payments.component.js +126 -24
  102. package/esm5/lib/interfaces/AddRemissionRequest.js +2 -3
  103. package/esm5/lib/interfaces/AddRetroRemissionRequest.js +19 -0
  104. package/esm5/lib/interfaces/AllocatePaymentRequest.js +2 -3
  105. package/esm5/lib/interfaces/IAllocationPaymentsRequest.js +2 -3
  106. package/esm5/lib/interfaces/IBSPayments.js +38 -35
  107. package/esm5/lib/interfaces/ICardDetails.js +14 -13
  108. package/esm5/lib/interfaces/IFee.js +44 -43
  109. package/esm5/lib/interfaces/IOrderReferenceFee.js +25 -0
  110. package/esm5/lib/interfaces/IPatchRefundAction.js +15 -0
  111. package/esm5/lib/interfaces/IPayment.js +56 -55
  112. package/esm5/lib/interfaces/IPaymentGroup.js +12 -11
  113. package/esm5/lib/interfaces/IPaymentStatus.js +2 -3
  114. package/esm5/lib/interfaces/IPaymentView.js +17 -0
  115. package/esm5/lib/interfaces/IPayments.js +6 -5
  116. package/esm5/lib/interfaces/IRefundAction.js +15 -0
  117. package/esm5/lib/interfaces/IRefundList.js +29 -0
  118. package/esm5/lib/interfaces/IRefundReasons.js +19 -0
  119. package/esm5/lib/interfaces/IRefundRejectReason.js +15 -0
  120. package/esm5/lib/interfaces/IRefundStatus.js +23 -0
  121. package/esm5/lib/interfaces/IRefundStatusHistory.js +15 -0
  122. package/esm5/lib/interfaces/IRemission.js +18 -17
  123. package/esm5/lib/interfaces/IResubmitRefundRequest.js +19 -0
  124. package/esm5/lib/interfaces/IStatusHistories.js +12 -11
  125. package/esm5/lib/interfaces/IStatusHistory.js +14 -13
  126. package/esm5/lib/interfaces/IssueRefundRequest.js +22 -0
  127. package/esm5/lib/interfaces/PayhubAntennaRequest.js +3 -4
  128. package/esm5/lib/interfaces/PaymentToPayhubRequest.js +3 -4
  129. package/esm5/lib/interfaces/PostIssueRefundRetroRemission.js +16 -0
  130. package/esm5/lib/interfaces/PostRefundRetroRemission.js +19 -0
  131. package/esm5/lib/interfaces/RefundsRequest.js +19 -0
  132. package/esm5/lib/interfaces/UnidentifiedPaymentsRequest.js +2 -3
  133. package/esm5/lib/interfaces/UnsolicitedPaymentsRequest.js +2 -3
  134. package/esm5/lib/payment-lib.component.js +58 -7
  135. package/esm5/lib/payment-lib.module.js +29 -6
  136. package/esm5/lib/payment-lib.service.js +25 -4
  137. package/esm5/lib/pipes/capitalize.pipe.js +32 -0
  138. package/esm5/lib/pipes/ccd-hyphens.pipe.js +3 -4
  139. package/esm5/lib/pipes/key-value.pipe.js +3 -4
  140. package/esm5/lib/pipes/sanitize-html.pipe.js +7 -5
  141. package/esm5/lib/services/bulk-scaning-payment/bulk-scaning-payment.service.js +37 -14
  142. package/esm5/lib/services/card-details/card-details.service.js +19 -8
  143. package/esm5/lib/services/case-transactions/case-transactions.service.js +19 -8
  144. package/esm5/lib/services/orderslist.service.js +276 -0
  145. package/esm5/lib/services/payment-list/payment-list.service.js +19 -8
  146. package/esm5/lib/services/payment-view/payment-view.service.js +112 -10
  147. package/esm5/lib/services/refunds/refunds.service.js +236 -0
  148. package/esm5/lib/services/shared/error-handler.service.js +6 -4
  149. package/esm5/lib/services/shared/httpclient/webcomponent.http.client.js +17 -8
  150. package/esm5/lib/services/shared/logger/console-logger.service.js +7 -5
  151. package/esm5/lib/services/shared/logger/logger.service.js +7 -5
  152. package/esm5/lib/services/status-history/status-history.service.js +19 -8
  153. package/esm5/lib/services/xl-file/xl-file.service.js +62 -51
  154. package/esm5/public_api.js +1 -2
  155. package/fesm2015/hmcts-ccpay-web-component.js +3867 -2225
  156. package/fesm2015/hmcts-ccpay-web-component.js.map +1 -1
  157. package/fesm5/hmcts-ccpay-web-component.js +6718 -2847
  158. package/fesm5/hmcts-ccpay-web-component.js.map +1 -1
  159. package/hmcts-ccpay-web-component.d.ts +31 -23
  160. package/hmcts-ccpay-web-component.metadata.json +1 -1
  161. package/lib/components/add-remission/add-remission.component.d.ts +72 -2
  162. package/lib/components/allocate-payments/allocate-payments.component.d.ts +16 -4
  163. package/lib/components/case-transactions/case-transactions.component.d.ts +52 -1
  164. package/lib/components/fee-summary/fee-summary.component.d.ts +3 -1
  165. package/lib/components/payment-view/payment-view.component.d.ts +37 -1
  166. package/lib/components/process-refund/process-refund.component.d.ts +53 -0
  167. package/lib/components/refund-list/refund-list.component.d.ts +23 -0
  168. package/lib/components/refund-status/refund-status.component.d.ts +68 -0
  169. package/lib/components/refunds/refunds.component.d.ts +5 -0
  170. package/lib/components/status-history/status-history.component.d.ts +1 -0
  171. package/lib/components/table/table.component.d.ts +35 -0
  172. package/lib/components/unprocessed-payments/unprocessed-payments.component.d.ts +15 -4
  173. package/lib/interfaces/AddRetroRemissionRequest.d.ts +5 -0
  174. package/lib/interfaces/IBSPayments.d.ts +1 -0
  175. package/lib/interfaces/IOrderReferenceFee.d.ts +9 -0
  176. package/lib/interfaces/IPatchRefundAction.d.ts +4 -0
  177. package/lib/interfaces/IPaymentView.d.ts +5 -0
  178. package/lib/interfaces/IRefundAction.d.ts +4 -0
  179. package/lib/interfaces/IRefundList.d.ts +14 -0
  180. package/lib/interfaces/IRefundReasons.d.ts +6 -0
  181. package/lib/interfaces/IRefundRejectReason.d.ts +4 -0
  182. package/lib/interfaces/IRefundStatus.d.ts +8 -0
  183. package/lib/interfaces/IRefundStatusHistory.d.ts +5 -0
  184. package/lib/interfaces/IResubmitRefundRequest.d.ts +5 -0
  185. package/lib/interfaces/IssueRefundRequest.d.ts +6 -0
  186. package/lib/interfaces/PostIssueRefundRetroRemission.d.ts +4 -0
  187. package/lib/interfaces/PostRefundRetroRemission.d.ts +5 -0
  188. package/lib/interfaces/RefundsRequest.d.ts +5 -0
  189. package/lib/payment-lib.component.d.ts +18 -1
  190. package/lib/payment-lib.service.d.ts +3 -0
  191. package/lib/pipes/capitalize.pipe.d.ts +5 -0
  192. package/lib/services/orderslist.service.d.ts +40 -0
  193. package/lib/services/payment-view/payment-view.service.d.ts +12 -0
  194. package/lib/services/refunds/refunds.service.d.ts +30 -0
  195. package/lib/services/xl-file/xl-file.service.d.ts +6 -6
  196. package/package.json +1 -1
@@ -0,0 +1,456 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { Component, Input } from '@angular/core';
6
+ import { FormBuilder, Validators, FormControl } from '@angular/forms';
7
+ import { RefundsService } from '../../services/refunds/refunds.service';
8
+ import { OrderslistService } from '../../services/orderslist.service';
9
+ import { PaymentLibComponent } from '../../payment-lib.component';
10
+ var ProcessRefundComponent = /** @class */ (function () {
11
+ function ProcessRefundComponent(RefundsService, formBuilder, OrderslistService, paymentLibComponent) {
12
+ this.RefundsService = RefundsService;
13
+ this.formBuilder = formBuilder;
14
+ this.OrderslistService = OrderslistService;
15
+ this.paymentLibComponent = paymentLibComponent;
16
+ this.errorMessage = this.getErrorMessage(false, '', '');
17
+ this.sendmeback = null;
18
+ this.refundActionList = [];
19
+ this.refundRejectReasonList = [];
20
+ this.isSendMeBackClicked = false;
21
+ this.isRejectClicked = false;
22
+ this.isOtherClicked = false;
23
+ this.isSuccesspageEnable = false;
24
+ this.refundActionsHasError = false;
25
+ this.refundRejectReasonHasError = false;
26
+ this.isReasonFieldEmpty = false;
27
+ this.isReasonFieldInvalid = false;
28
+ this.reasonFieldMinHasError = false;
29
+ this.reasonFieldMaxHasError = false;
30
+ this.isReasonEmpty = false;
31
+ this.isReasonInvalid = false;
32
+ this.successMsg = null;
33
+ this.isConfirmButtondisabled = true;
34
+ }
35
+ /**
36
+ * @return {?}
37
+ */
38
+ ProcessRefundComponent.prototype.ngOnInit = /**
39
+ * @return {?}
40
+ */
41
+ function () {
42
+ var _this = this;
43
+ this.viewStatus = 'RefundProcess';
44
+ this.RefundsService.getRefundActions(this.refundReference).subscribe((/**
45
+ * @param {?} refundActionList
46
+ * @return {?}
47
+ */
48
+ function (refundActionList) {
49
+ _this.refundActionList = (/** @type {?} */ (refundActionList));
50
+ }), (/**
51
+ * @param {?} err
52
+ * @return {?}
53
+ */
54
+ function (err) {
55
+ _this.errorMessage = _this.getErrorMessage(true, err.statusCode, err.err);
56
+ }));
57
+ this.processRefundForm = this.formBuilder.group({
58
+ refundActionField: new FormControl('', Validators.compose([
59
+ Validators.required
60
+ ])),
61
+ refundRejectReasonField: new FormControl('', Validators.compose([
62
+ Validators.required
63
+ ])),
64
+ sendMeBackField: new FormControl('', Validators.compose([
65
+ Validators.required,
66
+ Validators.minLength(3),
67
+ Validators.maxLength(255),
68
+ Validators.pattern('^([a-zA-Z0-9\\s,\\.]*)$'),
69
+ ])),
70
+ enterReasonField: new FormControl('', Validators.compose([
71
+ Validators.required,
72
+ Validators.maxLength(30),
73
+ Validators.pattern('^([a-zA-Z0-9\\s]*)$'),
74
+ ])),
75
+ });
76
+ };
77
+ /**
78
+ * @param {?} code
79
+ * @return {?}
80
+ */
81
+ ProcessRefundComponent.prototype.checkRefundActions = /**
82
+ * @param {?} code
83
+ * @return {?}
84
+ */
85
+ function (code) {
86
+ var _this = this;
87
+ if (code === 'Return to caseworker') {
88
+ this.isConfirmButtondisabled = true;
89
+ this.isSendMeBackClicked = true;
90
+ this.isRejectClicked = false;
91
+ this.isOtherClicked = false;
92
+ }
93
+ else if (code === 'Approve') {
94
+ this.isSendMeBackClicked = false;
95
+ this.isConfirmButtondisabled = false;
96
+ this.isRejectClicked = false;
97
+ this.isOtherClicked = false;
98
+ }
99
+ else if (code === 'Reject') {
100
+ this.isRejectClicked = true;
101
+ this.isSendMeBackClicked = false;
102
+ this.isOtherClicked = false;
103
+ this.RefundsService.getRefundRejectReasons().subscribe((/**
104
+ * @param {?} refundRejectReasonList
105
+ * @return {?}
106
+ */
107
+ function (refundRejectReasonList) {
108
+ _this.refundRejectReasonList = (/** @type {?} */ (refundRejectReasonList));
109
+ }), (/**
110
+ * @param {?} err
111
+ * @return {?}
112
+ */
113
+ function (err) {
114
+ _this.errorMessage = _this.getErrorMessage(true, err.statusCode, err.err);
115
+ }));
116
+ }
117
+ else if (code === 'RE005') {
118
+ this.isOtherClicked = true;
119
+ }
120
+ else if (code !== 'RE005') {
121
+ this.isOtherClicked = false;
122
+ }
123
+ };
124
+ /**
125
+ * @return {?}
126
+ */
127
+ ProcessRefundComponent.prototype.processRefundSubmit = /**
128
+ * @return {?}
129
+ */
130
+ function () {
131
+ var _this = this;
132
+ /** @type {?} */
133
+ var processRefundRequest;
134
+ /** @type {?} */
135
+ var status;
136
+ this.resetForm([false, false, false, false, false, false, false, false], 'all');
137
+ /** @type {?} */
138
+ var controls = this.processRefundForm.controls;
139
+ /** @type {?} */
140
+ var processFormError = controls.sendMeBackField.errors;
141
+ if (this.processRefundForm.dirty && controls.refundActionField.valid
142
+ && (controls.refundActionField.value == 'Approve'
143
+ || (controls.refundActionField.value == 'Reject' && controls.refundRejectReasonField.valid && controls.refundRejectReasonField.value != 'RE005')
144
+ || (controls.refundActionField.value == 'Reject' && controls.refundRejectReasonField.value == 'RE005' && controls.enterReasonField.valid)
145
+ || (controls.refundActionField.value == 'Return to caseworker' && controls.sendMeBackField.valid))) {
146
+ if (controls.refundActionField.value === 'Approve') {
147
+ status = 'APPROVE';
148
+ processRefundRequest = {
149
+ code: '',
150
+ reason: ''
151
+ };
152
+ }
153
+ else if (controls.refundActionField.value === 'Reject') {
154
+ status = 'REJECT';
155
+ processRefundRequest = {
156
+ code: controls.refundRejectReasonField.value ? controls.refundRejectReasonField.value : '',
157
+ reason: controls.refundRejectReasonField.value == 'RE005' ? controls.enterReasonField.value : ''
158
+ };
159
+ }
160
+ else if (controls.refundActionField.value === 'Return to caseworker') {
161
+ status = 'SENDBACK';
162
+ processRefundRequest = {
163
+ code: '',
164
+ reason: controls.sendMeBackField.value
165
+ };
166
+ }
167
+ this.RefundsService.patchRefundActions(processRefundRequest, this.refundReference, status).subscribe((/**
168
+ * @param {?} response
169
+ * @return {?}
170
+ */
171
+ function (response) {
172
+ _this.isSuccesspageEnable = true;
173
+ _this.successMsg = JSON.parse(response)['data'];
174
+ }), (/**
175
+ * @param {?} err
176
+ * @return {?}
177
+ */
178
+ function (err) {
179
+ _this.errorMessage = _this.getErrorMessage(true, err.statusCode, err.err);
180
+ }));
181
+ }
182
+ else {
183
+ if (controls.refundActionField.value == "") {
184
+ this.resetForm([true, false, false, false, false, false, false, false], 'action');
185
+ }
186
+ if (controls.refundActionField.value == 'Reject' && controls.refundRejectReasonField.value == "") {
187
+ this.resetForm([false, true, false, false, false, false, false, false], 'rejectReason');
188
+ }
189
+ if (controls.refundActionField.value == 'Return to caseworker') {
190
+ if (controls.sendMeBackField.value == '') {
191
+ this.resetForm([false, false, true, false, false, false, false, false], 'addAreason');
192
+ }
193
+ if (controls.sendMeBackField.value != '' && controls.sendMeBackField.invalid) {
194
+ this.resetForm([false, false, false, true, false, false, false, false], 'addAreason');
195
+ }
196
+ if (processFormError && processFormError.minlength && processFormError.minlength.actualLength < 3) {
197
+ this.resetForm([false, false, false, false, true, false, false, false], 'addAreason');
198
+ }
199
+ if (processFormError && processFormError.maxlength && processFormError.maxlength.actualLength > 255) {
200
+ this.resetForm([false, false, false, false, false, true, false, false], 'addAreason');
201
+ }
202
+ }
203
+ if (controls.refundActionField.value == 'Reject' && controls.refundRejectReasonField.value == 'RE005') {
204
+ if (controls.enterReasonField.value === "") {
205
+ this.resetForm([false, false, false, false, false, false, true, false], 'enterReason');
206
+ }
207
+ if (controls.enterReasonField.value !== "" && controls.enterReasonField.invalid) {
208
+ this.resetForm([false, false, false, false, false, false, false, true], 'enterReason');
209
+ }
210
+ }
211
+ }
212
+ };
213
+ /**
214
+ * @param {?} isErrorExist
215
+ * @param {?} status
216
+ * @param {?} errorMsg
217
+ * @return {?}
218
+ */
219
+ ProcessRefundComponent.prototype.getErrorMessage = /**
220
+ * @param {?} isErrorExist
221
+ * @param {?} status
222
+ * @param {?} errorMsg
223
+ * @return {?}
224
+ */
225
+ function (isErrorExist, status, errorMsg) {
226
+ /** @type {?} */
227
+ var bodyTxt = 'Please try again later';
228
+ if (status !== 500) {
229
+ bodyTxt = errorMsg;
230
+ }
231
+ return {
232
+ title: 'Something went wrong',
233
+ body: bodyTxt,
234
+ showError: isErrorExist
235
+ };
236
+ };
237
+ /**
238
+ * @return {?}
239
+ */
240
+ ProcessRefundComponent.prototype.loadRefundListPage = /**
241
+ * @return {?}
242
+ */
243
+ function () {
244
+ var _this = this;
245
+ this.OrderslistService.getnavigationPageValue().subscribe((/**
246
+ * @param {?} data
247
+ * @return {?}
248
+ */
249
+ function (data) { return _this.navigationpage = data; }));
250
+ if (this.navigationpage === 'casetransactions') {
251
+ //this.loadCaseTransactionPage();
252
+ }
253
+ else {
254
+ this.paymentLibComponent.viewName = 'refund-list';
255
+ }
256
+ };
257
+ /**
258
+ * @return {?}
259
+ */
260
+ ProcessRefundComponent.prototype.redirecttoRefundListPage = /**
261
+ * @return {?}
262
+ */
263
+ function () {
264
+ window.location.href = '/refund-list?takePayment=false&refundlist=true';
265
+ };
266
+ // loadCaseTransactionPage() {
267
+ // this.paymentLibComponent.isRefundStatusView = false;
268
+ // this.paymentLibComponent.TAKEPAYMENT = true;
269
+ // this.paymentLibComponent.viewName = 'case-transactions';
270
+ // this.paymentViewService.getBSfeature().subscribe(
271
+ // features => {
272
+ // let result = JSON.parse(features).filter(feature => feature.uid === BS_ENABLE_FLAG);
273
+ // this.paymentLibComponent.ISBSENABLE = result[0] ? result[0].enable : false;
274
+ // },
275
+ // err => {
276
+ // this.paymentLibComponent.ISBSENABLE = false;
277
+ // }
278
+ // );
279
+ // let partUrl = `selectedOption=${this.paymentLibComponent.SELECTED_OPTION}`;
280
+ // partUrl += this.bsPaymentDcnNumber ? `&dcn=${this.bsPaymentDcnNumber}` : '';
281
+ // partUrl += this.paymentLibComponent.ISBSENABLE ? '&isBulkScanning=Enable' : '&isBulkScanning=Disable';
282
+ // partUrl += this.paymentLibComponent.ISTURNOFF ? '&isTurnOff=Enable' : '&isTurnOff=Disable';
283
+ // partUrl += this.paymentLibComponent.ISSFENABLE ? '&isStFixEnable=Enable' : '&isStFixEnable=Disable';
284
+ // partUrl += `&caseType=${this.paymentLibComponent.CASETYPE}`;
285
+ // partUrl += this.isNewPcipalOff ? '&isNewPcipalOff=Enable' : '&isNewPcipalOff=Disable';
286
+ // partUrl += this.isOldPcipalOff ? '&isOldPcipalOff=Enable' : '&isOldPcipalOff=Disable';
287
+ // let url = `/payment-history/${this.ccdCaseNumber}?view=case-transactions&takePayment=true&${partUrl}`;
288
+ // this.router.navigateByUrl(url);
289
+ // }
290
+ // loadCaseTransactionPage() {
291
+ // this.paymentLibComponent.isRefundStatusView = false;
292
+ // this.paymentLibComponent.TAKEPAYMENT = true;
293
+ // this.paymentLibComponent.viewName = 'case-transactions';
294
+ // this.paymentViewService.getBSfeature().subscribe(
295
+ // features => {
296
+ // let result = JSON.parse(features).filter(feature => feature.uid === BS_ENABLE_FLAG);
297
+ // this.paymentLibComponent.ISBSENABLE = result[0] ? result[0].enable : false;
298
+ // },
299
+ // err => {
300
+ // this.paymentLibComponent.ISBSENABLE = false;
301
+ // }
302
+ // );
303
+ // let partUrl = `selectedOption=${this.paymentLibComponent.SELECTED_OPTION}`;
304
+ // partUrl += this.bsPaymentDcnNumber ? `&dcn=${this.bsPaymentDcnNumber}` : '';
305
+ // partUrl += this.paymentLibComponent.ISBSENABLE ? '&isBulkScanning=Enable' : '&isBulkScanning=Disable';
306
+ // partUrl += this.paymentLibComponent.ISTURNOFF ? '&isTurnOff=Enable' : '&isTurnOff=Disable';
307
+ // partUrl += this.paymentLibComponent.ISSFENABLE ? '&isStFixEnable=Enable' : '&isStFixEnable=Disable';
308
+ // partUrl += `&caseType=${this.paymentLibComponent.CASETYPE}`;
309
+ // partUrl += this.isNewPcipalOff ? '&isNewPcipalOff=Enable' : '&isNewPcipalOff=Disable';
310
+ // partUrl += this.isOldPcipalOff ? '&isOldPcipalOff=Enable' : '&isOldPcipalOff=Disable';
311
+ // let url = `/payment-history/${this.ccdCaseNumber}?view=case-transactions&takePayment=true&${partUrl}`;
312
+ // this.router.navigateByUrl(url);
313
+ // }
314
+ /**
315
+ * @param {?} vals
316
+ * @param {?} field
317
+ * @return {?}
318
+ */
319
+ ProcessRefundComponent.prototype.resetForm =
320
+ // loadCaseTransactionPage() {
321
+ // this.paymentLibComponent.isRefundStatusView = false;
322
+ // this.paymentLibComponent.TAKEPAYMENT = true;
323
+ // this.paymentLibComponent.viewName = 'case-transactions';
324
+ // this.paymentViewService.getBSfeature().subscribe(
325
+ // features => {
326
+ // let result = JSON.parse(features).filter(feature => feature.uid === BS_ENABLE_FLAG);
327
+ // this.paymentLibComponent.ISBSENABLE = result[0] ? result[0].enable : false;
328
+ // },
329
+ // err => {
330
+ // this.paymentLibComponent.ISBSENABLE = false;
331
+ // }
332
+ // );
333
+ // let partUrl = `selectedOption=${this.paymentLibComponent.SELECTED_OPTION}`;
334
+ // partUrl += this.bsPaymentDcnNumber ? `&dcn=${this.bsPaymentDcnNumber}` : '';
335
+ // partUrl += this.paymentLibComponent.ISBSENABLE ? '&isBulkScanning=Enable' : '&isBulkScanning=Disable';
336
+ // partUrl += this.paymentLibComponent.ISTURNOFF ? '&isTurnOff=Enable' : '&isTurnOff=Disable';
337
+ // partUrl += this.paymentLibComponent.ISSFENABLE ? '&isStFixEnable=Enable' : '&isStFixEnable=Disable';
338
+ // partUrl += `&caseType=${this.paymentLibComponent.CASETYPE}`;
339
+ // partUrl += this.isNewPcipalOff ? '&isNewPcipalOff=Enable' : '&isNewPcipalOff=Disable';
340
+ // partUrl += this.isOldPcipalOff ? '&isOldPcipalOff=Enable' : '&isOldPcipalOff=Disable';
341
+ // let url = `/payment-history/${this.ccdCaseNumber}?view=case-transactions&takePayment=true&${partUrl}`;
342
+ // this.router.navigateByUrl(url);
343
+ // }
344
+ /**
345
+ * @param {?} vals
346
+ * @param {?} field
347
+ * @return {?}
348
+ */
349
+ function (vals, field) {
350
+ if (field === 'action' || field === 'all') {
351
+ this.refundActionsHasError = vals[0];
352
+ }
353
+ if (field === 'rejectReason' || field === 'all') {
354
+ this.refundRejectReasonHasError = vals[1];
355
+ }
356
+ if (field === 'addAreason' || field === 'all') {
357
+ this.isReasonFieldEmpty = vals[2];
358
+ this.isReasonFieldInvalid = vals[3];
359
+ this.reasonFieldMinHasError = vals[4];
360
+ this.reasonFieldMaxHasError = vals[5];
361
+ }
362
+ if (field === 'enterReason' || field === 'all') {
363
+ this.isReasonEmpty = vals[6];
364
+ this.isReasonInvalid = vals[7];
365
+ }
366
+ };
367
+ ProcessRefundComponent.decorators = [
368
+ { type: Component, args: [{
369
+ selector: 'ccpay-process-refund',
370
+ 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 class=\"govuk-breadcrumbs\">\n <ol class=\"govuk-breadcrumbs__list\">\n <li class=\"govuk-breadcrumbs__list-item\">\n <a href=\"/refund-list?takePayment=false&refundlist=true\" class=\"govuk-back-link\">Back</a>\n </li>\n </ol>\n </div> -->\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\"\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 <input class=\"govuk-input govuk-!-width-one-third\" id=\"otherReason\" \n [ngClass]=\"{'inline-error-class': isReasonEmpty || isReasonInvalid}\"\n formControlName=\"enterReasonField\" name=\"enterReasonField\" type=\"text\"></div>\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 </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 class=\"govuk-button-group margin\">\n\n <p><a (click)=\"loadRefundListPage()\" class=\"govuk-link\" data-module=\"govuk-button\">Cancel</a></p>\n</div>\n</form>\n </div>\n \n<!-- \n <div class=\"govuk-button-group\">\n \n <button class=\"govuk-button govuk-button--secondary\" (click)=\"redirecttoRefundListPage()\">Previous</button>\n <button (click)=\"processRefundSubmit()\" class=\"govuk-button button\"\n data-module=\"govuk-button\">\n Submit\n </button>\n <div><a (click)=\"loadRefundListPage()\" class=\"govuk-link\" data-module=\"govuk-button\">Cancel</a></div>\n </div> -->\n\n <!-- <button class=\"govuk-button button-margin--left25\" data-module=\"govuk-button\" (click)=\"processRefundSubmit()\">\n Submit \n </button> -->\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 href=\"/orders/pages/v1caseinccd?result=approved\" class=\"govuk-link\">Return to case</a>\n </p>\n </div>\n </main>\n</div>\n</ng-container>\n\n",
371
+ styles: [".tb-col-w{width:330px}.tr-border{border-bottom:2px solid}.payment-view-alignment{margin-left:30px}.govuk-button{font-size:2.1875rem;float:left;margin-top:2em}.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}.inline-error-class{outline:#c11717 solid 3px;outline-offset:0}.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}"]
372
+ }] }
373
+ ];
374
+ /** @nocollapse */
375
+ ProcessRefundComponent.ctorParameters = function () { return [
376
+ { type: RefundsService },
377
+ { type: FormBuilder },
378
+ { type: OrderslistService },
379
+ { type: PaymentLibComponent }
380
+ ]; };
381
+ ProcessRefundComponent.propDecorators = {
382
+ refundReference: [{ type: Input }],
383
+ refundlistsource: [{ type: Input }]
384
+ };
385
+ return ProcessRefundComponent;
386
+ }());
387
+ export { ProcessRefundComponent };
388
+ if (false) {
389
+ /** @type {?} */
390
+ ProcessRefundComponent.prototype.refundReference;
391
+ /** @type {?} */
392
+ ProcessRefundComponent.prototype.refundlistsource;
393
+ /** @type {?} */
394
+ ProcessRefundComponent.prototype.processRefundForm;
395
+ /** @type {?} */
396
+ ProcessRefundComponent.prototype.errorMessage;
397
+ /** @type {?} */
398
+ ProcessRefundComponent.prototype.sendmeback;
399
+ /** @type {?} */
400
+ ProcessRefundComponent.prototype.viewStatus;
401
+ /** @type {?} */
402
+ ProcessRefundComponent.prototype.refundActionList;
403
+ /** @type {?} */
404
+ ProcessRefundComponent.prototype.refundRejectReasonList;
405
+ /** @type {?} */
406
+ ProcessRefundComponent.prototype.isSendMeBackClicked;
407
+ /** @type {?} */
408
+ ProcessRefundComponent.prototype.isRejectClicked;
409
+ /** @type {?} */
410
+ ProcessRefundComponent.prototype.isOtherClicked;
411
+ /** @type {?} */
412
+ ProcessRefundComponent.prototype.isSuccesspageEnable;
413
+ /** @type {?} */
414
+ ProcessRefundComponent.prototype.refundActionsHasError;
415
+ /** @type {?} */
416
+ ProcessRefundComponent.prototype.refundRejectReasonHasError;
417
+ /** @type {?} */
418
+ ProcessRefundComponent.prototype.isReasonFieldEmpty;
419
+ /** @type {?} */
420
+ ProcessRefundComponent.prototype.isReasonFieldInvalid;
421
+ /** @type {?} */
422
+ ProcessRefundComponent.prototype.reasonFieldMinHasError;
423
+ /** @type {?} */
424
+ ProcessRefundComponent.prototype.reasonFieldMaxHasError;
425
+ /** @type {?} */
426
+ ProcessRefundComponent.prototype.isReasonEmpty;
427
+ /** @type {?} */
428
+ ProcessRefundComponent.prototype.isReasonInvalid;
429
+ /** @type {?} */
430
+ ProcessRefundComponent.prototype.successMsg;
431
+ /** @type {?} */
432
+ ProcessRefundComponent.prototype.navigationpage;
433
+ /** @type {?} */
434
+ ProcessRefundComponent.prototype.isConfirmButtondisabled;
435
+ /**
436
+ * @type {?}
437
+ * @private
438
+ */
439
+ ProcessRefundComponent.prototype.RefundsService;
440
+ /**
441
+ * @type {?}
442
+ * @private
443
+ */
444
+ ProcessRefundComponent.prototype.formBuilder;
445
+ /**
446
+ * @type {?}
447
+ * @private
448
+ */
449
+ ProcessRefundComponent.prototype.OrderslistService;
450
+ /**
451
+ * @type {?}
452
+ * @private
453
+ */
454
+ ProcessRefundComponent.prototype.paymentLibComponent;
455
+ }
456
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1yZWZ1bmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9wcm9jZXNzLXJlZnVuZC9wcm9jZXNzLXJlZnVuZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQVUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUl0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVsRTtJQWlDRSxnQ0FBb0IsY0FBOEIsRUFDOUIsV0FBd0IsRUFDeEIsaUJBQW9DLEVBQ3BDLG1CQUF3QztRQUh4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBekI1RCxpQkFBWSxHQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwRCxlQUFVLEdBQVcsSUFBSSxDQUFDO1FBRTFCLHFCQUFnQixHQUFvQixFQUFFLENBQUM7UUFDdkMsMkJBQXNCLEdBQTBCLEVBQUUsQ0FBQztRQUNuRCx3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFDckMsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBRXJDLDBC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Qzs7SUFDakMsNENBQTBCOztJQUMxQixnREFBdUI7O0lBRXZCLHlEQUF3Qzs7Ozs7SUFDNUIsZ0RBQXNDOzs7OztJQUN0Qyw2Q0FBZ0M7Ozs7O0lBQ2hDLG1EQUE0Qzs7Ozs7SUFDNUMscURBQWdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1JlZnVuZHNTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZWZ1bmRzL3JlZnVuZHMuc2VydmljZSc7XG5pbXBvcnQgeyBJUmVmdW5kQWN0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUmVmdW5kQWN0aW9uJztcbmltcG9ydCB7IElSZWZ1bmRMaXN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUmVmdW5kTGlzdCc7XG5pbXBvcnQgeyBJUmVmdW5kUmVqZWN0UmVhc29uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUmVmdW5kUmVqZWN0UmVhc29uJztcbmltcG9ydCB7IE9yZGVyc2xpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3JkZXJzbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFBheW1lbnRMaWJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wYXltZW50LWxpYi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY3BheS1wcm9jZXNzLXJlZnVuZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9jZXNzLXJlZnVuZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2Nlc3MtcmVmdW5kLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9jZXNzUmVmdW5kQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcmVmdW5kUmVmZXJlbmNlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlZnVuZGxpc3Rzb3VyY2U6IElSZWZ1bmRMaXN0O1xuXG4gIHByb2Nlc3NSZWZ1bmRGb3JtOiBGb3JtR3JvdXA7XG5cbiAgZXJyb3JNZXNzYWdlID0gIHRoaXMuZ2V0RXJyb3JNZXNzYWdlKGZhbHNlLCAnJywgJycpO1xuICBzZW5kbWViYWNrOiBzdHJpbmcgPSBudWxsO1xuICB2aWV3U3RhdHVzOiBzdHJpbmc7XG4gIHJlZnVuZEFjdGlvbkxpc3Q6IElSZWZ1bmRBY3Rpb25bXSA9IFtdOyBcbiAgcmVmdW5kUmVqZWN0UmVhc29uTGlzdDogSVJlZnVuZFJlamVjdFJlYXNvbltdID0gW107IFxuICBpc1NlbmRNZUJhY2tDbGlja2VkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUmVqZWN0Q2xpY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc090aGVyQ2xpY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1N1Y2Nlc3NwYWdlRW5hYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcmVmdW5kQWN0aW9uc0hhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIHJlZnVuZFJlamVjdFJlYXNvbkhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUmVhc29uRmllbGRFbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1JlYXNvbkZpZWxkSW52YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xuICByZWFzb25GaWVsZE1pbkhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIHJlYXNvbkZpZWxkTWF4SGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNSZWFzb25FbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1JlYXNvbkludmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc3VjY2Vzc01zZzogc3RyaW5nID0gbnVsbDtcbiAgbmF2aWdhdGlvbnBhZ2U6IHN0cmluZztcblxuICBpc0NvbmZpcm1CdXR0b25kaXNhYmxlZDogYm9vbGVhbiA9IHRydWU7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgUmVmdW5kc1NlcnZpY2U6IFJlZnVuZHNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBPcmRlcnNsaXN0U2VydmljZTogT3JkZXJzbGlzdFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcGF5bWVudExpYkNvbXBvbmVudDogUGF5bWVudExpYkNvbXBvbmVudCwpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudmlld1N0YXR1cyA9ICdSZWZ1bmRQcm9jZXNzJztcbiAgICB0aGlzLlJlZnVuZHNTZXJ2aWNlLmdldFJlZnVuZEFjdGlvbnModGhpcy5yZWZ1bmRSZWZlcmVuY2UpLnN1YnNjcmliZShcbiAgICAgIHJlZnVuZEFjdGlvbkxpc3QgPT4ge1xuICAgICAgICB0aGlzLnJlZnVuZEFjdGlvbkxpc3QgPSA8YW55PnJlZnVuZEFjdGlvbkxpc3Q7XG4gICAgICB9LFxuICAgICAgZXJyID0+IHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmdldEVycm9yTWVzc2FnZSh0cnVlLCBlcnIuc3RhdHVzQ29kZSwgZXJyLmVycik7XG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLnByb2Nlc3NSZWZ1bmRGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICByZWZ1bmRBY3Rpb25GaWVsZDogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXG4gICAgICBdKSksXG4gICAgICByZWZ1bmRSZWplY3RSZWFzb25GaWVsZDogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXG4gICAgICBdKSksXG4gICAgICBzZW5kTWVCYWNrRmllbGQ6IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgVmFsaWRhdG9ycy5taW5MZW5ndGgoMyksXG4gICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NSksXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybignXihbYS16QS1aMC05XFxcXHMsXFxcXC5dKikkJyksXG5cbiAgICAgIF0pKSxcbiAgICAgIGVudGVyUmVhc29uRmllbGQ6IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMzApLFxuICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oJ14oW2EtekEtWjAtOVxcXFxzXSopJCcpLFxuICAgICAgXSkpLFxuICAgIH0pO1xuICAgXG4gIH1cbiAgY2hlY2tSZWZ1bmRBY3Rpb25zKGNvZGU6IHN0cmluZykge1xuXG4gICAgaWYoY29kZSA9PT0gJ1JldHVybiB0byBjYXNld29ya2VyJykge1xuICAgICAgdGhpcy5pc0NvbmZpcm1CdXR0b25kaXNhYmxlZCA9IHRydWU7XG4gICAgICB0aGlzLmlzU2VuZE1lQmFja0NsaWNrZWQgPSB0cnVlO1xuICAgICAgdGhpcy5pc1JlamVjdENsaWNrZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNPdGhlckNsaWNrZWQgPSBmYWxzZTtcblxuICAgIH0gZWxzZSBpZiAoY29kZSA9PT0gJ0FwcHJvdmUnKSB7XG4gICAgICB0aGlzLmlzU2VuZE1lQmFja0NsaWNrZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNDb25maXJtQnV0dG9uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNSZWplY3RDbGlja2VkID0gZmFsc2U7XG4gICAgICB0aGlzLmlzT3RoZXJDbGlja2VkID0gZmFsc2U7XG5cbiAgICB9IGVsc2UgaWYgKGNvZGUgPT09ICdSZWplY3QnKSB7XG4gICAgICB0aGlzLmlzUmVqZWN0Q2xpY2tlZCA9IHRydWU7XG4gICAgICB0aGlzLmlzU2VuZE1lQmFja0NsaWNrZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNPdGhlckNsaWNrZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuUmVmdW5kc1NlcnZpY2UuZ2V0UmVmdW5kUmVqZWN0UmVhc29ucygpLnN1YnNjcmliZShcbiAgICAgICAgcmVmdW5kUmVqZWN0UmVhc29uTGlzdCA9PiB7XG4gICAgICAgICAgdGhpcy5yZWZ1bmRSZWplY3RSZWFzb25MaXN0ID0gPGFueT5yZWZ1bmRSZWplY3RSZWFzb25MaXN0O1xuICAgICAgICB9LFxuICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5nZXRFcnJvck1lc3NhZ2UodHJ1ZSwgZXJyLnN0YXR1c0NvZGUsIGVyci5lcnIpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoY29kZSA9PT0gJ1JFMDA1Jykge1xuICAgICAgdGhpcy5pc090aGVyQ2xpY2tlZCA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChjb2RlICE9PSAnUkUwMDUnKSB7XG4gICAgICB0aGlzLmlzT3RoZXJDbGlja2VkID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIHByb2Nlc3NSZWZ1bmRTdWJtaXQoKSB7XG4gICAgbGV0IHByb2Nlc3NSZWZ1bmRSZXF1ZXN0O1xuICAgIGxldCBzdGF0dXM7XG4gICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sICdhbGwnKTtcbiAgICBjb25zdCBjb250cm9scyA9IHRoaXMucHJvY2Vzc1JlZnVuZEZvcm0uY29udHJvbHM7XG4gICAgY29uc3QgcHJvY2Vzc0Zvcm1FcnJvciA9IGNvbnRyb2xzLnNlbmRNZUJhY2tGaWVsZC5lcnJvcnM7XG5cbiAgICBpZiAodGhpcy5wcm9jZXNzUmVmdW5kRm9ybS5kaXJ0eSAmJiBjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWxpZCBcbiAgICAgICYmIChjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWx1ZSA9PSAnQXBwcm92ZSdcbiAgICAgIHx8IChjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWx1ZSA9PSAnUmVqZWN0JyAmJiBjb250cm9scy5yZWZ1bmRSZWplY3RSZWFzb25GaWVsZC52YWxpZCAmJiBjb250cm9scy5yZWZ1bmRSZWplY3RSZWFzb25GaWVsZC52YWx1ZSAhPSAnUkUwMDUnKVxuICAgICAgfHwgKGNvbnRyb2xzLnJlZnVuZEFjdGlvbkZpZWxkLnZhbHVlID09ICdSZWplY3QnICYmIGNvbnRyb2xzLnJlZnVuZFJlamVjdFJlYXNvbkZpZWxkLnZhbHVlID09ICdSRTAwNScgJiYgY29udHJvbHMuZW50ZXJSZWFzb25GaWVsZC52YWxpZClcbiAgICAgIHx8IChjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWx1ZSA9PSAnUmV0dXJuIHRvIGNhc2V3b3JrZXInICYmIGNvbnRyb2xzLnNlbmRNZUJhY2tGaWVsZC52YWxpZCkpKSB7XG4gICAgICBpZiAoY29udHJvbHMucmVmdW5kQWN0aW9uRmllbGQudmFsdWUgPT09ICdBcHByb3ZlJyl7XG4gICAgICAgIHN0YXR1cyA9ICdBUFBST1ZFJztcbiAgICAgICAgcHJvY2Vzc1JlZnVuZFJlcXVlc3QgPSB7XG4gICAgICAgICAgY29kZTonJyxcbiAgICAgICAgICByZWFzb246ICcnXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKGNvbnRyb2xzLnJlZnVuZEFjdGlvbkZpZWxkLnZhbHVlID09PSAnUmVqZWN0Jykge1xuICAgICAgICBzdGF0dXMgPSAnUkVKRUNUJztcblxuICAgICAgICBwcm9jZXNzUmVmdW5kUmVxdWVzdCA9IHtcbiAgICAgICAgICBjb2RlOiBjb250cm9scy5yZWZ1bmRSZWplY3RSZWFzb25GaWVsZC52YWx1ZSA/IGNvbnRyb2xzLnJlZnVuZFJlamVjdFJlYXNvbkZpZWxkLnZhbHVlIDogJycsXG4gICAgICAgICAgcmVhc29uOiBjb250cm9scy5yZWZ1bmRSZWplY3RSZWFzb25GaWVsZC52YWx1ZSA9PSAnUkUwMDUnID8gY29udHJvbHMuZW50ZXJSZWFzb25GaWVsZC52YWx1ZSA6ICcnXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKGNvbnRyb2xzLnJlZnVuZEFjdGlvbkZpZWxkLnZhbHVlID09PSAnUmV0dXJuIHRvIGNhc2V3b3JrZXInKSB7XG4gICAgICAgIHN0YXR1cyA9ICdTRU5EQkFDSyc7XG5cbiAgICAgICAgcHJvY2Vzc1JlZnVuZFJlcXVlc3QgPSB7XG4gICAgICAgICAgY29kZTogJycsXG4gICAgICAgICAgcmVhc29uOiBjb250cm9scy5zZW5kTWVCYWNrRmllbGQudmFsdWVcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHRoaXMuUmVmdW5kc1NlcnZpY2UucGF0Y2hSZWZ1bmRBY3Rpb25zKHByb2Nlc3NSZWZ1bmRSZXF1ZXN0LCB0aGlzLnJlZnVuZFJlZmVyZW5jZSwgc3RhdHVzKS5zdWJzY3JpYmUoXG4gICAgICAgIHJlc3BvbnNlID0+IHtcbiAgICAgICAgICB0aGlzLmlzU3VjY2Vzc3BhZ2VFbmFibGUgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuc3VjY2Vzc01zZyA9IEpTT04ucGFyc2UocmVzcG9uc2UpWydkYXRhJ107XG4gICAgICAgIH0sXG4gICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmdldEVycm9yTWVzc2FnZSh0cnVlLCBlcnIuc3RhdHVzQ29kZSwgZXJyLmVycik7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmKGNvbnRyb2xzLnJlZnVuZEFjdGlvbkZpZWxkLnZhbHVlID09IFwiXCIpIHtcbiAgICAgICAgdGhpcy5yZXNldEZvcm0oW3RydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXSwgJ2FjdGlvbicpO1xuICAgICAgfVxuICAgICAgaWYoY29udHJvbHMucmVmdW5kQWN0aW9uRmllbGQudmFsdWUgPT0gJ1JlamVjdCcgJiYgY29udHJvbHMucmVmdW5kUmVqZWN0UmVhc29uRmllbGQudmFsdWUgPT0gXCJcIikge1xuICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2VdLCAncmVqZWN0UmVhc29uJyk7XG4gICAgICB9XG4gICAgICBpZihjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWx1ZSA9PSAnUmV0dXJuIHRvIGNhc2V3b3JrZXInKSB7XG4gICAgICAgIGlmKGNvbnRyb2xzLnNlbmRNZUJhY2tGaWVsZC52YWx1ZSA9PSAnJyApIHtcbiAgICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2VdLCAnYWRkQXJlYXNvbicpO1xuICAgICAgICB9XG4gICAgICAgIGlmKGNvbnRyb2xzLnNlbmRNZUJhY2tGaWVsZC52YWx1ZSAhPSAnJyAmJiBjb250cm9scy5zZW5kTWVCYWNrRmllbGQuaW52YWxpZCApIHtcbiAgICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2VdLCAnYWRkQXJlYXNvbicpO1xuICAgICAgICB9XG4gICAgICAgIGlmKHByb2Nlc3NGb3JtRXJyb3IgJiYgcHJvY2Vzc0Zvcm1FcnJvci5taW5sZW5ndGggJiYgcHJvY2Vzc0Zvcm1FcnJvci5taW5sZW5ndGguYWN0dWFsTGVuZ3RoIDwgMyApIHtcbiAgICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2VdLCAnYWRkQXJlYXNvbicpO1xuICAgICAgICB9XG4gICAgICAgIGlmKHByb2Nlc3NGb3JtRXJyb3IgJiYgcHJvY2Vzc0Zvcm1FcnJvci5tYXhsZW5ndGggJiYgcHJvY2Vzc0Zvcm1FcnJvci5tYXhsZW5ndGguYWN0dWFsTGVuZ3RoID4gMjU1ICkge1xuICAgICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0sICdhZGRBcmVhc29uJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmKGNvbnRyb2xzLnJlZnVuZEFjdGlvbkZpZWxkLnZhbHVlID09ICdSZWplY3QnICYmIGNvbnRyb2xzLnJlZnVuZFJlamVjdFJlYXNvbkZpZWxkLnZhbHVlID09ICdSRTAwNScpIHtcbiAgICAgICAgaWYoY29udHJvbHMuZW50ZXJSZWFzb25GaWVsZC52YWx1ZSA9PT0gXCJcIikge1xuICAgICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZV0sICdlbnRlclJlYXNvbicpO1xuICAgICAgICB9XG4gICAgICAgIGlmKGNvbnRyb2xzLmVudGVyUmVhc29uRmllbGQudmFsdWUhPT0gXCJcIiAmJiBjb250cm9scy5lbnRlclJlYXNvbkZpZWxkLmludmFsaWQpIHtcbiAgICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWVdLCAnZW50ZXJSZWFzb24nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICB9XG4gIGdldEVycm9yTWVzc2FnZShpc0Vycm9yRXhpc3QsIHN0YXR1cywgZXJyb3JNc2cpIHtcbiAgICBsZXQgYm9keVR4dCA9ICdQbGVhc2UgdHJ5IGFnYWluIGxhdGVyJztcbiAgICBpZiAoc3RhdHVzICE9PSA1MDApIHtcbiAgICAgIGJvZHlUeHQgPSBlcnJvck1zZztcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiAnU29tZXRoaW5nIHdlbnQgd3JvbmcnLFxuICAgICAgYm9keTogYm9keVR4dCxcbiAgICAgIHNob3dFcnJvcjogaXNFcnJvckV4aXN0XG4gICAgfTtcbiAgfVxuICBsb2FkUmVmdW5kTGlzdFBhZ2UoKSB7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRuYXZpZ2F0aW9uUGFnZVZhbHVlKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLm5hdmlnYXRpb25wYWdlID0gZGF0YSk7XG4gICAgaWYgKHRoaXMubmF2aWdhdGlvbnBhZ2UgPT09ICdjYXNldHJhbnNhY3Rpb25zJykge1xuICAgICAgLy90aGlzLmxvYWRDYXNlVHJhbnNhY3Rpb25QYWdlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdyZWZ1bmQtbGlzdCc7XG4gICAgfVxuICB9XG4gcmVkaXJlY3R0b1JlZnVuZExpc3RQYWdlKCkge1xuICB3aW5kb3cubG9jYXRpb24uaHJlZj0nL3JlZnVuZC1saXN0P3Rha2VQYXltZW50PWZhbHNlJnJlZnVuZGxpc3Q9dHJ1ZSc7XG4gfVxuICAvLyBsb2FkQ2FzZVRyYW5zYWN0aW9uUGFnZSgpIHtcbiAgLy8gICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNSZWZ1bmRTdGF0dXNWaWV3ID0gZmFsc2U7XG4gIC8vICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlRBS0VQQVlNRU5UID0gdHJ1ZTtcbiAgLy8gICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAnY2FzZS10cmFuc2FjdGlvbnMnO1xuICAvLyAgIHRoaXMucGF5bWVudFZpZXdTZXJ2aWNlLmdldEJTZmVhdHVyZSgpLnN1YnNjcmliZShcbiAgLy8gICAgIGZlYXR1cmVzID0+IHtcbiAgLy8gICAgICAgbGV0IHJlc3VsdCA9IEpTT04ucGFyc2UoZmVhdHVyZXMpLmZpbHRlcihmZWF0dXJlID0+IGZlYXR1cmUudWlkID09PSBCU19FTkFCTEVfRkxBRyk7XG4gIC8vICAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU0JTRU5BQkxFID0gcmVzdWx0WzBdID8gcmVzdWx0WzBdLmVuYWJsZSA6IGZhbHNlO1xuICAvLyAgICAgfSxcbiAgLy8gICAgIGVyciA9PiB7XG4gIC8vICAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU0JTRU5BQkxFID0gZmFsc2U7XG4gIC8vICAgICB9XG4gIC8vICAgKTtcblxuICAvLyAgIGxldCBwYXJ0VXJsID0gYHNlbGVjdGVkT3B0aW9uPSR7dGhpcy5wYXltZW50TGliQ29tcG9uZW50LlNFTEVDVEVEX09QVElPTn1gO1xuICAvLyAgIHBhcnRVcmwgKz0gdGhpcy5ic1BheW1lbnREY25OdW1iZXIgPyBgJmRjbj0ke3RoaXMuYnNQYXltZW50RGNuTnVtYmVyfWAgOiAnJztcbiAgLy8gICBwYXJ0VXJsICs9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU0JTRU5BQkxFID8gJyZpc0J1bGtTY2FubmluZz1FbmFibGUnIDogJyZpc0J1bGtTY2FubmluZz1EaXNhYmxlJztcbiAgLy8gICBwYXJ0VXJsICs9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU1RVUk5PRkYgPyAnJmlzVHVybk9mZj1FbmFibGUnIDogJyZpc1R1cm5PZmY9RGlzYWJsZSc7XG4gIC8vICAgcGFydFVybCArPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNTRkVOQUJMRSA/ICcmaXNTdEZpeEVuYWJsZT1FbmFibGUnIDogJyZpc1N0Rml4RW5hYmxlPURpc2FibGUnO1xuICAvLyAgIHBhcnRVcmwgKz0gYCZjYXNlVHlwZT0ke3RoaXMucGF5bWVudExpYkNvbXBvbmVudC5DQVNFVFlQRX1gO1xuICAvLyAgIHBhcnRVcmwgKz0gdGhpcy5pc05ld1BjaXBhbE9mZiA/ICcmaXNOZXdQY2lwYWxPZmY9RW5hYmxlJyA6ICcmaXNOZXdQY2lwYWxPZmY9RGlzYWJsZSc7XG4gIC8vICAgcGFydFVybCArPSB0aGlzLmlzT2xkUGNpcGFsT2ZmID8gJyZpc09sZFBjaXBhbE9mZj1FbmFibGUnIDogJyZpc09sZFBjaXBhbE9mZj1EaXNhYmxlJztcbiAgLy8gICBsZXQgdXJsID0gYC9wYXltZW50LWhpc3RvcnkvJHt0aGlzLmNjZENhc2VOdW1iZXJ9P3ZpZXc9Y2FzZS10cmFuc2FjdGlvbnMmdGFrZVBheW1lbnQ9dHJ1ZSYke3BhcnRVcmx9YDtcbiAgLy8gICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHVybCk7XG4gIC8vIH1cblxuICByZXNldEZvcm0odmFscywgZmllbGQpIHtcbiAgICBpZihmaWVsZD09PSdhY3Rpb24nIHx8IGZpZWxkPT09J2FsbCcpIHtcbiAgICAgIHRoaXMucmVmdW5kQWN0aW9uc0hhc0Vycm9yID0gdmFsc1swXTtcbiAgICB9XG4gICAgaWYoZmllbGQ9PT0ncmVqZWN0UmVhc29uJyB8fCBmaWVsZD09PSdhbGwnKSB7XG4gICAgICB0aGlzLnJlZnVuZFJlamVjdFJlYXNvbkhhc0Vycm9yID0gdmFsc1sxXTtcbiAgICB9XG4gICAgaWYoZmllbGQ9PT0nYWRkQXJlYXNvbicgfHwgZmllbGQ9PT0nYWxsJykge1xuICAgICAgdGhpcy5pc1JlYXNvbkZpZWxkRW1wdHkgPSB2YWxzWzJdO1xuICAgICAgdGhpcy5pc1JlYXNvbkZpZWxkSW52YWxpZCA9IHZhbHNbM107XG4gICAgICB0aGlzLnJlYXNvbkZpZWxkTWluSGFzRXJyb3IgPSB2YWxzWzRdO1xuICAgICAgdGhpcy5yZWFzb25GaWVsZE1heEhhc0Vycm9yID0gdmFsc1s1XTtcbiAgICB9XG4gICAgaWYoZmllbGQ9PT0nZW50ZXJSZWFzb24nIHx8IGZpZWxkPT09J2FsbCcpIHtcbiAgICAgIHRoaXMuaXNSZWFzb25FbXB0eSA9IHZhbHNbNl07XG4gICAgICB0aGlzLmlzUmVhc29uSW52YWxpZCA9IHZhbHNbN107XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,6 +1,6 @@
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
5
  import { Component, Input, Output, EventEmitter } from '@angular/core';
6
6
  import { BulkScaningPaymentService } from '../../services/bulk-scaning-payment/bulk-scaning-payment.service';
@@ -50,7 +50,7 @@ var ProcessedPaymentsComponent = /** @class */ (function () {
50
50
  selector: 'ccpay-app-processed-payments',
51
51
  template: "<div class=\"processed-payments govuk-grid-column-full govuk-!-padding-bottom-3\">\n <h3 class=\"heading-medium\">Processed payments</h3>\n <table class=\"govuk-table\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__header\" scope=\"col\">Payment asset number (DCN)</td>\n <td class=\"govuk-table__header\" scope=\"col\">Banked date</td>\n <td class=\"govuk-table__header\" scope=\"col\">Amount</td>\n <td class=\"govuk-table__header\" scope=\"col\">Method</td>\n <td class=\"govuk-table__header\" scope=\"col\">Allocation status</td>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\" >\n <tr class=\"govuk-table__row\" *ngFor=\"let processedRecord of NONPAYMENTS\">\n <td class=\"govuk-table__cell\">\n <a href=\"javascript:void(0)\" (click)=\"redirectToPaymentViewPage(processedRecord.paymentGroupReference, processedRecord.reference, processedRecord.method)\">{{processedRecord.document_control_number}}</a>\n </td>\n <td class=\"govuk-table__cell\"> {{processedRecord.banked_date | date:'dd MMM yyyy'}}</td>\n <td class=\"govuk-table__cell\"> {{processedRecord.amount | currency :'GBP':'symbol':'1.2-2'}}</td>\n <td class=\"capitalize govuk-table__cell\"> {{ trimUnderscore(processedRecord.method) | lowercase}} </td>\n <td class=\"capitalize govuk-table__cell\"> {{ processedRecord.payment_allocation[0] ? processedRecord.payment_allocation[0].allocation_status : '-' }} </td>\n\n </tr>\n <tr class=\"govuk-table__row\" *ngIf=\"NONPAYMENTS.length === 0\">\n <td class=\"govuk-table__cell\" colspan=\"5\">\n No processed payments\n </td>\n\n </tr>\n\n </tbody>\n </table>\n</div>\n",
52
52
  styles: [".lowercase{text-transform:lowercase}.capitalize::first-letter{text-transform:uppercase}"]
53
- },] },
53
+ }] }
54
54
  ];
55
55
  /** @nocollapse */
56
56
  ProcessedPaymentsComponent.ctorParameters = function () { return [
@@ -69,10 +69,15 @@ if (false) {
69
69
  ProcessedPaymentsComponent.prototype.NONPAYMENTS;
70
70
  /** @type {?} */
71
71
  ProcessedPaymentsComponent.prototype.goToPaymentViewComponent;
72
- /** @type {?} */
72
+ /**
73
+ * @type {?}
74
+ * @private
75
+ */
73
76
  ProcessedPaymentsComponent.prototype.router;
74
- /** @type {?} */
77
+ /**
78
+ * @type {?}
79
+ * @private
80
+ */
75
81
  ProcessedPaymentsComponent.prototype.bulkScaningPaymentService;
76
82
  }
77
-
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzc2VkLXBheW1lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9jY3BheS13ZWItY29tcG9uZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcHJvY2Vzc2VkLXBheW1lbnRzL3Byb2Nlc3NlZC1wYXltZW50cy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFFN0csT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDOztJQTZDckMsb0NBQ1UsUUFDQTtRQURBLFdBQU0sR0FBTixNQUFNO1FBQ04sOEJBQXlCLEdBQXpCLHlCQUF5Qjt3Q0FKcUIsSUFBSSxZQUFZLEVBQUU7S0FLbkU7Ozs7SUFDTCw2Q0FBUTs7O0lBQVI7S0FDQzs7Ozs7SUFFRCxtREFBYzs7OztJQUFkLFVBQWUsTUFBYztRQUMzQixNQUFNLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBQyxHQUFHLENBQUMsQ0FBQztLQUN4RTs7Ozs7OztJQUNELDhEQUF5Qjs7Ozs7O0lBQXpCLFVBQTBCLHFCQUE2QixFQUFFLGdCQUF3QixFQUFFLGFBQXFCO1FBQ3RHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsRUFBQyxxQkFBcUIsdUJBQUEsRUFBRSxnQkFBZ0Isa0JBQUEsRUFBRSxhQUFhLGVBQUEsRUFBQyxDQUFDLENBQUM7S0FDOUY7O2dCQXZESixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLDhCQUE4QjtvQkFDeEMsUUFBUSxFQUFFLDAyREFpQ1g7b0JBQ0MsTUFBTSxFQUFFLENBQUMseUZBQXlGLENBQUM7aUJBQ3BHOzs7O2dCQXZDTyxNQUFNO2dCQUZMLHlCQUF5Qjs7OzhCQTRDL0IsS0FBSyxTQUFDLGFBQWE7MkNBQ25CLE1BQU07O3FDQTlDVDs7U0EyQ2EsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnVsa1NjYW5pbmdQYXltZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2J1bGstc2NhbmluZy1wYXltZW50L2J1bGstc2NhbmluZy1wYXltZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtJUGF5bWVudH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUGF5bWVudCc7XG5pbXBvcnQge1JvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NwYXktYXBwLXByb2Nlc3NlZC1wYXltZW50cycsXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cInByb2Nlc3NlZC1wYXltZW50cyBnb3Z1ay1ncmlkLWNvbHVtbi1mdWxsIGdvdnVrLSEtcGFkZGluZy1ib3R0b20tM1wiPlxuICA8aDMgY2xhc3M9XCJoZWFkaW5nLW1lZGl1bVwiPlByb2Nlc3NlZCBwYXltZW50czwvaDM+XG4gICAgPHRhYmxlIGNsYXNzPVwiZ292dWstdGFibGVcIj5cbiAgICAgIDx0aGVhZCBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkXCI+XG4gICAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXJcIiBzY29wZT1cImNvbFwiPlBheW1lbnQgYXNzZXQgbnVtYmVyIChEQ04pPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXJcIiBzY29wZT1cImNvbFwiPkJhbmtlZCBkYXRlPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXJcIiBzY29wZT1cImNvbFwiPkFtb3VudDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgc2NvcGU9XCJjb2xcIj5NZXRob2Q8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlclwiIHNjb3BlPVwiY29sXCI+QWxsb2NhdGlvbiBzdGF0dXM8L3RkPlxuICAgICAgICAgICA8L3RyPlxuICAgICAgPC90aGVhZD5cbiAgICAgIDx0Ym9keSBjbGFzcz1cImdvdnVrLXRhYmxlX19ib2R5XCIgPlxuICAgICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCIgKm5nRm9yPVwibGV0IHByb2Nlc3NlZFJlY29yZCBvZiBOT05QQVlNRU5UU1wiPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIj5cbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKGNsaWNrKT1cInJlZGlyZWN0VG9QYXltZW50Vmlld1BhZ2UocHJvY2Vzc2VkUmVjb3JkLnBheW1lbnRHcm91cFJlZmVyZW5jZSwgcHJvY2Vzc2VkUmVjb3JkLnJlZmVyZW5jZSwgcHJvY2Vzc2VkUmVjb3JkLm1ldGhvZClcIj57e3Byb2Nlc3NlZFJlY29yZC5kb2N1bWVudF9jb250cm9sX251bWJlcn19PC9hPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsXCI+IHt7cHJvY2Vzc2VkUmVjb3JkLmJhbmtlZF9kYXRlIHwgZGF0ZTonZGQgTU1NIHl5eXknfX08L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIj4ge3twcm9jZXNzZWRSZWNvcmQuYW1vdW50IHwgY3VycmVuY3kgOidHQlAnOidzeW1ib2wnOicxLjItMid9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJjYXBpdGFsaXplIGdvdnVrLXRhYmxlX19jZWxsXCI+IHt7IHRyaW1VbmRlcnNjb3JlKHByb2Nlc3NlZFJlY29yZC5tZXRob2QpIHwgbG93ZXJjYXNlfX0gIDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJjYXBpdGFsaXplIGdvdnVrLXRhYmxlX19jZWxsXCI+IHt7IHByb2Nlc3NlZFJlY29yZC5wYXltZW50X2FsbG9jYXRpb25bMF0gPyBwcm9jZXNzZWRSZWNvcmQucGF5bWVudF9hbGxvY2F0aW9uWzBdLmFsbG9jYXRpb25fc3RhdHVzIDogJy0nIH19ICA8L3RkPlxuXG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCIgKm5nSWY9XCJOT05QQVlNRU5UUy5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsXCIgY29sc3Bhbj1cIjVcIj5cbiAgICAgICAgICAgICAgTm8gcHJvY2Vzc2VkIHBheW1lbnRzXG4gICAgICAgICAgICAgPC90ZD5cblxuICAgICAgICAgIDwvdHI+XG5cbiAgICAgIDwvdGJvZHk+XG4gICAgPC90YWJsZT5cbjwvZGl2PlxuYCxcbiAgc3R5bGVzOiBbYC5sb3dlcmNhc2V7dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlfS5jYXBpdGFsaXplOjpmaXJzdC1sZXR0ZXJ7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfWBdXG59KVxuZXhwb3J0IGNsYXNzIFByb2Nlc3NlZFBheW1lbnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoJ05PTlBBWU1FTlRTJykgTk9OUEFZTUVOVFM6IElQYXltZW50W107XG4gIEBPdXRwdXQoKSBnb1RvUGF5bWVudFZpZXdDb21wb25lbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBidWxrU2NhbmluZ1BheW1lbnRTZXJ2aWNlOiBCdWxrU2NhbmluZ1BheW1lbnRTZXJ2aWNlXG4gICAgKSB7IH1cbiAgICBuZ09uSW5pdCgpIHtcbiAgICB9XG5cbiAgICB0cmltVW5kZXJzY29yZShtZXRob2Q6IHN0cmluZyl7XG4gICAgICByZXR1cm4gdGhpcy5idWxrU2NhbmluZ1BheW1lbnRTZXJ2aWNlLnJlbW92ZVVud2FudGVkU3RyaW5nKG1ldGhvZCwnICcpO1xuICAgIH1cbiAgICByZWRpcmVjdFRvUGF5bWVudFZpZXdQYWdlKHBheW1lbnRHcm91cFJlZmVyZW5jZTogc3RyaW5nLCBwYXltZW50UmVmZXJlbmNlOiBzdHJpbmcsIHBheW1lbnRNZXRob2Q6IHN0cmluZykge1xuICAgICAgdGhpcy5nb1RvUGF5bWVudFZpZXdDb21wb25lbnQuZW1pdCh7cGF5bWVudEdyb3VwUmVmZXJlbmNlLCBwYXltZW50UmVmZXJlbmNlLCBwYXltZW50TWV0aG9kfSk7XG4gICAgfVxufVxuIl19
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzc2VkLXBheW1lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9jY3BheS13ZWItY29tcG9uZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcHJvY2Vzc2VkLXBheW1lbnRzL3Byb2Nlc3NlZC1wYXltZW50cy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFFN0csT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRXZDO0lBVUUsb0NBQ1UsTUFBYyxFQUNkLHlCQUFvRDtRQURwRCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQjtRQUpwRCw2QkFBd0IsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUtyRSxDQUFDOzs7O0lBQ0wsNkNBQVE7OztJQUFSO0lBQ0EsQ0FBQzs7Ozs7SUFFRCxtREFBYzs7OztJQUFkLFVBQWUsTUFBYztRQUMzQixPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUMsR0FBRyxDQUFDLENBQUM7SUFDekUsQ0FBQzs7Ozs7OztJQUNELDhEQUF5Qjs7Ozs7O0lBQXpCLFVBQTBCLHFCQUE2QixFQUFFLGdCQUF3QixFQUFFLGFBQXFCO1FBQ3RHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsRUFBQyxxQkFBcUIsdUJBQUEsRUFBRSxnQkFBZ0Isa0JBQUEsRUFBRSxhQUFhLGVBQUEsRUFBQyxDQUFDLENBQUM7SUFDL0YsQ0FBQzs7Z0JBdEJKLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxvM0RBQWtEOztpQkFFbkQ7Ozs7Z0JBTk8sTUFBTTtnQkFGTCx5QkFBeUI7Ozs4QkFXL0IsS0FBSyxTQUFDLGFBQWE7MkNBQ25CLE1BQU07O0lBZVQsaUNBQUM7Q0FBQSxBQXZCRCxJQXVCQztTQWxCWSwwQkFBMEI7OztJQUVyQyxpREFBOEM7O0lBQzlDLDhEQUEyRTs7Ozs7SUFHekUsNENBQXNCOzs7OztJQUN0QiwrREFBNEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCdWxrU2NhbmluZ1BheW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYnVsay1zY2FuaW5nLXBheW1lbnQvYnVsay1zY2FuaW5nLXBheW1lbnQuc2VydmljZSc7XG5pbXBvcnQge0lQYXltZW50fSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lQYXltZW50JztcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY3BheS1hcHAtcHJvY2Vzc2VkLXBheW1lbnRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2Nlc3NlZC1wYXltZW50cy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2Nlc3NlZC1wYXltZW50cy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFByb2Nlc3NlZFBheW1lbnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoJ05PTlBBWU1FTlRTJykgTk9OUEFZTUVOVFM6IElQYXltZW50W107XG4gIEBPdXRwdXQoKSBnb1RvUGF5bWVudFZpZXdDb21wb25lbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBidWxrU2NhbmluZ1BheW1lbnRTZXJ2aWNlOiBCdWxrU2NhbmluZ1BheW1lbnRTZXJ2aWNlXG4gICAgKSB7IH1cbiAgICBuZ09uSW5pdCgpIHtcbiAgICB9XG5cbiAgICB0cmltVW5kZXJzY29yZShtZXRob2Q6IHN0cmluZyl7XG4gICAgICByZXR1cm4gdGhpcy5idWxrU2NhbmluZ1BheW1lbnRTZXJ2aWNlLnJlbW92ZVVud2FudGVkU3RyaW5nKG1ldGhvZCwnICcpO1xuICAgIH1cbiAgICByZWRpcmVjdFRvUGF5bWVudFZpZXdQYWdlKHBheW1lbnRHcm91cFJlZmVyZW5jZTogc3RyaW5nLCBwYXltZW50UmVmZXJlbmNlOiBzdHJpbmcsIHBheW1lbnRNZXRob2Q6IHN0cmluZykge1xuICAgICAgdGhpcy5nb1RvUGF5bWVudFZpZXdDb21wb25lbnQuZW1pdCh7cGF5bWVudEdyb3VwUmVmZXJlbmNlLCBwYXltZW50UmVmZXJlbmNlLCBwYXltZW50TWV0aG9kfSk7XG4gICAgfVxufVxuIl19