@hmcts/ccpay-web-component 6.0.0-beta9 → 6.0.1

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 (317) hide show
  1. package/esm2022/hmcts-ccpay-web-component.mjs +5 -0
  2. package/esm2022/lib/components/add-remission/add-remission.component.mjs +1189 -0
  3. package/esm2022/lib/components/allocate-payments/allocate-payments.component.mjs +407 -0
  4. package/esm2022/lib/components/card-details/card-details.component.mjs +32 -0
  5. package/esm2022/lib/components/case-transactions/case-transactions.component.mjs +798 -0
  6. package/esm2022/lib/components/contact-details/contact-details.component.mjs +338 -0
  7. package/esm2022/lib/components/error-banner/error-banner.component.mjs +18 -0
  8. package/esm2022/lib/components/fee-summary/fee-summary.component.mjs +247 -0
  9. package/esm2022/lib/components/mark-unidentified-payment/mark-unidentified-payment.component.mjs +195 -0
  10. package/esm2022/lib/components/mark-unsolicited-payment/mark-unsolicited-payment.component.mjs +255 -0
  11. package/esm2022/lib/components/notification-preview/notification-preview.component.mjs +79 -0
  12. package/esm2022/lib/components/page-not-found.component.mjs +17 -0
  13. package/esm2022/lib/components/payment-list/payment-list.component.mjs +36 -0
  14. package/esm2022/lib/components/payment-view/payment-view.component.mjs +416 -0
  15. package/esm2022/lib/components/pba-details/pba-details.component.mjs +18 -0
  16. package/esm2022/lib/components/pba-payment/pba-payment.component.mjs +151 -0
  17. package/esm2022/lib/components/process-refund/process-refund.component.mjs +417 -0
  18. package/esm2022/lib/components/processed-payments/processed-payments.component.mjs +37 -0
  19. package/esm2022/lib/components/refund-list/refund-list.component.mjs +73 -0
  20. package/esm2022/lib/components/refund-status/refund-status.component.mjs +453 -0
  21. package/esm2022/lib/components/reports/reports.component.mjs +291 -0
  22. package/esm2022/lib/components/service-request/service-request.component.mjs +456 -0
  23. package/esm2022/lib/components/status-history/status-history.component.mjs +33 -0
  24. package/esm2022/lib/components/table/table.component.mjs +128 -0
  25. package/esm2022/lib/components/unprocessed-payments/unprocessed-payments.component.mjs +236 -0
  26. package/esm2022/lib/interfaces/AddRemissionRequest.mjs +17 -0
  27. package/esm2022/lib/interfaces/AddRetroRemissionRequest.mjs +9 -0
  28. package/esm2022/lib/interfaces/AllocatePaymentRequest.mjs +41 -0
  29. package/esm2022/lib/interfaces/IAllocationPaymentsRequest.mjs +20 -0
  30. package/esm2022/lib/interfaces/IBSPayments.mjs +2 -0
  31. package/esm2022/lib/interfaces/ICardDetails.mjs +2 -0
  32. package/esm2022/lib/interfaces/IFee.mjs +2 -0
  33. package/esm2022/lib/interfaces/INotificationPreview.mjs +2 -0
  34. package/esm2022/lib/interfaces/IOrderReferenceFee.mjs +2 -0
  35. package/esm2022/lib/interfaces/IPatchRefundAction.mjs +2 -0
  36. package/esm2022/lib/interfaces/IPayment.mjs +2 -0
  37. package/esm2022/lib/interfaces/IPaymentFailure.mjs +2 -0
  38. package/esm2022/lib/interfaces/IPaymentGroup.mjs +2 -0
  39. package/esm2022/lib/interfaces/IPaymentStatus.mjs +12 -0
  40. package/esm2022/lib/interfaces/IPaymentView.mjs +2 -0
  41. package/esm2022/lib/interfaces/IPayments.mjs +2 -0
  42. package/esm2022/lib/interfaces/IPutNotificationRequest.mjs +13 -0
  43. package/esm2022/lib/interfaces/IRefundAction.mjs +2 -0
  44. package/esm2022/lib/interfaces/IRefundContactDetails.mjs +2 -0
  45. package/esm2022/lib/interfaces/IRefundFee.mjs +2 -0
  46. package/esm2022/lib/interfaces/IRefundList.mjs +2 -0
  47. package/esm2022/lib/interfaces/IRefundReasons.mjs +2 -0
  48. package/esm2022/lib/interfaces/IRefundRejectReason.mjs +2 -0
  49. package/esm2022/lib/interfaces/IRefundStatus.mjs +2 -0
  50. package/esm2022/lib/interfaces/IRefundStatusHistory.mjs +2 -0
  51. package/esm2022/lib/interfaces/IRefundsNotifications.mjs +2 -0
  52. package/esm2022/lib/interfaces/IRemission.mjs +2 -0
  53. package/esm2022/lib/interfaces/IResubmitRefundRequest.mjs +13 -0
  54. package/esm2022/lib/interfaces/IStatusHistories.mjs +2 -0
  55. package/esm2022/lib/interfaces/IStatusHistory.mjs +2 -0
  56. package/esm2022/lib/interfaces/IserviceRequestCardPayment.mjs +11 -0
  57. package/esm2022/lib/interfaces/IserviceRequestPbaPayment.mjs +15 -0
  58. package/esm2022/lib/interfaces/IssueRefundRequest.mjs +11 -0
  59. package/esm2022/lib/interfaces/NotificationPreviewRequest.mjs +45 -0
  60. package/esm2022/lib/interfaces/PayhubAntennaRequest.mjs +12 -0
  61. package/esm2022/lib/interfaces/PaymentToPayhubRequest.mjs +15 -0
  62. package/esm2022/lib/interfaces/PostIssueRefundRetroRemission.mjs +9 -0
  63. package/esm2022/lib/interfaces/PostRefundRetroRemission.mjs +18 -0
  64. package/esm2022/lib/interfaces/RefundsRequest.mjs +9 -0
  65. package/esm2022/lib/interfaces/UnidentifiedPaymentsRequest.mjs +16 -0
  66. package/esm2022/lib/interfaces/UnsolicitedPaymentsRequest.mjs +22 -0
  67. package/esm2022/lib/payment-lib.component.mjs +288 -0
  68. package/esm2022/lib/payment-lib.module.mjs +187 -0
  69. package/esm2022/lib/payment-lib.service.mjs +49 -0
  70. package/esm2022/lib/pipes/capitalize.pipe.mjs +18 -0
  71. package/esm2022/lib/pipes/ccd-hyphens.pipe.mjs +22 -0
  72. package/esm2022/lib/pipes/key-value.pipe.mjs +23 -0
  73. package/esm2022/lib/pipes/sanitize-html.pipe.mjs +20 -0
  74. package/esm2022/lib/services/bulk-scaning-payment/bulk-scaning-payment.service.mjs +87 -0
  75. package/esm2022/lib/services/card-details/card-details.service.mjs +39 -0
  76. package/esm2022/lib/services/case-transactions/case-transactions.service.mjs +39 -0
  77. package/esm2022/lib/services/notification/notification.service.mjs +70 -0
  78. package/esm2022/lib/services/orderslist.service.mjs +154 -0
  79. package/esm2022/lib/services/payment-list/payment-list.service.mjs +40 -0
  80. package/esm2022/lib/services/payment-view/payment-view.service.mjs +152 -0
  81. package/esm2022/lib/services/refunds/refunds.service.mjs +117 -0
  82. package/esm2022/lib/services/shared/error-handler.service.mjs +96 -0
  83. package/esm2022/lib/services/shared/httpclient/webcomponent.http.client.mjs +64 -0
  84. package/esm2022/lib/services/shared/logger/console-logger.service.mjs +43 -0
  85. package/esm2022/lib/services/shared/logger/logger.service.mjs +23 -0
  86. package/{esm2015/lib/services/status-history/status-history.service.js → esm2022/lib/services/status-history/status-history.service.mjs} +13 -51
  87. package/esm2022/lib/services/xl-file/xl-file.service.mjs +153 -0
  88. package/esm2022/public_api.mjs +7 -0
  89. package/fesm2022/hmcts-ccpay-web-component.mjs +7874 -0
  90. package/fesm2022/hmcts-ccpay-web-component.mjs.map +1 -0
  91. package/index.d.ts +5 -0
  92. package/lib/components/add-remission/add-remission.component.d.ts +59 -7
  93. package/lib/components/allocate-payments/allocate-payments.component.d.ts +5 -6
  94. package/lib/components/card-details/card-details.component.d.ts +4 -1
  95. package/lib/components/case-transactions/case-transactions.component.d.ts +9 -7
  96. package/lib/components/contact-details/contact-details.component.d.ts +52 -0
  97. package/lib/components/error-banner/error-banner.component.d.ts +3 -0
  98. package/lib/components/fee-summary/fee-summary.component.d.ts +4 -3
  99. package/lib/components/mark-unidentified-payment/mark-unidentified-payment.component.d.ts +4 -1
  100. package/lib/components/mark-unsolicited-payment/mark-unsolicited-payment.component.d.ts +4 -1
  101. package/lib/components/notification-preview/notification-preview.component.d.ts +30 -0
  102. package/lib/components/page-not-found.component.d.ts +3 -0
  103. package/lib/components/payment-list/payment-list.component.d.ts +4 -1
  104. package/lib/components/payment-view/payment-view.component.d.ts +46 -12
  105. package/lib/components/pba-details/pba-details.component.d.ts +3 -0
  106. package/lib/components/pba-payment/pba-payment.component.d.ts +9 -1
  107. package/lib/components/process-refund/process-refund.component.d.ts +22 -2
  108. package/lib/components/processed-payments/processed-payments.component.d.ts +3 -0
  109. package/lib/components/refund-list/refund-list.component.d.ts +3 -0
  110. package/lib/components/refund-status/refund-status.component.d.ts +50 -10
  111. package/lib/components/reports/reports.component.d.ts +10 -5
  112. package/lib/components/service-request/service-request.component.d.ts +42 -14
  113. package/lib/components/status-history/status-history.component.d.ts +4 -1
  114. package/lib/components/table/table.component.d.ts +5 -1
  115. package/lib/components/unprocessed-payments/unprocessed-payments.component.d.ts +4 -5
  116. package/lib/interfaces/IFee.d.ts +6 -0
  117. package/lib/interfaces/INotificationPreview.d.ts +27 -0
  118. package/lib/interfaces/IPayment.d.ts +3 -0
  119. package/lib/interfaces/IPaymentFailure.d.ts +13 -0
  120. package/lib/interfaces/IPutNotificationRequest.d.ts +6 -0
  121. package/lib/interfaces/IRefundContactDetails.d.ts +9 -0
  122. package/lib/interfaces/IRefundFee.d.ts +7 -0
  123. package/lib/interfaces/IRefundList.d.ts +5 -0
  124. package/lib/interfaces/IRefundsNotifications.d.ts +16 -0
  125. package/lib/interfaces/IRemission.d.ts +3 -0
  126. package/lib/interfaces/IResubmitRefundRequest.d.ts +5 -1
  127. package/lib/interfaces/IserviceRequestPbaPayment.d.ts +2 -1
  128. package/lib/interfaces/NotificationPreviewRequest.d.ts +24 -0
  129. package/lib/interfaces/PostIssueRefundRetroRemission.d.ts +3 -1
  130. package/lib/interfaces/PostRefundRetroRemission.d.ts +7 -1
  131. package/lib/payment-lib.component.d.ts +7 -5
  132. package/lib/payment-lib.module.d.ts +40 -0
  133. package/lib/payment-lib.service.d.ts +9 -3
  134. package/lib/pipes/capitalize.pipe.d.ts +3 -0
  135. package/lib/pipes/ccd-hyphens.pipe.d.ts +3 -0
  136. package/lib/pipes/key-value.pipe.d.ts +3 -0
  137. package/lib/pipes/sanitize-html.pipe.d.ts +3 -0
  138. package/lib/services/bulk-scaning-payment/bulk-scaning-payment.service.d.ts +4 -1
  139. package/lib/services/card-details/card-details.service.d.ts +3 -0
  140. package/lib/services/case-transactions/case-transactions.service.d.ts +4 -1
  141. package/lib/services/notification/notification.service.d.ts +21 -0
  142. package/lib/services/orderslist.service.d.ts +3 -0
  143. package/lib/services/payment-list/payment-list.service.d.ts +3 -0
  144. package/lib/services/payment-view/payment-view.service.d.ts +6 -1
  145. package/lib/services/refunds/refunds.service.d.ts +6 -1
  146. package/lib/services/shared/error-handler.service.d.ts +5 -2
  147. package/lib/services/shared/httpclient/webcomponent.http.client.d.ts +3 -0
  148. package/lib/services/shared/logger/console-logger.service.d.ts +6 -3
  149. package/lib/services/shared/logger/logger.service.d.ts +3 -0
  150. package/lib/services/status-history/status-history.service.d.ts +3 -0
  151. package/lib/services/xl-file/xl-file.service.d.ts +4 -0
  152. package/package.json +18 -14
  153. package/bundles/hmcts-ccpay-web-component.umd.js +0 -9664
  154. package/bundles/hmcts-ccpay-web-component.umd.js.map +0 -1
  155. package/bundles/hmcts-ccpay-web-component.umd.min.js +0 -2
  156. package/bundles/hmcts-ccpay-web-component.umd.min.js.map +0 -1
  157. package/esm2015/hmcts-ccpay-web-component.js +0 -48
  158. package/esm2015/lib/components/add-remission/add-remission.component.js +0 -1083
  159. package/esm2015/lib/components/allocate-payments/allocate-payments.component.js +0 -692
  160. package/esm2015/lib/components/card-details/card-details.component.js +0 -71
  161. package/esm2015/lib/components/case-transactions/case-transactions.component.js +0 -1298
  162. package/esm2015/lib/components/error-banner/error-banner.component.js +0 -30
  163. package/esm2015/lib/components/fee-summary/fee-summary.component.js +0 -482
  164. package/esm2015/lib/components/mark-unidentified-payment/mark-unidentified-payment.component.js +0 -342
  165. package/esm2015/lib/components/mark-unsolicited-payment/mark-unsolicited-payment.component.js +0 -436
  166. package/esm2015/lib/components/page-not-found.component.js +0 -15
  167. package/esm2015/lib/components/payment-list/payment-list.component.js +0 -75
  168. package/esm2015/lib/components/payment-view/payment-view.component.js +0 -514
  169. package/esm2015/lib/components/pba-details/pba-details.component.js +0 -30
  170. package/esm2015/lib/components/pba-payment/pba-payment.component.js +0 -205
  171. package/esm2015/lib/components/process-refund/process-refund.component.js +0 -455
  172. package/esm2015/lib/components/processed-payments/processed-payments.component.js +0 -72
  173. package/esm2015/lib/components/refund-list/refund-list.component.js +0 -127
  174. package/esm2015/lib/components/refund-status/refund-status.component.js +0 -497
  175. package/esm2015/lib/components/reports/reports.component.js +0 -357
  176. package/esm2015/lib/components/service-request/service-request.component.js +0 -626
  177. package/esm2015/lib/components/status-history/status-history.component.js +0 -68
  178. package/esm2015/lib/components/table/table.component.js +0 -196
  179. package/esm2015/lib/components/unprocessed-payments/unprocessed-payments.component.js +0 -385
  180. package/esm2015/lib/interfaces/AddRemissionRequest.js +0 -37
  181. package/esm2015/lib/interfaces/AddRetroRemissionRequest.js +0 -21
  182. package/esm2015/lib/interfaces/AllocatePaymentRequest.js +0 -68
  183. package/esm2015/lib/interfaces/IAllocationPaymentsRequest.js +0 -39
  184. package/esm2015/lib/interfaces/IBSPayments.js +0 -45
  185. package/esm2015/lib/interfaces/ICardDetails.js +0 -21
  186. package/esm2015/lib/interfaces/IFee.js +0 -53
  187. package/esm2015/lib/interfaces/IOrderReferenceFee.js +0 -25
  188. package/esm2015/lib/interfaces/IPatchRefundAction.js +0 -15
  189. package/esm2015/lib/interfaces/IPayment.js +0 -65
  190. package/esm2015/lib/interfaces/IPaymentGroup.js +0 -19
  191. package/esm2015/lib/interfaces/IPaymentStatus.js +0 -27
  192. package/esm2015/lib/interfaces/IPaymentView.js +0 -17
  193. package/esm2015/lib/interfaces/IPayments.js +0 -13
  194. package/esm2015/lib/interfaces/IRefundAction.js +0 -15
  195. package/esm2015/lib/interfaces/IRefundList.js +0 -29
  196. package/esm2015/lib/interfaces/IRefundReasons.js +0 -19
  197. package/esm2015/lib/interfaces/IRefundRejectReason.js +0 -15
  198. package/esm2015/lib/interfaces/IRefundStatus.js +0 -23
  199. package/esm2015/lib/interfaces/IRefundStatusHistory.js +0 -15
  200. package/esm2015/lib/interfaces/IRemission.js +0 -25
  201. package/esm2015/lib/interfaces/IResubmitRefundRequest.js +0 -21
  202. package/esm2015/lib/interfaces/IStatusHistories.js +0 -19
  203. package/esm2015/lib/interfaces/IStatusHistory.js +0 -21
  204. package/esm2015/lib/interfaces/IserviceRequestCardPayment.js +0 -23
  205. package/esm2015/lib/interfaces/IserviceRequestPbaPayment.js +0 -28
  206. package/esm2015/lib/interfaces/IssueRefundRequest.js +0 -25
  207. package/esm2015/lib/interfaces/PayhubAntennaRequest.js +0 -28
  208. package/esm2015/lib/interfaces/PaymentToPayhubRequest.js +0 -37
  209. package/esm2015/lib/interfaces/PostIssueRefundRetroRemission.js +0 -17
  210. package/esm2015/lib/interfaces/PostRefundRetroRemission.js +0 -21
  211. package/esm2015/lib/interfaces/RefundsRequest.js +0 -21
  212. package/esm2015/lib/interfaces/UnidentifiedPaymentsRequest.js +0 -31
  213. package/esm2015/lib/interfaces/UnsolicitedPaymentsRequest.js +0 -43
  214. package/esm2015/lib/payment-lib.component.js +0 -275
  215. package/esm2015/lib/payment-lib.module.js +0 -99
  216. package/esm2015/lib/payment-lib.service.js +0 -80
  217. package/esm2015/lib/pipes/capitalize.pipe.js +0 -24
  218. package/esm2015/lib/pipes/ccd-hyphens.pipe.js +0 -29
  219. package/esm2015/lib/pipes/key-value.pipe.js +0 -30
  220. package/esm2015/lib/pipes/sanitize-html.pipe.js +0 -36
  221. package/esm2015/lib/services/bulk-scaning-payment/bulk-scaning-payment.service.js +0 -180
  222. package/esm2015/lib/services/card-details/card-details.service.js +0 -76
  223. package/esm2015/lib/services/case-transactions/case-transactions.service.js +0 -76
  224. package/esm2015/lib/services/orderslist.service.js +0 -403
  225. package/esm2015/lib/services/payment-list/payment-list.service.js +0 -79
  226. package/esm2015/lib/services/payment-view/payment-view.service.js +0 -285
  227. package/esm2015/lib/services/refunds/refunds.service.js +0 -203
  228. package/esm2015/lib/services/shared/error-handler.service.js +0 -108
  229. package/esm2015/lib/services/shared/httpclient/webcomponent.http.client.js +0 -124
  230. package/esm2015/lib/services/shared/logger/console-logger.service.js +0 -67
  231. package/esm2015/lib/services/shared/logger/logger.service.js +0 -49
  232. package/esm2015/lib/services/xl-file/xl-file.service.js +0 -181
  233. package/esm2015/public_api.js +0 -11
  234. package/esm5/hmcts-ccpay-web-component.js +0 -48
  235. package/esm5/lib/components/add-remission/add-remission.component.js +0 -1168
  236. package/esm5/lib/components/allocate-payments/allocate-payments.component.js +0 -745
  237. package/esm5/lib/components/card-details/card-details.component.js +0 -77
  238. package/esm5/lib/components/case-transactions/case-transactions.component.js +0 -1443
  239. package/esm5/lib/components/error-banner/error-banner.component.js +0 -36
  240. package/esm5/lib/components/fee-summary/fee-summary.component.js +0 -542
  241. package/esm5/lib/components/mark-unidentified-payment/mark-unidentified-payment.component.js +0 -371
  242. package/esm5/lib/components/mark-unsolicited-payment/mark-unsolicited-payment.component.js +0 -474
  243. package/esm5/lib/components/page-not-found.component.js +0 -17
  244. package/esm5/lib/components/payment-list/payment-list.component.js +0 -83
  245. package/esm5/lib/components/payment-view/payment-view.component.js +0 -602
  246. package/esm5/lib/components/pba-details/pba-details.component.js +0 -36
  247. package/esm5/lib/components/pba-payment/pba-payment.component.js +0 -222
  248. package/esm5/lib/components/process-refund/process-refund.component.js +0 -536
  249. package/esm5/lib/components/processed-payments/processed-payments.component.js +0 -83
  250. package/esm5/lib/components/refund-list/refund-list.component.js +0 -130
  251. package/esm5/lib/components/refund-status/refund-status.component.js +0 -558
  252. package/esm5/lib/components/reports/reports.component.js +0 -398
  253. package/esm5/lib/components/service-request/service-request.component.js +0 -702
  254. package/esm5/lib/components/status-history/status-history.component.js +0 -70
  255. package/esm5/lib/components/table/table.component.js +0 -229
  256. package/esm5/lib/components/unprocessed-payments/unprocessed-payments.component.js +0 -434
  257. package/esm5/lib/interfaces/AddRemissionRequest.js +0 -32
  258. package/esm5/lib/interfaces/AddRetroRemissionRequest.js +0 -19
  259. package/esm5/lib/interfaces/AllocatePaymentRequest.js +0 -63
  260. package/esm5/lib/interfaces/IAllocationPaymentsRequest.js +0 -34
  261. package/esm5/lib/interfaces/IBSPayments.js +0 -45
  262. package/esm5/lib/interfaces/ICardDetails.js +0 -21
  263. package/esm5/lib/interfaces/IFee.js +0 -53
  264. package/esm5/lib/interfaces/IOrderReferenceFee.js +0 -25
  265. package/esm5/lib/interfaces/IPatchRefundAction.js +0 -15
  266. package/esm5/lib/interfaces/IPayment.js +0 -65
  267. package/esm5/lib/interfaces/IPaymentGroup.js +0 -19
  268. package/esm5/lib/interfaces/IPaymentStatus.js +0 -31
  269. package/esm5/lib/interfaces/IPaymentView.js +0 -17
  270. package/esm5/lib/interfaces/IPayments.js +0 -13
  271. package/esm5/lib/interfaces/IRefundAction.js +0 -15
  272. package/esm5/lib/interfaces/IRefundList.js +0 -29
  273. package/esm5/lib/interfaces/IRefundReasons.js +0 -19
  274. package/esm5/lib/interfaces/IRefundRejectReason.js +0 -15
  275. package/esm5/lib/interfaces/IRefundStatus.js +0 -23
  276. package/esm5/lib/interfaces/IRefundStatusHistory.js +0 -15
  277. package/esm5/lib/interfaces/IRemission.js +0 -25
  278. package/esm5/lib/interfaces/IResubmitRefundRequest.js +0 -19
  279. package/esm5/lib/interfaces/IStatusHistories.js +0 -19
  280. package/esm5/lib/interfaces/IStatusHistory.js +0 -21
  281. package/esm5/lib/interfaces/IserviceRequestCardPayment.js +0 -22
  282. package/esm5/lib/interfaces/IserviceRequestPbaPayment.js +0 -25
  283. package/esm5/lib/interfaces/IssueRefundRequest.js +0 -22
  284. package/esm5/lib/interfaces/PayhubAntennaRequest.js +0 -25
  285. package/esm5/lib/interfaces/PaymentToPayhubRequest.js +0 -34
  286. package/esm5/lib/interfaces/PostIssueRefundRetroRemission.js +0 -16
  287. package/esm5/lib/interfaces/PostRefundRetroRemission.js +0 -19
  288. package/esm5/lib/interfaces/RefundsRequest.js +0 -19
  289. package/esm5/lib/interfaces/UnidentifiedPaymentsRequest.js +0 -28
  290. package/esm5/lib/interfaces/UnsolicitedPaymentsRequest.js +0 -37
  291. package/esm5/lib/payment-lib.component.js +0 -244
  292. package/esm5/lib/payment-lib.module.js +0 -103
  293. package/esm5/lib/payment-lib.service.js +0 -111
  294. package/esm5/lib/pipes/capitalize.pipe.js +0 -32
  295. package/esm5/lib/pipes/ccd-hyphens.pipe.js +0 -37
  296. package/esm5/lib/pipes/key-value.pipe.js +0 -37
  297. package/esm5/lib/pipes/sanitize-html.pipe.js +0 -39
  298. package/esm5/lib/services/bulk-scaning-payment/bulk-scaning-payment.service.js +0 -218
  299. package/esm5/lib/services/card-details/card-details.service.js +0 -76
  300. package/esm5/lib/services/case-transactions/case-transactions.service.js +0 -76
  301. package/esm5/lib/services/orderslist.service.js +0 -531
  302. package/esm5/lib/services/payment-list/payment-list.service.js +0 -80
  303. package/esm5/lib/services/payment-view/payment-view.service.js +0 -385
  304. package/esm5/lib/services/refunds/refunds.service.js +0 -243
  305. package/esm5/lib/services/shared/error-handler.service.js +0 -119
  306. package/esm5/lib/services/shared/httpclient/webcomponent.http.client.js +0 -154
  307. package/esm5/lib/services/shared/logger/console-logger.service.js +0 -88
  308. package/esm5/lib/services/shared/logger/logger.service.js +0 -68
  309. package/esm5/lib/services/status-history/status-history.service.js +0 -80
  310. package/esm5/lib/services/xl-file/xl-file.service.js +0 -221
  311. package/esm5/public_api.js +0 -11
  312. package/fesm2015/hmcts-ccpay-web-component.js +0 -8525
  313. package/fesm2015/hmcts-ccpay-web-component.js.map +0 -1
  314. package/fesm5/hmcts-ccpay-web-component.js +0 -9773
  315. package/fesm5/hmcts-ccpay-web-component.js.map +0 -1
  316. package/hmcts-ccpay-web-component.d.ts +0 -43
  317. package/hmcts-ccpay-web-component.metadata.json +0 -1
@@ -1,536 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { Component, Input } from '@angular/core';
6
- import { FormBuilder, Validators, FormControl } from '@angular/forms';
7
- import { RefundsService } from '../../services/refunds/refunds.service';
8
- import { OrderslistService } from '../../services/orderslist.service';
9
- import { PaymentLibComponent } from '../../payment-lib.component';
10
- import { ActivatedRoute, Router } from '@angular/router';
11
- var ProcessRefundComponent = /** @class */ (function () {
12
- function ProcessRefundComponent(RefundsService, formBuilder, OrderslistService, paymentLibComponent, router, activeRoute) {
13
- this.RefundsService = RefundsService;
14
- this.formBuilder = formBuilder;
15
- this.OrderslistService = OrderslistService;
16
- this.paymentLibComponent = paymentLibComponent;
17
- this.router = router;
18
- this.activeRoute = activeRoute;
19
- this.errorMessage = this.getErrorMessage(false, '', '', '');
20
- this.sendmeback = null;
21
- this.refundActionList = [];
22
- this.refundRejectReasonList = [];
23
- this.isSendMeBackClicked = false;
24
- this.isRejectClicked = false;
25
- this.isOtherClicked = false;
26
- this.isSuccesspageEnable = false;
27
- this.refundActionsHasError = false;
28
- this.refundRejectReasonHasError = false;
29
- this.isReasonFieldEmpty = false;
30
- this.isReasonFieldInvalid = false;
31
- this.reasonFieldMinHasError = false;
32
- this.reasonFieldMaxHasError = false;
33
- this.isReasonEmpty = false;
34
- this.isReasonInvalid = false;
35
- this.successMsg = null;
36
- this.isConfirmButtondisabled = true;
37
- }
38
- /**
39
- * @return {?}
40
- */
41
- ProcessRefundComponent.prototype.ngOnInit = /**
42
- * @return {?}
43
- */
44
- function () {
45
- var _this = this;
46
- this.viewStatus = 'RefundProcess';
47
- this.RefundsService.getRefundActions(this.refundReference).subscribe((/**
48
- * @param {?} refundActionList
49
- * @return {?}
50
- */
51
- function (refundActionList) {
52
- _this.refundActionList = (/** @type {?} */ (refundActionList));
53
- }), (/**
54
- * @param {?} err
55
- * @return {?}
56
- */
57
- function (err) {
58
- _this.errorMessage = _this.getErrorMessage(true, err.statusCode, err.err, err);
59
- }));
60
- this.processRefundForm = this.formBuilder.group({
61
- refundActionField: new FormControl('', Validators.compose([
62
- Validators.required
63
- ])),
64
- refundRejectReasonField: new FormControl('', Validators.compose([
65
- Validators.required
66
- ])),
67
- sendMeBackField: new FormControl('', Validators.compose([
68
- Validators.required,
69
- Validators.minLength(3),
70
- Validators.maxLength(255),
71
- Validators.pattern('^([a-zA-Z0-9\\s,\\.]*)$'),
72
- ])),
73
- enterReasonField: new FormControl('', Validators.compose([
74
- Validators.required,
75
- Validators.maxLength(30),
76
- Validators.pattern('^([a-zA-Z0-9.\\s]*)$'),
77
- ])),
78
- });
79
- this.ccdCaseNumber = this.refundlistsource.ccd_case_number;
80
- if ((typeof this.paymentLibComponent.TAKEPAYMENT === 'string' && this.paymentLibComponent.TAKEPAYMENT === 'false') || (typeof this.paymentLibComponent.TAKEPAYMENT === 'boolean' && !this.paymentLibComponent.TAKEPAYMENT)) {
81
- this.isFromRefundListPage = true;
82
- }
83
- };
84
- /**
85
- * @param {?} code
86
- * @return {?}
87
- */
88
- ProcessRefundComponent.prototype.checkRefundActions = /**
89
- * @param {?} code
90
- * @return {?}
91
- */
92
- function (code) {
93
- var _this = this;
94
- this.refundActionsHasError = false;
95
- this.isReasonFieldEmpty = false;
96
- this.isReasonEmpty = false;
97
- this.isReasonInvalid = false;
98
- this.refundRejectReasonHasError = false;
99
- if (code === 'Return to caseworker') {
100
- this.isConfirmButtondisabled = true;
101
- this.isSendMeBackClicked = true;
102
- this.isRejectClicked = false;
103
- this.isOtherClicked = false;
104
- }
105
- else if (code === 'Approve') {
106
- this.isSendMeBackClicked = false;
107
- this.isConfirmButtondisabled = false;
108
- this.isRejectClicked = false;
109
- this.isOtherClicked = false;
110
- }
111
- else if (code === 'Reject') {
112
- this.isRejectClicked = true;
113
- this.isSendMeBackClicked = false;
114
- this.isOtherClicked = false;
115
- this.RefundsService.getRefundRejectReasons().subscribe((/**
116
- * @param {?} refundRejectReasonList
117
- * @return {?}
118
- */
119
- function (refundRejectReasonList) {
120
- _this.refundRejectReasonList = (/** @type {?} */ (refundRejectReasonList));
121
- }), (/**
122
- * @param {?} err
123
- * @return {?}
124
- */
125
- function (err) {
126
- _this.errorMessage = _this.getErrorMessage(true, err.statusCode, err.err, err);
127
- }));
128
- }
129
- else if (code === 'RE005') {
130
- this.isOtherClicked = true;
131
- }
132
- else if (code !== 'RE005') {
133
- this.isOtherClicked = false;
134
- }
135
- };
136
- /**
137
- * @return {?}
138
- */
139
- ProcessRefundComponent.prototype.processRefundSubmit = /**
140
- * @return {?}
141
- */
142
- function () {
143
- var _this = this;
144
- /** @type {?} */
145
- var processRefundRequest;
146
- /** @type {?} */
147
- var status;
148
- this.resetForm([false, false, false, false, false, false, false, false], 'all');
149
- /** @type {?} */
150
- var controls = this.processRefundForm.controls;
151
- /** @type {?} */
152
- var processFormError = controls.sendMeBackField.errors;
153
- if (this.processRefundForm.dirty && controls.refundActionField.valid
154
- && (controls.refundActionField.value == 'Approve'
155
- || (controls.refundActionField.value == 'Reject' && controls.refundRejectReasonField.valid && controls.refundRejectReasonField.value != 'RE005')
156
- || (controls.refundActionField.value == 'Reject' && controls.refundRejectReasonField.value == 'RE005' && controls.enterReasonField.valid)
157
- || (controls.refundActionField.value == 'Return to caseworker' && controls.sendMeBackField.valid))) {
158
- if (controls.refundActionField.value === 'Approve') {
159
- status = 'APPROVE';
160
- processRefundRequest = {
161
- code: '',
162
- reason: ''
163
- };
164
- }
165
- else if (controls.refundActionField.value === 'Reject') {
166
- status = 'REJECT';
167
- processRefundRequest = {
168
- code: controls.refundRejectReasonField.value ? controls.refundRejectReasonField.value : '',
169
- reason: controls.refundRejectReasonField.value == 'RE005' ? controls.enterReasonField.value : ''
170
- };
171
- }
172
- else if (controls.refundActionField.value === 'Return to caseworker') {
173
- status = 'SENDBACK';
174
- processRefundRequest = {
175
- code: '',
176
- reason: controls.sendMeBackField.value
177
- };
178
- }
179
- this.RefundsService.patchRefundActions(processRefundRequest, this.refundReference, status).subscribe((/**
180
- * @param {?} response
181
- * @return {?}
182
- */
183
- function (response) {
184
- _this.isSuccesspageEnable = true;
185
- // this.successMsg = JSON.parse(response)['data'];
186
- _this.successMsg = response.replace(/['"]+/g, '');
187
- }), (/**
188
- * @param {?} err
189
- * @return {?}
190
- */
191
- function (err) {
192
- _this.errorMessage = _this.getErrorMessage(true, err.statusCode, err.err, err);
193
- }));
194
- }
195
- else {
196
- if (controls.refundActionField.value == "") {
197
- this.resetForm([true, false, false, false, false, false, false, false], 'action');
198
- }
199
- if (controls.refundActionField.value == 'Reject' && controls.refundRejectReasonField.value == "") {
200
- this.resetForm([false, true, false, false, false, false, false, false], 'rejectReason');
201
- }
202
- if (controls.refundActionField.value == 'Return to caseworker') {
203
- if (controls.sendMeBackField.value == '') {
204
- this.resetForm([false, false, true, false, false, false, false, false], 'addAreason');
205
- }
206
- if (controls.sendMeBackField.value != '' && controls.sendMeBackField.invalid) {
207
- this.resetForm([false, false, false, true, false, false, false, false], 'addAreason');
208
- }
209
- if (processFormError && processFormError.minlength && processFormError.minlength.actualLength < 3) {
210
- this.resetForm([false, false, false, false, true, false, false, false], 'addAreason');
211
- }
212
- if (processFormError && processFormError.maxlength && processFormError.maxlength.actualLength > 255) {
213
- this.resetForm([false, false, false, false, false, true, false, false], 'addAreason');
214
- }
215
- }
216
- if (controls.refundActionField.value == 'Reject' && controls.refundRejectReasonField.value == 'RE005') {
217
- if (controls.enterReasonField.value === "") {
218
- this.resetForm([false, false, false, false, false, false, true, false], 'enterReason');
219
- }
220
- if (controls.enterReasonField.value !== "" && controls.enterReasonField.invalid) {
221
- this.resetForm([false, false, false, false, false, false, false, true], 'enterReason');
222
- }
223
- }
224
- }
225
- };
226
- /**
227
- * @param {?} isErrorExist
228
- * @param {?} status
229
- * @param {?} errorMsg
230
- * @param {?} err
231
- * @return {?}
232
- */
233
- ProcessRefundComponent.prototype.getErrorMessage = /**
234
- * @param {?} isErrorExist
235
- * @param {?} status
236
- * @param {?} errorMsg
237
- * @param {?} err
238
- * @return {?}
239
- */
240
- function (isErrorExist, status, errorMsg, err) {
241
- /** @type {?} */
242
- var bodyTxt = 'Please try again later';
243
- if (status !== 500) {
244
- if (errorMsg !== undefined) {
245
- bodyTxt = errorMsg;
246
- }
247
- else {
248
- bodyTxt = err;
249
- }
250
- }
251
- return {
252
- title: 'Something went wrong',
253
- body: bodyTxt,
254
- showError: isErrorExist
255
- };
256
- };
257
- /**
258
- * @return {?}
259
- */
260
- ProcessRefundComponent.prototype.loadRefundListPage = /**
261
- * @return {?}
262
- */
263
- function () {
264
- var _this = this;
265
- this.OrderslistService.getnavigationPageValue().subscribe((/**
266
- * @param {?} data
267
- * @return {?}
268
- */
269
- function (data) { return _this.navigationpage = data; }));
270
- if (this.navigationpage === 'casetransactions') {
271
- // window.location.href='/refund-list?takePayment=false&refundlist=true';
272
- // // this.OrderslistService.setnavigationPage('casetransactions');
273
- // // this.OrderslistService.setisFromServiceRequestPage(false);
274
- // // this.paymentLibComponent.VIEW ='case-transactions';
275
- // // this.paymentLibComponent.viewName = 'case-transactions';
276
- // // this.paymentLibComponent.ISBSENABLE = true;
277
- // // this.paymentLibComponent.isRefundStatusView = false;
278
- this.paymentLibComponent.viewName = 'refundstatuslist';
279
- this.paymentLibComponent.isRefundStatusView = true;
280
- }
281
- else {
282
- this.paymentLibComponent.viewName = 'refundstatuslist';
283
- this.paymentLibComponent.isRefundStatusView = true;
284
- }
285
- };
286
- /**
287
- * @return {?}
288
- */
289
- ProcessRefundComponent.prototype.loadRefundsHomePage = /**
290
- * @return {?}
291
- */
292
- function () {
293
- if (typeof this.paymentLibComponent.TAKEPAYMENT === 'string' && this.paymentLibComponent.TAKEPAYMENT === 'false') {
294
- //window.location.href='/refund-list?takePayment=false&refundlist=true';
295
- this.paymentLibComponent.viewName = 'refund-list';
296
- }
297
- else {
298
- this.OrderslistService.setnavigationPage('casetransactions');
299
- this.OrderslistService.setisFromServiceRequestPage(false);
300
- this.paymentLibComponent.VIEW = 'case-transactions';
301
- this.paymentLibComponent.viewName = 'case-transactions';
302
- this.paymentLibComponent.ISBSENABLE = true;
303
- this.paymentLibComponent.isRefundStatusView = false;
304
- }
305
- };
306
- /**
307
- * @return {?}
308
- */
309
- ProcessRefundComponent.prototype.redirecttoRefundListPage = /**
310
- * @return {?}
311
- */
312
- function () {
313
- if ((typeof this.paymentLibComponent.TAKEPAYMENT === 'string' && this.paymentLibComponent.TAKEPAYMENT === 'false') || (typeof this.paymentLibComponent.TAKEPAYMENT === 'boolean' && !this.paymentLibComponent.TAKEPAYMENT)) {
314
- // window.location.href='/refund-list?takePayment=false&refundlist=true';
315
- this.paymentLibComponent.viewName = 'refund-list';
316
- }
317
- else {
318
- this.loadRefundListPage();
319
- }
320
- };
321
- // loadCaseTransactionPage() {
322
- // this.paymentLibComponent.isRefundStatusView = false;
323
- // this.paymentLibCo}mponent.TAKEPAYMENT = true;
324
- // this.paymentLibComponent.viewName = 'case-transactions';
325
- // this.paymentViewService.getBSfeature().subscribe(
326
- // features => {
327
- // let result = JSON.parse(features).filter(feature => feature.uid === BS_ENABLE_FLAG);
328
- // this.paymentLibComponent.ISBSENABLE = result[0] ? result[0].enable : false;
329
- // },
330
- // err => {
331
- // this.paymentLibComponent.ISBSENABLE = false;
332
- // }
333
- // );
334
- // let partUrl = `selectedOption=${this.paymentLibComponent.SELECTED_OPTION}`;
335
- // partUrl += this.bsPaymentDcnNumber ? `&dcn=${this.bsPaymentDcnNumber}` : '';
336
- // partUrl += this.paymentLibComponent.ISBSENABLE ? '&isBulkScanning=Enable' : '&isBulkScanning=Disable';
337
- // partUrl += this.paymentLibComponent.ISTURNOFF ? '&isTurnOff=Enable' : '&isTurnOff=Disable';
338
- // partUrl += this.paymentLibComponent.ISSFENABLE ? '&isStFixEnable=Enable' : '&isStFixEnable=Disable';
339
- // partUrl += `&caseType=${this.paymentLibComponent.CASETYPE}`;
340
- // partUrl += this.isNewPcipalOff ? '&isNewPcipalOff=Enable' : '&isNewPcipalOff=Disable';
341
- // partUrl += this.isOldPcipalOff ? '&isOldPcipalOff=Enable' : '&isOldPcipalOff=Disable';
342
- // let url = `/payment-history/${this.ccdCaseNumber}?view=case-transactions&takePayment=true&${partUrl}`;
343
- // this.router.navigateByUrl(url);
344
- // }
345
- // loadCaseTransactionPage() {
346
- // this.paymentLibComponent.isRefundStatusView = false;
347
- // this.paymentLibCo}mponent.TAKEPAYMENT = true;
348
- // this.paymentLibComponent.viewName = 'case-transactions';
349
- // this.paymentViewService.getBSfeature().subscribe(
350
- // features => {
351
- // let result = JSON.parse(features).filter(feature => feature.uid === BS_ENABLE_FLAG);
352
- // this.paymentLibComponent.ISBSENABLE = result[0] ? result[0].enable : false;
353
- // },
354
- // err => {
355
- // this.paymentLibComponent.ISBSENABLE = false;
356
- // }
357
- // );
358
- // let partUrl = `selectedOption=${this.paymentLibComponent.SELECTED_OPTION}`;
359
- // partUrl += this.bsPaymentDcnNumber ? `&dcn=${this.bsPaymentDcnNumber}` : '';
360
- // partUrl += this.paymentLibComponent.ISBSENABLE ? '&isBulkScanning=Enable' : '&isBulkScanning=Disable';
361
- // partUrl += this.paymentLibComponent.ISTURNOFF ? '&isTurnOff=Enable' : '&isTurnOff=Disable';
362
- // partUrl += this.paymentLibComponent.ISSFENABLE ? '&isStFixEnable=Enable' : '&isStFixEnable=Disable';
363
- // partUrl += `&caseType=${this.paymentLibComponent.CASETYPE}`;
364
- // partUrl += this.isNewPcipalOff ? '&isNewPcipalOff=Enable' : '&isNewPcipalOff=Disable';
365
- // partUrl += this.isOldPcipalOff ? '&isOldPcipalOff=Enable' : '&isOldPcipalOff=Disable';
366
- // let url = `/payment-history/${this.ccdCaseNumber}?view=case-transactions&takePayment=true&${partUrl}`;
367
- // this.router.navigateByUrl(url);
368
- // }
369
- /**
370
- * @param {?} vals
371
- * @param {?} field
372
- * @return {?}
373
- */
374
- ProcessRefundComponent.prototype.resetForm =
375
- // loadCaseTransactionPage() {
376
- // this.paymentLibComponent.isRefundStatusView = false;
377
- // this.paymentLibCo}mponent.TAKEPAYMENT = true;
378
- // this.paymentLibComponent.viewName = 'case-transactions';
379
- // this.paymentViewService.getBSfeature().subscribe(
380
- // features => {
381
- // let result = JSON.parse(features).filter(feature => feature.uid === BS_ENABLE_FLAG);
382
- // this.paymentLibComponent.ISBSENABLE = result[0] ? result[0].enable : false;
383
- // },
384
- // err => {
385
- // this.paymentLibComponent.ISBSENABLE = false;
386
- // }
387
- // );
388
- // let partUrl = `selectedOption=${this.paymentLibComponent.SELECTED_OPTION}`;
389
- // partUrl += this.bsPaymentDcnNumber ? `&dcn=${this.bsPaymentDcnNumber}` : '';
390
- // partUrl += this.paymentLibComponent.ISBSENABLE ? '&isBulkScanning=Enable' : '&isBulkScanning=Disable';
391
- // partUrl += this.paymentLibComponent.ISTURNOFF ? '&isTurnOff=Enable' : '&isTurnOff=Disable';
392
- // partUrl += this.paymentLibComponent.ISSFENABLE ? '&isStFixEnable=Enable' : '&isStFixEnable=Disable';
393
- // partUrl += `&caseType=${this.paymentLibComponent.CASETYPE}`;
394
- // partUrl += this.isNewPcipalOff ? '&isNewPcipalOff=Enable' : '&isNewPcipalOff=Disable';
395
- // partUrl += this.isOldPcipalOff ? '&isOldPcipalOff=Enable' : '&isOldPcipalOff=Disable';
396
- // let url = `/payment-history/${this.ccdCaseNumber}?view=case-transactions&takePayment=true&${partUrl}`;
397
- // this.router.navigateByUrl(url);
398
- // }
399
- /**
400
- * @param {?} vals
401
- * @param {?} field
402
- * @return {?}
403
- */
404
- function (vals, field) {
405
- if (field === 'action' || field === 'all') {
406
- this.refundActionsHasError = vals[0];
407
- }
408
- if (field === 'rejectReason' || field === 'all') {
409
- this.refundRejectReasonHasError = vals[1];
410
- }
411
- if (field === 'addAreason' || field === 'all') {
412
- this.isReasonFieldEmpty = vals[2];
413
- this.isReasonFieldInvalid = vals[3];
414
- this.reasonFieldMinHasError = vals[4];
415
- this.reasonFieldMaxHasError = vals[5];
416
- }
417
- if (field === 'enterReason' || field === 'all') {
418
- this.isReasonEmpty = vals[6];
419
- this.isReasonInvalid = vals[7];
420
- }
421
- };
422
- /**
423
- * @return {?}
424
- */
425
- ProcessRefundComponent.prototype.goToCaseReview = /**
426
- * @return {?}
427
- */
428
- function () {
429
- this.router.navigate(["/cases/case-details/" + this.ccdCaseNumber], { relativeTo: this.activeRoute });
430
- };
431
- ProcessRefundComponent.decorators = [
432
- { type: Component, args: [{
433
- selector: 'ccpay-process-refund',
434
- template: "<ng-container *ngIf=\"viewStatus === 'RefundProcess'\">\n<div class=\"govuk-width-container\">\n\n <main class=\"govuk-main-wrapper govuk-!-padding-top-0\" [ngClass]=\"{'govuk-radios__conditional--hidden': isSuccesspageEnable}\" id=\"main-content\" role=\"main\">\n <div *ngIf=\"errorMessage.showError\">\n <div class=\"error-summary\" role=\"group\" aria-labelledby=\"failure-error-summary-heading\" tabindex=\"-1\">\n <h2 class=\"heading-medium error-summary-heading\" id=\"failure-error-summary-heading\">\n {{errorMessage.title}}\n </h2>\n <div class=\"govuk-error-summary__body process-refund-font\">\n {{errorMessage.body}}\n </div>\n </div>\n </div>\n\n <div class=\"payment-view-alignment\">\n\n <div class=\"govuk-grid-row\">\n <div class=\"column\">\n <h1 class=\"heading-large govuk-!-margin-top-0\">Review refund details</h1>\n </div>\n </div>\n <table>\n <tbody>\n\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Payment to be refunded</td>\n <td>\t{{refundlistsource?.refund_reference}} ({{refundlistsource.amount | currency :'GBP':'symbol':'1.2-2' }})</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Reason for refund</td>\n <td>\t{{refundlistsource?.reason}}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Amount to be refunded</td>\n <td>{{refundlistsource?.amount | currency :'GBP':'symbol':'1.2-2' }}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Submitted by</td>\n <td>{{refundlistsource?.user_full_name}}</td>\n\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Date submitted</td>\n <td>\t{{refundlistsource?.date_created | date:'d MMMM yyyy' }}</td>\n </tr>\n\n </tbody>\n </table>\n\n <div>\n </div>\n </div>\n <div class=\"process-refund__panel\">\n <form [formGroup]=\"processRefundForm\" novalidate>\n <div class=\"\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"sign-in-hint\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--l\">\n <h1 class=\"heading-large\">\n What do you want to do with this refund?\n </h1>\n </legend>\n <div class=\"govuk-radios\" [ngClass]=\"{'form-group-error': refundActionsHasError}\">\n <p class=\"inline-error-message\"\n *ngIf=\"refundActionsHasError\">\n <span *ngIf=\"refundActionsHasError\">Please select an action</span>\n </p>\n <div class=\"govuk-radios__item\" *ngFor=\"let refundAction of refundActionList; let i = index;\">\n <input class=\"govuk-radios__input\" \n id=\"refundAction-{{i}}\" \n name=\"refundActionField\"\n type=\"radio\"\n formControlName=\"refundActionField\"\n (click)=\"checkRefundActions(refundAction.code)\"\n value=\"{{refundAction.code}}\">\n <label class=\"govuk-label govuk-radios__label process-refund-font\" for=\"refundAction-{{i}}\">\n {{refundAction.code}}\n </label>\n <div id=\"sign-in-item-hint\" class=\"govuk-hint govuk-radios__hint process-refund-font\">\n {{refundAction.label}}\n </div>\n </div>\n <div class=\"govuk-radios__conditional\" [ngClass]=\"{'govuk-radios__conditional--hidden': !isSendMeBackClicked}\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label process-refund-font\" for=\"contact-by-text\">\n Add a reason\n </label>\n <p class=\"inline-error-message\"\n *ngIf=\"isReasonFieldEmpty || isReasonFieldInvalid || reasonFieldMinHasError || reasonFieldMaxHasError\">\n <span *ngIf=\"isReasonFieldEmpty\">Add a reason</span>\n <span *ngIf=\"isReasonFieldInvalid\">Add a valid reason</span>\n <span *ngIf=\"reasonFieldMinHasError\">Reason should be at least 3 characters.</span>\n <span *ngIf=\"reasonFieldMaxHasError\">Reason should be 255 characters or under.</span>\n </p>\n <textarea class=\"govuk-textarea govuk-!-width-one-third reason-font\"\n [ngClass]=\"{'inline-error-class': isReasonFieldEmpty || isReasonFieldInvalid || reasonFieldMinHasError || reasonFieldMaxHasError}\"\n id=\"sendmeback\"\n name=\"sendMeBackField\" \n formControlName=\"sendMeBackField\"\n rows=\"5\"></textarea>\n \n </div>\n\n </div>\n \n </div>\n \n </fieldset>\n </div>\n\n <div [ngClass]=\"{'govuk-radios__conditional--hidden': !isRejectClicked}\">\n <fieldset class=\"govuk-fieldset\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--l\">\n <h2 class=\"heading-medium\">\n Why are you rejecting this refund?\n </h2>\n </legend>\n <div class=\"govuk-radios\" [ngClass]=\"{'form-group-error': refundRejectReasonHasError}\">\n <p class=\"inline-error-message\"\n *ngIf=\"refundRejectReasonHasError\">\n <span *ngIf=\"refundRejectReasonHasError\">Please select a reject reason</span>\n </p>\n <div class=\"govuk-radios__item\" *ngFor=\"let refundRejectReason of refundRejectReasonList; let j = index;\">\n <input class=\"govuk-radios__input\" \n id=\"refundRejectReason-{{j}}\"\n formControlName=\"refundRejectReasonField\"\n name=\"refundRejectReasonField\"\n (click)=\"checkRefundActions(refundRejectReason.code)\"\n type=\"radio\" value=\"{{refundRejectReason.code}}\">\n <label class=\"govuk-label govuk-radios__label process-refund-font\" for=\"refundRejectReason-{{j}}\">\n {{refundRejectReason.name}}\n </label>\n </div>\n </div>\n <div class=\"govuk-radios__conditional\" [ngClass]=\"{'govuk-radios__conditional--hidden': !isOtherClicked}\" id=\"conditional-contact-3\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label process-refund-font \" for=\"contact-by-text\">\n Enter reason\n </label>\n <p class=\"inline-error-message\" *ngIf=\"isReasonEmpty || isReasonInvalid\">\n <span *ngIf=\"isReasonEmpty\">Enter reason.</span>\n <span *ngIf=\"isReasonInvalid\">Enter a valid reason</span>\n </p>\n <input class=\"govuk-input govuk-!-width-one-third reason-font\" id=\"otherReason\" \n [ngClass]=\"{'inline-error-class': isReasonEmpty || isReasonInvalid}\"\n formControlName=\"enterReasonField\" name=\"enterReasonField\" type=\"text\"></div>\n \n </div>\n \n </fieldset>\n </div>\n\n <div class=\"govuk-button-group\">\n <button (click)=\"redirecttoRefundListPage()\" class=\"govuk-button govuk-button--secondary marginright\"> Previous</button>\n <button (click)=\"processRefundSubmit()\" class=\"govuk-button button\"\n data-module=\"govuk-button\">\n Submit \n </button>\n <br/><br/>\n </div>\n \n <div *ngIf=\"!isFromRefundListPage\" class=\"govuk-button-group margin\">\n\n <p><a (click)=\"loadRefundsHomePage()\" class=\"govuk-link pointer\" data-module=\"govuk-button\">Cancel</a></p>\n</div>\n</form>\n </div>\n \n\n </main>\n \n <main class=\"govuk-main-wrapper govuk-main-wrapper--l success-page-padding--top25\" [ngClass]=\"{'govuk-radios__conditional--hidden': !isSuccesspageEnable}\" id=\"main-content\" role=\"main\" >\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-panel govuk-panel-refund--confirmation\">\n <h1 class=\"heading-xlarge\">\n {{successMsg}}\n </h1>\n </div>\n <p class=\"govuk-body process-refund-font\">\n <a (click) = \"goToCaseReview()\" class=\"govuk-link pointer\">Return to case</a>\n </p>\n </div>\n </main>\n</div>\n</ng-container>\n\n",
435
- styles: [".tb-col-w{width:330px}.tr-border{border-bottom:2px solid}.payment-view-alignment{margin-left:30px}.govuk-button{float:left!important;font-size:19px;margin-top:2em!important}.remission{margin-bottom:7em}.process-refund-font{font-size:19px!important}.govuk-radios__conditional--hidden{display:none}.inline-error-message{color:#c11717;font-weight:700;margin-top:10px;border-color:#c11717}.inline-error-class{outline:#c11717 solid 3px;outline-offset:0;border-color:#c11717}.form-group-error{border-left:5px solid #c11717;padding-left:15px}.govuk-panel-refund--confirmation{color:#fff;background:#00703c}.process-refund__panel{display:flex;flex-direction:column;margin-left:25px;margin-top:30px}.button-margin--left25{margin-left:25px}.success-page-padding--top25{padding-top:25px}.margin{margin-top:5em}.marginright{margin-right:1.5em}.govuk-textarea{line-height:2.25}.reason-font{font-size:19px!important}.pointer{cursor:pointer}"]
436
- }] }
437
- ];
438
- /** @nocollapse */
439
- ProcessRefundComponent.ctorParameters = function () { return [
440
- { type: RefundsService },
441
- { type: FormBuilder },
442
- { type: OrderslistService },
443
- { type: PaymentLibComponent },
444
- { type: Router },
445
- { type: ActivatedRoute }
446
- ]; };
447
- ProcessRefundComponent.propDecorators = {
448
- refundReference: [{ type: Input }],
449
- refundlistsource: [{ type: Input }]
450
- };
451
- return ProcessRefundComponent;
452
- }());
453
- export { ProcessRefundComponent };
454
- if (false) {
455
- /** @type {?} */
456
- ProcessRefundComponent.prototype.refundReference;
457
- /** @type {?} */
458
- ProcessRefundComponent.prototype.refundlistsource;
459
- /** @type {?} */
460
- ProcessRefundComponent.prototype.processRefundForm;
461
- /** @type {?} */
462
- ProcessRefundComponent.prototype.errorMessage;
463
- /** @type {?} */
464
- ProcessRefundComponent.prototype.sendmeback;
465
- /** @type {?} */
466
- ProcessRefundComponent.prototype.viewStatus;
467
- /** @type {?} */
468
- ProcessRefundComponent.prototype.refundActionList;
469
- /** @type {?} */
470
- ProcessRefundComponent.prototype.refundRejectReasonList;
471
- /** @type {?} */
472
- ProcessRefundComponent.prototype.isSendMeBackClicked;
473
- /** @type {?} */
474
- ProcessRefundComponent.prototype.isRejectClicked;
475
- /** @type {?} */
476
- ProcessRefundComponent.prototype.isOtherClicked;
477
- /** @type {?} */
478
- ProcessRefundComponent.prototype.isSuccesspageEnable;
479
- /** @type {?} */
480
- ProcessRefundComponent.prototype.refundActionsHasError;
481
- /** @type {?} */
482
- ProcessRefundComponent.prototype.refundRejectReasonHasError;
483
- /** @type {?} */
484
- ProcessRefundComponent.prototype.isReasonFieldEmpty;
485
- /** @type {?} */
486
- ProcessRefundComponent.prototype.isReasonFieldInvalid;
487
- /** @type {?} */
488
- ProcessRefundComponent.prototype.reasonFieldMinHasError;
489
- /** @type {?} */
490
- ProcessRefundComponent.prototype.reasonFieldMaxHasError;
491
- /** @type {?} */
492
- ProcessRefundComponent.prototype.isReasonEmpty;
493
- /** @type {?} */
494
- ProcessRefundComponent.prototype.isReasonInvalid;
495
- /** @type {?} */
496
- ProcessRefundComponent.prototype.successMsg;
497
- /** @type {?} */
498
- ProcessRefundComponent.prototype.navigationpage;
499
- /** @type {?} */
500
- ProcessRefundComponent.prototype.ccdCaseNumber;
501
- /** @type {?} */
502
- ProcessRefundComponent.prototype.isFromRefundListPage;
503
- /** @type {?} */
504
- ProcessRefundComponent.prototype.isConfirmButtondisabled;
505
- /**
506
- * @type {?}
507
- * @private
508
- */
509
- ProcessRefundComponent.prototype.RefundsService;
510
- /**
511
- * @type {?}
512
- * @private
513
- */
514
- ProcessRefundComponent.prototype.formBuilder;
515
- /**
516
- * @type {?}
517
- * @private
518
- */
519
- ProcessRefundComponent.prototype.OrderslistService;
520
- /**
521
- * @type {?}
522
- * @private
523
- */
524
- ProcessRefundComponent.prototype.paymentLibComponent;
525
- /**
526
- * @type {?}
527
- * @private
528
- */
529
- ProcessRefundComponent.prototype.router;
530
- /**
531
- * @type {?}
532
- * @private
533
- */
534
- ProcessRefundComponent.prototype.activeRoute;
535
- }
536
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1yZWZ1bmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9wcm9jZXNzLXJlZnVuZC9wcm9jZXNzLXJlZnVuZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQVUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUl0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFDLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXhEO0lBbUNFLGdDQUFvQixjQUE4QixFQUM5QixXQUF3QixFQUN4QixpQkFBb0MsRUFDcEMsbUJBQXdDLEVBQ3hDLE1BQWMsRUFDZCxXQUEyQjtRQUwzQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUE3Qi9DLGlCQUFZLEdBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4RCxlQUFVLEdBQVcsSUFBSSxDQUFDO1FBRTFCLHFCQUFnQixHQUFvQixFQUFFLENBQUM7UUFDdkMsMkJB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aUM7O0lBQ2pDLGdEQUFnQzs7SUFDaEMscURBQXFDOztJQUVyQyx1REFBdUM7O0lBQ3ZDLDREQUE0Qzs7SUFDNUMsb0RBQW9DOztJQUNwQyxzREFBc0M7O0lBQ3RDLHdEQUF3Qzs7SUFDeEMsd0RBQXdDOztJQUN4QywrQ0FBK0I7O0lBQy9CLGlEQUFpQzs7SUFDakMsNENBQTBCOztJQUMxQixnREFBdUI7O0lBQ3ZCLCtDQUFzQjs7SUFDdEIsc0RBQThCOztJQUU5Qix5REFBd0M7Ozs7O0lBQzVCLGdEQUFzQzs7Ozs7SUFDdEMsNkNBQWdDOzs7OztJQUNoQyxtREFBNEM7Ozs7O0lBQzVDLHFEQUFnRDs7Ozs7SUFDaEQsd0NBQXNCOzs7OztJQUN0Qiw2Q0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7UmVmdW5kc1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3JlZnVuZHMvcmVmdW5kcy5zZXJ2aWNlJztcbmltcG9ydCB7IElSZWZ1bmRBY3Rpb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lSZWZ1bmRBY3Rpb24nO1xuaW1wb3J0IHsgSVJlZnVuZExpc3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lSZWZ1bmRMaXN0JztcbmltcG9ydCB7IElSZWZ1bmRSZWplY3RSZWFzb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lSZWZ1bmRSZWplY3RSZWFzb24nO1xuaW1wb3J0IHsgT3JkZXJzbGlzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vcmRlcnNsaXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUGF5bWVudExpYkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BheW1lbnQtbGliLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSxSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY3BheS1wcm9jZXNzLXJlZnVuZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9jZXNzLXJlZnVuZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2Nlc3MtcmVmdW5kLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9jZXNzUmVmdW5kQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcmVmdW5kUmVmZXJlbmNlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlZnVuZGxpc3Rzb3VyY2U6IElSZWZ1bmRMaXN0O1xuXG4gIHByb2Nlc3NSZWZ1bmRGb3JtOiBGb3JtR3JvdXA7XG5cbiAgZXJyb3JNZXNzYWdlID0gIHRoaXMuZ2V0RXJyb3JNZXNzYWdlKGZhbHNlLCAnJywgJycsICcnKTtcbiAgc2VuZG1lYmFjazogc3RyaW5nID0gbnVsbDtcbiAgdmlld1N0YXR1czogc3RyaW5nO1xuICByZWZ1bmRBY3Rpb25MaXN0OiBJUmVmdW5kQWN0aW9uW10gPSBbXTsgXG4gIHJlZnVuZFJlamVjdFJlYXNvbkxpc3Q6IElSZWZ1bmRSZWplY3RSZWFzb25bXSA9IFtdOyBcbiAgaXNTZW5kTWVCYWNrQ2xpY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1JlamVjdENsaWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNPdGhlckNsaWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNTdWNjZXNzcGFnZUVuYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHJlZnVuZEFjdGlvbnNIYXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICByZWZ1bmRSZWplY3RSZWFzb25IYXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1JlYXNvbkZpZWxkRW1wdHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNSZWFzb25GaWVsZEludmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcmVhc29uRmllbGRNaW5IYXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICByZWFzb25GaWVsZE1heEhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUmVhc29uRW1wdHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNSZWFzb25JbnZhbGlkOiBib29sZWFuID0gZmFsc2U7XG4gIHN1Y2Nlc3NNc2c6IHN0cmluZyA9IG51bGw7XG4gIG5hdmlnYXRpb25wYWdlOiBzdHJpbmc7XG4gIGNjZENhc2VOdW1iZXI6IHN0cmluZztcbiAgaXNGcm9tUmVmdW5kTGlzdFBhZ2U6IGJvb2xlYW47XG5cbiAgaXNDb25maXJtQnV0dG9uZGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIFJlZnVuZHNTZXJ2aWNlOiBSZWZ1bmRzU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgT3JkZXJzbGlzdFNlcnZpY2U6IE9yZGVyc2xpc3RTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHBheW1lbnRMaWJDb21wb25lbnQ6IFBheW1lbnRMaWJDb21wb25lbnQsXG4gICAgICAgICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgYWN0aXZlUm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnZpZXdTdGF0dXMgPSAnUmVmdW5kUHJvY2Vzcyc7XG4gICAgdGhpcy5SZWZ1bmRzU2VydmljZS5nZXRSZWZ1bmRBY3Rpb25zKHRoaXMucmVmdW5kUmVmZXJlbmNlKS5zdWJzY3JpYmUoXG4gICAgICByZWZ1bmRBY3Rpb25MaXN0ID0+IHtcbiAgICAgICAgdGhpcy5yZWZ1bmRBY3Rpb25MaXN0ID0gPGFueT5yZWZ1bmRBY3Rpb25MaXN0O1xuICAgICAgfSxcbiAgICAgIGVyciA9PiB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5nZXRFcnJvck1lc3NhZ2UodHJ1ZSwgZXJyLnN0YXR1c0NvZGUsIGVyci5lcnIsIGVycik7XG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLnByb2Nlc3NSZWZ1bmRGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICByZWZ1bmRBY3Rpb25GaWVsZDogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXG4gICAgICBdKSksXG4gICAgICByZWZ1bmRSZWplY3RSZWFzb25GaWVsZDogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXG4gICAgICBdKSksXG4gICAgICBzZW5kTWVCYWNrRmllbGQ6IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgVmFsaWRhdG9ycy5taW5MZW5ndGgoMyksXG4gICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NSksXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybignXihbYS16QS1aMC05XFxcXHMsXFxcXC5dKikkJyksXG5cbiAgICAgIF0pKSxcbiAgICAgIGVudGVyUmVhc29uRmllbGQ6IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMzApLFxuICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oJ14oW2EtekEtWjAtOS5cXFxcc10qKSQnKSxcbiAgICAgIF0pKSxcbiAgICB9KTtcbiAgIHRoaXMuY2NkQ2FzZU51bWJlciA9IHRoaXMucmVmdW5kbGlzdHNvdXJjZS5jY2RfY2FzZV9udW1iZXI7XG5cbiAgIGlmKCh0eXBlb2YgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlRBS0VQQVlNRU5UID09PSAnc3RyaW5nJyAmJiB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPT09ICdmYWxzZScpIHx8ICh0eXBlb2YgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlRBS0VQQVlNRU5UID09PSAnYm9vbGVhbicgJiYgIXRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVCkgKSB7XG4gICAgdGhpcy5pc0Zyb21SZWZ1bmRMaXN0UGFnZSA9IHRydWU7XG4gICB9XG4gIH1cbiAgY2hlY2tSZWZ1bmRBY3Rpb25zKGNvZGU6IHN0cmluZykge1xuICAgIHRoaXMucmVmdW5kQWN0aW9uc0hhc0Vycm9yID0gZmFsc2U7XG4gICAgdGhpcy5pc1JlYXNvbkZpZWxkRW1wdHkgPSBmYWxzZTtcbiAgICB0aGlzLmlzUmVhc29uRW1wdHkgPSBmYWxzZTtcbiAgICB0aGlzLmlzUmVhc29uSW52YWxpZCA9IGZhbHNlO1xuICAgIHRoaXMucmVmdW5kUmVqZWN0UmVhc29uSGFzRXJyb3IgPSBmYWxzZTtcbiAgICBpZihjb2RlID09PSAnUmV0dXJuIHRvIGNhc2V3b3JrZXInKSB7XG4gICAgICB0aGlzLmlzQ29uZmlybUJ1dHRvbmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNTZW5kTWVCYWNrQ2xpY2tlZCA9IHRydWU7XG4gICAgICB0aGlzLmlzUmVqZWN0Q2xpY2tlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5pc090aGVyQ2xpY2tlZCA9IGZhbHNlO1xuXG4gICAgfSBlbHNlIGlmIChjb2RlID09PSAnQXBwcm92ZScpIHtcbiAgICAgIHRoaXMuaXNTZW5kTWVCYWNrQ2xpY2tlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5pc0NvbmZpcm1CdXR0b25kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5pc1JlamVjdENsaWNrZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNPdGhlckNsaWNrZWQgPSBmYWxzZTtcblxuICAgIH0gZWxzZSBpZiAoY29kZSA9PT0gJ1JlamVjdCcpIHtcbiAgICAgIHRoaXMuaXNSZWplY3RDbGlja2VkID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNTZW5kTWVCYWNrQ2xpY2tlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5pc090aGVyQ2xpY2tlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5SZWZ1bmRzU2VydmljZS5nZXRSZWZ1bmRSZWplY3RSZWFzb25zKCkuc3Vic2NyaWJlKFxuICAgICAgICByZWZ1bmRSZWplY3RSZWFzb25MaXN0ID0+IHtcbiAgICAgICAgICB0aGlzLnJlZnVuZFJlamVjdFJlYXNvbkxpc3QgPSA8YW55PnJlZnVuZFJlamVjdFJlYXNvbkxpc3Q7XG4gICAgICAgIH0sXG4gICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmdldEVycm9yTWVzc2FnZSh0cnVlLCBlcnIuc3RhdHVzQ29kZSwgZXJyLmVyciwgZXJyKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKGNvZGUgPT09ICdSRTAwNScpIHtcbiAgICAgIHRoaXMuaXNPdGhlckNsaWNrZWQgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoY29kZSAhPT0gJ1JFMDA1Jykge1xuICAgICAgdGhpcy5pc090aGVyQ2xpY2tlZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuICBwcm9jZXNzUmVmdW5kU3VibWl0KCkge1xuICAgIGxldCBwcm9jZXNzUmVmdW5kUmVxdWVzdDtcbiAgICBsZXQgc3RhdHVzO1xuICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2VdLCAnYWxsJyk7XG4gICAgY29uc3QgY29udHJvbHMgPSB0aGlzLnByb2Nlc3NSZWZ1bmRGb3JtLmNvbnRyb2xzO1xuICAgIGNvbnN0IHByb2Nlc3NGb3JtRXJyb3IgPSBjb250cm9scy5zZW5kTWVCYWNrRmllbGQuZXJyb3JzO1xuXG4gICAgaWYgKHRoaXMucHJvY2Vzc1JlZnVuZEZvcm0uZGlydHkgJiYgY29udHJvbHMucmVmdW5kQWN0aW9uRmllbGQudmFsaWQgXG4gICAgICAmJiAoY29udHJvbHMucmVmdW5kQWN0aW9uRmllbGQudmFsdWUgPT0gJ0FwcHJvdmUnXG4gICAgICB8fCAoY29udHJvbHMucmVmdW5kQWN0aW9uRmllbGQudmFsdWUgPT0gJ1JlamVjdCcgJiYgY29udHJvbHMucmVmdW5kUmVqZWN0UmVhc29uRmllbGQudmFsaWQgJiYgY29udHJvbHMucmVmdW5kUmVqZWN0UmVhc29uRmllbGQudmFsdWUgIT0gJ1JFMDA1JylcbiAgICAgIHx8IChjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWx1ZSA9PSAnUmVqZWN0JyAmJiBjb250cm9scy5yZWZ1bmRSZWplY3RSZWFzb25GaWVsZC52YWx1ZSA9PSAnUkUwMDUnICYmIGNvbnRyb2xzLmVudGVyUmVhc29uRmllbGQudmFsaWQpXG4gICAgICB8fCAoY29udHJvbHMucmVmdW5kQWN0aW9uRmllbGQudmFsdWUgPT0gJ1JldHVybiB0byBjYXNld29ya2VyJyAmJiBjb250cm9scy5zZW5kTWVCYWNrRmllbGQudmFsaWQpKSkge1xuICAgICAgaWYgKGNvbnRyb2xzLnJlZnVuZEFjdGlvbkZpZWxkLnZhbHVlID09PSAnQXBwcm92ZScpe1xuICAgICAgICBzdGF0dXMgPSAnQVBQUk9WRSc7XG4gICAgICAgIHByb2Nlc3NSZWZ1bmRSZXF1ZXN0ID0ge1xuICAgICAgICAgIGNvZGU6JycsXG4gICAgICAgICAgcmVhc29uOiAnJ1xuICAgICAgICB9O1xuICAgICAgfSBlbHNlIGlmIChjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWx1ZSA9PT0gJ1JlamVjdCcpIHtcbiAgICAgICAgc3RhdHVzID0gJ1JFSkVDVCc7XG5cbiAgICAgICAgcHJvY2Vzc1JlZnVuZFJlcXVlc3QgPSB7XG4gICAgICAgICAgY29kZTogY29udHJvbHMucmVmdW5kUmVqZWN0UmVhc29uRmllbGQudmFsdWUgPyBjb250cm9scy5yZWZ1bmRSZWplY3RSZWFzb25GaWVsZC52YWx1ZSA6ICcnLFxuICAgICAgICAgIHJlYXNvbjogY29udHJvbHMucmVmdW5kUmVqZWN0UmVhc29uRmllbGQudmFsdWUgPT0gJ1JFMDA1JyA/IGNvbnRyb2xzLmVudGVyUmVhc29uRmllbGQudmFsdWUgOiAnJ1xuICAgICAgICB9O1xuICAgICAgfSBlbHNlIGlmIChjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWx1ZSA9PT0gJ1JldHVybiB0byBjYXNld29ya2VyJykge1xuICAgICAgICBzdGF0dXMgPSAnU0VOREJBQ0snO1xuXG4gICAgICAgIHByb2Nlc3NSZWZ1bmRSZXF1ZXN0ID0ge1xuICAgICAgICAgIGNvZGU6ICcnLFxuICAgICAgICAgIHJlYXNvbjogY29udHJvbHMuc2VuZE1lQmFja0ZpZWxkLnZhbHVlXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICB0aGlzLlJlZnVuZHNTZXJ2aWNlLnBhdGNoUmVmdW5kQWN0aW9ucyhwcm9jZXNzUmVmdW5kUmVxdWVzdCwgdGhpcy5yZWZ1bmRSZWZlcmVuY2UsIHN0YXR1cykuc3Vic2NyaWJlKFxuICAgICAgICByZXNwb25zZSA9PiB7XG4gICAgICAgICAgdGhpcy5pc1N1Y2Nlc3NwYWdlRW5hYmxlID0gdHJ1ZTtcbiAgICAgICAgICAvLyB0aGlzLnN1Y2Nlc3NNc2cgPSBKU09OLnBhcnNlKHJlc3BvbnNlKVsnZGF0YSddO1xuICAgICAgICAgIHRoaXMuc3VjY2Vzc01zZyA9IHJlc3BvbnNlLnJlcGxhY2UoL1snXCJdKy9nLCAnJyk7XG4gICAgICAgIH0sXG4gICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmdldEVycm9yTWVzc2FnZSh0cnVlLCBlcnIuc3RhdHVzQ29kZSwgZXJyLmVyciwgZXJyKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYoY29udHJvbHMucmVmdW5kQWN0aW9uRmllbGQudmFsdWUgPT0gXCJcIikge1xuICAgICAgICB0aGlzLnJlc2V0Rm9ybShbdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2VdLCAnYWN0aW9uJyk7XG4gICAgICB9XG4gICAgICBpZihjb250cm9scy5yZWZ1bmRBY3Rpb25GaWVsZC52YWx1ZSA9PSAnUmVqZWN0JyAmJiBjb250cm9scy5yZWZ1bmRSZWplY3RSZWFzb25GaWVsZC52YWx1ZSA9PSBcIlwiKSB7XG4gICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sICdyZWplY3RSZWFzb24nKTtcbiAgICAgIH1cbiAgICAgIGlmKGNvbnRyb2xzLnJlZnVuZEFjdGlvbkZpZWxkLnZhbHVlID09ICdSZXR1cm4gdG8gY2FzZXdvcmtlcicpIHtcbiAgICAgICAgaWYoY29udHJvbHMuc2VuZE1lQmFja0ZpZWxkLnZhbHVlID09ICcnICkge1xuICAgICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sICdhZGRBcmVhc29uJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYoY29udHJvbHMuc2VuZE1lQmFja0ZpZWxkLnZhbHVlICE9ICcnICYmIGNvbnRyb2xzLnNlbmRNZUJhY2tGaWVsZC5pbnZhbGlkICkge1xuICAgICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sICdhZGRBcmVhc29uJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYocHJvY2Vzc0Zvcm1FcnJvciAmJiBwcm9jZXNzRm9ybUVycm9yLm1pbmxlbmd0aCAmJiBwcm9jZXNzRm9ybUVycm9yLm1pbmxlbmd0aC5hY3R1YWxMZW5ndGggPCAzICkge1xuICAgICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sICdhZGRBcmVhc29uJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYocHJvY2Vzc0Zvcm1FcnJvciAmJiBwcm9jZXNzRm9ybUVycm9yLm1heGxlbmd0aCAmJiBwcm9jZXNzRm9ybUVycm9yLm1heGxlbmd0aC5hY3R1YWxMZW5ndGggPiAyNTUgKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlXSwgJ2FkZEFyZWFzb24nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYoY29udHJvbHMucmVmdW5kQWN0aW9uRmllbGQudmFsdWUgPT0gJ1JlamVjdCcgJiYgY29udHJvbHMucmVmdW5kUmVqZWN0UmVhc29uRmllbGQudmFsdWUgPT0gJ1JFMDA1Jykge1xuICAgICAgICBpZihjb250cm9scy5lbnRlclJlYXNvbkZpZWxkLnZhbHVlID09PSBcIlwiKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlXSwgJ2VudGVyUmVhc29uJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYoY29udHJvbHMuZW50ZXJSZWFzb25GaWVsZC52YWx1ZSE9PSBcIlwiICYmIGNvbnRyb2xzLmVudGVyUmVhc29uRmllbGQuaW52YWxpZCkge1xuICAgICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZV0sICdlbnRlclJlYXNvbicpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gIH1cbiAgZ2V0RXJyb3JNZXNzYWdlKGlzRXJyb3JFeGlzdCwgc3RhdHVzLCBlcnJvck1zZywgZXJyKSB7XG4gICAgbGV0IGJvZHlUeHQgPSAnUGxlYXNlIHRyeSBhZ2FpbiBsYXRlcic7XG4gICAgaWYgKHN0YXR1cyAhPT0gNTAwKSB7XG4gICAgICBpZiAoZXJyb3JNc2cgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBib2R5VHh0ID0gZXJyb3JNc2c7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBib2R5VHh0ID0gZXJyO1xuICAgICAgfVxuICAgICAgXG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTogJ1NvbWV0aGluZyB3ZW50IHdyb25nJyxcbiAgICAgIGJvZHk6IGJvZHlUeHQsXG4gICAgICBzaG93RXJyb3I6IGlzRXJyb3JFeGlzdFxuICAgIH07XG4gIH1cbiAgbG9hZFJlZnVuZExpc3RQYWdlKCkge1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0bmF2aWdhdGlvblBhZ2VWYWx1ZSgpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5uYXZpZ2F0aW9ucGFnZSA9IGRhdGEpO1xuICAgIGlmICh0aGlzLm5hdmlnYXRpb25wYWdlID09PSAnY2FzZXRyYW5zYWN0aW9ucycpIHtcbiAgICAgIC8vIHdpbmRvdy5sb2NhdGlvbi5ocmVmPScvcmVmdW5kLWxpc3Q/dGFrZVBheW1lbnQ9ZmFsc2UmcmVmdW5kbGlzdD10cnVlJztcbiAgICAgIC8vIC8vIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0bmF2aWdhdGlvblBhZ2UoJ2Nhc2V0cmFuc2FjdGlvbnMnKTtcbiAgICAgIC8vIC8vIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0aXNGcm9tU2VydmljZVJlcXVlc3RQYWdlKGZhbHNlKTtcbiAgICAgIC8vIC8vIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5WSUVXID0nY2FzZS10cmFuc2FjdGlvbnMnO1xuICAgICAgLy8gLy8gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ2Nhc2UtdHJhbnNhY3Rpb25zJztcbiAgICAgIC8vIC8vIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU0JTRU5BQkxFID0gdHJ1ZTtcbiAgICAgIC8vIC8vIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc1JlZnVuZFN0YXR1c1ZpZXcgPSBmYWxzZTtcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdyZWZ1bmRzdGF0dXNsaXN0JztcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc1JlZnVuZFN0YXR1c1ZpZXcgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAncmVmdW5kc3RhdHVzbGlzdCc7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNSZWZ1bmRTdGF0dXNWaWV3ID0gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgbG9hZFJlZnVuZHNIb21lUGFnZSgpIHtcbiAgICBpZih0eXBlb2YgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlRBS0VQQVlNRU5UID09PSAnc3RyaW5nJyAmJiB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPT09ICdmYWxzZScpIHtcbiAgICAgIC8vd2luZG93LmxvY2F0aW9uLmhyZWY9Jy9yZWZ1bmQtbGlzdD90YWtlUGF5bWVudD1mYWxzZSZyZWZ1bmRsaXN0PXRydWUnO1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ3JlZnVuZC1saXN0JztcbiAgICAgfVxuICAgICBlbHNlIHtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0bmF2aWdhdGlvblBhZ2UoJ2Nhc2V0cmFuc2FjdGlvbnMnKTtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0aXNGcm9tU2VydmljZVJlcXVlc3RQYWdlKGZhbHNlKTtcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5WSUVXID0nY2FzZS10cmFuc2FjdGlvbnMnO1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ2Nhc2UtdHJhbnNhY3Rpb25zJztcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU0JTRU5BQkxFID0gdHJ1ZTtcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc1JlZnVuZFN0YXR1c1ZpZXcgPSBmYWxzZTtcbiAgICAgfVxuICB9XG4gcmVkaXJlY3R0b1JlZnVuZExpc3RQYWdlKCkge1xuICAgaWYoKHR5cGVvZiB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPT09ICdzdHJpbmcnICYmIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVCA9PT0gJ2ZhbHNlJykgfHwgKHR5cGVvZiB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPT09ICdib29sZWFuJyAmJiAhdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlRBS0VQQVlNRU5UKSApIHtcbiAgIC8vIHdpbmRvdy5sb2NhdGlvbi5ocmVmPScvcmVmdW5kLWxpc3Q/dGFrZVBheW1lbnQ9ZmFsc2UmcmVmdW5kbGlzdD10cnVlJztcbiAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdyZWZ1bmQtbGlzdCc7XG4gICB9XG4gICBlbHNlIHtcbiAgICB0aGlzLmxvYWRSZWZ1bmRMaXN0UGFnZSgpO1xuICAgfVxuICB9XG4gIC8vIGxvYWRDYXNlVHJhbnNhY3Rpb25QYWdlKCkge1xuICAvLyAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc1JlZnVuZFN0YXR1c1ZpZXcgPSBmYWxzZTtcbiAgLy8gICB0aGlzLnBheW1lbnRMaWJDb31tcG9uZW50LlRBS0VQQVlNRU5UID0gdHJ1ZTtcbiAgLy8gICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAnY2FzZS10cmFuc2FjdGlvbnMnO1xuICAvLyAgIHRoaXMucGF5bWVudFZpZXdTZXJ2aWNlLmdldEJTZmVhdHVyZSgpLnN1YnNjcmliZShcbiAgLy8gICAgIGZlYXR1cmVzID0+IHtcbiAgLy8gICAgICAgbGV0IHJlc3VsdCA9IEpTT04ucGFyc2UoZmVhdHVyZXMpLmZpbHRlcihmZWF0dXJlID0+IGZlYXR1cmUudWlkID09PSBCU19FTkFCTEVfRkxBRyk7XG4gIC8vICAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU0JTRU5BQkxFID0gcmVzdWx0WzBdID8gcmVzdWx0WzBdLmVuYWJsZSA6IGZhbHNlO1xuICAvLyAgICAgfSxcbiAgLy8gICAgIGVyciA9PiB7XG4gIC8vICAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU0JTRU5BQkxFID0gZmFsc2U7XG4gIC8vICAgICB9XG4gIC8vICAgKTtcblxuICAvLyAgIGxldCBwYXJ0VXJsID0gYHNlbGVjdGVkT3B0aW9uPSR7dGhpcy5wYXltZW50TGliQ29tcG9uZW50LlNFTEVDVEVEX09QVElPTn1gO1xuICAvLyAgIHBhcnRVcmwgKz0gdGhpcy5ic1BheW1lbnREY25OdW1iZXIgPyBgJmRjbj0ke3RoaXMuYnNQYXltZW50RGNuTnVtYmVyfWAgOiAnJztcbiAgLy8gICBwYXJ0VXJsICs9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU0JTRU5BQkxFID8gJyZpc0J1bGtTY2FubmluZz1FbmFibGUnIDogJyZpc0J1bGtTY2FubmluZz1EaXNhYmxlJztcbiAgLy8gICBwYXJ0VXJsICs9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU1RVUk5PRkYgPyAnJmlzVHVybk9mZj1FbmFibGUnIDogJyZpc1R1cm5PZmY9RGlzYWJsZSc7XG4gIC8vICAgcGFydFVybCArPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNTRkVOQUJMRSA/ICcmaXNTdEZpeEVuYWJsZT1FbmFibGUnIDogJyZpc1N0Rml4RW5hYmxlPURpc2FibGUnO1xuICAvLyAgIHBhcnRVcmwgKz0gYCZjYXNlVHlwZT0ke3RoaXMucGF5bWVudExpYkNvbXBvbmVudC5DQVNFVFlQRX1gO1xuICAvLyAgIHBhcnRVcmwgKz0gdGhpcy5pc05ld1BjaXBhbE9mZiA/ICcmaXNOZXdQY2lwYWxPZmY9RW5hYmxlJyA6ICcmaXNOZXdQY2lwYWxPZmY9RGlzYWJsZSc7XG4gIC8vICAgcGFydFVybCArPSB0aGlzLmlzT2xkUGNpcGFsT2ZmID8gJyZpc09sZFBjaXBhbE9mZj1FbmFibGUnIDogJyZpc09sZFBjaXBhbE9mZj1EaXNhYmxlJztcbiAgLy8gICBsZXQgdXJsID0gYC9wYXltZW50LWhpc3RvcnkvJHt0aGlzLmNjZENhc2VOdW1iZXJ9P3ZpZXc9Y2FzZS10cmFuc2FjdGlvbnMmdGFrZVBheW1lbnQ9dHJ1ZSYke3BhcnRVcmx9YDtcbiAgLy8gICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHVybCk7XG4gIC8vIH1cblxuICByZXNldEZvcm0odmFscywgZmllbGQpIHtcbiAgICBpZihmaWVsZD09PSdhY3Rpb24nIHx8IGZpZWxkPT09J2FsbCcpIHtcbiAgICAgIHRoaXMucmVmdW5kQWN0aW9uc0hhc0Vycm9yID0gdmFsc1swXTtcbiAgICB9XG4gICAgaWYoZmllbGQ9PT0ncmVqZWN0UmVhc29uJyB8fCBmaWVsZD09PSdhbGwnKSB7XG4gICAgICB0aGlzLnJlZnVuZFJlamVjdFJlYXNvbkhhc0Vycm9yID0gdmFsc1sxXTtcbiAgICB9XG4gICAgaWYoZmllbGQ9PT0nYWRkQXJlYXNvbicgfHwgZmllbGQ9PT0nYWxsJykge1xuICAgICAgdGhpcy5pc1JlYXNvbkZpZWxkRW1wdHkgPSB2YWxzWzJdO1xuICAgICAgdGhpcy5pc1JlYXNvbkZpZWxkSW52YWxpZCA9IHZhbHNbM107XG4gICAgICB0aGlzLnJlYXNvbkZpZWxkTWluSGFzRXJyb3IgPSB2YWxzWzRdO1xuICAgICAgdGhpcy5yZWFzb25GaWVsZE1heEhhc0Vycm9yID0gdmFsc1s1XTtcbiAgICB9XG4gICAgaWYoZmllbGQ9PT0nZW50ZXJSZWFzb24nIHx8IGZpZWxkPT09J2FsbCcpIHtcbiAgICAgIHRoaXMuaXNSZWFzb25FbXB0eSA9IHZhbHNbNl07XG4gICAgICB0aGlzLmlzUmVhc29uSW52YWxpZCA9IHZhbHNbN107XG4gICAgfVxuICB9XG5cbiAgZ29Ub0Nhc2VSZXZpZXcoKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvY2FzZXMvY2FzZS1kZXRhaWxzLyR7dGhpcy5jY2RDYXNlTnVtYmVyfWBdLCB7cmVsYXRpdmVUbzogdGhpcy5hY3RpdmVSb3V0ZX0pO1xuICB9XG59XG4iXX0=