@hmcts/ccpay-web-component 5.0.8-beta05 → 5.0.8-beta11

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 (171) hide show
  1. package/bundles/hmcts-ccpay-web-component.umd.js +972 -7133
  2. package/bundles/hmcts-ccpay-web-component.umd.js.map +1 -1
  3. package/bundles/hmcts-ccpay-web-component.umd.min.js +2 -2
  4. package/bundles/hmcts-ccpay-web-component.umd.min.js.map +1 -1
  5. package/esm2015/hmcts-ccpay-web-component.js +2 -7
  6. package/esm2015/lib/components/add-remission/add-remission.component.js +43 -408
  7. package/esm2015/lib/components/allocate-payments/allocate-payments.component.js +46 -349
  8. package/esm2015/lib/components/card-details/card-details.component.js +7 -47
  9. package/esm2015/lib/components/case-transactions/case-transactions.component.js +112 -687
  10. package/esm2015/lib/components/error-banner/error-banner.component.js +2 -15
  11. package/esm2015/lib/components/fee-summary/fee-summary.component.js +36 -255
  12. package/esm2015/lib/components/mark-unidentified-payment/mark-unidentified-payment.component.js +29 -182
  13. package/esm2015/lib/components/mark-unsolicited-payment/mark-unsolicited-payment.component.js +33 -226
  14. package/esm2015/lib/components/page-not-found.component.js +2 -7
  15. package/esm2015/lib/components/payment-list/payment-list.component.js +7 -48
  16. package/esm2015/lib/components/payment-view/payment-view.component.js +44 -336
  17. package/esm2015/lib/components/pba-details/pba-details.component.js +2 -15
  18. package/esm2015/lib/components/pba-payment/pba-payment.component.js +15 -119
  19. package/esm2015/lib/components/process-refund/process-refund.component.js +23 -178
  20. package/esm2015/lib/components/processed-payments/processed-payments.component.js +6 -41
  21. package/esm2015/lib/components/refund-list/refund-list.component.js +12 -78
  22. package/esm2015/lib/components/refund-status/refund-status.component.js +30 -255
  23. package/esm2015/lib/components/reports/reports.component.js +28 -213
  24. package/esm2015/lib/components/service-request/service-request.component.js +40 -369
  25. package/esm2015/lib/components/status-history/status-history.component.js +7 -44
  26. package/esm2015/lib/components/table/table.component.js +13 -107
  27. package/esm2015/lib/components/unprocessed-payments/unprocessed-payments.component.js +18 -184
  28. package/esm2015/lib/interfaces/AddRemissionRequest.js +1 -29
  29. package/esm2015/lib/interfaces/AddRetroRemissionRequest.js +1 -16
  30. package/esm2015/lib/interfaces/AllocatePaymentRequest.js +1 -43
  31. package/esm2015/lib/interfaces/IAllocationPaymentsRequest.js +1 -27
  32. package/esm2015/lib/interfaces/IBSPayments.js +1 -46
  33. package/esm2015/lib/interfaces/ICardDetails.js +1 -22
  34. package/esm2015/lib/interfaces/IFee.js +1 -54
  35. package/esm2015/lib/interfaces/IOrderReferenceFee.js +1 -26
  36. package/esm2015/lib/interfaces/IPatchRefundAction.js +1 -16
  37. package/esm2015/lib/interfaces/IPayment.js +1 -66
  38. package/esm2015/lib/interfaces/IPaymentFailure.js +1 -34
  39. package/esm2015/lib/interfaces/IPaymentGroup.js +1 -20
  40. package/esm2015/lib/interfaces/IPaymentStatus.js +1 -26
  41. package/esm2015/lib/interfaces/IPaymentView.js +1 -18
  42. package/esm2015/lib/interfaces/IPayments.js +1 -14
  43. package/esm2015/lib/interfaces/IRefundAction.js +1 -16
  44. package/esm2015/lib/interfaces/IRefundList.js +1 -30
  45. package/esm2015/lib/interfaces/IRefundReasons.js +1 -20
  46. package/esm2015/lib/interfaces/IRefundRejectReason.js +1 -16
  47. package/esm2015/lib/interfaces/IRefundStatus.js +1 -24
  48. package/esm2015/lib/interfaces/IRefundStatusHistory.js +1 -16
  49. package/esm2015/lib/interfaces/IRemission.js +1 -26
  50. package/esm2015/lib/interfaces/IResubmitRefundRequest.js +1 -16
  51. package/esm2015/lib/interfaces/IStatusHistories.js +1 -20
  52. package/esm2015/lib/interfaces/IStatusHistory.js +1 -22
  53. package/esm2015/lib/interfaces/IserviceRequestCardPayment.js +1 -17
  54. package/esm2015/lib/interfaces/IserviceRequestPbaPayment.js +1 -24
  55. package/esm2015/lib/interfaces/IssueRefundRequest.js +1 -19
  56. package/esm2015/lib/interfaces/PayhubAntennaRequest.js +2 -22
  57. package/esm2015/lib/interfaces/PaymentToPayhubRequest.js +2 -28
  58. package/esm2015/lib/interfaces/PostIssueRefundRetroRemission.js +1 -13
  59. package/esm2015/lib/interfaces/PostRefundRetroRemission.js +1 -16
  60. package/esm2015/lib/interfaces/RefundsRequest.js +1 -16
  61. package/esm2015/lib/interfaces/UnidentifiedPaymentsRequest.js +1 -21
  62. package/esm2015/lib/interfaces/UnsolicitedPaymentsRequest.js +1 -30
  63. package/esm2015/lib/payment-lib.component.js +8 -149
  64. package/esm2015/lib/payment-lib.module.js +1 -6
  65. package/esm2015/lib/payment-lib.service.js +2 -46
  66. package/esm2015/lib/pipes/capitalize.pipe.js +1 -12
  67. package/esm2015/lib/pipes/ccd-hyphens.pipe.js +1 -13
  68. package/esm2015/lib/pipes/key-value.pipe.js +1 -12
  69. package/esm2015/lib/pipes/sanitize-html.pipe.js +5 -22
  70. package/esm2015/lib/services/bulk-scaning-payment/bulk-scaning-payment.service.js +15 -103
  71. package/esm2015/lib/services/card-details/card-details.service.js +8 -40
  72. package/esm2015/lib/services/case-transactions/case-transactions.service.js +8 -40
  73. package/esm2015/lib/services/orderslist.service.js +2 -252
  74. package/esm2015/lib/services/payment-list/payment-list.service.js +8 -43
  75. package/esm2015/lib/services/payment-view/payment-view.service.js +11 -170
  76. package/esm2015/lib/services/refunds/refunds.service.js +14 -110
  77. package/esm2015/lib/services/shared/error-handler.service.js +2 -20
  78. package/esm2015/lib/services/shared/httpclient/webcomponent.http.client.js +10 -83
  79. package/esm2015/lib/services/shared/logger/console-logger.service.js +3 -28
  80. package/esm2015/lib/services/shared/logger/logger.service.js +3 -36
  81. package/esm2015/lib/services/status-history/status-history.service.js +8 -41
  82. package/esm2015/lib/services/xl-file/xl-file.service.js +2 -61
  83. package/esm2015/public_api.js +4 -9
  84. package/esm5/hmcts-ccpay-web-component.js +2 -7
  85. package/esm5/lib/components/add-remission/add-remission.component.js +65 -506
  86. package/esm5/lib/components/allocate-payments/allocate-payments.component.js +63 -411
  87. package/esm5/lib/components/card-details/card-details.component.js +10 -49
  88. package/esm5/lib/components/case-transactions/case-transactions.component.js +149 -842
  89. package/esm5/lib/components/error-banner/error-banner.component.js +3 -19
  90. package/esm5/lib/components/fee-summary/fee-summary.component.js +51 -310
  91. package/esm5/lib/components/mark-unidentified-payment/mark-unidentified-payment.component.js +38 -216
  92. package/esm5/lib/components/mark-unsolicited-payment/mark-unsolicited-payment.component.js +44 -270
  93. package/esm5/lib/components/page-not-found.component.js +2 -7
  94. package/esm5/lib/components/payment-list/payment-list.component.js +9 -55
  95. package/esm5/lib/components/payment-view/payment-view.component.js +69 -419
  96. package/esm5/lib/components/pba-details/pba-details.component.js +3 -19
  97. package/esm5/lib/components/pba-payment/pba-payment.component.js +21 -141
  98. package/esm5/lib/components/process-refund/process-refund.component.js +32 -262
  99. package/esm5/lib/components/processed-payments/processed-payments.component.js +9 -53
  100. package/esm5/lib/components/refund-list/refund-list.component.js +13 -79
  101. package/esm5/lib/components/refund-status/refund-status.component.js +46 -322
  102. package/esm5/lib/components/reports/reports.component.js +41 -268
  103. package/esm5/lib/components/service-request/service-request.component.js +58 -439
  104. package/esm5/lib/components/status-history/status-history.component.js +8 -44
  105. package/esm5/lib/components/table/table.component.js +21 -143
  106. package/esm5/lib/components/unprocessed-payments/unprocessed-payments.component.js +31 -242
  107. package/esm5/lib/interfaces/AddRemissionRequest.js +1 -22
  108. package/esm5/lib/interfaces/AddRetroRemissionRequest.js +1 -12
  109. package/esm5/lib/interfaces/AllocatePaymentRequest.js +1 -36
  110. package/esm5/lib/interfaces/IAllocationPaymentsRequest.js +1 -20
  111. package/esm5/lib/interfaces/IBSPayments.js +1 -46
  112. package/esm5/lib/interfaces/ICardDetails.js +1 -22
  113. package/esm5/lib/interfaces/IFee.js +1 -54
  114. package/esm5/lib/interfaces/IOrderReferenceFee.js +1 -26
  115. package/esm5/lib/interfaces/IPatchRefundAction.js +1 -16
  116. package/esm5/lib/interfaces/IPayment.js +1 -66
  117. package/esm5/lib/interfaces/IPaymentFailure.js +1 -34
  118. package/esm5/lib/interfaces/IPaymentGroup.js +1 -20
  119. package/esm5/lib/interfaces/IPaymentStatus.js +1 -26
  120. package/esm5/lib/interfaces/IPaymentView.js +1 -18
  121. package/esm5/lib/interfaces/IPayments.js +1 -14
  122. package/esm5/lib/interfaces/IRefundAction.js +1 -16
  123. package/esm5/lib/interfaces/IRefundList.js +1 -30
  124. package/esm5/lib/interfaces/IRefundReasons.js +1 -20
  125. package/esm5/lib/interfaces/IRefundRejectReason.js +1 -16
  126. package/esm5/lib/interfaces/IRefundStatus.js +1 -24
  127. package/esm5/lib/interfaces/IRefundStatusHistory.js +1 -16
  128. package/esm5/lib/interfaces/IRemission.js +1 -26
  129. package/esm5/lib/interfaces/IResubmitRefundRequest.js +1 -12
  130. package/esm5/lib/interfaces/IStatusHistories.js +1 -20
  131. package/esm5/lib/interfaces/IStatusHistory.js +1 -22
  132. package/esm5/lib/interfaces/IserviceRequestCardPayment.js +1 -14
  133. package/esm5/lib/interfaces/IserviceRequestPbaPayment.js +1 -18
  134. package/esm5/lib/interfaces/IssueRefundRequest.js +1 -14
  135. package/esm5/lib/interfaces/PayhubAntennaRequest.js +2 -17
  136. package/esm5/lib/interfaces/PaymentToPayhubRequest.js +2 -23
  137. package/esm5/lib/interfaces/PostIssueRefundRetroRemission.js +1 -10
  138. package/esm5/lib/interfaces/PostRefundRetroRemission.js +1 -12
  139. package/esm5/lib/interfaces/RefundsRequest.js +1 -12
  140. package/esm5/lib/interfaces/UnidentifiedPaymentsRequest.js +1 -16
  141. package/esm5/lib/interfaces/UnsolicitedPaymentsRequest.js +1 -22
  142. package/esm5/lib/payment-lib.component.js +10 -152
  143. package/esm5/lib/payment-lib.module.js +1 -6
  144. package/esm5/lib/payment-lib.service.js +10 -82
  145. package/esm5/lib/pipes/capitalize.pipe.js +2 -18
  146. package/esm5/lib/pipes/ccd-hyphens.pipe.js +2 -19
  147. package/esm5/lib/pipes/key-value.pipe.js +2 -17
  148. package/esm5/lib/pipes/sanitize-html.pipe.js +6 -24
  149. package/esm5/lib/services/bulk-scaning-payment/bulk-scaning-payment.service.js +24 -148
  150. package/esm5/lib/services/card-details/card-details.service.js +9 -39
  151. package/esm5/lib/services/case-transactions/case-transactions.service.js +9 -39
  152. package/esm5/lib/services/orderslist.service.js +38 -414
  153. package/esm5/lib/services/payment-list/payment-list.service.js +9 -43
  154. package/esm5/lib/services/payment-view/payment-view.service.js +36 -302
  155. package/esm5/lib/services/refunds/refunds.service.js +25 -159
  156. package/esm5/lib/services/shared/error-handler.service.js +4 -32
  157. package/esm5/lib/services/shared/httpclient/webcomponent.http.client.js +16 -117
  158. package/esm5/lib/services/shared/logger/console-logger.service.js +10 -40
  159. package/esm5/lib/services/shared/logger/logger.service.js +5 -49
  160. package/esm5/lib/services/status-history/status-history.service.js +9 -41
  161. package/esm5/lib/services/xl-file/xl-file.service.js +10 -111
  162. package/esm5/public_api.js +4 -9
  163. package/fesm2015/hmcts-ccpay-web-component.js +626 -5699
  164. package/fesm2015/hmcts-ccpay-web-component.js.map +1 -1
  165. package/fesm5/hmcts-ccpay-web-component.js +972 -7137
  166. package/fesm5/hmcts-ccpay-web-component.js.map +1 -1
  167. package/hmcts-ccpay-web-component.metadata.json +1 -1
  168. package/lib/components/card-details/card-details.component.d.ts +1 -1
  169. package/lib/components/payment-view/payment-view.component.d.ts +2 -2
  170. package/lib/services/shared/logger/console-logger.service.d.ts +3 -3
  171. package/package.json +2 -2
@@ -1,9 +1,4 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: lib/components/fee-summary/fee-summary.component.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- import * as tslib_1 from "tslib";
1
+ import { __values } from "tslib";
7
2
  import { Component, Input } from '@angular/core';
8
3
  import { PaymentViewService } from '../../services/payment-view/payment-view.service';
9
4
  import { BulkScaningPaymentService } from '../../services/bulk-scaning-payment/bulk-scaning-payment.service';
@@ -13,7 +8,6 @@ import { PayhubAntennaRequest } from '../../interfaces/PayhubAntennaRequest';
13
8
  import { Router } from '@angular/router';
14
9
  import { Location } from '@angular/common';
15
10
  import { OrderslistService } from '../../services/orderslist.service';
16
- /** @type {?} */
17
11
  var BS_ENABLE_FLAG = 'bulk-scan-enabling-fe';
18
12
  var FeeSummaryComponent = /** @class */ (function () {
19
13
  function FeeSummaryComponent(router, bulkScaningPaymentService, location, paymentViewService, paymentLibComponent, OrderslistService) {
@@ -35,13 +29,7 @@ var FeeSummaryComponent = /** @class */ (function () {
35
29
  this.isRemissionsExist = false;
36
30
  this.isRemissionsMatch = false;
37
31
  }
38
- /**
39
- * @return {?}
40
- */
41
- FeeSummaryComponent.prototype.ngOnInit = /**
42
- * @return {?}
43
- */
44
- function () {
32
+ FeeSummaryComponent.prototype.ngOnInit = function () {
45
33
  var _this = this;
46
34
  this.viewStatus = 'main';
47
35
  this.caseType = this.paymentLibComponent.CASETYPE;
@@ -50,88 +38,45 @@ var FeeSummaryComponent = /** @class */ (function () {
50
38
  this.isStrategicFixEnable = this.paymentLibComponent.ISSFENABLE;
51
39
  this.OrderslistService.setCaseType(this.paymentLibComponent.CASETYPE);
52
40
  this.platForm = 'Antenna';
53
- this.paymentViewService.getBSfeature().subscribe((/**
54
- * @param {?} features
55
- * @return {?}
56
- */
57
- function (features) {
58
- /** @type {?} */
59
- var result = JSON.parse(features).filter((/**
60
- * @param {?} feature
61
- * @return {?}
62
- */
63
- function (feature) { return feature.uid === BS_ENABLE_FLAG; }));
41
+ this.paymentViewService.getBSfeature().subscribe(function (features) {
42
+ var result = JSON.parse(features).filter(function (feature) { return feature.uid === BS_ENABLE_FLAG; });
64
43
  _this.paymentLibComponent.ISBSENABLE = result[0] ? result[0].enable : false;
65
- }), (/**
66
- * @param {?} err
67
- * @return {?}
68
- */
69
- function (err) {
44
+ }, function (err) {
70
45
  _this.paymentLibComponent.ISBSENABLE = false;
71
- }));
46
+ });
72
47
  if (this.bsPaymentDcnNumber) {
73
48
  this.getUnassignedPaymentlist();
74
49
  }
75
50
  this.getPaymentGroup();
76
51
  };
77
- /**
78
- * @return {?}
79
- */
80
- FeeSummaryComponent.prototype.getUnassignedPaymentlist = /**
81
- * @return {?}
82
- */
83
- function () {
52
+ FeeSummaryComponent.prototype.getUnassignedPaymentlist = function () {
84
53
  var _this = this;
85
54
  if (this.selectedOption === 'dcn') {
86
- this.bulkScaningPaymentService.getBSPaymentsByDCN(this.paymentLibComponent.DCN_NUMBER).subscribe((/**
87
- * @param {?} unassignedPayments
88
- * @return {?}
89
- */
90
- function (unassignedPayments) {
55
+ this.bulkScaningPaymentService.getBSPaymentsByDCN(this.paymentLibComponent.DCN_NUMBER).subscribe(function (unassignedPayments) {
91
56
  if (unassignedPayments['data'].payments) {
92
57
  _this.service = unassignedPayments['data'].responsible_service_id;
93
58
  }
94
59
  else {
95
60
  _this.upPaymentErrorMessage = 'error';
96
61
  }
97
- }), (/**
98
- * @param {?} error
99
- * @return {?}
100
- */
101
- function (error) { return _this.upPaymentErrorMessage = error; }));
62
+ }, function (error) { return _this.upPaymentErrorMessage = error; });
102
63
  }
103
64
  else {
104
- this.bulkScaningPaymentService.getBSPaymentsByCCD(this.ccdCaseNumber).subscribe((/**
105
- * @param {?} unassignedPayments
106
- * @return {?}
107
- */
108
- function (unassignedPayments) {
65
+ this.bulkScaningPaymentService.getBSPaymentsByCCD(this.ccdCaseNumber).subscribe(function (unassignedPayments) {
109
66
  if (unassignedPayments['data'].payments) {
110
67
  _this.service = unassignedPayments['data'].responsible_service_id;
111
68
  }
112
69
  else {
113
70
  _this.upPaymentErrorMessage = 'error';
114
71
  }
115
- }), (/**
116
- * @param {?} error
117
- * @return {?}
118
- */
119
- function (error) { return _this.upPaymentErrorMessage = error; }));
72
+ }, function (error) { return _this.upPaymentErrorMessage = error; });
120
73
  }
121
74
  };
122
- /**
123
- * @param {?} feeCode
124
- * @return {?}
125
- */
126
- FeeSummaryComponent.prototype.getRemissionByFeeCode = /**
127
- * @param {?} feeCode
128
- * @return {?}
129
- */
130
- function (feeCode) {
75
+ FeeSummaryComponent.prototype.getRemissionByFeeCode = function (feeCode) {
131
76
  var e_1, _a;
132
77
  if (this.paymentGroup && this.paymentGroup.remissions && this.paymentGroup.remissions.length > 0) {
133
78
  try {
134
- for (var _b = tslib_1.__values(this.paymentGroup.remissions), _c = _b.next(); !_c.done; _c = _b.next()) {
79
+ for (var _b = __values(this.paymentGroup.remissions), _c = _b.next(); !_c.done; _c = _b.next()) {
135
80
  var remission = _c.value;
136
81
  if (remission.fee_code === feeCode) {
137
82
  return remission;
@@ -148,100 +93,49 @@ var FeeSummaryComponent = /** @class */ (function () {
148
93
  }
149
94
  return null;
150
95
  };
151
- /**
152
- * @param {?} fee
153
- * @return {?}
154
- */
155
- FeeSummaryComponent.prototype.addRemission = /**
156
- * @param {?} fee
157
- * @return {?}
158
- */
159
- function (fee) {
96
+ FeeSummaryComponent.prototype.addRemission = function (fee) {
160
97
  this.currentFee = fee;
161
98
  this.viewStatus = 'add_remission';
162
99
  };
163
- /**
164
- * @return {?}
165
- */
166
- FeeSummaryComponent.prototype.getPaymentGroup = /**
167
- * @return {?}
168
- */
169
- function () {
100
+ FeeSummaryComponent.prototype.getPaymentGroup = function () {
170
101
  var _this = this;
171
- /** @type {?} */
172
102
  var fees = [];
173
- this.paymentViewService.getPaymentGroupDetails(this.paymentGroupRef).subscribe((/**
174
- * @param {?} paymentGroup
175
- * @return {?}
176
- */
177
- function (paymentGroup) {
103
+ this.paymentViewService.getPaymentGroupDetails(this.paymentGroupRef).subscribe(function (paymentGroup) {
178
104
  _this.paymentGroup = paymentGroup;
179
105
  _this.isPaymentExist = paymentGroup.payments ? paymentGroup.payments.length > 0 : false;
180
106
  _this.isRemissionsExist = paymentGroup.remissions ? paymentGroup.remissions.length > 0 : false;
181
107
  if (paymentGroup.fees) {
182
- paymentGroup.fees.forEach((/**
183
- * @param {?} fee
184
- * @return {?}
185
- */
186
- function (fee) {
108
+ paymentGroup.fees.forEach(function (fee) {
187
109
  _this.totalAfterRemission = _this.totalAfterRemission + fee.net_amount;
188
110
  if (fee.calculated_amount === 0) {
189
111
  _this.isFeeAmountZero = true;
190
112
  }
191
113
  _this.isRemissionsMatch = false;
192
- paymentGroup.remissions.forEach((/**
193
- * @param {?} rem
194
- * @return {?}
195
- */
196
- function (rem) {
114
+ paymentGroup.remissions.forEach(function (rem) {
197
115
  if (rem.fee_code === fee.code) {
198
116
  _this.isRemissionsMatch = true;
199
117
  fee['remissions'] = rem;
200
118
  fees.push(fee);
201
119
  }
202
- }));
120
+ });
203
121
  if (!_this.isRemissionsMatch) {
204
122
  fees.push(fee);
205
123
  }
206
- }));
124
+ });
207
125
  paymentGroup.fees = fees;
208
126
  }
209
127
  _this.outStandingAmount = _this.bulkScaningPaymentService.calculateOutStandingAmount(paymentGroup);
210
- }), (/**
211
- * @param {?} error
212
- * @return {?}
213
- */
214
- function (error) { return _this.errorMessage = error.replace(/"/g, ""); }));
128
+ }, function (error) { return _this.errorMessage = error.replace(/"/g, ""); });
215
129
  };
216
- /**
217
- * @param {?} fee
218
- * @return {?}
219
- */
220
- FeeSummaryComponent.prototype.confirmRemoveFee = /**
221
- * @param {?} fee
222
- * @return {?}
223
- */
224
- function (fee) {
130
+ FeeSummaryComponent.prototype.confirmRemoveFee = function (fee) {
225
131
  this.isRemoveBtnDisabled = false;
226
132
  this.currentFee = fee;
227
133
  this.viewStatus = 'feeRemovalConfirmation';
228
134
  };
229
- /**
230
- * @param {?} fee
231
- * @return {?}
232
- */
233
- FeeSummaryComponent.prototype.removeFee = /**
234
- * @param {?} fee
235
- * @return {?}
236
- */
237
- function (fee) {
135
+ FeeSummaryComponent.prototype.removeFee = function (fee) {
238
136
  var _this = this;
239
137
  this.isRemoveBtnDisabled = true;
240
- this.paymentViewService.deleteFeeFromPaymentGroup(fee).subscribe((/**
241
- * @param {?} success
242
- * @return {?}
243
- */
244
- function (success) {
138
+ this.paymentViewService.deleteFeeFromPaymentGroup(fee).subscribe(function (success) {
245
139
  if (_this.paymentGroup.fees && _this.paymentGroup.fees.length > 1) {
246
140
  _this.totalAfterRemission = 0;
247
141
  _this.getPaymentGroup();
@@ -249,77 +143,35 @@ var FeeSummaryComponent = /** @class */ (function () {
249
143
  return;
250
144
  }
251
145
  _this.loadCaseTransactionPage();
252
- }), (/**
253
- * @param {?} error
254
- * @return {?}
255
- */
256
- function (error) {
146
+ }, function (error) {
257
147
  _this.errorMessage = error;
258
148
  _this.isRemoveBtnDisabled = false;
259
- }));
149
+ });
260
150
  };
261
- /**
262
- * @return {?}
263
- */
264
- FeeSummaryComponent.prototype.loadCaseTransactionPage = /**
265
- * @return {?}
266
- */
267
- function () {
151
+ FeeSummaryComponent.prototype.loadCaseTransactionPage = function () {
268
152
  var _this = this;
269
153
  this.paymentLibComponent.TAKEPAYMENT = true;
270
154
  this.paymentLibComponent.viewName = 'case-transactions';
271
- this.paymentViewService.getBSfeature().subscribe((/**
272
- * @param {?} features
273
- * @return {?}
274
- */
275
- function (features) {
276
- /** @type {?} */
277
- var result = JSON.parse(features).filter((/**
278
- * @param {?} feature
279
- * @return {?}
280
- */
281
- function (feature) { return feature.uid === BS_ENABLE_FLAG; }));
155
+ this.paymentViewService.getBSfeature().subscribe(function (features) {
156
+ var result = JSON.parse(features).filter(function (feature) { return feature.uid === BS_ENABLE_FLAG; });
282
157
  _this.paymentLibComponent.ISBSENABLE = result[0] ? result[0].enable : false;
283
- }), (/**
284
- * @param {?} err
285
- * @return {?}
286
- */
287
- function (err) {
158
+ }, function (err) {
288
159
  _this.paymentLibComponent.ISBSENABLE = false;
289
- }));
290
- /** @type {?} */
160
+ });
291
161
  var partUrl = "selectedOption=" + this.paymentLibComponent.SELECTED_OPTION;
292
162
  partUrl += this.bsPaymentDcnNumber ? "&dcn=" + this.bsPaymentDcnNumber : '';
293
163
  partUrl += this.paymentLibComponent.ISBSENABLE ? '&isBulkScanning=Enable' : '&isBulkScanning=Disable';
294
164
  partUrl += this.paymentLibComponent.ISTURNOFF ? '&isTurnOff=Enable' : '&isTurnOff=Disable';
295
165
  partUrl += this.paymentLibComponent.ISSFENABLE ? '&isStFixEnable=Enable' : '&isStFixEnable=Disable';
296
166
  partUrl += "&caseType=" + this.paymentLibComponent.CASETYPE;
297
- /** @type {?} */
298
167
  var url = "/payment-history/" + this.ccdCaseNumber + "?view=case-transactions&takePayment=true&" + partUrl;
299
168
  this.router.navigateByUrl(url);
300
169
  };
301
- /**
302
- * @return {?}
303
- */
304
- FeeSummaryComponent.prototype.cancelRemission = /**
305
- * @return {?}
306
- */
307
- function () {
170
+ FeeSummaryComponent.prototype.cancelRemission = function () {
308
171
  this.viewStatus = 'main';
309
172
  };
310
- /**
311
- * @param {?} event
312
- * @param {?=} page
313
- * @return {?}
314
- */
315
- FeeSummaryComponent.prototype.redirectToFeeSearchPage = /**
316
- * @param {?} event
317
- * @param {?=} page
318
- * @return {?}
319
- */
320
- function (event, page) {
173
+ FeeSummaryComponent.prototype.redirectToFeeSearchPage = function (event, page) {
321
174
  event.preventDefault();
322
- /** @type {?} */
323
175
  var partUrl = this.bsPaymentDcnNumber ? "&dcn=" + this.bsPaymentDcnNumber : '';
324
176
  partUrl += this.paymentLibComponent.ISBSENABLE ? '&isBulkScanning=Enable' : '&isBulkScanning=Disable';
325
177
  partUrl += this.paymentLibComponent.ISTURNOFF ? '&isTurnOff=Enable' : '&isTurnOff=Disable';
@@ -329,53 +181,25 @@ var FeeSummaryComponent = /** @class */ (function () {
329
181
  this.viewStatus = 'main';
330
182
  return;
331
183
  }
332
- /** @type {?} */
333
184
  var url = "/fee-search?ccdCaseNumber=" + this.ccdCaseNumber + "&selectedOption=" + this.paymentLibComponent.SELECTED_OPTION + "&paymentGroupRef=" + this.paymentGroupRef + partUrl;
334
185
  this.router.navigateByUrl(url);
335
186
  };
336
- /**
337
- * @return {?}
338
- */
339
- FeeSummaryComponent.prototype.takePayment = /**
340
- * @return {?}
341
- */
342
- function () {
187
+ FeeSummaryComponent.prototype.takePayment = function () {
343
188
  var _this = this;
344
189
  this.isConfirmationBtnDisabled = true;
345
- /** @type {?} */
346
- var requestBody = new PaymentToPayhubRequest(this.ccdCaseNumber, this.outStandingAmount, this.caseType);
347
- /** @type {?} */
348
- var antennaReqBody = new PayhubAntennaRequest(this.ccdCaseNumber, this.outStandingAmount, this.caseType);
190
+ var requestBody = new PaymentToPayhubRequest(this.ccdCaseNumber, this.outStandingAmount, this.caseType), antennaReqBody = new PayhubAntennaRequest(this.ccdCaseNumber, this.outStandingAmount, this.caseType);
349
191
  if (this.platForm === 'Antenna') {
350
- this.paymentViewService.postPaymentAntennaToPayHub(antennaReqBody, this.paymentGroupRef).subscribe((/**
351
- * @param {?} response
352
- * @return {?}
353
- */
354
- function (response) {
192
+ this.paymentViewService.postPaymentAntennaToPayHub(antennaReqBody, this.paymentGroupRef).subscribe(function (response) {
355
193
  _this.isBackButtonEnable = false;
356
194
  window.location.href = '/makePaymentByTelephoneyProvider';
357
- }), (/**
358
- * @param {?} error
359
- * @return {?}
360
- */
361
- function (error) {
195
+ }, function (error) {
362
196
  _this.errorMessage = error;
363
197
  _this.isConfirmationBtnDisabled = false;
364
198
  _this.router.navigateByUrl('/pci-pal-failure');
365
- }));
199
+ });
366
200
  }
367
201
  };
368
- /**
369
- * @param {?} outStandingAmount
370
- * @param {?} isFeeAmountZero
371
- * @return {?}
372
- */
373
- FeeSummaryComponent.prototype.goToAllocatePage = /**
374
- * @param {?} outStandingAmount
375
- * @param {?} isFeeAmountZero
376
- * @return {?}
377
- */
378
- function (outStandingAmount, isFeeAmountZero) {
202
+ FeeSummaryComponent.prototype.goToAllocatePage = function (outStandingAmount, isFeeAmountZero) {
379
203
  if (outStandingAmount > 0 || (outStandingAmount === 0 && isFeeAmountZero)) {
380
204
  this.paymentLibComponent.paymentGroupReference = this.paymentGroupRef;
381
205
  this.paymentLibComponent.viewName = 'allocate-payments';
@@ -384,25 +208,24 @@ var FeeSummaryComponent = /** @class */ (function () {
384
208
  this.loadCaseTransactionPage();
385
209
  }
386
210
  };
387
- /**
388
- * @param {?} amountDue
389
- * @return {?}
390
- */
391
- FeeSummaryComponent.prototype.isCheckAmountdueExist = /**
392
- * @param {?} amountDue
393
- * @return {?}
394
- */
395
- function (amountDue) {
211
+ FeeSummaryComponent.prototype.isCheckAmountdueExist = function (amountDue) {
396
212
  return typeof amountDue === 'undefined';
397
213
  };
214
+ FeeSummaryComponent.ctorParameters = function () { return [
215
+ { type: Router },
216
+ { type: BulkScaningPaymentService },
217
+ { type: Location },
218
+ { type: PaymentViewService },
219
+ { type: PaymentLibComponent },
220
+ { type: OrderslistService }
221
+ ]; };
398
222
  FeeSummaryComponent.decorators = [
399
223
  { type: Component, args: [{
400
224
  selector: 'ccpay-fee-summary',
401
- template: "\n<div class=\"govuk-breadcrumbs\" *ngIf=\"isBackButtonEnable\">\n <ol class=\"govuk-breadcrumbs__list\">\n <li class=\"govuk-breadcrumbs__list-item\" *ngIf=\"!isTurnOff\">\n <a (click)=\"loadCaseTransactionPage()\" class=\"govuk-back-link govuk-label\">Back</a>\n </li>\n <li class=\"govuk-breadcrumbs__list-item\" *ngIf=\"isTurnOff\">\n <a (click)=\"redirectToFeeSearchPage($event,'summary')\" class=\"govuk-back-link govuk-label\">Back</a>\n </li>\n </ol>\n</div>\n<div class=\"fee-summary\" *ngIf=\"viewStatus === 'main'\">\n <main class=\"govuk-main-wrapper\">\n <input #myInput type='hidden' id='iFrameDrivenImageValue' value='FEESUMMARY'>\n <div class=\"summaryheader\">\n <h1 class=\"heading-large govuk-!-margin-top-3 govuk-!-margin-bottom-4\">Summary </h1>\n <p class=\"govuk-!-margin-top-5 caseref\">Case reference:{{ccdCaseNumber | ccdHyphens}}</p>\n </div>\n\n <!-- <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"heading-xlarge\">Fee Summary</h1>\n </div>\n\n\n \u00A0<div\u00A0class=\"govuk-grid-column-one-third\"\u00A0align=\"right\">\n \u00A0\u00A0\u00A0\u00A0\u00A0\u00A0<button\u00A0 *ngIf=\"!isTurnOff\" (click)=\"redirectToFeeSearchPage($event,'summary')\"\n \u00A0\u00A0\u00A0\u00A0\u00A0\u00A0[disabled]=\"isPaymentExist\"\n \u00A0\u00A0\u00A0\u00A0\u00A0\u00A0[ngClass]='isPaymentExist ?\u00A0\"button\u00A0button--disabled govuk-!-margin-right-1\"\u00A0:\u00A0\"button govuk-!-margin-right-1\"'>\n Add a new fee\n </button>\n\n <a *ngIf=\"isTurnOff\" (click)=\"redirectToFeeSearchPage($event,'summary')\" class=\"button\">Add a new fee</a>\n </div>\n </div> -->\n\n\n <div *ngIf=\"errorMessage\">\n <div class=\"error-summary\" role=\"group\" aria-labelledby=\"failure-error-summary-heading\" tabindex=\"-1\">\n <h2 class=\"heading-medium error-summary-heading\" id=\"failure-error-summary-heading\">\n Payment Group details could not be retrieved\n </h2>\n <div class=\"govuk-error-summary__body\">\n {{ errorMessage }}\n </div>\n </div>\n </div>\n\n <!-- <table class=\"govuk-table\" *ngIf=\"!errorMessage && paymentGroup\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header govuk-!-font-weight-bold\" scope=\"col\">Fee Code</th>\n <th class=\"govuk-table__header govuk-!-font-weight-bold\" scope=\"col\">Fee description</th>\n <th class=\"govuk-table__header govuk-!-font-weight-bold\" scope=\"col\">Remission code</th>\n <th class=\"govuk-table__header govuk-!-font-weight-bold\" scope=\"col\"></th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\" *ngIf=\"paymentGroup.fees\">\n <tr class=\"govuk-table__row\" *ngFor=\"let fee of paymentGroup.fees; let i = index;\">\n <td class=\"govuk-table__cell\">{{ fee.code }}</td>\n <td class=\"govuk-table__cell\">{{ fee.description }}</td>\n <td class=\"govuk-table__cell\">{{ getRemissionByFeeCode(fee.code)?.hwf_reference }}</td>\n <td class=\"govuk-table__cell grey-text\">\n <table class=\"govuk-table\">\n <tr class=\"govuk-table__row\">\n <td class=\"no-border grey-text subcolumn-1\">Fee amount:</td>\n <td class=\"no-border subcolumn-2\">{{ fee.fee_amount | currency:'GBP':'symbol-narrow':'1.2-2' }}</td>\n <td class=\"no-border subcolumn-3\" *ngIf=\"!isTurnOff\">\n <a (click)=\"confirmRemoveFee(fee.id)\" [ngClass]='isPaymentExist || fee.remissions ? \"disable-link\" : \"\"'>remove fee</a>\n </td>\n <td class=\"no-border subcolumn-3\" *ngIf=\"isTurnOff\">\n <a (click)=\"confirmRemoveFee(fee.id)\">remove fee</a>\n </td>\n </tr>\n <tr class=\"govuk-table__row\" *ngIf=\"fee.volume && fee.volume > 0\">\n <td class=\"no-border grey-text subcolumn-1\">Volume:</td>\n <td class=\"no-border subcolumn-2\">{{ fee.volume }}</td>\n <td class=\"no-border subcolumn-3\"></td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"no-border grey-text subcolumn-1\">Fee total:</td>\n <td class=\"no-border subcolumn-2\">{{ fee.calculated_amount | currency:'GBP':'symbol-narrow':'1.2-2' }}</td>\n <td class=\"no-border subcolumn-3\"></td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"no-border grey-text subcolumn-1\">Remission amount:</td>\n <td class=\"no-border subcolumn-2\">{{ getRemissionByFeeCode(fee.code)?.hwf_amount? ( getRemissionByFeeCode(fee.code)?.hwf_amount | currency:'GBP':'symbol-narrow':'1.2-2') : '-' }}</td>\n <td class=\"no-border subcolumn-3\" *ngIf=\"!isTurnOff\">\n <a (click)=\"addRemission(fee)\" *ngIf=\"(getRemissionByFeeCode(fee.code)?.hwf_amount === 0 || !getRemissionByFeeCode(fee.code)?.hwf_amount) && !isPaymentExist\">\n Deduct remission\n </a>\n </td>\n <td class=\"no-border subcolumn-3\" *ngIf=\"isTurnOff\">\n <a (click)=\"addRemission(fee)\" *ngIf=\"getRemissionByFeeCode(fee.code)?.hwf_amount === 0 || !getRemissionByFeeCode(fee.code)?.hwf_amount\">\n Deduct remission\n </a>\n </td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"no-border grey-text subcolumn-1\">Total after remission:</td>\n <td class=\"no-border subcolumn-2\">{{ fee.net_amount | currency:'GBP':'symbol-narrow':'1.2-2' }}</td>\n <td class=\"no-border subcolumn-3\"></td>\n </tr>\n </table>\n </td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"no-border\"></td>\n <td class=\"no-border\"></td>\n <td class=\"no-border\"></td>\n <td class=\"no-border\">\n <table class=\"govuk-table\">\n <tr class=\"govuk-table__row\">\n <td class=\"no-border govuk-!-font-weight-bold subcolumn-1\">Total payment</td>\n <td class=\"no-border subcolumn-2\">{{ totalAfterRemission - outStandingAmount | currency:'GBP':'symbol-narrow':'1.2-2'}}</td>\n <td class=\"no-border subcolumn-3\"></td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"no-border govuk-!-font-weight-bold subcolumn-1\">Total outstanding amount</td>\n <td class=\"no-border subcolumn-2\">{{ outStandingAmount | currency:'GBP':'symbol-narrow':'1.2-2'}}</td>\n <td class=\"no-border subcolumn-3\"></td>\n </tr>\n </table>\n </td>\n </tr>\n <tr class=\"govuk-table__row\" *ngIf=\"!bsPaymentDcnNumber && isOldPcipalOff && isNewPcipalOff\">\n <td class=\"no-border\"></td>\n <td class=\"no-border\"></td>\n <td class=\"no-border\"></td>\n <td class=\"no-border\">\n <div class=\"govuk-form-group govuk-form-group--mg\">\n <fieldset class=\"govuk-fieldset\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n <span class=\"govuk-fieldset__heading govuk-fieldset__heading--fz\">\n Which system are you using to take the payment?\n </span>\n </legend>\n <div class=\"govuk-radios govuk-radios--small\">\n <div class=\"govuk-radios__item\">\n <input id=\"changed-name\" class=\"govuk-radios__input\" [(ngModel)]=\"platForm\" type=\"radio\" aria-label=\"8x8\" value=\"8x8\">\n <label class=\"govuk-label govuk-radios__label\" for=\"changed-name\">\n 8x8\n </label>\n </div>\n <div class=\"govuk-radios__item\">\n <input id=\"changed-name-2\" class=\"govuk-radios__input\" [(ngModel)]=\"platForm\" type=\"radio\" aria-label=\"Antenna\" value=\"Antenna\">\n <label class=\"govuk-label govuk-radios__label\" for=\"changed-name-2\">\n Antenna\n </label>\n </div>\n </div>\n </fieldset>\n </div>\n </td>\n </tr>\n </tbody>\n <tr class=\"govuk-table__row\">\n <td class=\"no-border\"></td>\n <td class=\"no-border\"></td>\n <td class=\"no-border\"></td>\n <td class=\"no-border\">\n <table class=\"govuk-table\">\n <tr class=\"govuk-table__row\">\n <td class=\"no-border subcolumn-2\">\n <button *ngIf=\"!bsPaymentDcnNumber\" type=\"submit\" (click)=\"takePayment()\"\n [disabled]=\"totalFee <= 0 || !platForm || isConfirmationBtnDisabled\"\n [ngClass]='totalFee <= 0 || !platForm || isConfirmationBtnDisabled? \"button button--disabled govuk-!-margin-right-1\" : \"button govuk-!-margin-right-1\"'>\n Take payment\n </button>\n <button *ngIf=\"bsPaymentDcnNumber\" type=\"button\" (click)=\"goToAllocatePage(outStandingAmount, isFeeAmountZero)\" class=\"button govuk-!-margin-right-1\">\n <span *ngIf=\"outStandingAmount > 0 || (isFeeAmountZero && outStandingAmount === 0)\">\n Allocate payment\n </span>\n <span *ngIf=\"outStandingAmount < 0 || (!isFeeAmountZero && outStandingAmount === 0)\">\n Continue\n </span>\n </button>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </tbody>\n </table> -->\n\n <div class=\"govuk-!-margin-top-3\">\n <table class=\"govuk-table govuk-!-margin-bottom-2\" *ngIf=\"!errorMessage && paymentGroup\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header\" scope=\"col\" class=\"class600\">Description</th>\n <th class=\"govuk-table__header\" scope=\"col\" class=\"class60\">Quantity</th>\n <th class=\"govuk-table__header\" scope=\"col\" class=\"class80\"></th>\n <th class=\"govuk-table__header\" scope=\"col\" class=\"class100\">Amount</th>\n </tr>\n </thead>\n\n <tbody class=\"govuk-table__body\" *ngIf=\"paymentGroup.fees\">\n <tr class=\"govuk-table__row\" *ngFor=\"let fee of paymentGroup.fees; let i = index;\">\n <td class=\"govuk-table__cell\">{{ fee.description }}\n\n <span class=\"no-border\" *ngIf=\"(isPaymentExist || (getRemissionByFeeCode(fee.code)?.hwf_amount === 0 || !getRemissionByFeeCode(fee.code)?.hwf_amount)) && !isTurnOff\">\n\n\n <a (click)=\"confirmRemoveFee(fee.id)\" *ngIf=\"(!isPaymentExist || !fee.remissions)\" [ngClass]='isPaymentExist || fee.remissions? \"disable-link\" : \"\"'> <br>Remove</a>\n </span>\n\n <span class=\"no-border\" *ngIf=\"(!isPaymentExist || (getRemissionByFeeCode(fee.code)?.hwf_amount === 0 || !getRemissionByFeeCode(fee.code)?.hwf_amount)) && isTurnOff \">\n <a (click)=\"confirmRemoveFee(fee.id)\">Remove</a>\n </span>\n\n <a (click)=\"addRemission(fee)\" class=\"remissionActive\" *ngIf=\"(getRemissionByFeeCode(fee.code)?.hwf_amount === 0 || !getRemissionByFeeCode(fee.code)?.hwf_amount) && !isPaymentExist && !isTurnOff\">\n Add help with fees or remission\n </a>\n <a (click)=\"addRemission(fee)\" class=\"remissionActive\" *ngIf=\"(getRemissionByFeeCode(fee.code)?.hwf_amount === 0 || !getRemissionByFeeCode(fee.code)?.hwf_amount) && isTurnOff\">\n Add help with fees or remission\n </a>\n <span *ngIf = \"getRemissionByFeeCode(fee.code)?.hwf_amount > 0\">\n <br>\n <div class=\"govuk-table__cell_border\" *ngIf = \"getRemissionByFeeCode(fee.code)?.hwf_amount > 0\">Remission,{{ getRemissionByFeeCode(fee.code)?.hwf_reference }}</div>\n </span>\n </td>\n\n <td class=\"govuk-table__cell\" *ngIf=\"fee.volume && fee.volume > 0\">\n {{ fee.volume }}\n <span *ngIf = \"getRemissionByFeeCode(fee.code)?.hwf_amount > 0\">\n <br>\n <div class=\"govuk-table__cell_border\">1</div>\n </span>\n </td>\n\n <td class=\"govuk-table__cell alignright\">\n <br>\n <div *ngIf = \"getRemissionByFeeCode(fee.code)?.hwf_amount > 0\" class=\"govuk-table__cell_border\"> <br><br></div>\n </td>\n <td class=\"govuk-table__cell alignright\" >\n {{ fee.calculated_amount | currency:'GBP':'symbol-narrow':'1.2-2' }}\n <span *ngIf = \"getRemissionByFeeCode(fee.code)?.hwf_amount > 0\">\n <br>\n <div class=\"govuk-table__cell_rmborder alignright\">\n -{{ getRemissionByFeeCode(fee.code)?.hwf_amount? ( getRemissionByFeeCode(fee.code)?.hwf_amount | currency:'GBP':'symbol-narrow':'1.2-2') : '-' }}\n </div>\n </span>\n </td>\n\n\n </tr>\n <!-- <tr>\n <td *ngIf = \"getRemissionByFeeCode(fee.code)?.hwf_amount > 0\">\n <br>\n <div class=\"govuk-table__cell_border\" *ngIf = \"getRemissionByFeeCode(fee.code)?.hwf_amount > 0\">Remission,{{ getRemissionByFeeCode(fee.code)?.hwf_reference }}</div>\n </td>\n <td *ngIf = \"getRemissionByFeeCode(fee.code)?.hwf_amount ===''\">\n <div class=\"govuk-table__cell_border\"></div>\n </td>\n <td *ngIf = \"getRemissionByFeeCode(fee.code)?.hwf_amount === ''\">\n <br>\n <div class=\"govuk-table__cell_border\" *ngIf = \"getRemissionByFeeCode(fee.code)?.hwf_amount === ''\"></div>\n </td>\n <td>\n <br>\n <div class=\"govuk-table__cell_border\" style=\"text-align: right;\">\n -{{ getRemissionByFeeCode(fee.code)?.hwf_amount? ( getRemissionByFeeCode(fee.code)?.hwf_amount | currency:'GBP':'symbol-narrow':'1.2-2') : '-' }}\n </div>\n </td>\n </tr> -->\n </tbody>\n </table>\n </div>\n <div class=\"addfee\">\n <button *ngIf=\"!isTurnOff\" (click)=\"redirectToFeeSearchPage($event,'summary')\"\n [disabled]=\"isPaymentExist\"\n [ngClass]='isPaymentExist ? \"govuk-button govuk-button--secondary button--disabled\" : \"govuk-button govuk-button--secondary\"'>\n Add fee\n </button>\n <a *ngIf=\"isTurnOff\" (click)=\"redirectToFeeSearchPage($event,'summary')\" class=\"govuk-button govuk-button--secondary\">Add a new fee</a>\n <div class=\"feeAddButton\">\n <p class=\"paddigleft govuk-!-margin-top-2\">Total to pay: {{ outStandingAmount | currency:'GBP':'symbol-narrow':'1.2-2'}}</p>\n </div>\n </div>\n<!--\n <div class=\"govuk-form-group govuk-form-group--mg\" *ngIf=\"!bsPaymentDcnNumber\">\n <label class=\"govuk-label custom-govuk-label govuk-fieldset__heading--fz\" for=\"responsibleOffice\">\n <strong>What service is this fee for?</strong>\n </label>\n <select class=\"govuk-select govuk-select--custom\" id=\"responsibleOffice\" [(ngModel)]=\"service\" name=\"responsibleOffice\">\n <option value=\"\" selected='selected'>Please select</option>\n <option value=\"AA07\">Divorce</option>\n <option value=\"AA09\">Financial Remedy</option>\n <option value=\"AA08\">Probate</option>\n </select>\n </div> -->\n\n <div>\n <button *ngIf=\"!bsPaymentDcnNumber\" type=\"submit\" (click)=\"takePayment()\"\n [disabled]=\"totalFee <= 0 || isConfirmationBtnDisabled\"\n [ngClass]='totalFee <= 0 || !platForm || !service || isConfirmationBtnDisabled? \"button button--disabled govuk-!-margin-right-1\" : \"button govuk-!-margin-right-1\"'>\n Take payment\n </button>\n <button *ngIf=\"bsPaymentDcnNumber\" type=\"button\" (click)=\"goToAllocatePage(outStandingAmount, isFeeAmountZero)\" class=\"button govuk-!-margin-right-1\">\n <span *ngIf=\"outStandingAmount > 0 || (isFeeAmountZero && outStandingAmount === 0)\">\n Allocate payment\n </span>\n <span *ngIf=\"outStandingAmount < 0 || (!isFeeAmountZero && outStandingAmount === 0)\">\n Continue\n </span>\n </button>\n </div>\n\n</main>\n</div>\n\n <ng-container *ngIf=\"viewStatus === 'feeRemovalConfirmation'\">\n <input #myInput type='hidden' id='iFrameDrivenImageValue' value='FEEREMOVALCONFIRMATION_1'>\n <div class=\"govuk-warning-text\">\n <span class=\"govuk-warning-text__icon\" aria-hidden=\"true\">!</span>\n <strong class=\"govuk-warning-text__text\">\n <span class=\"govuk-warning-text__assistive\">Warning</span>\n Are you sure you want to delete this fee?\n </strong>\n </div>\n <div class=\"govuk-button-grb\">\n <form novalidate>\n <button type=\"submit\" class=\"button govuk-button--secondary\" (click)=\"cancelRemission()\">\n Cancel\n </button>\n <button type=\"submit\" class=\"button\"\n *ngIf =\"!isRemoveBtnDisabled\"\n [ngClass]='isRemoveBtnDisabled ? \"button button--disabled govuk-!-margin-right-1\" : \"button govuk-!-margin-right-1\"'\n (click)=\"removeFee(currentFee)\">\n Remove\n </button>\n </form>\n </div>\n </ng-container>\n<ccpay-add-remission *ngIf=\"viewStatus === 'add_remission' && currentFee\"\n [isTurnOff]=\"isTurnOff\"\n [isStrategicFixEnable]=\"isStrategicFixEnable\"\n [fee]=\"currentFee\"\n [caseType]=\"caseType\"\n [ccdCaseNumber]=\"ccdCaseNumber\"\n [paymentGroupRef]=\"paymentGroupRef\"\n (cancelRemission)=\"cancelRemission()\"></ccpay-add-remission>\n <input *ngIf=\"viewStatus === 'payhub_view' && payhubHtml\" #myInput type='hidden' id='iFrameDrivenImageValue' value='PCIPAL'>\n",
225
+ template: "\n<div class=\"govuk-breadcrumbs\" *ngIf=\"isBackButtonEnable\">\n <ol class=\"govuk-breadcrumbs__list\">\n <li class=\"govuk-breadcrumbs__list-item\" *ngIf=\"!isTurnOff\">\n <a (click)=\"loadCaseTransactionPage()\" class=\"govuk-back-link govuk-label\">Back</a>\n </li>\n <li class=\"govuk-breadcrumbs__list-item\" *ngIf=\"isTurnOff\">\n <a (click)=\"redirectToFeeSearchPage($event,'summary')\" class=\"govuk-back-link govuk-label\">Back</a>\n </li>\n </ol>\n</div>\n<div class=\"fee-summary\" *ngIf=\"viewStatus === 'main'\">\n <main class=\"govuk-main-wrapper\">\n <input #myInput type='hidden' class='iFrameDrivenImageValue' value='FEESUMMARY'>\n <div class=\"summaryheader\">\n <h1 class=\"heading-large govuk-!-margin-top-3 govuk-!-margin-bottom-4\">Summary </h1>\n <p class=\"govuk-!-margin-top-5 caseref\">Case reference:{{ccdCaseNumber | ccdHyphens}}</p>\n </div>\n\n <!-- <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"heading-xlarge\">Fee Summary</h1>\n </div>\n\n\n \u00A0<div\u00A0class=\"govuk-grid-column-one-third\"\u00A0align=\"right\">\n \u00A0\u00A0\u00A0\u00A0\u00A0\u00A0<button\u00A0 *ngIf=\"!isTurnOff\" (click)=\"redirectToFeeSearchPage($event,'summary')\"\n \u00A0\u00A0\u00A0\u00A0\u00A0\u00A0[disabled]=\"isPaymentExist\"\n \u00A0\u00A0\u00A0\u00A0\u00A0\u00A0[ngClass]='isPaymentExist ?\u00A0\"button\u00A0button--disabled govuk-!-margin-right-1\"\u00A0:\u00A0\"button govuk-!-margin-right-1\"'>\n Add a new fee\n </button>\n\n <a *ngIf=\"isTurnOff\" (click)=\"redirectToFeeSearchPage($event,'summary')\" class=\"button\">Add a new fee</a>\n </div>\n </div> -->\n\n\n <div *ngIf=\"errorMessage\">\n <div class=\"error-summary\" role=\"group\" aria-labelledby=\"failure-error-summary-heading\" tabindex=\"-1\">\n <h2 class=\"heading-medium error-summary-heading\" id=\"failure-error-summary-heading\">\n Payment Group details could not be retrieved\n </h2>\n <div class=\"govuk-error-summary__body\">\n {{ errorMessage }}\n </div>\n </div>\n </div>\n\n <!-- <table class=\"govuk-table\" *ngIf=\"!errorMessage && paymentGroup\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header govuk-!-font-weight-bold\" scope=\"col\">Fee Code</th>\n <th class=\"govuk-table__header govuk-!-font-weight-bold\" scope=\"col\">Fee description</th>\n <th class=\"govuk-table__header govuk-!-font-weight-bold\" scope=\"col\">Remission code</th>\n <th class=\"govuk-table__header govuk-!-font-weight-bold\" scope=\"col\"></th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\" *ngIf=\"paymentGroup.fees\">\n <tr class=\"govuk-table__row\" *ngFor=\"let fee of paymentGroup.fees; let i = index;\">\n <td class=\"govuk-table__cell\">{{ fee.code }}</td>\n <td class=\"govuk-table__cell\">{{ fee.description }}</td>\n <td class=\"govuk-table__cell\">{{ getRemissionByFeeCode(fee.code)?.hwf_reference }}</td>\n <td class=\"govuk-table__cell grey-text\">\n <table class=\"govuk-table\">\n <tr class=\"govuk-table__row\">\n <td class=\"no-border grey-text subcolumn-1\">Fee amount:</td>\n <td class=\"no-border subcolumn-2\">{{ fee.fee_amount | currency:'GBP':'symbol-narrow':'1.2-2' }}</td>\n <td class=\"no-border subcolumn-3\" *ngIf=\"!isTurnOff\">\n <a (click)=\"confirmRemoveFee(fee.id)\" [ngClass]='isPaymentExist || fee.remissions ? \"disable-link\" : \"\"'>remove fee</a>\n </td>\n <td class=\"no-border subcolumn-3\" *ngIf=\"isTurnOff\">\n <a (click)=\"confirmRemoveFee(fee.id)\">remove fee</a>\n </td>\n </tr>\n <tr class=\"govuk-table__row\" *ngIf=\"fee.volume && fee.volume > 0\">\n <td class=\"no-border grey-text subcolumn-1\">Volume:</td>\n <td class=\"no-border subcolumn-2\">{{ fee.volume }}</td>\n <td class=\"no-border subcolumn-3\"></td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"no-border grey-text subcolumn-1\">Fee total:</td>\n <td class=\"no-border subcolumn-2\">{{ fee.calculated_amount | currency:'GBP':'symbol-narrow':'1.2-2' }}</td>\n <td class=\"no-border subcolumn-3\"></td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"no-border grey-text subcolumn-1\">Remission amount:</td>\n <td class=\"no-border subcolumn-2\">{{ getRemissionByFeeCode(fee.code)?.hwf_amount? ( getRemissionByFeeCode(fee.code)?.hwf_amount | currency:'GBP':'symbol-narrow':'1.2-2') : '-' }}</td>\n <td class=\"no-border subcolumn-3\" *ngIf=\"!isTurnOff\">\n <a (click)=\"addRemission(fee)\" *ngIf=\"(getRemissionByFeeCode(fee.code)?.hwf_amount === 0 || !getRemissionByFeeCode(fee.code)?.hwf_amount) && !isPaymentExist\">\n Deduct remission\n </a>\n </td>\n <td class=\"no-border subcolumn-3\" *ngIf=\"isTurnOff\">\n <a (click)=\"addRemission(fee)\" *ngIf=\"getRemissionByFeeCode(fee.code)?.hwf_amount === 0 || !getRemissionByFeeCode(fee.code)?.hwf_amount\">\n Deduct remission\n </a>\n </td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"no-border grey-text subcolumn-1\">Total after remission:</td>\n <td class=\"no-border subcolumn-2\">{{ fee.net_amount | currency:'GBP':'symbol-narrow':'1.2-2' }}</td>\n <td class=\"no-border subcolumn-3\"></td>\n </tr>\n </table>\n </td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"no-border\"></td>\n <td class=\"no-border\"></td>\n <td class=\"no-border\"></td>\n <td class=\"no-border\">\n <table class=\"govuk-table\">\n <tr class=\"govuk-table__row\">\n <td class=\"no-border govuk-!-font-weight-bold subcolumn-1\">Total payment</td>\n <td class=\"no-border subcolumn-2\">{{ totalAfterRemission - outStandingAmount | currency:'GBP':'symbol-narrow':'1.2-2'}}</td>\n <td class=\"no-border subcolumn-3\"></td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"no-border govuk-!-font-weight-bold subcolumn-1\">Total outstanding amount</td>\n <td class=\"no-border subcolumn-2\">{{ outStandingAmount | currency:'GBP':'symbol-narrow':'1.2-2'}}</td>\n <td class=\"no-border subcolumn-3\"></td>\n </tr>\n </table>\n </td>\n </tr>\n <tr class=\"govuk-table__row\" *ngIf=\"!bsPaymentDcnNumber && isOldPcipalOff && isNewPcipalOff\">\n <td class=\"no-border\"></td>\n <td class=\"no-border\"></td>\n <td class=\"no-border\"></td>\n <td class=\"no-border\">\n <div class=\"govuk-form-group govuk-form-group--mg\">\n <fieldset class=\"govuk-fieldset\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n <span class=\"govuk-fieldset__heading govuk-fieldset__heading--fz\">\n Which system are you using to take the payment?\n </span>\n </legend>\n <div class=\"govuk-radios govuk-radios--small\">\n <div class=\"govuk-radios__item\">\n <input id=\"changed-name\" class=\"govuk-radios__input\" [(ngModel)]=\"platForm\" type=\"radio\" aria-label=\"8x8\" value=\"8x8\">\n <label class=\"govuk-label govuk-radios__label\" for=\"changed-name\">\n 8x8\n </label>\n </div>\n <div class=\"govuk-radios__item\">\n <input id=\"changed-name-2\" class=\"govuk-radios__input\" [(ngModel)]=\"platForm\" type=\"radio\" aria-label=\"Antenna\" value=\"Antenna\">\n <label class=\"govuk-label govuk-radios__label\" for=\"changed-name-2\">\n Antenna\n </label>\n </div>\n </div>\n </fieldset>\n </div>\n </td>\n </tr>\n </tbody>\n <tr class=\"govuk-table__row\">\n <td class=\"no-border\"></td>\n <td class=\"no-border\"></td>\n <td class=\"no-border\"></td>\n <td class=\"no-border\">\n <table class=\"govuk-table\">\n <tr class=\"govuk-table__row\">\n <td class=\"no-border subcolumn-2\">\n <button *ngIf=\"!bsPaymentDcnNumber\" type=\"submit\" (click)=\"takePayment()\"\n [disabled]=\"totalFee <= 0 || !platForm || isConfirmationBtnDisabled\"\n [ngClass]='totalFee <= 0 || !platForm || isConfirmationBtnDisabled? \"button button--disabled govuk-!-margin-right-1\" : \"button govuk-!-margin-right-1\"'>\n Take payment\n </button>\n <button *ngIf=\"bsPaymentDcnNumber\" type=\"button\" (click)=\"goToAllocatePage(outStandingAmount, isFeeAmountZero)\" class=\"button govuk-!-margin-right-1\">\n <span *ngIf=\"outStandingAmount > 0 || (isFeeAmountZero && outStandingAmount === 0)\">\n Allocate payment\n </span>\n <span *ngIf=\"outStandingAmount < 0 || (!isFeeAmountZero && outStandingAmount === 0)\">\n Continue\n </span>\n </button>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </tbody>\n </table> -->\n\n <div class=\"govuk-!-margin-top-3\">\n <table class=\"govuk-table govuk-!-margin-bottom-2\" *ngIf=\"!errorMessage && paymentGroup\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <th class=\"govuk-table__header\" scope=\"col\" class=\"class600\">Description</th>\n <th class=\"govuk-table__header\" scope=\"col\" class=\"class60\">Quantity</th>\n <th class=\"govuk-table__header\" scope=\"col\" class=\"class80\"></th>\n <th class=\"govuk-table__header\" scope=\"col\" class=\"class100\">Amount</th>\n </tr>\n </thead>\n\n <tbody class=\"govuk-table__body\" *ngIf=\"paymentGroup.fees\">\n <tr class=\"govuk-table__row\" *ngFor=\"let fee of paymentGroup.fees; let i = index;\">\n <td class=\"govuk-table__cell\">{{ fee.description }}\n\n <span class=\"no-border\" *ngIf=\"(isPaymentExist || (getRemissionByFeeCode(fee.code)?.hwf_amount === 0 || !getRemissionByFeeCode(fee.code)?.hwf_amount)) && !isTurnOff\">\n\n\n <a (click)=\"confirmRemoveFee(fee.id)\" *ngIf=\"(!isPaymentExist || !fee.remissions)\" [ngClass]='isPaymentExist || fee.remissions? \"disable-link\" : \"\"'> <br>Remove</a>\n </span>\n\n <span class=\"no-border\" *ngIf=\"(!isPaymentExist || (getRemissionByFeeCode(fee.code)?.hwf_amount === 0 || !getRemissionByFeeCode(fee.code)?.hwf_amount)) && isTurnOff \">\n <a (click)=\"confirmRemoveFee(fee.id)\">Remove</a>\n </span>\n\n <a (click)=\"addRemission(fee)\" class=\"remissionActive\" *ngIf=\"(getRemissionByFeeCode(fee.code)?.hwf_amount === 0 || !getRemissionByFeeCode(fee.code)?.hwf_amount) && !isPaymentExist && !isTurnOff\">\n Add help with fees or remission\n </a>\n <a (click)=\"addRemission(fee)\" class=\"remissionActive\" *ngIf=\"(getRemissionByFeeCode(fee.code)?.hwf_amount === 0 || !getRemissionByFeeCode(fee.code)?.hwf_amount) && isTurnOff\">\n Add help with fees or remission\n </a>\n <span *ngIf = \"getRemissionByFeeCode(fee.code)?.hwf_amount > 0\">\n <br>\n <div class=\"govuk-table__cell_border\" *ngIf = \"getRemissionByFeeCode(fee.code)?.hwf_amount > 0\">Remission,{{ getRemissionByFeeCode(fee.code)?.hwf_reference }}</div>\n </span>\n </td>\n\n <td class=\"govuk-table__cell\" *ngIf=\"fee.volume && fee.volume > 0\">\n {{ fee.volume }}\n <span *ngIf = \"getRemissionByFeeCode(fee.code)?.hwf_amount > 0\">\n <br>\n <div class=\"govuk-table__cell_border\">1</div>\n </span>\n </td>\n\n <td class=\"govuk-table__cell alignright\">\n <br>\n <div *ngIf = \"getRemissionByFeeCode(fee.code)?.hwf_amount > 0\" class=\"govuk-table__cell_border\"> <br><br></div>\n </td>\n <td class=\"govuk-table__cell alignright\" >\n {{ fee.calculated_amount | currency:'GBP':'symbol-narrow':'1.2-2' }}\n <span *ngIf = \"getRemissionByFeeCode(fee.code)?.hwf_amount > 0\">\n <br>\n <div class=\"govuk-table__cell_rmborder alignright\">\n -{{ getRemissionByFeeCode(fee.code)?.hwf_amount? ( getRemissionByFeeCode(fee.code)?.hwf_amount | currency:'GBP':'symbol-narrow':'1.2-2') : '-' }}\n </div>\n </span>\n </td>\n\n\n </tr>\n <!-- <tr>\n <td *ngIf = \"getRemissionByFeeCode(fee.code)?.hwf_amount > 0\">\n <br>\n <div class=\"govuk-table__cell_border\" *ngIf = \"getRemissionByFeeCode(fee.code)?.hwf_amount > 0\">Remission,{{ getRemissionByFeeCode(fee.code)?.hwf_reference }}</div>\n </td>\n <td *ngIf = \"getRemissionByFeeCode(fee.code)?.hwf_amount ===''\">\n <div class=\"govuk-table__cell_border\"></div>\n </td>\n <td *ngIf = \"getRemissionByFeeCode(fee.code)?.hwf_amount === ''\">\n <br>\n <div class=\"govuk-table__cell_border\" *ngIf = \"getRemissionByFeeCode(fee.code)?.hwf_amount === ''\"></div>\n </td>\n <td>\n <br>\n <div class=\"govuk-table__cell_border\" style=\"text-align: right;\">\n -{{ getRemissionByFeeCode(fee.code)?.hwf_amount? ( getRemissionByFeeCode(fee.code)?.hwf_amount | currency:'GBP':'symbol-narrow':'1.2-2') : '-' }}\n </div>\n </td>\n </tr> -->\n </tbody>\n </table>\n </div>\n <div class=\"addfee\">\n <button *ngIf=\"!isTurnOff\" (click)=\"redirectToFeeSearchPage($event,'summary')\"\n [disabled]=\"isPaymentExist\"\n [ngClass]='isPaymentExist ? \"govuk-button govuk-button--secondary button--disabled\" : \"govuk-button govuk-button--secondary\"'>\n Add fee\n </button>\n <a *ngIf=\"isTurnOff\" (click)=\"redirectToFeeSearchPage($event,'summary')\" class=\"govuk-button govuk-button--secondary\">Add a new fee</a>\n <div class=\"feeAddButton\">\n <p class=\"paddigleft govuk-!-margin-top-2\">Total to pay: {{ outStandingAmount | currency:'GBP':'symbol-narrow':'1.2-2'}}</p>\n </div>\n </div>\n<!--\n <div class=\"govuk-form-group govuk-form-group--mg\" *ngIf=\"!bsPaymentDcnNumber\">\n <label class=\"govuk-label custom-govuk-label govuk-fieldset__heading--fz\" for=\"responsibleOffice\">\n <strong>What service is this fee for?</strong>\n </label>\n <select class=\"govuk-select govuk-select--custom\" id=\"responsibleOffice\" [(ngModel)]=\"service\" name=\"responsibleOffice\">\n <option value=\"\" selected='selected'>Please select</option>\n <option value=\"AA07\">Divorce</option>\n <option value=\"AA09\">Financial Remedy</option>\n <option value=\"AA08\">Probate</option>\n </select>\n </div> -->\n\n <div>\n <button *ngIf=\"!bsPaymentDcnNumber\" type=\"submit\" (click)=\"takePayment()\"\n [disabled]=\"totalFee <= 0 || isConfirmationBtnDisabled\"\n [ngClass]='totalFee <= 0 || !platForm || !service || isConfirmationBtnDisabled? \"button button--disabled govuk-!-margin-right-1\" : \"button govuk-!-margin-right-1\"'>\n Take payment\n </button>\n <button *ngIf=\"bsPaymentDcnNumber\" type=\"button\" (click)=\"goToAllocatePage(outStandingAmount, isFeeAmountZero)\" class=\"button govuk-!-margin-right-1\">\n <span *ngIf=\"outStandingAmount > 0 || (isFeeAmountZero && outStandingAmount === 0)\">\n Allocate payment\n </span>\n <span *ngIf=\"outStandingAmount < 0 || (!isFeeAmountZero && outStandingAmount === 0)\">\n Continue\n </span>\n </button>\n </div>\n\n</main>\n</div>\n\n <ng-container *ngIf=\"viewStatus === 'feeRemovalConfirmation'\">\n <input #myInput type='hidden' class='iFrameDrivenImageValue' value='FEEREMOVALCONFIRMATION_1'>\n <div class=\"govuk-warning-text\">\n <span class=\"govuk-warning-text__icon\" aria-hidden=\"true\">!</span>\n <strong class=\"govuk-warning-text__text\">\n <span class=\"govuk-warning-text__assistive\">Warning</span>\n Are you sure you want to delete this fee?\n </strong>\n </div>\n <div class=\"govuk-button-grb\">\n <form novalidate>\n <button type=\"submit\" class=\"button govuk-button--secondary\" (click)=\"cancelRemission()\">\n Cancel\n </button>\n <button type=\"submit\" class=\"button\"\n *ngIf =\"!isRemoveBtnDisabled\"\n [ngClass]='isRemoveBtnDisabled ? \"button button--disabled govuk-!-margin-right-1\" : \"button govuk-!-margin-right-1\"'\n (click)=\"removeFee(currentFee)\">\n Remove\n </button>\n </form>\n </div>\n </ng-container>\n<ccpay-add-remission *ngIf=\"viewStatus === 'add_remission' && currentFee\"\n [isTurnOff]=\"isTurnOff\"\n [isStrategicFixEnable]=\"isStrategicFixEnable\"\n [fee]=\"currentFee\"\n [caseType]=\"caseType\"\n [ccdCaseNumber]=\"ccdCaseNumber\"\n [paymentGroupRef]=\"paymentGroupRef\"\n (cancelRemission)=\"cancelRemission()\"></ccpay-add-remission>\n <input *ngIf=\"viewStatus === 'payhub_view' && payhubHtml\" #myInput type='hidden' class='iFrameDrivenImageValue' value='PCIPAL'>\n",
402
226
  styles: [".fee-summary .grey-text{color:#6b7376;font-weight:500}.fee-summary .govuk-table{margin-bottom:0}.fee-summary .no-border{border:none;border-bottom:none}.fee-summary table td,.fee-summary table th{font-size:19px;vertical-align:top}.fee-summary table td .no-padding,.fee-summary table th .no-padding{padding:0}.fee-summary table td .subcolumn-1,.fee-summary table th .subcolumn-1{width:45%}.fee-summary table td .subcolumn-2,.fee-summary table th .subcolumn-2{width:25%;text-align:right}.fee-summary table td .subcolumn-3,.fee-summary table th .subcolumn-3{width:30%;text-align:center}table th{font-weight:700}.govuk-button-grb{padding-bottom:20px}.govuk-button-grb .govuk-button--secondary{background-color:#dee0e2;box-shadow:0 2px 0 #858688;color:#0b0c0c;margin-right:10px}.govuk-form-group--mg{margin-top:10px!important}.govuk-fieldset__heading--fz{font-size:16px}.remissionDisable{color:grey;cursor:default}.heading-xlarge{margin:0 0 14px -20px}.govuk-select--custom{width:50%}.disable-link{cursor:default;pointer-events:none;color:#8e8c8c}.govuk-table__cell_border,.govuk-table__header{padding:10px 0 0;border-top:1px solid #bfc1c3;text-align:left}.govuk-table__cell,.govuk-table__header{padding:10px 0}.govuk-table__cell_rmborder,.govuk-table__header{padding:10px 0 0;border-top:1px solid #bfc1c3;text-align:left}.govuk-table__fessheader{font-weight:700}.govuk-button{font-size:19px}.feeAddButton{padding-left:65rem}.remissionActive{padding-left:10px}.paddigleft{padding-left:2em}.govuk-back-link{font-size:1.5rem!important}.govuk-warning-text__text{font-size:19px}.summaryheader{display:flex;flex-direction:row;justify-content:space-between;width:960px}.class600{width:600px}.class60{width:60px}.class80{width:80px;text-align:right}.class100{width:100px;text-align:right}.alignright{text-align:right}.caseref{align-self:flex-end}.addfee{display:flex;flex-direction:row}"]
403
- }] }
227
+ },] }
404
228
  ];
405
- /** @nocollapse */
406
229
  FeeSummaryComponent.ctorParameters = function () { return [
407
230
  { type: Router },
408
231
  { type: BulkScaningPaymentService },
@@ -420,86 +243,4 @@ var FeeSummaryComponent = /** @class */ (function () {
420
243
  return FeeSummaryComponent;
421
244
  }());
422
245
  export { FeeSummaryComponent };
423
- if (false) {
424
- /** @type {?} */
425
- FeeSummaryComponent.prototype.paymentGroupRef;
426
- /** @type {?} */
427
- FeeSummaryComponent.prototype.ccdCaseNumber;
428
- /** @type {?} */
429
- FeeSummaryComponent.prototype.isTurnOff;
430
- /** @type {?} */
431
- FeeSummaryComponent.prototype.caseType;
432
- /** @type {?} */
433
- FeeSummaryComponent.prototype.bsPaymentDcnNumber;
434
- /** @type {?} */
435
- FeeSummaryComponent.prototype.paymentGroup;
436
- /** @type {?} */
437
- FeeSummaryComponent.prototype.errorMessage;
438
- /** @type {?} */
439
- FeeSummaryComponent.prototype.viewStatus;
440
- /** @type {?} */
441
- FeeSummaryComponent.prototype.currentFee;
442
- /** @type {?} */
443
- FeeSummaryComponent.prototype.totalFee;
444
- /** @type {?} */
445
- FeeSummaryComponent.prototype.payhubHtml;
446
- /** @type {?} */
447
- FeeSummaryComponent.prototype.service;
448
- /** @type {?} */
449
- FeeSummaryComponent.prototype.platForm;
450
- /** @type {?} */
451
- FeeSummaryComponent.prototype.upPaymentErrorMessage;
452
- /** @type {?} */
453
- FeeSummaryComponent.prototype.selectedOption;
454
- /** @type {?} */
455
- FeeSummaryComponent.prototype.isBackButtonEnable;
456
- /** @type {?} */
457
- FeeSummaryComponent.prototype.outStandingAmount;
458
- /** @type {?} */
459
- FeeSummaryComponent.prototype.isFeeAmountZero;
460
- /** @type {?} */
461
- FeeSummaryComponent.prototype.totalAfterRemission;
462
- /** @type {?} */
463
- FeeSummaryComponent.prototype.isConfirmationBtnDisabled;
464
- /** @type {?} */
465
- FeeSummaryComponent.prototype.isRemoveBtnDisabled;
466
- /** @type {?} */
467
- FeeSummaryComponent.prototype.isPaymentExist;
468
- /** @type {?} */
469
- FeeSummaryComponent.prototype.isRemissionsExist;
470
- /** @type {?} */
471
- FeeSummaryComponent.prototype.isRemissionsMatch;
472
- /** @type {?} */
473
- FeeSummaryComponent.prototype.isStrategicFixEnable;
474
- /**
475
- * @type {?}
476
- * @private
477
- */
478
- FeeSummaryComponent.prototype.router;
479
- /**
480
- * @type {?}
481
- * @private
482
- */
483
- FeeSummaryComponent.prototype.bulkScaningPaymentService;
484
- /**
485
- * @type {?}
486
- * @private
487
- */
488
- FeeSummaryComponent.prototype.location;
489
- /**
490
- * @type {?}
491
- * @private
492
- */
493
- FeeSummaryComponent.prototype.paymentViewService;
494
- /**
495
- * @type {?}
496
- * @private
497
- */
498
- FeeSummaryComponent.prototype.paymentLibComponent;
499
- /**
500
- * @type {?}
501
- * @private
502
- */
503
- FeeSummaryComponent.prototype.OrderslistService;
504
- }
505
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9mZWUtc3VtbWFyeS9mZWUtc3VtbWFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDN0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHbEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFN0UsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7SUFFaEUsY0FBYyxHQUFHLHVCQUF1QjtBQUU5QztJQW1DRSw2QkFDVSxNQUFjLEVBQ2QseUJBQW9ELEVBQ3BELFFBQWtCLEVBQ2xCLGtCQUFzQyxFQUN0QyxtQkFBd0MsRUFDeEMsaUJBQW9DO1FBTHBDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBQ3BELGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUF6QjlDLGVBQVUsR0FB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OENBQWlDOztJQUNqQyxrREFBZ0M7O0lBQ2hDLHdEQUEyQzs7SUFDM0Msa0RBQXFDOztJQUNyQyw2Q0FBZ0M7O0lBQ2hDLGdEQUFtQzs7SUFDbkMsZ0RBQTBCOztJQUMxQixtREFBOEI7Ozs7O0lBRzVCLHFDQUFzQjs7Ozs7SUFDdEIsd0RBQTREOzs7OztJQUM1RCx1Q0FBMEI7Ozs7O0lBQzFCLGlEQUE4Qzs7Ozs7SUFDOUMsa0RBQWdEOzs7OztJQUNoRCxnREFBNEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElQYXltZW50R3JvdXAgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lQYXltZW50R3JvdXAnO1xuaW1wb3J0IHsgUGF5bWVudFZpZXdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcGF5bWVudC12aWV3L3BheW1lbnQtdmlldy5zZXJ2aWNlJztcbmltcG9ydCB7IEJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9idWxrLXNjYW5pbmctcGF5bWVudC9idWxrLXNjYW5pbmctcGF5bWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFBheW1lbnRMaWJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wYXltZW50LWxpYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSVJlbWlzc2lvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVJlbWlzc2lvbic7XG5pbXBvcnQgeyBJRmVlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JRmVlJztcbmltcG9ydCB7IFBheW1lbnRUb1BheWh1YlJlcXVlc3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL1BheW1lbnRUb1BheWh1YlJlcXVlc3QnO1xuaW1wb3J0IHsgUGF5aHViQW50ZW5uYVJlcXVlc3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL1BheWh1YkFudGVubmFSZXF1ZXN0JztcbmltcG9ydCB7IFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQge1JvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7TG9jYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBPcmRlcnNsaXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29yZGVyc2xpc3Quc2VydmljZSc7XG5cbmNvbnN0IEJTX0VOQUJMRV9GTEFHID0gJ2J1bGstc2Nhbi1lbmFibGluZy1mZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjcGF5LWZlZS1zdW1tYXJ5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZlZS1zdW1tYXJ5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmVlLXN1bW1hcnkuY29tcG9uZW50LnNjc3MnXVxufSlcblxuZXhwb3J0IGNsYXNzIEZlZVN1bW1hcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwYXltZW50R3JvdXBSZWY6IHN0cmluZztcbiAgQElucHV0KCkgY2NkQ2FzZU51bWJlcjogc3RyaW5nO1xuICBASW5wdXQoKSBpc1R1cm5PZmY6IHN0cmluZztcbiAgQElucHV0KCkgY2FzZVR5cGU6IHN0cmluZztcblxuXG4gIGJzUGF5bWVudERjbk51bWJlcjogc3RyaW5nO1xuICBwYXltZW50R3JvdXA6IElQYXltZW50R3JvdXA7XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICB2aWV3U3RhdHVzID0gJ21haW4nO1xuICBjdXJyZW50RmVlOiBJRmVlO1xuICB0b3RhbEZlZTogbnVtYmVyO1xuICBwYXlodWJIdG1sOiBTYWZlSHRtbDtcbiAgc2VydmljZTogc3RyaW5nID0gXCJcIjtcbiAgcGxhdEZvcm06IHN0cmluZyA9IFwiXCI7XG4gIHVwUGF5bWVudEVycm9yTWVzc2FnZTogc3RyaW5nO1xuICBzZWxlY3RlZE9wdGlvbjpzdHJpbmc7XG4gIGlzQmFja0J1dHRvbkVuYWJsZTogYm9vbGVhbiA9IHRydWU7XG4gIG91dFN0YW5kaW5nQW1vdW50OiBudW1iZXI7XG4gIGlzRmVlQW1vdW50WmVybzogYm9vbGVhbiA9IGZhbHNlO1xuICB0b3RhbEFmdGVyUmVtaXNzaW9uOiBudW1iZXIgPSAwO1xuICBpc0NvbmZpcm1hdGlvbkJ0bkRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUmVtb3ZlQnRuRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNQYXltZW50RXhpc3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNSZW1pc3Npb25zRXhpc3Q6IEJvb2xlYW4gPSBmYWxzZTtcbiAgaXNSZW1pc3Npb25zTWF0Y2ggPSBmYWxzZTtcbiAgaXNTdHJhdGVnaWNGaXhFbmFibGU6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2U6IEJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICAgcHJpdmF0ZSBwYXltZW50Vmlld1NlcnZpY2U6IFBheW1lbnRWaWV3U2VydmljZSxcbiAgICBwcml2YXRlIHBheW1lbnRMaWJDb21wb25lbnQ6IFBheW1lbnRMaWJDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBPcmRlcnNsaXN0U2VydmljZTogT3JkZXJzbGlzdFNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudmlld1N0YXR1cyA9ICdtYWluJztcbiAgICB0aGlzLmNhc2VUeXBlID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LkNBU0VUWVBFO1xuICAgIHRoaXMuYnNQYXltZW50RGNuTnVtYmVyID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmJzcGF5bWVudGRjbjtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlNFTEVDVEVEX09QVElPTi50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgIHRoaXMuaXNTdHJhdGVnaWNGaXhFbmFibGUgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNTRkVOQUJMRTtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldENhc2VUeXBlKHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5DQVNFVFlQRSk7XG5cbiAgICAgIHRoaXMucGxhdEZvcm0gPSAnQW50ZW5uYSc7XG5cbiAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5nZXRCU2ZlYXR1cmUoKS5zdWJzY3JpYmUoXG4gICAgICBmZWF0dXJlcyA9PiB7XG4gICAgICAgIGxldCByZXN1bHQgPSBKU09OLnBhcnNlKGZlYXR1cmVzKS5maWx0ZXIoZmVhdHVyZSA9PiBmZWF0dXJlLnVpZCA9PT0gQlNfRU5BQkxFX0ZMQUcpO1xuICAgICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNCU0VOQUJMRSA9IHJlc3VsdFswXSA/IHJlc3VsdFswXS5lbmFibGUgOiBmYWxzZTtcbiAgICAgIH0sXG4gICAgICBlcnIgPT4ge1xuICAgICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNCU0VOQUJMRSA9IGZhbHNlO1xuICAgICAgfVxuICAgICk7XG4gICAgaWYgKHRoaXMuYnNQYXltZW50RGNuTnVtYmVyKSB7XG4gICAgICB0aGlzLmdldFVuYXNzaWduZWRQYXltZW50bGlzdCgpO1xuICAgIH1cbiAgICB0aGlzLmdldFBheW1lbnRHcm91cCgpO1xuICB9XG5cbiAgICBnZXRVbmFzc2lnbmVkUGF5bWVudGxpc3QoKSB7XG4gICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9uID09PSAnZGNuJykge1xuICAgICAgICB0aGlzLmJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2UuZ2V0QlNQYXltZW50c0J5RENOKHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5EQ05fTlVNQkVSKS5zdWJzY3JpYmUoXG4gICAgICAgIHVuYXNzaWduZWRQYXltZW50cyA9PiB7XG4gICAgICAgICAgaWYodW5hc3NpZ25lZFBheW1lbnRzWydkYXRhJ10ucGF5bWVudHMpIHtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZSA9IHVuYXNzaWduZWRQYXltZW50c1snZGF0YSddLnJlc3BvbnNpYmxlX3NlcnZpY2VfaWQ7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXBQYXltZW50RXJyb3JNZXNzYWdlID0gJ2Vycm9yJztcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcjogYW55KSA9PiB0aGlzLnVwUGF5bWVudEVycm9yTWVzc2FnZSA9IGVycm9yXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYnVsa1NjYW5pbmdQYXltZW50U2VydmljZS5nZXRCU1BheW1lbnRzQnlDQ0QodGhpcy5jY2RDYXNlTnVtYmVyKS5zdWJzY3JpYmUoXG4gICAgICAgIHVuYXNzaWduZWRQYXltZW50cyA9PiB7XG4gICAgICAgICAgaWYodW5hc3NpZ25lZFBheW1lbnRzWydkYXRhJ10ucGF5bWVudHMpIHtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZSA9IHVuYXNzaWduZWRQYXltZW50c1snZGF0YSddLnJlc3BvbnNpYmxlX3NlcnZpY2VfaWQ7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXBQYXltZW50RXJyb3JNZXNzYWdlID0gJ2Vycm9yJztcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcjogYW55KSA9PiB0aGlzLnVwUGF5bWVudEVycm9yTWVzc2FnZSA9IGVycm9yXG4gICAgICApO1xuICAgIH1cblxuICB9XG5cbiAgZ2V0UmVtaXNzaW9uQnlGZWVDb2RlKGZlZUNvZGU6IHN0cmluZyk6IElSZW1pc3Npb24ge1xuICAgIGlmICh0aGlzLnBheW1lbnRHcm91cCAmJiB0aGlzLnBheW1lbnRHcm91cC5yZW1pc3Npb25zICYmIHRoaXMucGF5bWVudEdyb3VwLnJlbWlzc2lvbnMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChjb25zdCByZW1pc3Npb24gb2YgdGhpcy5wYXltZW50R3JvdXAucmVtaXNzaW9ucykge1xuICAgICAgICBpZiAocmVtaXNzaW9uLmZlZV9jb2RlID09PSBmZWVDb2RlKSB7XG4gICAgICAgICAgcmV0dXJuIHJlbWlzc2lvbjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGFkZFJlbWlzc2lvbihmZWU6IElGZWUpIHtcbiAgICB0aGlzLmN1cnJlbnRGZWUgPSBmZWU7XG4gICAgdGhpcy52aWV3U3RhdHVzID0gJ2FkZF9yZW1pc3Npb24nO1xuICB9XG5cbiAgZ2V0UGF5bWVudEdyb3VwKCkge1xuICAgIGxldCBmZWVzID0gW107XG4gICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UuZ2V0UGF5bWVudEdyb3VwRGV0YWlscyh0aGlzLnBheW1lbnRHcm91cFJlZikuc3Vic2NyaWJlKFxuICAgICAgcGF5bWVudEdyb3VwID0+IHtcbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAgPSBwYXltZW50R3JvdXA7XG4gICAgICAgIHRoaXMuaXNQYXltZW50RXhpc3QgPSBwYXltZW50R3JvdXAucGF5bWVudHMgPyBwYXltZW50R3JvdXAucGF5bWVudHMubGVuZ3RoID4gMCA6IGZhbHNlO1xuICAgICAgICB0aGlzLmlzUmVtaXNzaW9uc0V4aXN0ID0gcGF5bWVudEdyb3VwLnJlbWlzc2lvbnMgPyBwYXltZW50R3JvdXAucmVtaXNzaW9ucy5sZW5ndGggPiAwIDogZmFsc2U7XG5cbiAgICAgICAgaWYgKHBheW1lbnRHcm91cC5mZWVzKSB7XG4gICAgICAgICAgcGF5bWVudEdyb3VwLmZlZXMuZm9yRWFjaChmZWUgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnRvdGFsQWZ0ZXJSZW1pc3Npb24gID0gdGhpcy50b3RhbEFmdGVyUmVtaXNzaW9uICArIGZlZS5uZXRfYW1vdW50O1xuICAgICAgICAgICAgICBpZihmZWUuY2FsY3VsYXRlZF9hbW91bnQgPT09IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzRmVlQW1vdW50WmVybyA9IHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5pc1JlbWlzc2lvbnNNYXRjaCA9IGZhbHNlO1xuICAgICAgICAgICAgICBwYXltZW50R3JvdXAucmVtaXNzaW9ucy5mb3JFYWNoKHJlbSA9PiB7XG4gICAgICAgICAgICAgICAgaWYocmVtLmZlZV9jb2RlID09PSBmZWUuY29kZSkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5pc1JlbWlzc2lvbnNNYXRjaCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICBmZWVbJ3JlbWlzc2lvbnMnXSA9IHJlbTtcbiAgICAgICAgICAgICAgICAgIGZlZXMucHVzaChmZWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgaWYoIXRoaXMuaXNSZW1pc3Npb25zTWF0Y2gpIHtcbiAgICAgICAgICAgICAgICBmZWVzLnB1c2goZmVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHBheW1lbnRHcm91cC5mZWVzID0gZmVlcztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub3V0U3RhbmRpbmdBbW91bnQgPSB0aGlzLmJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2UuY2FsY3VsYXRlT3V0U3RhbmRpbmdBbW91bnQocGF5bWVudEdyb3VwKTtcbiAgICAgIH0sXG4gICAgICAoZXJyb3I6IGFueSkgPT4gdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnJvci5yZXBsYWNlKC9cIi9nLFwiXCIpXG4gICAgKTtcbiAgfVxuXG4gIGNvbmZpcm1SZW1vdmVGZWUoZmVlOiBJRmVlKXtcbiAgICB0aGlzLmlzUmVtb3ZlQnRuRGlzYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLmN1cnJlbnRGZWUgPSBmZWU7XG4gICAgdGhpcy52aWV3U3RhdHVzID0gJ2ZlZVJlbW92YWxDb25maXJtYXRpb24nO1xuICB9XG5cbiAgcmVtb3ZlRmVlKGZlZTogYW55KXtcbiAgICB0aGlzLmlzUmVtb3ZlQnRuRGlzYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMucGF5bWVudFZpZXdTZXJ2aWNlLmRlbGV0ZUZlZUZyb21QYXltZW50R3JvdXAoZmVlKS5zdWJzY3JpYmUoXG4gICAgICAoc3VjY2VzczogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMucGF5bWVudEdyb3VwLmZlZXMgJiYgdGhpcy5wYXltZW50R3JvdXAuZmVlcy5sZW5ndGggPiAxKXtcbiAgICAgICAgICB0aGlzLnRvdGFsQWZ0ZXJSZW1pc3Npb24gPSAwO1xuICAgICAgICAgIHRoaXMuZ2V0UGF5bWVudEdyb3VwKCk7XG4gICAgICAgICAgdGhpcy52aWV3U3RhdHVzID0gJ21haW4nO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5sb2FkQ2FzZVRyYW5zYWN0aW9uUGFnZSgpO1xuICAgICAgfSxcbiAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnJvcjtcbiAgICAgICAgICB0aGlzLmlzUmVtb3ZlQnRuRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiBsb2FkQ2FzZVRyYW5zYWN0aW9uUGFnZSgpIHtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPSB0cnVlO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdjYXNlLXRyYW5zYWN0aW9ucyc7XG4gICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UuZ2V0QlNmZWF0dXJlKCkuc3Vic2NyaWJlKFxuICAgICAgZmVhdHVyZXMgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0ID0gSlNPTi5wYXJzZShmZWF0dXJlcykuZmlsdGVyKGZlYXR1cmUgPT4gZmVhdHVyZS51aWQgPT09IEJTX0VOQUJMRV9GTEFHKTtcbiAgICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPSByZXN1bHRbMF0gPyByZXN1bHRbMF0uZW5hYmxlIDogZmFsc2U7XG4gICAgICB9LFxuICAgICAgZXJyID0+IHtcbiAgICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgbGV0IHBhcnRVcmwgPSBgc2VsZWN0ZWRPcHRpb249JHt0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuU0VMRUNURURfT1BUSU9OfWA7XG4gICAgICBwYXJ0VXJsICs9dGhpcy5ic1BheW1lbnREY25OdW1iZXIgPyBgJmRjbj0ke3RoaXMuYnNQYXltZW50RGNuTnVtYmVyfWAgOiAnJztcbiAgICAgIHBhcnRVcmwgKz10aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNCU0VOQUJMRSA/ICcmaXNCdWxrU2Nhbm5pbmc9RW5hYmxlJyA6ICcmaXNCdWxrU2Nhbm5pbmc9RGlzYWJsZSc7XG4gICAgICBwYXJ0VXJsICs9dGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTVFVSTk9GRiA/ICcmaXNUdXJuT2ZmPUVuYWJsZScgOiAnJmlzVHVybk9mZj1EaXNhYmxlJztcbiAgICAgIHBhcnRVcmwgKz10aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNTRkVOQUJMRSA/ICcmaXNTdEZpeEVuYWJsZT1FbmFibGUnIDogJyZpc1N0Rml4RW5hYmxlPURpc2FibGUnO1xuICAgICAgcGFydFVybCArPWAmY2FzZVR5cGU9JHt0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuQ0FTRVRZUEV9YDtcblxuICAgIGxldCB1cmwgPSBgL3BheW1lbnQtaGlzdG9yeS8ke3RoaXMuY2NkQ2FzZU51bWJlcn0/dmlldz1jYXNlLXRyYW5zYWN0aW9ucyZ0YWtlUGF5bWVudD10cnVlJiR7cGFydFVybH1gO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodXJsKTtcbiAgfVxuICBjYW5jZWxSZW1pc3Npb24oKSB7XG4gICAgdGhpcy52aWV3U3RhdHVzID0gJ21haW4nO1xuICB9XG4gIHJlZGlyZWN0VG9GZWVTZWFyY2hQYWdlKGV2ZW50OiBhbnksIHBhZ2U/OiBzdHJpbmcpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGxldCBwYXJ0VXJsID10aGlzLmJzUGF5bWVudERjbk51bWJlciA/IGAmZGNuPSR7dGhpcy5ic1BheW1lbnREY25OdW1iZXJ9YCA6ICcnO1xuICAgICAgcGFydFVybCArPXRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU0JTRU5BQkxFID8gJyZpc0J1bGtTY2FubmluZz1FbmFibGUnIDogJyZpc0J1bGtTY2FubmluZz1EaXNhYmxlJztcbiAgICAgIHBhcnRVcmwgKz10aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNUVVJOT0ZGID8gJyZpc1R1cm5PZmY9RW5hYmxlJyA6ICcmaXNUdXJuT2ZmPURpc2FibGUnO1xuICAgICAgcGFydFVybCArPXRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU1NGRU5BQkxFID8gJyZpc1N0Rml4RW5hYmxlPUVuYWJsZScgOiAnJmlzU3RGaXhFbmFibGU9RGlzYWJsZSc7XG4gICAgICBwYXJ0VXJsICs9YCZjYXNlVHlwZT0ke3RoaXMucGF5bWVudExpYkNvbXBvbmVudC5DQVNFVFlQRX1gO1xuXG4gICAgaWYodGhpcy52aWV3U3RhdHVzID09PSAnZmVlUmVtb3ZhbENvbmZpcm1hdGlvbicgfHwgdGhpcy52aWV3U3RhdHVzID09PSAnYWRkX3JlbWlzc2lvbicpIHtcbiAgICAgIHRoaXMudmlld1N0YXR1cyA9ICdtYWluJztcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IHVybCA9IGAvZmVlLXNlYXJjaD9jY2RDYXNlTnVtYmVyPSR7dGhpcy5jY2RDYXNlTnVtYmVyfSZzZWxlY3RlZE9wdGlvbj0ke3RoaXMucGF5bWVudExpYkNvbXBvbmVudC5TRUxFQ1RFRF9PUFRJT059JnBheW1lbnRHcm91cFJlZj0ke3RoaXMucGF5bWVudEdyb3VwUmVmfSR7cGFydFVybH1gO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodXJsKTtcbiAgfVxuICB0YWtlUGF5bWVudCgpIHtcbiAgICB0aGlzLmlzQ29uZmlybWF0aW9uQnRuRGlzYWJsZWQgPSB0cnVlO1xuICAgICAgY29uc3QgcmVxdWVzdEJvZHkgPSBuZXcgUGF5bWVudFRvUGF5aHViUmVxdWVzdCh0aGlzLmNjZENhc2VOdW1iZXIsIHRoaXMub3V0U3RhbmRpbmdBbW91bnQsIHRoaXMuY2FzZVR5cGUpLFxuICAgICAgYW50ZW5uYVJlcUJvZHkgPSBuZXcgUGF5aHViQW50ZW5uYVJlcXVlc3QodGhpcy5jY2RDYXNlTnVtYmVyLCB0aGlzLm91dFN0YW5kaW5nQW1vdW50LCB0aGlzLmNhc2VUeXBlKTtcblxuICAgIGlmKHRoaXMucGxhdEZvcm0gPT09ICdBbnRlbm5hJykge1xuXG4gICAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5wb3N0UGF5bWVudEFudGVubmFUb1BheUh1YihhbnRlbm5hUmVxQm9keSwgdGhpcy5wYXltZW50R3JvdXBSZWYpLnN1YnNjcmliZShcbiAgICAgICAgcmVzcG9uc2UgPT4ge1xuICAgICAgICAgIHRoaXMuaXNCYWNrQnV0dG9uRW5hYmxlPWZhbHNlO1xuICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy9tYWtlUGF5bWVudEJ5VGVsZXBob25leVByb3ZpZGVyJztcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVycm9yO1xuICAgICAgICAgIHRoaXMuaXNDb25maXJtYXRpb25CdG5EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9wY2ktcGFsLWZhaWx1cmUnKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgfVxuXG4gIGdvVG9BbGxvY2F0ZVBhZ2Uob3V0U3RhbmRpbmdBbW91bnQ6IG51bWJlciwgaXNGZWVBbW91bnRaZXJvOiBCb29sZWFuKSB7XG4gICAgaWYgKG91dFN0YW5kaW5nQW1vdW50ID4gMCB8fCAob3V0U3RhbmRpbmdBbW91bnQgPT09IDAgJiYgaXNGZWVBbW91bnRaZXJvKSkge1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnBheW1lbnRHcm91cFJlZmVyZW5jZSA9IHRoaXMucGF5bWVudEdyb3VwUmVmO1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ2FsbG9jYXRlLXBheW1lbnRzJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2FkQ2FzZVRyYW5zYWN0aW9uUGFnZSgpO1xuICAgIH1cbiAgfVxuICBpc0NoZWNrQW1vdW50ZHVlRXhpc3QoYW1vdW50RHVlOiBhbnkpIHtcbiAgICByZXR1cm4gdHlwZW9mIGFtb3VudER1ZSA9PT0gJ3VuZGVmaW5lZCc7XG4gIH1cbn1cbiJdfQ==
246
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9mZWUtc3VtbWFyeS9mZWUtc3VtbWFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBR2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRTdFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFdEUsSUFBTSxjQUFjLEdBQUcsdUJBQXVCLENBQUM7QUFFL0M7SUFtQ0UsNkJBQ1UsTUFBYyxFQUNkLHlCQUFvRCxFQUNwRCxRQUFrQixFQUNsQixrQkFBc0MsRUFDdEMsbUJBQXdDLEVBQ3hDLGlCQUFvQztRQUxwQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQjtRQUNwRCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBekI5QyxlQUFV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QixHQUFoQixVQUFpQixpQkFBeUIsRUFBRSxlQUF3QjtRQUNsRSxJQUFJLGlCQUFpQixHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixLQUFLLENBQUMsSUFBSSxlQUFlLENBQUMsRUFBRTtZQUN6RSxJQUFJLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUN0RSxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxHQUFHLG1CQUFtQixDQUFDO1NBQ3pEO2FBQU07WUFDTCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztTQUNoQztJQUNILENBQUM7SUFDRCxtREFBcUIsR0FBckIsVUFBc0IsU0FBYztRQUNsQyxPQUFPLE9BQU8sU0FBUyxLQUFLLFdBQVcsQ0FBQztJQUMxQyxDQUFDOztnQkFsTmlCLE1BQU07Z0JBQ2EseUJBQXlCO2dCQUMxQyxRQUFRO2dCQUNFLGtCQUFrQjtnQkFDakIsbUJBQW1CO2dCQUNyQixpQkFBaUI7OztnQkF6Qy9DLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixnbmxCQUEyQzs7aUJBRTVDOzs7Z0JBVk8sTUFBTTtnQkFQTCx5QkFBeUI7Z0JBUTFCLFFBQVE7Z0JBVFAsa0JBQWtCO2dCQUVsQixtQkFBbUI7Z0JBUW5CLGlCQUFpQjs7O2tDQVd2QixLQUFLO2dDQUNMLEtBQUs7NEJBQ0wsS0FBSzsyQkFDTCxLQUFLOztJQTZPUiwwQkFBQztDQUFBLEFBdlBELElBdVBDO1NBalBZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVBheW1lbnRHcm91cCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVBheW1lbnRHcm91cCc7XG5pbXBvcnQgeyBQYXltZW50Vmlld1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wYXltZW50LXZpZXcvcGF5bWVudC12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHsgQnVsa1NjYW5pbmdQYXltZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2J1bGstc2NhbmluZy1wYXltZW50L2J1bGstc2NhbmluZy1wYXltZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgUGF5bWVudExpYkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BheW1lbnQtbGliLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJUmVtaXNzaW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUmVtaXNzaW9uJztcbmltcG9ydCB7IElGZWUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lGZWUnO1xuaW1wb3J0IHsgUGF5bWVudFRvUGF5aHViUmVxdWVzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvUGF5bWVudFRvUGF5aHViUmVxdWVzdCc7XG5pbXBvcnQgeyBQYXlodWJBbnRlbm5hUmVxdWVzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvUGF5aHViQW50ZW5uYVJlcXVlc3QnO1xuaW1wb3J0IHsgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtMb2NhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE9yZGVyc2xpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3JkZXJzbGlzdC5zZXJ2aWNlJztcblxuY29uc3QgQlNfRU5BQkxFX0ZMQUcgPSAnYnVsay1zY2FuLWVuYWJsaW5nLWZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NwYXktZmVlLXN1bW1hcnknLFxuICB0ZW1wbGF0ZVVybDogJy4vZmVlLXN1bW1hcnkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mZWUtc3VtbWFyeS5jb21wb25lbnQuc2NzcyddXG59KVxuXG5leHBvcnQgY2xhc3MgRmVlU3VtbWFyeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHBheW1lbnRHcm91cFJlZjogc3RyaW5nO1xuICBASW5wdXQoKSBjY2RDYXNlTnVtYmVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlzVHVybk9mZjogc3RyaW5nO1xuICBASW5wdXQoKSBjYXNlVHlwZTogc3RyaW5nO1xuXG5cbiAgYnNQYXltZW50RGNuTnVtYmVyOiBzdHJpbmc7XG4gIHBheW1lbnRHcm91cDogSVBheW1lbnRHcm91cDtcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gIHZpZXdTdGF0dXMgPSAnbWFpbic7XG4gIGN1cnJlbnRGZWU6IElGZWU7XG4gIHRvdGFsRmVlOiBudW1iZXI7XG4gIHBheWh1Ykh0bWw6IFNhZmVIdG1sO1xuICBzZXJ2aWNlOiBzdHJpbmcgPSBcIlwiO1xuICBwbGF0Rm9ybTogc3RyaW5nID0gXCJcIjtcbiAgdXBQYXltZW50RXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gIHNlbGVjdGVkT3B0aW9uOnN0cmluZztcbiAgaXNCYWNrQnV0dG9uRW5hYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgb3V0U3RhbmRpbmdBbW91bnQ6IG51bWJlcjtcbiAgaXNGZWVBbW91bnRaZXJvOiBib29sZWFuID0gZmFsc2U7XG4gIHRvdGFsQWZ0ZXJSZW1pc3Npb246IG51bWJlciA9IDA7XG4gIGlzQ29uZmlybWF0aW9uQnRuRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNSZW1vdmVCdG5EaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1BheW1lbnRFeGlzdDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1JlbWlzc2lvbnNFeGlzdDogQm9vbGVhbiA9IGZhbHNlO1xuICBpc1JlbWlzc2lvbnNNYXRjaCA9IGZhbHNlO1xuICBpc1N0cmF0ZWdpY0ZpeEVuYWJsZTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYnVsa1NjYW5pbmdQYXltZW50U2VydmljZTogQnVsa1NjYW5pbmdQYXltZW50U2VydmljZSxcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgICBwcml2YXRlIHBheW1lbnRWaWV3U2VydmljZTogUGF5bWVudFZpZXdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGF5bWVudExpYkNvbXBvbmVudDogUGF5bWVudExpYkNvbXBvbmVudCxcbiAgICBwcml2YXRlIE9yZGVyc2xpc3RTZXJ2aWNlOiBPcmRlcnNsaXN0U2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy52aWV3U3RhdHVzID0gJ21haW4nO1xuICAgIHRoaXMuY2FzZVR5cGUgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuQ0FTRVRZUEU7XG4gICAgdGhpcy5ic1BheW1lbnREY25OdW1iZXIgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuYnNwYXltZW50ZGNuO1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuU0VMRUNURURfT1BUSU9OLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgdGhpcy5pc1N0cmF0ZWdpY0ZpeEVuYWJsZSA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU1NGRU5BQkxFO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0Q2FzZVR5cGUodGhpcy5wYXltZW50TGliQ29tcG9uZW50LkNBU0VUWVBFKTtcblxuICAgICAgdGhpcy5wbGF0Rm9ybSA9ICdBbnRlbm5hJztcblxuICAgIHRoaXMucGF5bWVudFZpZXdTZXJ2aWNlLmdldEJTZmVhdHVyZSgpLnN1YnNjcmliZShcbiAgICAgIGZlYXR1cmVzID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IEpTT04ucGFyc2UoZmVhdHVyZXMpLmZpbHRlcihmZWF0dXJlID0+IGZlYXR1cmUudWlkID09PSBCU19FTkFCTEVfRkxBRyk7XG4gICAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU0JTRU5BQkxFID0gcmVzdWx0WzBdID8gcmVzdWx0WzBdLmVuYWJsZSA6IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVyciA9PiB7XG4gICAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU0JTRU5BQkxFID0gZmFsc2U7XG4gICAgICB9XG4gICAgKTtcbiAgICBpZiAodGhpcy5ic1BheW1lbnREY25OdW1iZXIpIHtcbiAgICAgIHRoaXMuZ2V0VW5hc3NpZ25lZFBheW1lbnRsaXN0KCk7XG4gICAgfVxuICAgIHRoaXMuZ2V0UGF5bWVudEdyb3VwKCk7XG4gIH1cblxuICAgIGdldFVuYXNzaWduZWRQYXltZW50bGlzdCgpIHtcbiAgICAgaWYgKHRoaXMuc2VsZWN0ZWRPcHRpb24gPT09ICdkY24nKSB7XG4gICAgICAgIHRoaXMuYnVsa1NjYW5pbmdQYXltZW50U2VydmljZS5nZXRCU1BheW1lbnRzQnlEQ04odGhpcy5wYXltZW50TGliQ29tcG9uZW50LkRDTl9OVU1CRVIpLnN1YnNjcmliZShcbiAgICAgICAgdW5hc3NpZ25lZFBheW1lbnRzID0+IHtcbiAgICAgICAgICBpZih1bmFzc2lnbmVkUGF5bWVudHNbJ2RhdGEnXS5wYXltZW50cykge1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlID0gdW5hc3NpZ25lZFBheW1lbnRzWydkYXRhJ10ucmVzcG9uc2libGVfc2VydmljZV9pZDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51cFBheW1lbnRFcnJvck1lc3NhZ2UgPSAnZXJyb3InO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yOiBhbnkpID0+IHRoaXMudXBQYXltZW50RXJyb3JNZXNzYWdlID0gZXJyb3JcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5idWxrU2NhbmluZ1BheW1lbnRTZXJ2aWNlLmdldEJTUGF5bWVudHNCeUNDRCh0aGlzLmNjZENhc2VOdW1iZXIpLnN1YnNjcmliZShcbiAgICAgICAgdW5hc3NpZ25lZFBheW1lbnRzID0+IHtcbiAgICAgICAgICBpZih1bmFzc2lnbmVkUGF5bWVudHNbJ2RhdGEnXS5wYXltZW50cykge1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlID0gdW5hc3NpZ25lZFBheW1lbnRzWydkYXRhJ10ucmVzcG9uc2libGVfc2VydmljZV9pZDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51cFBheW1lbnRFcnJvck1lc3NhZ2UgPSAnZXJyb3InO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yOiBhbnkpID0+IHRoaXMudXBQYXltZW50RXJyb3JNZXNzYWdlID0gZXJyb3JcbiAgICAgICk7XG4gICAgfVxuXG4gIH1cblxuICBnZXRSZW1pc3Npb25CeUZlZUNvZGUoZmVlQ29kZTogc3RyaW5nKTogSVJlbWlzc2lvbiB7XG4gICAgaWYgKHRoaXMucGF5bWVudEdyb3VwICYmIHRoaXMucGF5bWVudEdyb3VwLnJlbWlzc2lvbnMgJiYgdGhpcy5wYXltZW50R3JvdXAucmVtaXNzaW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IHJlbWlzc2lvbiBvZiB0aGlzLnBheW1lbnRHcm91cC5yZW1pc3Npb25zKSB7XG4gICAgICAgIGlmIChyZW1pc3Npb24uZmVlX2NvZGUgPT09IGZlZUNvZGUpIHtcbiAgICAgICAgICByZXR1cm4gcmVtaXNzaW9uO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgYWRkUmVtaXNzaW9uKGZlZTogSUZlZSkge1xuICAgIHRoaXMuY3VycmVudEZlZSA9IGZlZTtcbiAgICB0aGlzLnZpZXdTdGF0dXMgPSAnYWRkX3JlbWlzc2lvbic7XG4gIH1cblxuICBnZXRQYXltZW50R3JvdXAoKSB7XG4gICAgbGV0IGZlZXMgPSBbXTtcbiAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5nZXRQYXltZW50R3JvdXBEZXRhaWxzKHRoaXMucGF5bWVudEdyb3VwUmVmKS5zdWJzY3JpYmUoXG4gICAgICBwYXltZW50R3JvdXAgPT4ge1xuICAgICAgICB0aGlzLnBheW1lbnRHcm91cCA9IHBheW1lbnRHcm91cDtcbiAgICAgICAgdGhpcy5pc1BheW1lbnRFeGlzdCA9IHBheW1lbnRHcm91cC5wYXltZW50cyA/IHBheW1lbnRHcm91cC5wYXltZW50cy5sZW5ndGggPiAwIDogZmFsc2U7XG4gICAgICAgIHRoaXMuaXNSZW1pc3Npb25zRXhpc3QgPSBwYXltZW50R3JvdXAucmVtaXNzaW9ucyA/IHBheW1lbnRHcm91cC5yZW1pc3Npb25zLmxlbmd0aCA+IDAgOiBmYWxzZTtcblxuICAgICAgICBpZiAocGF5bWVudEdyb3VwLmZlZXMpIHtcbiAgICAgICAgICBwYXltZW50R3JvdXAuZmVlcy5mb3JFYWNoKGZlZSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMudG90YWxBZnRlclJlbWlzc2lvbiAgPSB0aGlzLnRvdGFsQWZ0ZXJSZW1pc3Npb24gICsgZmVlLm5ldF9hbW91bnQ7XG4gICAgICAgICAgICAgIGlmKGZlZS5jYWxjdWxhdGVkX2Ftb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNGZWVBbW91bnRaZXJvID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aGlzLmlzUmVtaXNzaW9uc01hdGNoID0gZmFsc2U7XG4gICAgICAgICAgICAgIHBheW1lbnRHcm91cC5yZW1pc3Npb25zLmZvckVhY2gocmVtID0+IHtcbiAgICAgICAgICAgICAgICBpZihyZW0uZmVlX2NvZGUgPT09IGZlZS5jb2RlKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmlzUmVtaXNzaW9uc01hdGNoID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIGZlZVsncmVtaXNzaW9ucyddID0gcmVtO1xuICAgICAgICAgICAgICAgICAgZmVlcy5wdXNoKGZlZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICBpZighdGhpcy5pc1JlbWlzc2lvbnNNYXRjaCkge1xuICAgICAgICAgICAgICAgIGZlZXMucHVzaChmZWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcGF5bWVudEdyb3VwLmZlZXMgPSBmZWVzO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vdXRTdGFuZGluZ0Ftb3VudCA9IHRoaXMuYnVsa1NjYW5pbmdQYXltZW50U2VydmljZS5jYWxjdWxhdGVPdXRTdGFuZGluZ0Ftb3VudChwYXltZW50R3JvdXApO1xuICAgICAgfSxcbiAgICAgIChlcnJvcjogYW55KSA9PiB0aGlzLmVycm9yTWVzc2FnZSA9IGVycm9yLnJlcGxhY2UoL1wiL2csXCJcIilcbiAgICApO1xuICB9XG5cbiAgY29uZmlybVJlbW92ZUZlZShmZWU6IElGZWUpe1xuICAgIHRoaXMuaXNSZW1vdmVCdG5EaXNhYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMuY3VycmVudEZlZSA9IGZlZTtcbiAgICB0aGlzLnZpZXdTdGF0dXMgPSAnZmVlUmVtb3ZhbENvbmZpcm1hdGlvbic7XG4gIH1cblxuICByZW1vdmVGZWUoZmVlOiBhbnkpe1xuICAgIHRoaXMuaXNSZW1vdmVCdG5EaXNhYmxlZCA9IHRydWU7XG4gICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UuZGVsZXRlRmVlRnJvbVBheW1lbnRHcm91cChmZWUpLnN1YnNjcmliZShcbiAgICAgIChzdWNjZXNzOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5wYXltZW50R3JvdXAuZmVlcyAmJiB0aGlzLnBheW1lbnRHcm91cC5mZWVzLmxlbmd0aCA+IDEpe1xuICAgICAgICAgIHRoaXMudG90YWxBZnRlclJlbWlzc2lvbiA9IDA7XG4gICAgICAgICAgdGhpcy5nZXRQYXltZW50R3JvdXAoKTtcbiAgICAgICAgICB0aGlzLnZpZXdTdGF0dXMgPSAnbWFpbic7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmxvYWRDYXNlVHJhbnNhY3Rpb25QYWdlKCk7XG4gICAgICB9LFxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVycm9yO1xuICAgICAgICAgIHRoaXMuaXNSZW1vdmVCdG5EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuIGxvYWRDYXNlVHJhbnNhY3Rpb25QYWdlKCkge1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVCA9IHRydWU7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ2Nhc2UtdHJhbnNhY3Rpb25zJztcbiAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5nZXRCU2ZlYXR1cmUoKS5zdWJzY3JpYmUoXG4gICAgICBmZWF0dXJlcyA9PiB7XG4gICAgICAgIGxldCByZXN1bHQgPSBKU09OLnBhcnNlKGZlYXR1cmVzKS5maWx0ZXIoZmVhdHVyZSA9PiBmZWF0dXJlLnVpZCA9PT0gQlNfRU5BQkxFX0ZMQUcpO1xuICAgICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNCU0VOQUJMRSA9IHJlc3VsdFswXSA/IHJlc3VsdFswXS5lbmFibGUgOiBmYWxzZTtcbiAgICAgIH0sXG4gICAgICBlcnIgPT4ge1xuICAgICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNCU0VOQUJMRSA9IGZhbHNlO1xuICAgICAgfVxuICAgICk7XG5cbiAgICBsZXQgcGFydFVybCA9IGBzZWxlY3RlZE9wdGlvbj0ke3RoaXMucGF5bWVudExpYkNvbXBvbmVudC5TRUxFQ1RFRF9PUFRJT059YDtcbiAgICAgIHBhcnRVcmwgKz10aGlzLmJzUGF5bWVudERjbk51bWJlciA/IGAmZGNuPSR7dGhpcy5ic1BheW1lbnREY25OdW1iZXJ9YCA6ICcnO1xuICAgICAgcGFydFVybCArPXRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU0JTRU5BQkxFID8gJyZpc0J1bGtTY2FubmluZz1FbmFibGUnIDogJyZpc0J1bGtTY2FubmluZz1EaXNhYmxlJztcbiAgICAgIHBhcnRVcmwgKz10aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNUVVJOT0ZGID8gJyZpc1R1cm5PZmY9RW5hYmxlJyA6ICcmaXNUdXJuT2ZmPURpc2FibGUnO1xuICAgICAgcGFydFVybCArPXRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU1NGRU5BQkxFID8gJyZpc1N0Rml4RW5hYmxlPUVuYWJsZScgOiAnJmlzU3RGaXhFbmFibGU9RGlzYWJsZSc7XG4gICAgICBwYXJ0VXJsICs9YCZjYXNlVHlwZT0ke3RoaXMucGF5bWVudExpYkNvbXBvbmVudC5DQVNFVFlQRX1gO1xuXG4gICAgbGV0IHVybCA9IGAvcGF5bWVudC1oaXN0b3J5LyR7dGhpcy5jY2RDYXNlTnVtYmVyfT92aWV3PWNhc2UtdHJhbnNhY3Rpb25zJnRha2VQYXltZW50PXRydWUmJHtwYXJ0VXJsfWA7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh1cmwpO1xuICB9XG4gIGNhbmNlbFJlbWlzc2lvbigpIHtcbiAgICB0aGlzLnZpZXdTdGF0dXMgPSAnbWFpbic7XG4gIH1cbiAgcmVkaXJlY3RUb0ZlZVNlYXJjaFBhZ2UoZXZlbnQ6IGFueSwgcGFnZT86IHN0cmluZykge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgbGV0IHBhcnRVcmwgPXRoaXMuYnNQYXltZW50RGNuTnVtYmVyID8gYCZkY249JHt0aGlzLmJzUGF5bWVudERjbk51bWJlcn1gIDogJyc7XG4gICAgICBwYXJ0VXJsICs9dGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPyAnJmlzQnVsa1NjYW5uaW5nPUVuYWJsZScgOiAnJmlzQnVsa1NjYW5uaW5nPURpc2FibGUnO1xuICAgICAgcGFydFVybCArPXRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU1RVUk5PRkYgPyAnJmlzVHVybk9mZj1FbmFibGUnIDogJyZpc1R1cm5PZmY9RGlzYWJsZSc7XG4gICAgICBwYXJ0VXJsICs9dGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTU0ZFTkFCTEUgPyAnJmlzU3RGaXhFbmFibGU9RW5hYmxlJyA6ICcmaXNTdEZpeEVuYWJsZT1EaXNhYmxlJztcbiAgICAgIHBhcnRVcmwgKz1gJmNhc2VUeXBlPSR7dGhpcy5wYXltZW50TGliQ29tcG9uZW50LkNBU0VUWVBFfWA7XG5cbiAgICBpZih0aGlzLnZpZXdTdGF0dXMgPT09ICdmZWVSZW1vdmFsQ29uZmlybWF0aW9uJyB8fCB0aGlzLnZpZXdTdGF0dXMgPT09ICdhZGRfcmVtaXNzaW9uJykge1xuICAgICAgdGhpcy52aWV3U3RhdHVzID0gJ21haW4nO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgdXJsID0gYC9mZWUtc2VhcmNoP2NjZENhc2VOdW1iZXI9JHt0aGlzLmNjZENhc2VOdW1iZXJ9JnNlbGVjdGVkT3B0aW9uPSR7dGhpcy5wYXltZW50TGliQ29tcG9uZW50LlNFTEVDVEVEX09QVElPTn0mcGF5bWVudEdyb3VwUmVmPSR7dGhpcy5wYXltZW50R3JvdXBSZWZ9JHtwYXJ0VXJsfWA7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh1cmwpO1xuICB9XG4gIHRha2VQYXltZW50KCkge1xuICAgIHRoaXMuaXNDb25maXJtYXRpb25CdG5EaXNhYmxlZCA9IHRydWU7XG4gICAgICBjb25zdCByZXF1ZXN0Qm9keSA9IG5ldyBQYXltZW50VG9QYXlodWJSZXF1ZXN0KHRoaXMuY2NkQ2FzZU51bWJlciwgdGhpcy5vdXRTdGFuZGluZ0Ftb3VudCwgdGhpcy5jYXNlVHlwZSksXG4gICAgICBhbnRlbm5hUmVxQm9keSA9IG5ldyBQYXlodWJBbnRlbm5hUmVxdWVzdCh0aGlzLmNjZENhc2VOdW1iZXIsIHRoaXMub3V0U3RhbmRpbmdBbW91bnQsIHRoaXMuY2FzZVR5cGUpO1xuXG4gICAgaWYodGhpcy5wbGF0Rm9ybSA9PT0gJ0FudGVubmEnKSB7XG5cbiAgICAgIHRoaXMucGF5bWVudFZpZXdTZXJ2aWNlLnBvc3RQYXltZW50QW50ZW5uYVRvUGF5SHViKGFudGVubmFSZXFCb2R5LCB0aGlzLnBheW1lbnRHcm91cFJlZikuc3Vic2NyaWJlKFxuICAgICAgICByZXNwb25zZSA9PiB7XG4gICAgICAgICAgdGhpcy5pc0JhY2tCdXR0b25FbmFibGU9ZmFsc2U7XG4gICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnL21ha2VQYXltZW50QnlUZWxlcGhvbmV5UHJvdmlkZXInO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyb3I7XG4gICAgICAgICAgdGhpcy5pc0NvbmZpcm1hdGlvbkJ0bkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL3BjaS1wYWwtZmFpbHVyZScpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cblxuICB9XG5cbiAgZ29Ub0FsbG9jYXRlUGFnZShvdXRTdGFuZGluZ0Ftb3VudDogbnVtYmVyLCBpc0ZlZUFtb3VudFplcm86IEJvb2xlYW4pIHtcbiAgICBpZiAob3V0U3RhbmRpbmdBbW91bnQgPiAwIHx8IChvdXRTdGFuZGluZ0Ftb3VudCA9PT0gMCAmJiBpc0ZlZUFtb3VudFplcm8pKSB7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQucGF5bWVudEdyb3VwUmVmZXJlbmNlID0gdGhpcy5wYXltZW50R3JvdXBSZWY7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAnYWxsb2NhdGUtcGF5bWVudHMnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvYWRDYXNlVHJhbnNhY3Rpb25QYWdlKCk7XG4gICAgfVxuICB9XG4gIGlzQ2hlY2tBbW91bnRkdWVFeGlzdChhbW91bnREdWU6IGFueSkge1xuICAgIHJldHVybiB0eXBlb2YgYW1vdW50RHVlID09PSAndW5kZWZpbmVkJztcbiAgfVxufVxuIl19