@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
@@ -0,0 +1,255 @@
1
+ import { Component, Input, Inject } from '@angular/core';
2
+ import { FormBuilder, Validators, FormControl } from '@angular/forms';
3
+ import { BulkScaningPaymentService } from '../../services/bulk-scaning-payment/bulk-scaning-payment.service';
4
+ import { UnsolicitedPaymentsRequest } from '../../interfaces/UnsolicitedPaymentsRequest';
5
+ import { PaymentViewService } from '../../services/payment-view/payment-view.service';
6
+ import { AllocatePaymentRequest } from '../../interfaces/AllocatePaymentRequest';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/forms";
9
+ import * as i2 from "../../services/payment-view/payment-view.service";
10
+ import * as i3 from "../../services/bulk-scaning-payment/bulk-scaning-payment.service";
11
+ import * as i4 from "@angular/common";
12
+ import * as i5 from "../error-banner/error-banner.component";
13
+ export class MarkUnsolicitedPaymentComponent {
14
+ formBuilder;
15
+ paymentViewService;
16
+ paymentLibComponent;
17
+ bulkScaningPaymentService;
18
+ caseType;
19
+ markPaymentUnsolicitedForm;
20
+ viewStatus;
21
+ reasonHasError = false;
22
+ isReasonEmpty = false;
23
+ reasonMinHasError = false;
24
+ reasonMaxHasError = false;
25
+ responsibleOfficeHasError = false;
26
+ isResponsibleOfficeEmpty = false;
27
+ errorMessage = this.getErrorMessage(false);
28
+ ccdCaseNumber;
29
+ bspaymentdcn;
30
+ unassignedRecord;
31
+ siteID = null;
32
+ reason;
33
+ responsiblePerson;
34
+ responsibleOffice;
35
+ emailId;
36
+ isConfirmButtondisabled = false;
37
+ isContinueButtondisabled = false;
38
+ ccdReference = null;
39
+ exceptionReference = null;
40
+ selectedSiteId;
41
+ selectedSiteName;
42
+ isStrategicFixEnable = true;
43
+ siteIDList;
44
+ constructor(formBuilder, paymentViewService, paymentLibComponent, bulkScaningPaymentService) {
45
+ this.formBuilder = formBuilder;
46
+ this.paymentViewService = paymentViewService;
47
+ this.paymentLibComponent = paymentLibComponent;
48
+ this.bulkScaningPaymentService = bulkScaningPaymentService;
49
+ }
50
+ ngOnInit() {
51
+ this.resetForm([false, false, false, false, false, false], 'all');
52
+ this.viewStatus = 'mainForm';
53
+ this.ccdCaseNumber = this.paymentLibComponent.CCD_CASE_NUMBER;
54
+ this.bspaymentdcn = this.paymentLibComponent.bspaymentdcn;
55
+ this.isStrategicFixEnable = this.paymentLibComponent.ISSFENABLE;
56
+ this.getUnassignedPayment();
57
+ this.paymentViewService.getSiteID().subscribe(siteids => {
58
+ this.isContinueButtondisabled = false;
59
+ this.errorMessage = this.getErrorMessage(false);
60
+ this.siteIDList = JSON.parse(siteids);
61
+ }, err => {
62
+ window.scrollTo(0, 0);
63
+ this.isContinueButtondisabled = true;
64
+ this.errorMessage = this.getErrorMessage(true);
65
+ });
66
+ this.markPaymentUnsolicitedForm = this.formBuilder.group({
67
+ reason: 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
+ responsibleOffice: new FormControl('', Validators.compose([
74
+ Validators.required,
75
+ Validators.pattern('^([a-zA-Z0-9\\s\\n,\\.-:]*)$')
76
+ ])),
77
+ responsiblePerson: new FormControl(''),
78
+ emailId: new FormControl('')
79
+ });
80
+ }
81
+ trimUnderscore(method) {
82
+ return this.bulkScaningPaymentService.removeUnwantedString(method, ' ');
83
+ }
84
+ confirmPayments() {
85
+ this.isConfirmButtondisabled = true;
86
+ const controls = this.markPaymentUnsolicitedForm.controls;
87
+ if (!this.isStrategicFixEnable) {
88
+ let allocatedRequest = {
89
+ allocation_status: 'Transferred',
90
+ payment_allocation_status: {
91
+ description: '',
92
+ name: 'Transferred'
93
+ },
94
+ unidentified_reason: controls.reason.value,
95
+ receiving_office: this.selectedSiteId,
96
+ user_id: this.caseType,
97
+ };
98
+ const postStrategicBody = new AllocatePaymentRequest(this.ccdReference, this.unassignedRecord, this.caseType, this.exceptionReference, allocatedRequest);
99
+ this.bulkScaningPaymentService.postBSWoPGStrategic(postStrategicBody).subscribe(res => {
100
+ this.errorMessage = this.getErrorMessage(false);
101
+ let response = JSON.parse(res);
102
+ if (response.success) {
103
+ this.gotoCasetransationPage();
104
+ }
105
+ }, (error) => {
106
+ this.errorMessage = this.getErrorMessage(true);
107
+ this.isConfirmButtondisabled = false;
108
+ });
109
+ }
110
+ else {
111
+ // controls.responsibleOffice.setValue('P219');
112
+ this.bulkScaningPaymentService.patchBSChangeStatus(this.unassignedRecord.dcn_reference, 'PROCESSED').subscribe(res1 => {
113
+ this.errorMessage = this.getErrorMessage(false);
114
+ const response1 = JSON.parse(res1), requestBody = new AllocatePaymentRequest(this.ccdReference, this.unassignedRecord, this.siteID, this.exceptionReference);
115
+ this.paymentViewService.postBSPayments(requestBody).subscribe(res2 => {
116
+ this.errorMessage = this.getErrorMessage(false);
117
+ const response2 = JSON.parse(res2), reqBody = new UnsolicitedPaymentsRequest(response2['data'].payment_group_reference, response2['data'].reference, controls.reason.value, this.selectedSiteId, controls.responsiblePerson.value, controls.emailId.value);
118
+ if (response2.success) {
119
+ this.paymentViewService.postBSUnsolicitedPayments(reqBody).subscribe(res3 => {
120
+ this.errorMessage = this.getErrorMessage(false);
121
+ const response3 = JSON.parse(res3);
122
+ if (response3.success) {
123
+ this.gotoCasetransationPage();
124
+ }
125
+ }, (error) => {
126
+ this.bulkScaningPaymentService.patchBSChangeStatus(this.unassignedRecord.dcn_reference, 'COMPLETE').subscribe();
127
+ this.errorMessage = this.getErrorMessage(true);
128
+ this.isConfirmButtondisabled = false;
129
+ });
130
+ }
131
+ }, (error) => {
132
+ this.bulkScaningPaymentService.patchBSChangeStatus(this.unassignedRecord.dcn_reference, 'COMPLETE').subscribe();
133
+ this.errorMessage = this.getErrorMessage(true);
134
+ this.isConfirmButtondisabled = false;
135
+ });
136
+ }, (error) => {
137
+ this.errorMessage = this.getErrorMessage(true);
138
+ this.isConfirmButtondisabled = false;
139
+ });
140
+ }
141
+ }
142
+ saveAndContinue() {
143
+ this.resetForm([false, false, false, false, false, false], 'all');
144
+ const formerror = this.markPaymentUnsolicitedForm.controls.reason.errors;
145
+ const reasonField = this.markPaymentUnsolicitedForm.controls.reason;
146
+ //const officeIdField = this.selectedSiteId;
147
+ const officeIdField = this.markPaymentUnsolicitedForm.controls.responsibleOffice;
148
+ if (this.markPaymentUnsolicitedForm.dirty && this.markPaymentUnsolicitedForm.valid) {
149
+ const controls = this.markPaymentUnsolicitedForm.controls;
150
+ this.emailId = controls.emailId.value;
151
+ this.responsibleOffice = officeIdField.value;
152
+ this.responsiblePerson = controls.responsiblePerson.value;
153
+ this.reason = controls.reason.value;
154
+ this.viewStatus = 'unsolicitedContinueConfirm';
155
+ }
156
+ else {
157
+ if (reasonField.value == '') {
158
+ this.resetForm([true, false, false, false, false, false], 'reason');
159
+ }
160
+ if (reasonField.value != '' && this.markPaymentUnsolicitedForm.controls.reason.invalid) {
161
+ this.resetForm([false, true, false, false, false, false], 'reason');
162
+ }
163
+ if (formerror && formerror.minlength && formerror.minlength.actualLength < 3) {
164
+ this.resetForm([false, false, true, false, false, false], 'reason');
165
+ }
166
+ if (formerror && formerror.maxlength && formerror.maxlength.actualLength > 255) {
167
+ this.resetForm([false, false, false, true, false, false], 'reason');
168
+ }
169
+ if (officeIdField.value == '') {
170
+ this.resetForm([false, false, false, false, true, false], 'responsibleOffice');
171
+ }
172
+ if (officeIdField.value != '' && officeIdField.invalid) {
173
+ this.resetForm([false, false, false, false, false, true], 'responsibleOffice');
174
+ }
175
+ }
176
+ }
177
+ resetForm(val, field) {
178
+ if (field === 'reason' || field === 'all') {
179
+ this.isReasonEmpty = val[0];
180
+ this.reasonHasError = val[1];
181
+ this.reasonMinHasError = val[2];
182
+ this.reasonMaxHasError = val[3];
183
+ }
184
+ if (field === 'responsibleOffice' || field === 'all') {
185
+ this.isResponsibleOfficeEmpty = val[4];
186
+ this.responsibleOfficeHasError = val[5];
187
+ }
188
+ }
189
+ cancelMarkUnsolicitedPayments(type) {
190
+ if (type && type === 'cancel') {
191
+ if (this.checkingFormValue()) {
192
+ this.viewStatus = 'unsolicitedCancelConfirm';
193
+ }
194
+ else {
195
+ this.gotoCasetransationPage();
196
+ }
197
+ }
198
+ else {
199
+ this.markPaymentUnsolicitedForm.controls.responsibleOffice.setValue('');
200
+ this.viewStatus = 'mainForm';
201
+ }
202
+ }
203
+ checkingFormValue() {
204
+ const formFields = this.markPaymentUnsolicitedForm.value;
205
+ let valueExists = false;
206
+ for (var field in formFields) {
207
+ if (formFields.hasOwnProperty(field) && formFields[field] !== "") {
208
+ valueExists = true;
209
+ break;
210
+ }
211
+ }
212
+ return valueExists;
213
+ }
214
+ gotoCasetransationPage() {
215
+ this.paymentLibComponent.viewName = 'case-transactions';
216
+ this.paymentLibComponent.TAKEPAYMENT = true;
217
+ this.paymentLibComponent.ISBSENABLE = true;
218
+ }
219
+ getUnassignedPayment() {
220
+ this.bulkScaningPaymentService.getBSPaymentsByDCN(this.bspaymentdcn).subscribe(unassignedPayments => {
221
+ this.unassignedRecord = unassignedPayments['data'].payments.filter(payment => {
222
+ return payment && payment.dcn_reference == this.bspaymentdcn;
223
+ })[0];
224
+ this.siteID = unassignedPayments['data'].responsible_service_id;
225
+ const beCcdNumber = unassignedPayments['data'].ccd_reference, beExceptionNumber = unassignedPayments['data'].exception_record_reference, exceptionReference = beCcdNumber ? beCcdNumber === this.ccdCaseNumber ? null : this.ccdCaseNumber : this.ccdCaseNumber;
226
+ this.ccdReference = beCcdNumber ? beCcdNumber : null;
227
+ this.exceptionReference = beExceptionNumber ? beExceptionNumber : exceptionReference;
228
+ }, (error) => {
229
+ this.errorMessage = this.getErrorMessage(true);
230
+ });
231
+ }
232
+ getErrorMessage(isErrorExist) {
233
+ return {
234
+ title: "Something went wrong.",
235
+ body: "Please try again later.",
236
+ showError: isErrorExist
237
+ };
238
+ }
239
+ selectchange(args) {
240
+ this.selectedSiteId = args.target.value;
241
+ this.selectedSiteName = args.target.options[args.target.selectedIndex].text;
242
+ }
243
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MarkUnsolicitedPaymentComponent, deps: [{ token: i1.FormBuilder }, { token: i2.PaymentViewService }, { token: 'PAYMENT_LIB' }, { token: i3.BulkScaningPaymentService }], target: i0.ɵɵFactoryTarget.Component });
244
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MarkUnsolicitedPaymentComponent, selector: "app-mark-unsolicited-payment", inputs: { caseType: "caseType" }, ngImport: i0, template: "<div class=\"mkpay-unidentified\">\n <div *ngIf=\"viewStatus === 'mainForm'\">\n <ccpay-error-banner *ngIf=\"errorMessage.showError\" [errorMessage]=\"errorMessage\"></ccpay-error-banner>\n <h1 class=\"heading-large\">Mark payment as transferred</h1>\n <div class=\"govuk-grid-column-full govuk-!-padding-bottom-3\">\n <hr class=\"govuk-section-break govuk-section-break--visible\">\n <table class=\"govuk-table\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__header\" scope=\"col\">Payment asset number (DCN)</td>\n <td class=\"govuk-table__header\" scope=\"col\">Banked date</td>\n <td class=\"govuk-table__header\" scope=\"col\">Amount</td>\n <td class=\"govuk-table__header\" scope=\"col\">Method</td>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell\">{{unassignedRecord.dcn_reference}}</td>\n <td class=\"govuk-table__cell\"> {{unassignedRecord.date_banked | date:'dd MMM yyyy'}}</td>\n <td class=\"govuk-table__cell\"> {{unassignedRecord.amount | currency :'GBP':'symbol':'1.2-2'}}</td>\n <td class=\"capitalize govuk-table__cell\"> {{trimUnderscore(unassignedRecord.payment_method) | lowercase}} </td>\n </tr>\n </tbody>\n </table>\n </div>\n \n <form [formGroup]=\"markPaymentUnsolicitedForm\" novalidate>\n <input #myInput type='hidden' class='iFrameDrivenImageValue' value='MARKTRANSFERRED'>\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label custom-govuk-label custom-govuk-label\" for=\"reason\">\n Reason for payment being marked as transferred \n </label>\n <textarea class=\"form-control form-control-3-4\" [ngClass]=\"{'inline-error-class': reasonHasError || reasonMinHasError || reasonMaxHasError}\" name=\"reason\" id=\"reason\" rows=\"5\" formControlName=\"reason\">\n </textarea>\n <p class=\"inline-error-message\" *ngIf=\"isReasonEmpty || reasonHasError || reasonMinHasError || reasonMaxHasError\">\n <span *ngIf=\"isReasonEmpty\">Enter a reason for marking this payment as transferred.</span>\n <span *ngIf=\"reasonHasError\">Enter a valid reason</span>\n <span *ngIf=\"reasonMinHasError\">Reason should be at least 3 characters.</span>\n <span *ngIf=\"reasonMaxHasError\">Reason should be 255 characters or under.</span>\n </p>\n </div>\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label custom-govuk-label\" for=\"responsibleOffice\">\n Receiving Site ID (Receiving court/Bulk centre site ID) \n </label>\n <select class=\"form-control short-input\" id=\"responsibleOffice\" formControlName=\"responsibleOffice\" (change)=\"selectchange($event)\">\n <option value=\"\" selected='selected'>Please select</option>\n <option *ngFor=\"let siteID of siteIDList;\" value=\"{{siteID.siteId}}\">{{siteID.siteName}} ({{siteID.siteId}})</option>\n </select>\n <p class=\"inline-error-message\" *ngIf=\"isResponsibleOfficeEmpty || responsibleOfficeHasError\">\n <span *ngIf=\"isResponsibleOfficeEmpty\">Please select Receiving Site ID</span>\n <span *ngIf=\"responsibleOfficeHasError\">Please select a valid Receiving Site ID</span>\n </p>\n </div>\n <div class=\"govuk-button--group\">\n <button type=\"submit\" [disabled]=\"isContinueButtondisabled\" class=\"button\" (click)=\"saveAndContinue()\">\n Confirm\n </button>\n <button type=\"button\" class=\"button govuk-button--secondary\" (click)=\"cancelMarkUnsolicitedPayments('cancel')\">\n Cancel\n </button>\n </div>\n </form>\n \n</div>\n <ng-container *ngIf=\"viewStatus === 'unsolicitedContinueConfirm'\">\n <ccpay-error-banner *ngIf=\"errorMessage.showError\" [errorMessage]=\"errorMessage\"></ccpay-error-banner>\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 <h1 class=\"heading-small\"> Are you sure you want to mark this payment as transferred? </h1>\n </strong>\n <input #myInput type='hidden' class='iFrameDrivenImageValue' value='TRANSFERREDCONFIRMATION'>\n <div class=\"govuk-grid-column-full govuk-!-padding-bottom-3\">\n <hr class=\"govuk-section-break govuk-section-break--visible\">\n <table class=\"govuk-table\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__header\" scope=\"col\">Reason</td>\n <td class=\"govuk-table__header\" scope=\"col\">Receiving site ID</td>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell\">{{reason}}</td>\n <td class=\"govuk-table__cell\">{{selectedSiteName}}</td>\n </tr>\n </tbody>\n </table>\n </div>\n\n </div>\n <div class=\"govuk-button--group\">\n <button type=\"submit\" class=\"button\" [disabled]=\"isConfirmButtondisabled\" (click)=\"confirmPayments()\">\n Confirm\n </button>\n <button type=\"button\" class=\"button govuk-button--secondary\" (click)=\"cancelMarkUnsolicitedPayments()\">\n Cancel\n </button>\n </div>\n </ng-container>\n <ng-container *ngIf=\"viewStatus === 'unsolicitedCancelConfirm'\">\n <input #myInput type='hidden' class='iFrameDrivenImageValue' value='CANCELTRANSFERRED'>\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 cancel?\n </strong>\n </div>\n <div class=\"govuk-button--group\">\n <button type=\"submit\" class=\"button\" (click)=\"gotoCasetransationPage()\">\n Yes\n </button>\n <button type=\"button\" class=\"button govuk-button--secondary\" (click)=\"cancelMarkUnsolicitedPayments()\">\n No\n </button>\n </div>\n </ng-container>\n</div>", styles: [".mkpay-unidentified{margin:10px 0 20px}.mkpay-unidentified .govuk-button--secondary{margin-left:10px;background-color:#b3b8bdf2}.mkpay-unidentified .inline-error-class{outline:3px solid #a71414;outline-offset:0}.mkpay-unidentified .inline-error-message{color:#a71414;font-weight:700;margin-top:10px}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.custom-govuk-label,.govuk-warning-text__text{font-size:19px}#responsibleOffice{color:#000;width:75%;font-weight:white}select option{background:white}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.ErrorBannerComponent, selector: "ccpay-error-banner", inputs: ["errorMessage"] }, { kind: "pipe", type: i4.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: i4.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i4.DatePipe, name: "date" }] });
245
+ }
246
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MarkUnsolicitedPaymentComponent, decorators: [{
247
+ type: Component,
248
+ args: [{ selector: 'app-mark-unsolicited-payment', template: "<div class=\"mkpay-unidentified\">\n <div *ngIf=\"viewStatus === 'mainForm'\">\n <ccpay-error-banner *ngIf=\"errorMessage.showError\" [errorMessage]=\"errorMessage\"></ccpay-error-banner>\n <h1 class=\"heading-large\">Mark payment as transferred</h1>\n <div class=\"govuk-grid-column-full govuk-!-padding-bottom-3\">\n <hr class=\"govuk-section-break govuk-section-break--visible\">\n <table class=\"govuk-table\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__header\" scope=\"col\">Payment asset number (DCN)</td>\n <td class=\"govuk-table__header\" scope=\"col\">Banked date</td>\n <td class=\"govuk-table__header\" scope=\"col\">Amount</td>\n <td class=\"govuk-table__header\" scope=\"col\">Method</td>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell\">{{unassignedRecord.dcn_reference}}</td>\n <td class=\"govuk-table__cell\"> {{unassignedRecord.date_banked | date:'dd MMM yyyy'}}</td>\n <td class=\"govuk-table__cell\"> {{unassignedRecord.amount | currency :'GBP':'symbol':'1.2-2'}}</td>\n <td class=\"capitalize govuk-table__cell\"> {{trimUnderscore(unassignedRecord.payment_method) | lowercase}} </td>\n </tr>\n </tbody>\n </table>\n </div>\n \n <form [formGroup]=\"markPaymentUnsolicitedForm\" novalidate>\n <input #myInput type='hidden' class='iFrameDrivenImageValue' value='MARKTRANSFERRED'>\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label custom-govuk-label custom-govuk-label\" for=\"reason\">\n Reason for payment being marked as transferred \n </label>\n <textarea class=\"form-control form-control-3-4\" [ngClass]=\"{'inline-error-class': reasonHasError || reasonMinHasError || reasonMaxHasError}\" name=\"reason\" id=\"reason\" rows=\"5\" formControlName=\"reason\">\n </textarea>\n <p class=\"inline-error-message\" *ngIf=\"isReasonEmpty || reasonHasError || reasonMinHasError || reasonMaxHasError\">\n <span *ngIf=\"isReasonEmpty\">Enter a reason for marking this payment as transferred.</span>\n <span *ngIf=\"reasonHasError\">Enter a valid reason</span>\n <span *ngIf=\"reasonMinHasError\">Reason should be at least 3 characters.</span>\n <span *ngIf=\"reasonMaxHasError\">Reason should be 255 characters or under.</span>\n </p>\n </div>\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label custom-govuk-label\" for=\"responsibleOffice\">\n Receiving Site ID (Receiving court/Bulk centre site ID) \n </label>\n <select class=\"form-control short-input\" id=\"responsibleOffice\" formControlName=\"responsibleOffice\" (change)=\"selectchange($event)\">\n <option value=\"\" selected='selected'>Please select</option>\n <option *ngFor=\"let siteID of siteIDList;\" value=\"{{siteID.siteId}}\">{{siteID.siteName}} ({{siteID.siteId}})</option>\n </select>\n <p class=\"inline-error-message\" *ngIf=\"isResponsibleOfficeEmpty || responsibleOfficeHasError\">\n <span *ngIf=\"isResponsibleOfficeEmpty\">Please select Receiving Site ID</span>\n <span *ngIf=\"responsibleOfficeHasError\">Please select a valid Receiving Site ID</span>\n </p>\n </div>\n <div class=\"govuk-button--group\">\n <button type=\"submit\" [disabled]=\"isContinueButtondisabled\" class=\"button\" (click)=\"saveAndContinue()\">\n Confirm\n </button>\n <button type=\"button\" class=\"button govuk-button--secondary\" (click)=\"cancelMarkUnsolicitedPayments('cancel')\">\n Cancel\n </button>\n </div>\n </form>\n \n</div>\n <ng-container *ngIf=\"viewStatus === 'unsolicitedContinueConfirm'\">\n <ccpay-error-banner *ngIf=\"errorMessage.showError\" [errorMessage]=\"errorMessage\"></ccpay-error-banner>\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 <h1 class=\"heading-small\"> Are you sure you want to mark this payment as transferred? </h1>\n </strong>\n <input #myInput type='hidden' class='iFrameDrivenImageValue' value='TRANSFERREDCONFIRMATION'>\n <div class=\"govuk-grid-column-full govuk-!-padding-bottom-3\">\n <hr class=\"govuk-section-break govuk-section-break--visible\">\n <table class=\"govuk-table\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__header\" scope=\"col\">Reason</td>\n <td class=\"govuk-table__header\" scope=\"col\">Receiving site ID</td>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell\">{{reason}}</td>\n <td class=\"govuk-table__cell\">{{selectedSiteName}}</td>\n </tr>\n </tbody>\n </table>\n </div>\n\n </div>\n <div class=\"govuk-button--group\">\n <button type=\"submit\" class=\"button\" [disabled]=\"isConfirmButtondisabled\" (click)=\"confirmPayments()\">\n Confirm\n </button>\n <button type=\"button\" class=\"button govuk-button--secondary\" (click)=\"cancelMarkUnsolicitedPayments()\">\n Cancel\n </button>\n </div>\n </ng-container>\n <ng-container *ngIf=\"viewStatus === 'unsolicitedCancelConfirm'\">\n <input #myInput type='hidden' class='iFrameDrivenImageValue' value='CANCELTRANSFERRED'>\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 cancel?\n </strong>\n </div>\n <div class=\"govuk-button--group\">\n <button type=\"submit\" class=\"button\" (click)=\"gotoCasetransationPage()\">\n Yes\n </button>\n <button type=\"button\" class=\"button govuk-button--secondary\" (click)=\"cancelMarkUnsolicitedPayments()\">\n No\n </button>\n </div>\n </ng-container>\n</div>", styles: [".mkpay-unidentified{margin:10px 0 20px}.mkpay-unidentified .govuk-button--secondary{margin-left:10px;background-color:#b3b8bdf2}.mkpay-unidentified .inline-error-class{outline:3px solid #a71414;outline-offset:0}.mkpay-unidentified .inline-error-message{color:#a71414;font-weight:700;margin-top:10px}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.custom-govuk-label,.govuk-warning-text__text{font-size:19px}#responsibleOffice{color:#000;width:75%;font-weight:white}select option{background:white}\n"] }]
249
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.PaymentViewService }, { type: undefined, decorators: [{
250
+ type: Inject,
251
+ args: ['PAYMENT_LIB']
252
+ }] }, { type: i3.BulkScaningPaymentService }]; }, propDecorators: { caseType: [{
253
+ type: Input
254
+ }] } });
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyay11bnNvbGljaXRlZC1wYXltZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BheW1lbnQtbGliL3NyYy9saWIvY29tcG9uZW50cy9tYXJrLXVuc29saWNpdGVkLXBheW1lbnQvbWFyay11bnNvbGljaXRlZC1wYXltZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BheW1lbnQtbGliL3NyYy9saWIvY29tcG9uZW50cy9tYXJrLXVuc29saWNpdGVkLXBheW1lbnQvbWFyay11bnNvbGljaXRlZC1wYXltZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUU3RyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN6RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7OztBQVNqRixNQUFNLE9BQU8sK0JBQStCO0lBNEJ0QjtJQUNWO0lBQ3VCO0lBQ3ZCO0lBOUJELFFBQVEsQ0FBUztJQUMxQiwwQkFBMEIsQ0FBWTtJQUN0QyxVQUFVLENBQVM7SUFDbkIsY0FBYyxHQUFZLEtBQUssQ0FBQztJQUNoQyxhQUFhLEdBQVksS0FBSyxDQUFDO0lBQy9CLGlCQUFpQixHQUFZLEtBQUssQ0FBQztJQUNuQyxpQkFBaUIsR0FBWSxLQUFLLENBQUM7SUFDbkMseUJBQXlCLEdBQVksS0FBSyxDQUFD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QUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLDRCQUE0QixDQUFDO1NBQ2hEO2FBQU07WUFDTCxJQUFJLFdBQVcsQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFO2dCQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQzthQUNyRTtZQUNELElBQUksV0FBVyxDQUFDLEtBQUssSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO2dCQUN0RixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQzthQUNyRTtZQUNELElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxFQUFFO2dCQUM1RSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQzthQUNyRTtZQUNELElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsR0FBRyxFQUFFO2dCQUM5RSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQzthQUNyRTtZQUNELElBQUksYUFBYSxDQUFDLEtBQUssSUFBSSxFQUFFLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxT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QyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM5RSxDQUFDO3VHQTVQVSwrQkFBK0IsK0VBOEJoQyxhQUFhOzJGQTlCWiwrQkFBK0Isc0dDaEI1QywyNE1Bd0hNOzsyRkR4R08sK0JBQStCO2tCQUwzQyxTQUFTOytCQUNFLDhCQUE4Qjs7MEJBa0NyQyxNQUFNOzJCQUFDLGFBQWE7b0ZBN0JkLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgdHlwZSB7IFBheW1lbnRMaWJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wYXltZW50LWxpYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnVsa1NjYW5pbmdQYXltZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2J1bGstc2NhbmluZy1wYXltZW50L2J1bGstc2NhbmluZy1wYXltZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgSUJTUGF5bWVudHMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lCU1BheW1lbnRzJztcbmltcG9ydCB7IFVuc29saWNpdGVkUGF5bWVudHNSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9VbnNvbGljaXRlZFBheW1lbnRzUmVxdWVzdCc7XG5pbXBvcnQgeyBQYXltZW50Vmlld1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wYXltZW50LXZpZXcvcGF5bWVudC12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxsb2NhdGVQYXltZW50UmVxdWVzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvQWxsb2NhdGVQYXltZW50UmVxdWVzdCc7XG5pbXBvcnQgeyBFcnJvckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2hhcmVkL2Vycm9yLWhhbmRsZXIuc2VydmljZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW1hcmstdW5zb2xpY2l0ZWQtcGF5bWVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXJrLXVuc29saWNpdGVkLXBheW1lbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYXJrLXVuc29saWNpdGVkLXBheW1lbnQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNYXJrVW5zb2xpY2l0ZWRQYXltZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgY2FzZVR5cGU6IHN0cmluZztcbiAgbWFya1BheW1lbnRVbnNvbGljaXRlZEZvcm06IEZvcm1Hcm91cDtcbiAgdmlld1N0YXR1czogc3RyaW5nO1xuICByZWFzb25IYXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1JlYXNvbkVtcHR5OiBib29sZWFuID0gZmFsc2U7XG4gIHJlYXNvbk1pbkhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIHJlYXNvbk1heEhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIHJlc3BvbnNpYmxlT2ZmaWNlSGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNSZXNwb25zaWJsZU9mZmljZUVtcHR5OiBib29sZWFuID0gZmFsc2U7XG4gIGVycm9yTWVzc2FnZSA9IHRoaXMuZ2V0RXJyb3JNZXNzYWdlKGZhbHNlKTtcbiAgY2NkQ2FzZU51bWJlcjogc3RyaW5nO1xuICBic3BheW1lbnRkY246IHN0cmluZztcbiAgdW5hc3NpZ25lZFJlY29yZDogSUJTUGF5bWVudHM7XG4gIHNpdGVJRDogc3RyaW5nID0gbnVsbDtcbiAgcmVhc29uOiBzdHJpbmc7XG4gIHJlc3BvbnNpYmxlUGVyc29uOiBzdHJpbmc7XG4gIHJlc3BvbnNpYmxlT2ZmaWNlOiBzdHJpbmc7XG4gIGVtYWlsSWQ6IHN0cmluZztcbiAgaXNDb25maXJtQnV0dG9uZGlzYWJsZWQ6IEJvb2xlYW4gPSBmYWxzZTtcbiAgaXNDb250aW51ZUJ1dHRvbmRpc2FibGVkOiBCb29sZWFuID0gZmFsc2U7XG4gIGNjZFJlZmVyZW5jZTogc3RyaW5nID0gbnVsbDtcbiAgZXhjZXB0aW9uUmVmZXJlbmNlOiBzdHJpbmcgPSBudWxsO1xuICBzZWxlY3RlZFNpdGVJZDogc3RyaW5nO1xuICBzZWxlY3RlZFNpdGVOYW1lOiBzdHJpbmc7XG4gIGlzU3RyYXRlZ2ljRml4RW5hYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgc2l0ZUlETGlzdDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHBheW1lbnRWaWV3U2VydmljZTogUGF5bWVudFZpZXdTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ1BBWU1FTlRfTElCJykgcHJpdmF0ZSBwYXltZW50TGliQ29tcG9uZW50OiBQYXltZW50TGliQ29tcG9uZW50LFxuICAgIHByaXZhdGUgYnVsa1NjYW5pbmdQYXltZW50U2VydmljZTogQnVsa1NjYW5pbmdQYXltZW50U2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2VdLCAnYWxsJyk7XG4gICAgdGhpcy52aWV3U3RhdHVzID0gJ21haW5Gb3JtJztcbiAgICB0aGlzLmNjZENhc2VOdW1iZXIgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuQ0NEX0NBU0VfTlVNQkVSO1xuICAgIHRoaXMuYnNwYXltZW50ZGNuID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmJzcGF5bWVudGRjbjtcbiAgICB0aGlzLmlzU3RyYXRlZ2ljRml4RW5hYmxlID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTU0ZFTkFCTEU7XG4gICAgdGhpcy5nZXRVbmFzc2lnbmVkUGF5bWVudCgpO1xuXG4gICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UuZ2V0U2l0ZUlEKCkuc3Vic2NyaWJlKFxuICAgICAgc2l0ZWlkcyA9PiB7XG4gICAgICAgIHRoaXMuaXNDb250aW51ZUJ1dHRvbmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5nZXRFcnJvck1lc3NhZ2UoZmFsc2UpO1xuICAgICAgICB0aGlzLnNpdGVJRExpc3QgPSBKU09OLnBhcnNlKHNpdGVpZHMpO1xuICAgICAgfSxcbiAgICAgIGVyciA9PiB7XG4gICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcbiAgICAgICAgdGhpcy5pc0NvbnRpbnVlQnV0dG9uZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuZ2V0RXJyb3JNZXNzYWdlKHRydWUpO1xuICAgICAgfVxuICAgICk7XG5cbiAgICB0aGlzLm1hcmtQYXltZW50VW5zb2xpY2l0ZWRGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICByZWFzb246IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgVmFsaWRhdG9ycy5taW5MZW5ndGgoMyksXG4gICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NSksXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybignXihbYS16QS1aMC05XFxcXHMsXFxcXC5dKikkJylcbiAgICAgIF0pKSxcbiAgICAgIHJlc3BvbnNpYmxlT2ZmaWNlOiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybignXihbYS16QS1aMC05XFxcXHNcXFxcbixcXFxcLi06XSopJCcpXG4gICAgICBdKSksXG4gICAgICByZXNwb25zaWJsZVBlcnNvbjogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgICAgIGVtYWlsSWQ6IG5ldyBGb3JtQ29udHJvbCgnJylcbiAgICB9KTtcbiAgfVxuICB0cmltVW5kZXJzY29yZShtZXRob2Q6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2UucmVtb3ZlVW53YW50ZWRTdHJpbmcobWV0aG9kLCAnICcpO1xuICB9XG4gIGNvbmZpcm1QYXltZW50cygpIHtcbiAgICB0aGlzLmlzQ29uZmlybUJ1dHRvbmRpc2FibGVkID0gdHJ1ZTtcbiAgICBjb25zdCBjb250cm9scyA9IHRoaXMubWFya1BheW1lbnRVbnNvbGljaXRlZEZvcm0uY29udHJvbHM7XG4gICAgaWYgKCF0aGlzLmlzU3RyYXRlZ2ljRml4RW5hYmxlKSB7XG4gICAgICBsZXQgYWxsb2NhdGVkUmVxdWVzdCA9IHtcbiAgICAgICAgYWxsb2NhdGlvbl9zdGF0dXM6ICdUcmFuc2ZlcnJlZCcsXG4gICAgICAgIHBheW1lbnRfYWxsb2NhdGlvbl9zdGF0dXM6IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgICAgICAgbmFtZTogJ1RyYW5zZmVycmVkJ1xuICAgICAgICB9LFxuICAgICAgICB1bmlkZW50aWZpZWRfcmVhc29uOiBjb250cm9scy5yZWFzb24udmFsdWUsXG4gICAgICAgIHJlY2VpdmluZ19vZmZpY2U6IHRoaXMuc2VsZWN0ZWRTaXRlSWQsXG4gICAgICAgIHVzZXJfaWQ6IHRoaXMuY2FzZVR5cGUsXG4gICAgICB9XG4gICAgICBjb25zdCBwb3N0U3RyYXRlZ2ljQm9keSA9IG5ldyBBbGxvY2F0ZVBheW1lbnRSZXF1ZXN0XG4gICAgICAgICh0aGlzLmNjZFJlZmVyZW5jZSwgdGhpcy51bmFzc2lnbmVkUmVjb3JkLCB0aGlzLmNhc2VUeXBlLCB0aGlzLmV4Y2VwdGlvblJlZmVyZW5jZSwgYWxsb2NhdGVkUmVxdWVzdCk7XG4gICAgICB0aGlzLmJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2UucG9zdEJTV29QR1N0cmF0ZWdpYyhwb3N0U3RyYXRlZ2ljQm9keSkuc3Vic2NyaWJlKFxuICAgICAgICByZXMgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5nZXRFcnJvck1lc3NhZ2UoZmFsc2UpO1xuICAgICAgICAgIGxldCByZXNwb25zZSA9IEpTT04ucGFyc2UocmVzKTtcbiAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgICAgdGhpcy5nb3RvQ2FzZXRyYW5zYXRpb25QYWdlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5nZXRFcnJvck1lc3NhZ2UodHJ1ZSk7XG4gICAgICAgICAgdGhpcy5pc0NvbmZpcm1CdXR0b25kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY29udHJvbHMucmVzcG9uc2libGVPZmZpY2Uuc2V0VmFsdWUoJ1AyMTknKTtcbiAgICAgIHRoaXMuYnVsa1NjYW5pbmdQYXltZW50U2VydmljZS5wYXRjaEJTQ2hhbmdlU3RhdHVzKHRoaXMudW5hc3NpZ25lZFJlY29yZC5kY25fcmVmZXJlbmNlLCAnUFJPQ0VTU0VEJykuc3Vic2NyaWJlKFxuICAgICAgICByZXMxID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuZ2V0RXJyb3JNZXNzYWdlKGZhbHNlKTtcbiAgICAgICAgICBjb25zdCByZXNwb25zZTEgPSBKU09OLnBhcnNlKHJlczEpLFxuICAgICAgICAgICAgcmVxdWVzdEJvZHkgPSBuZXcgQWxsb2NhdGVQYXltZW50UmVxdWVzdFxuICAgICAgICAgICAgICAodGhpcy5jY2RSZWZlcmVuY2UsIHRoaXMudW5hc3NpZ25lZFJlY29yZCwgdGhpcy5zaXRlSUQsIHRoaXMuZXhjZXB0aW9uUmVmZXJlbmNlKVxuICAgICAgICAgIHRoaXMucGF5bWVudFZpZXdTZXJ2aWNlLnBvc3RCU1BheW1lbnRzKHJlcXVlc3RCb2R5KS5zdWJzY3JpYmUoXG4gICAgICAgICAgICByZXMyID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmdldEVycm9yTWVzc2FnZShmYWxzZSk7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlMiA9IEpTT04ucGFyc2UocmVzMiksXG4gICAgICAgICAgICAgICAgcmVxQm9keSA9IG5ldyBVbnNvbGljaXRlZFBheW1lbnRzUmVxdWVzdFxuICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlMlsnZGF0YSddLnBheW1lbnRfZ3JvdXBfcmVmZXJlbmNlLCByZXNwb25zZTJbJ2RhdGEnXS5yZWZlcmVuY2UsIGNvbnRyb2xzLnJlYXNvbi52YWx1ZSwgdGhpcy5zZWxlY3RlZFNpdGVJZCwgY29udHJvbHMucmVzcG9uc2libGVQZXJzb24udmFsdWUsIGNvbnRyb2xzLmVtYWlsSWQudmFsdWUpO1xuICAgICAgICAgICAgICBpZiAocmVzcG9uc2UyLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5wb3N0QlNVbnNvbGljaXRlZFBheW1lbnRzKHJlcUJvZHkpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgIHJlczMgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuZ2V0RXJyb3JNZXNzYWdlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UzID0gSlNPTi5wYXJzZShyZXMzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlMy5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5nb3RvQ2FzZXRyYW5zYXRpb25QYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2UucGF0Y2hCU0NoYW5nZVN0YXR1cyh0aGlzLnVuYXNzaWduZWRSZWNvcmQuZGNuX3JlZmVyZW5jZSwgJ0NPTVBMRVRFJykuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5nZXRFcnJvck1lc3NhZ2UodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNDb25maXJtQnV0dG9uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5idWxrU2NhbmluZ1BheW1lbnRTZXJ2aWNlLnBhdGNoQlNDaGFuZ2VTdGF0dXModGhpcy51bmFzc2lnbmVkUmVjb3JkLmRjbl9yZWZlcmVuY2UsICdDT01QTEVURScpLnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuZ2V0RXJyb3JNZXNzYWdlKHRydWUpO1xuICAgICAgICAgICAgICB0aGlzLmlzQ29uZmlybUJ1dHRvbmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuZ2V0RXJyb3JNZXNzYWdlKHRydWUpO1xuICAgICAgICAgIHRoaXMuaXNDb25maXJtQnV0dG9uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgc2F2ZUFuZENvbnRpbnVlKCkge1xuICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXSwgJ2FsbCcpO1xuICAgIGNvbnN0IGZvcm1lcnJvciA9IHRoaXMubWFya1BheW1lbnRVbnNvbGljaXRlZEZvcm0uY29udHJvbHMucmVhc29uLmVycm9ycztcbiAgICBjb25zdCByZWFzb25GaWVsZCA9IHRoaXMubWFya1BheW1lbnRVbnNvbGljaXRlZEZvcm0uY29udHJvbHMucmVhc29uO1xuICAgIC8vY29uc3Qgb2ZmaWNlSWRGaWVsZCA9IHRoaXMuc2VsZWN0ZWRTaXRlSWQ7XG4gICAgY29uc3Qgb2ZmaWNlSWRGaWVsZCA9IHRoaXMubWFya1BheW1lbnRVbnNvbGljaXRlZEZvcm0uY29udHJvbHMucmVzcG9uc2libGVPZmZpY2U7XG4gICAgaWYgKHRoaXMubWFya1BheW1lbnRVbnNvbGljaXRlZEZvcm0uZGlydHkgJiYgdGhpcy5tYXJrUGF5bWVudFVuc29saWNpdGVkRm9ybS52YWxpZCkge1xuICAgICAgY29uc3QgY29udHJvbHMgPSB0aGlzLm1hcmtQYXltZW50VW5zb2xpY2l0ZWRGb3JtLmNvbnRyb2xzO1xuICAgICAgdGhpcy5lbWFpbElkID0gY29udHJvbHMuZW1haWxJZC52YWx1ZTtcbiAgICAgIHRoaXMucmVzcG9uc2libGVPZmZpY2UgPSBvZmZpY2VJZEZpZWxkLnZhbHVlO1xuICAgICAgdGhpcy5yZXNwb25zaWJsZVBlcnNvbiA9IGNvbnRyb2xzLnJlc3BvbnNpYmxlUGVyc29uLnZhbHVlO1xuICAgICAgdGhpcy5yZWFzb24gPSBjb250cm9scy5yZWFzb24udmFsdWU7XG4gICAgICB0aGlzLnZpZXdTdGF0dXMgPSAndW5zb2xpY2l0ZWRDb250aW51ZUNvbmZpcm0nO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocmVhc29uRmllbGQudmFsdWUgPT0gJycpIHtcbiAgICAgICAgdGhpcy5yZXNldEZvcm0oW3RydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sICdyZWFzb24nKTtcbiAgICAgIH1cbiAgICAgIGlmIChyZWFzb25GaWVsZC52YWx1ZSAhPSAnJyAmJiB0aGlzLm1hcmtQYXltZW50VW5zb2xpY2l0ZWRGb3JtLmNvbnRyb2xzLnJlYXNvbi5pbnZhbGlkKSB7XG4gICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2VdLCAncmVhc29uJyk7XG4gICAgICB9XG4gICAgICBpZiAoZm9ybWVycm9yICYmIGZvcm1lcnJvci5taW5sZW5ndGggJiYgZm9ybWVycm9yLm1pbmxlbmd0aC5hY3R1YWxMZW5ndGggPCAzKSB7XG4gICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2VdLCAncmVhc29uJyk7XG4gICAgICB9XG4gICAgICBpZiAoZm9ybWVycm9yICYmIGZvcm1lcnJvci5tYXhsZW5ndGggJiYgZm9ybWVycm9yLm1heGxlbmd0aC5hY3R1YWxMZW5ndGggPiAyNTUpIHtcbiAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0sICdyZWFzb24nKTtcbiAgICAgIH1cbiAgICAgIGlmIChvZmZpY2VJZEZpZWxkLnZhbHVlID09ICcnKSB7XG4gICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2VdLCAncmVzcG9uc2libGVPZmZpY2UnKTtcbiAgICAgIH1cbiAgICAgIGlmIChvZmZpY2VJZEZpZWxkLnZhbHVlICE9ICcnICYmIG9mZmljZUlkRmllbGQuaW52YWxpZCkge1xuICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlXSwgJ3Jlc3BvbnNpYmxlT2ZmaWNlJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJlc2V0Rm9ybSh2YWwsIGZpZWxkKSB7XG4gICAgaWYgKGZpZWxkID09PSAncmVhc29uJyB8fCBmaWVsZCA9PT0gJ2FsbCcpIHtcbiAgICAgIHRoaXMuaXNSZWFzb25FbXB0eSA9IHZhbFswXTtcbiAgICAgIHRoaXMucmVhc29uSGFzRXJyb3IgPSB2YWxbMV07XG4gICAgICB0aGlzLnJlYXNvbk1pbkhhc0Vycm9yID0gdmFsWzJdO1xuICAgICAgdGhpcy5yZWFzb25NYXhIYXNFcnJvciA9IHZhbFszXTtcbiAgICB9XG4gICAgaWYgKGZpZWxkID09PSAncmVzcG9uc2libGVPZmZpY2UnIHx8IGZpZWxkID09PSAnYWxsJykge1xuICAgICAgdGhpcy5pc1Jlc3BvbnNpYmxlT2ZmaWNlRW1wdHkgPSB2YWxbNF07XG4gICAgICB0aGlzLnJlc3BvbnNpYmxlT2ZmaWNlSGFzRXJyb3IgPSB2YWxbNV07XG4gICAgfVxuICB9XG5cbiAgY2FuY2VsTWFya1Vuc29saWNpdGVkUGF5bWVudHModHlwZT86IHN0cmluZykge1xuICAgIGlmICh0eXBlICYmIHR5cGUgPT09ICdjYW5jZWwnKSB7XG4gICAgICBpZiAodGhpcy5jaGVja2luZ0Zvcm1WYWx1ZSgpKSB7XG4gICAgICAgIHRoaXMudmlld1N0YXR1cyA9ICd1bnNvbGljaXRlZENhbmNlbENvbmZpcm0nO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5nb3RvQ2FzZXRyYW5zYXRpb25QYWdlKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWFya1BheW1lbnRVbnNvbGljaXRlZEZvcm0uY29udHJvbHMucmVzcG9uc2libGVPZmZpY2Uuc2V0VmFsdWUoJycpO1xuICAgICAgdGhpcy52aWV3U3RhdHVzID0gJ21haW5Gb3JtJztcbiAgICB9XG4gIH1cbiAgY2hlY2tpbmdGb3JtVmFsdWUoKSB7XG4gICAgY29uc3QgZm9ybUZpZWxkcyA9IHRoaXMubWFya1BheW1lbnRVbnNvbGljaXRlZEZvcm0udmFsdWU7XG4gICAgbGV0IHZhbHVlRXhpc3RzID0gZmFsc2U7XG5cbiAgICBmb3IgKHZhciBmaWVsZCBpbiBmb3JtRmllbGRzKSB7XG4gICAgICBpZiAoZm9ybUZpZWxkcy5oYXNPd25Qcm9wZXJ0eShmaWVsZCkgJiYgZm9ybUZpZWxkc1tmaWVsZF0gIT09IFwiXCIpIHtcbiAgICAgICAgdmFsdWVFeGlzdHMgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlRXhpc3RzO1xuICB9XG4gIGdvdG9DYXNldHJhbnNhdGlvblBhZ2UoKSB7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ2Nhc2UtdHJhbnNhY3Rpb25zJztcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPSB0cnVlO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU0JTRU5BQkxFID0gdHJ1ZTtcbiAgfVxuICBnZXRVbmFzc2lnbmVkUGF5bWVudCgpIHtcbiAgICB0aGlzLmJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2UuZ2V0QlNQYXltZW50c0J5RENOKHRoaXMuYnNwYXltZW50ZGNuKS5zdWJzY3JpYmUoXG4gICAgICB1bmFzc2lnbmVkUGF5bWVudHMgPT4ge1xuXG4gICAgICAgIHRoaXMudW5hc3NpZ25lZFJlY29yZCA9IHVuYXNzaWduZWRQYXltZW50c1snZGF0YSddLnBheW1lbnRzLmZpbHRlcihwYXltZW50ID0+IHtcbiAgICAgICAgICByZXR1cm4gcGF5bWVudCAmJiBwYXltZW50LmRjbl9yZWZlcmVuY2UgPT0gdGhpcy5ic3BheW1lbnRkY247XG4gICAgICAgIH0pWzBdO1xuICAgICAgICB0aGlzLnNpdGVJRCA9IHVuYXNzaWduZWRQYXltZW50c1snZGF0YSddLnJlc3BvbnNpYmxlX3NlcnZpY2VfaWQ7XG4gICAgICAgIGNvbnN0IGJlQ2NkTnVtYmVyID0gdW5hc3NpZ25lZFBheW1lbnRzWydkYXRhJ10uY2NkX3JlZmVyZW5jZSxcbiAgICAgICAgICBiZUV4Y2VwdGlvbk51bWJlciA9IHVuYXNzaWduZWRQYXltZW50c1snZGF0YSddLmV4Y2VwdGlvbl9yZWNvcmRfcmVmZXJlbmNlLFxuICAgICAgICAgIGV4Y2VwdGlvblJlZmVyZW5jZSA9IGJlQ2NkTnVtYmVyID8gYmVDY2ROdW1iZXIgPT09IHRoaXMuY2NkQ2FzZU51bWJlciA/IG51bGwgOiB0aGlzLmNjZENhc2VOdW1iZXIgOiB0aGlzLmNjZENhc2VOdW1iZXI7XG4gICAgICAgIHRoaXMuY2NkUmVmZXJlbmNlID0gYmVDY2ROdW1iZXIgPyBiZUNjZE51bWJlciA6IG51bGw7XG4gICAgICAgIHRoaXMuZXhjZXB0aW9uUmVmZXJlbmNlID0gYmVFeGNlcHRpb25OdW1iZXIgPyBiZUV4Y2VwdGlvbk51bWJlciA6IGV4Y2VwdGlvblJlZmVyZW5jZTtcbiAgICAgIH0sXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuZ2V0RXJyb3JNZXNzYWdlKHRydWUpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBnZXRFcnJvck1lc3NhZ2UoaXNFcnJvckV4aXN0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiBcIlNvbWV0aGluZyB3ZW50IHdyb25nLlwiLFxuICAgICAgYm9keTogXCJQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLlwiLFxuICAgICAgc2hvd0Vycm9yOiBpc0Vycm9yRXhpc3RcbiAgICB9O1xuICB9XG5cbiAgc2VsZWN0Y2hhbmdlKGFyZ3MpIHtcbiAgICB0aGlzLnNlbGVjdGVkU2l0ZUlkID0gYXJncy50YXJnZXQudmFsdWU7XG4gICAgdGhpcy5zZWxlY3RlZFNpdGVOYW1lID0gYXJncy50YXJnZXQub3B0aW9uc1thcmdzLnRhcmdldC5zZWxlY3RlZEluZGV4XS50ZXh0O1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJta3BheS11bmlkZW50aWZpZWRcIj5cbiAgPGRpdiAqbmdJZj1cInZpZXdTdGF0dXMgPT09ICdtYWluRm9ybSdcIj5cbiAgPGNjcGF5LWVycm9yLWJhbm5lciAqbmdJZj1cImVycm9yTWVzc2FnZS5zaG93RXJyb3JcIiBbZXJyb3JNZXNzYWdlXT1cImVycm9yTWVzc2FnZVwiPjwvY2NwYXktZXJyb3ItYmFubmVyPlxuICA8aDEgY2xhc3M9XCJoZWFkaW5nLWxhcmdlXCI+TWFyayBwYXltZW50IGFzIHRyYW5zZmVycmVkPC9oMT5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLWZ1bGwgZ292dWstIS1wYWRkaW5nLWJvdHRvbS0zXCI+XG4gICAgPGhyIGNsYXNzPVwiZ292dWstc2VjdGlvbi1icmVhayBnb3Z1ay1zZWN0aW9uLWJyZWFrLS12aXNpYmxlXCI+XG4gICAgPHRhYmxlIGNsYXNzPVwiZ292dWstdGFibGVcIj5cbiAgICAgIDx0aGVhZCBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkXCI+XG4gICAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXJcIiBzY29wZT1cImNvbFwiPlBheW1lbnQgYXNzZXQgbnVtYmVyIChEQ04pPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXJcIiBzY29wZT1cImNvbFwiPkJhbmtlZCBkYXRlPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXJcIiBzY29wZT1cImNvbFwiPkFtb3VudDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgc2NvcGU9XCJjb2xcIj5NZXRob2Q8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90aGVhZD5cbiAgICAgIDx0Ym9keSBjbGFzcz1cImdvdnVrLXRhYmxlX19ib2R5XCI+XG4gICAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsXCI+e3t1bmFzc2lnbmVkUmVjb3JkLmRjbl9yZWZlcmVuY2V9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbFwiPiB7e3VuYXNzaWduZWRSZWNvcmQuZGF0ZV9iYW5rZWQgfCBkYXRlOidkZCBNTU0geXl5eSd9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbFwiPiB7e3VuYXNzaWduZWRSZWNvcmQuYW1vdW50IHwgY3VycmVuY3kgOidHQlAnOidzeW1ib2wnOicxLjItMid9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJjYXBpdGFsaXplIGdvdnVrLXRhYmxlX19jZWxsXCI+IHt7dHJpbVVuZGVyc2NvcmUodW5hc3NpZ25lZFJlY29yZC5wYXltZW50X21ldGhvZCkgfCBsb3dlcmNhc2V9fSAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGJvZHk+XG4gICAgPC90YWJsZT5cbiAgPC9kaXY+XG4gIFxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cIm1hcmtQYXltZW50VW5zb2xpY2l0ZWRGb3JtXCIgbm92YWxpZGF0ZT5cbiAgICA8aW5wdXQgI215SW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0naUZyYW1lRHJpdmVuSW1hZ2VWYWx1ZScgdmFsdWU9J01BUktUUkFOU0ZFUlJFRCc+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGN1c3RvbS1nb3Z1ay1sYWJlbCBjdXN0b20tZ292dWstbGFiZWxcIiBmb3I9XCJyZWFzb25cIj5cbiAgICAgICAgUmVhc29uIGZvciBwYXltZW50IGJlaW5nIG1hcmtlZCBhcyB0cmFuc2ZlcnJlZCAgIFxuICAgICAgPC9sYWJlbD5cbiAgICAgICAgPHRleHRhcmVhIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC0zLTRcIiBbbmdDbGFzc109XCJ7J2lubGluZS1lcnJvci1jbGFzcyc6IHJlYXNvbkhhc0Vycm9yIHx8IHJlYXNvbk1pbkhhc0Vycm9yIHx8IHJlYXNvbk1heEhhc0Vycm9yfVwiIG5hbWU9XCJyZWFzb25cIiBpZD1cInJlYXNvblwiIHJvd3M9XCI1XCIgZm9ybUNvbnRyb2xOYW1lPVwicmVhc29uXCI+XG4gICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgIDxwIGNsYXNzPVwiaW5saW5lLWVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImlzUmVhc29uRW1wdHkgfHwgcmVhc29uSGFzRXJyb3IgfHwgcmVhc29uTWluSGFzRXJyb3IgfHwgcmVhc29uTWF4SGFzRXJyb3JcIj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzUmVhc29uRW1wdHlcIj5FbnRlciBhIHJlYXNvbiBmb3IgbWFya2luZyB0aGlzIHBheW1lbnQgYXMgdHJhbnNmZXJyZWQuPC9zcGFuPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwicmVhc29uSGFzRXJyb3JcIj5FbnRlciBhIHZhbGlkIHJlYXNvbjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInJlYXNvbk1pbkhhc0Vycm9yXCI+UmVhc29uIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJhY3RlcnMuPC9zcGFuPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwicmVhc29uTWF4SGFzRXJyb3JcIj5SZWFzb24gc2hvdWxkIGJlIDI1NSBjaGFyYWN0ZXJzIG9yIHVuZGVyLjwvc3Bhbj5cbiAgICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBjdXN0b20tZ292dWstbGFiZWxcIiBmb3I9XCJyZXNwb25zaWJsZU9mZmljZVwiPlxuICAgICAgICBSZWNlaXZpbmcgU2l0ZSBJRCAoUmVjZWl2aW5nIGNvdXJ0L0J1bGsgY2VudHJlIHNpdGUgSUQpICAgIFxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2wgc2hvcnQtaW5wdXRcIiBpZD1cInJlc3BvbnNpYmxlT2ZmaWNlXCIgZm9ybUNvbnRyb2xOYW1lPVwicmVzcG9uc2libGVPZmZpY2VcIiAoY2hhbmdlKT1cInNlbGVjdGNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIiBzZWxlY3RlZD0nc2VsZWN0ZWQnPlBsZWFzZSBzZWxlY3Q8L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiAgKm5nRm9yPVwibGV0IHNpdGVJRCBvZiBzaXRlSURMaXN0O1wiIHZhbHVlPVwie3tzaXRlSUQuc2l0ZUlkfX1cIj57e3NpdGVJRC5zaXRlTmFtZX19ICh7e3NpdGVJRC5zaXRlSWR9fSk8L29wdGlvbj5cbiAgICAgIDwvc2VsZWN0PlxuICAgICAgPHAgY2xhc3M9XCJpbmxpbmUtZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiaXNSZXNwb25zaWJsZU9mZmljZUVtcHR5IHx8IHJlc3BvbnNpYmxlT2ZmaWNlSGFzRXJyb3JcIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpc1Jlc3BvbnNpYmxlT2ZmaWNlRW1wdHlcIj5QbGVhc2Ugc2VsZWN0IFJlY2VpdmluZyBTaXRlIElEPC9zcGFuPlxuICAgICAgICA8c3BhbiAqbmdJZj1cInJlc3BvbnNpYmxlT2ZmaWNlSGFzRXJyb3JcIj5QbGVhc2Ugc2VsZWN0IGEgdmFsaWQgUmVjZWl2aW5nIFNpdGUgSUQ8L3NwYW4+XG4gICAgICA8L3A+XG4gICAgPC9kaXY+XG4gICA8ZGl2IGNsYXNzPVwiZ292dWstYnV0dG9uLS1ncm91cFwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgW2Rpc2FibGVkXT1cImlzQ29udGludWVCdXR0b25kaXNhYmxlZFwiIGNsYXNzPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNhdmVBbmRDb250aW51ZSgpXCI+XG4gICAgICAgIENvbmZpcm1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24gZ292dWstYnV0dG9uLS1zZWNvbmRhcnlcIiAoY2xpY2spPVwiY2FuY2VsTWFya1Vuc29saWNpdGVkUGF5bWVudHMoJ2NhbmNlbCcpXCI+XG4gICAgICAgIENhbmNlbFxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZm9ybT5cbiAgXG48L2Rpdj5cbiAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmlld1N0YXR1cyA9PT0gJ3Vuc29saWNpdGVkQ29udGludWVDb25maXJtJ1wiPlxuICAgICAgICAgIDxjY3BheS1lcnJvci1iYW5uZXIgKm5nSWY9XCJlcnJvck1lc3NhZ2Uuc2hvd0Vycm9yXCIgW2Vycm9yTWVzc2FnZV09XCJlcnJvck1lc3NhZ2VcIj48L2NjcGF5LWVycm9yLWJhbm5lcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX2ljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj4hPC9zcGFuPlxuICAgICAgICA8c3Ryb25nIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X190ZXh0XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X19hc3Npc3RpdmVcIj5XYXJuaW5nPC9zcGFuPlxuICAgICAgICA8aDEgY2xhc3M9XCJoZWFkaW5nLXNtYWxsXCI+IEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBtYXJrIHRoaXMgcGF5bWVudCBhcyB0cmFuc2ZlcnJlZD8gPC9oMT5cbiAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgIDxpbnB1dCAjbXlJbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdpRnJhbWVEcml2ZW5JbWFnZVZhbHVlJyB2YWx1ZT0nVFJBTlNGRVJSRURDT05GSVJNQVRJT04nPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1jb2x1bW4tZnVsbCBnb3Z1ay0hLXBhZGRpbmctYm90dG9tLTNcIj5cbiAgICAgICAgICA8aHIgY2xhc3M9XCJnb3Z1ay1zZWN0aW9uLWJyZWFrIGdvdnVrLXNlY3Rpb24tYnJlYWstLXZpc2libGVcIj5cbiAgICAgICAgICA8dGFibGUgY2xhc3M9XCJnb3Z1ay10YWJsZVwiPlxuICAgICAgICAgICAgPHRoZWFkIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRcIj5cbiAgICAgICAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlclwiIHNjb3BlPVwiY29sXCI+UmVhc29uPC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlclwiIHNjb3BlPVwiY29sXCI+UmVjZWl2aW5nIHNpdGUgSUQ8L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICA8dGJvZHkgY2xhc3M9XCJnb3Z1ay10YWJsZV9fYm9keVwiPlxuICAgICAgICAgICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIj57e3JlYXNvbn19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsXCI+e3tzZWxlY3RlZFNpdGVOYW1lfX08L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWJ1dHRvbi0tZ3JvdXBcIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidXR0b25cIiBbZGlzYWJsZWRdPVwiaXNDb25maXJtQnV0dG9uZGlzYWJsZWRcIiAoY2xpY2spPVwiY29uZmlybVBheW1lbnRzKClcIj5cbiAgICAgICAgICBDb25maXJtXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ1dHRvbiBnb3Z1ay1idXR0b24tLXNlY29uZGFyeVwiIChjbGljayk9XCJjYW5jZWxNYXJrVW5zb2xpY2l0ZWRQYXltZW50cygpXCI+XG4gICAgICAgICAgQ2FuY2VsXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmlld1N0YXR1cyA9PT0gJ3Vuc29saWNpdGVkQ2FuY2VsQ29uZmlybSdcIj5cbiAgICAgICAgPGlucHV0ICNteUlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2lGcmFtZURyaXZlbkltYWdlVmFsdWUnIHZhbHVlPSdDQU5DRUxUUkFOU0ZFUlJFRCc+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+ITwvc3Bhbj5cbiAgICAgICAgPHN0cm9uZyBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dF9fdGV4dFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dF9fYXNzaXN0aXZlXCI+V2FybmluZzwvc3Bhbj5cbiAgICAgICAgICBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY2FuY2VsP1xuICAgICAgICA8L3N0cm9uZz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWJ1dHRvbi0tZ3JvdXBcIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidXR0b25cIiAoY2xpY2spPVwiZ290b0Nhc2V0cmFuc2F0aW9uUGFnZSgpXCI+XG4gICAgICAgICAgWWVzXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ1dHRvbiBnb3Z1ay1idXR0b24tLXNlY29uZGFyeVwiIChjbGljayk9XCJjYW5jZWxNYXJrVW5zb2xpY2l0ZWRQYXltZW50cygpXCI+XG4gICAgICAgICAgTm9cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,79 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { NotificationPreviewRequest } from '../../interfaces/NotificationPreviewRequest';
3
+ import { NotificationService } from '../../services/notification/notification.service';
4
+ import { ErrorHandlerService } from '../../services/shared/error-handler.service';
5
+ import { Output, EventEmitter } from '@angular/core';
6
+ import { CommonModule } from '@angular/common';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../../services/shared/error-handler.service";
9
+ import * as i2 from "../../services/notification/notification.service";
10
+ import * as i3 from "@angular/common";
11
+ export class NotificationPreviewComponent {
12
+ errorHandlerService;
13
+ notificationService;
14
+ payment;
15
+ contactDetails;
16
+ refundReason;
17
+ refundAmount;
18
+ paymentReference;
19
+ refundReference;
20
+ previewJourney;
21
+ notificationSent;
22
+ notificationPreviewEvent = new EventEmitter();
23
+ notification;
24
+ notificationPreviewRequest;
25
+ today = Date.now();
26
+ // errorMessage = this.errorHandlerService.getServerErrorMessage(false, false, '');
27
+ errorMessage = null;
28
+ constructor(errorHandlerService, notificationService) {
29
+ this.errorHandlerService = errorHandlerService;
30
+ this.notificationService = notificationService;
31
+ }
32
+ ngOnInit() {
33
+ if (this.previewJourney != undefined && this.previewJourney != null && this.previewJourney === 'Notifications sent') {
34
+ this.notification = this.notificationSent;
35
+ if (this.notification != undefined && this.notification != null && this.notification.template_type === 'letter') {
36
+ this.notification.body = this.notification.body.replace(/\r\n/g, '<br/>');
37
+ }
38
+ }
39
+ else {
40
+ const notficationPreviewRequestBody = new NotificationPreviewRequest(this.payment, this.contactDetails, this.refundReason, this.refundAmount, this.refundReference, this.paymentReference);
41
+ this.notificationService.getNotificationPreview(notficationPreviewRequestBody).subscribe(res => {
42
+ this.errorMessage = this.errorHandlerService.getServerErrorMessage(false, false, '');
43
+ this.notification = JSON.parse(res);
44
+ if (this.notification != undefined && this.notification != null && this.notification.template_type === 'letter') {
45
+ this.notification.body = this.notification.body.replace(/\r\n/g, '<br/>');
46
+ }
47
+ }, (error) => {
48
+ this.errorMessage = this.errorHandlerService.getServerErrorMessage(true, false, '');
49
+ console.log(this.errorMessage);
50
+ });
51
+ this.notificationPreviewEvent.emit(this.notification);
52
+ }
53
+ }
54
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NotificationPreviewComponent, deps: [{ token: i1.ErrorHandlerService }, { token: i2.NotificationService }], target: i0.ɵɵFactoryTarget.Component });
55
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: NotificationPreviewComponent, isStandalone: true, selector: "app-notification-preview", inputs: { payment: "payment", contactDetails: "contactDetails", refundReason: "refundReason", refundAmount: "refundAmount", paymentReference: "paymentReference", refundReference: "refundReference", previewJourney: "previewJourney", notificationSent: "notificationSent" }, outputs: { notificationPreviewEvent: "notificationPreviewEvent" }, ngImport: i0, template: "<div class=\"govuk-grid-column-full\">\n <table class=\"govuk-table\">\n <tbody class=\"govuk-table__body\">\n <ng-container *ngIf=\"notification?.template_type === 'email'\">\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell whitespace-inherit\"><span class=\"govuk-!-font-weight-bold\">From:</span>\n {{notification?.from?.from_email_address}}</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell whitespace-inherit\"><span class=\"govuk-!-font-weight-bold\">To:</span>\n {{notification?.recipient_contact?.recipient_email_address}}</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell whitespace-inherit\"><span class=\"govuk-!-font-weight-bold\">Subject:</span>\n {{notification?.subject}}</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell whitespace-inherit\">\n <div [innerHTML]=\"notification?.html\"></div>\n </td>\n </tr>\n </ng-container>\n <ng-container *ngIf=\"notification?.template_type === 'letter'\">\n <tr class=\"govuk-table__row\">\n <td class=\"letter-row-border\">\n <ng-container *ngIf=\"notification?.recipient_contact?.recipient_mail_address?.address_line\">\n {{notification?.recipient_contact?.recipient_mail_address?.address_line}}<br /></ng-container>\n <ng-container *ngIf=\"notification?.recipient_contact?.recipient_mail_address?.city\">\n {{notification?.recipient_contact?.recipient_mail_address?.city}}<br /></ng-container>\n <ng-container *ngIf=\"notification?.recipient_contact?.recipient_mail_address?.county\">\n {{notification?.recipient_contact?.recipient_mail_address?.county}}<br /></ng-container>\n <ng-container *ngIf=\"notification?.recipient_contact?.recipient_mail_address?.country\">\n {{notification?.recipient_contact?.recipient_mail_address?.country}}<br /></ng-container>\n {{notification?.recipient_contact?.recipient_mail_address?.postal_code}}\n </td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"letter-row-border\">{{ today | date:'d MMMM y' }}</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"letter-row-border\"><span class=\"govuk-!-font-weight-bold\">{{notification?.subject}}</span></td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell whitespace-inherit\">\n <div [innerHTML]=\"notification?.body\"></div>\n </td>\n </tr>\n </ng-container>\n \n </tbody>\n </table>\n</div>\n", styles: [".right{float:right}.letter-row-border{border-bottom:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] });
56
+ }
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NotificationPreviewComponent, decorators: [{
58
+ type: Component,
59
+ args: [{ selector: 'app-notification-preview', imports: [CommonModule], standalone: true, template: "<div class=\"govuk-grid-column-full\">\n <table class=\"govuk-table\">\n <tbody class=\"govuk-table__body\">\n <ng-container *ngIf=\"notification?.template_type === 'email'\">\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell whitespace-inherit\"><span class=\"govuk-!-font-weight-bold\">From:</span>\n {{notification?.from?.from_email_address}}</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell whitespace-inherit\"><span class=\"govuk-!-font-weight-bold\">To:</span>\n {{notification?.recipient_contact?.recipient_email_address}}</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell whitespace-inherit\"><span class=\"govuk-!-font-weight-bold\">Subject:</span>\n {{notification?.subject}}</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell whitespace-inherit\">\n <div [innerHTML]=\"notification?.html\"></div>\n </td>\n </tr>\n </ng-container>\n <ng-container *ngIf=\"notification?.template_type === 'letter'\">\n <tr class=\"govuk-table__row\">\n <td class=\"letter-row-border\">\n <ng-container *ngIf=\"notification?.recipient_contact?.recipient_mail_address?.address_line\">\n {{notification?.recipient_contact?.recipient_mail_address?.address_line}}<br /></ng-container>\n <ng-container *ngIf=\"notification?.recipient_contact?.recipient_mail_address?.city\">\n {{notification?.recipient_contact?.recipient_mail_address?.city}}<br /></ng-container>\n <ng-container *ngIf=\"notification?.recipient_contact?.recipient_mail_address?.county\">\n {{notification?.recipient_contact?.recipient_mail_address?.county}}<br /></ng-container>\n <ng-container *ngIf=\"notification?.recipient_contact?.recipient_mail_address?.country\">\n {{notification?.recipient_contact?.recipient_mail_address?.country}}<br /></ng-container>\n {{notification?.recipient_contact?.recipient_mail_address?.postal_code}}\n </td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"letter-row-border\">{{ today | date:'d MMMM y' }}</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"letter-row-border\"><span class=\"govuk-!-font-weight-bold\">{{notification?.subject}}</span></td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell whitespace-inherit\">\n <div [innerHTML]=\"notification?.body\"></div>\n </td>\n </tr>\n </ng-container>\n \n </tbody>\n </table>\n</div>\n", styles: [".right{float:right}.letter-row-border{border-bottom:none}\n"] }]
60
+ }], ctorParameters: function () { return [{ type: i1.ErrorHandlerService }, { type: i2.NotificationService }]; }, propDecorators: { payment: [{
61
+ type: Input
62
+ }], contactDetails: [{
63
+ type: Input
64
+ }], refundReason: [{
65
+ type: Input
66
+ }], refundAmount: [{
67
+ type: Input
68
+ }], paymentReference: [{
69
+ type: Input
70
+ }], refundReference: [{
71
+ type: Input
72
+ }], previewJourney: [{
73
+ type: Input
74
+ }], notificationSent: [{
75
+ type: Input
76
+ }], notificationPreviewEvent: [{
77
+ type: Output
78
+ }] } });
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXByZXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi1wcmV2aWV3L25vdGlmaWNhdGlvbi1wcmV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BheW1lbnQtbGliL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb24tcHJldmlldy9ub3RpZmljYXRpb24tcHJldmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUl6RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN6RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN2RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNsRixPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBUy9DLE1BQU0sT0FBTyw0QkFBNEI7SUFrQm5CO0lBQ1Y7SUFsQkQsT0FBTyxDQUFXO0lBQ2xCLGNBQWMsQ0FBd0I7SUFDdEMsWUFBWSxDQUFTO0lBQ3JCLFlBQVksQ0FBUztJQUNyQixnQkFBZ0IsQ0FBUztJQUN6QixlQUFlLENBQVM7SUFDeEIsY0FBYyxDQUFTO0lBQ3ZCLGdCQUFnQixDQUF1QjtJQUV0Qyx3QkFBd0IsR0FBRyxJQUFJLFlBQVksRUFBd0IsQ0FBQztJQUU5RSxZQUFZLENBQXVCO0lBQ25DLDBCQUEwQixDQUE2QjtJQUN2RCxLQUFLLEdBQVcsSUFBSSxDQUFDLEdBQUcsRUFB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bnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUGF5bWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVBheW1lbnQnO1xuaW1wb3J0IHsgSU5vdGlmaWNhdGlvblByZXZpZXcgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lOb3RpZmljYXRpb25QcmV2aWV3JztcbmltcG9ydCB7IElSZWZ1bmRDb250YWN0RGV0YWlscyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVJlZnVuZENvbnRhY3REZXRhaWxzJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblByZXZpZXdSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9Ob3RpZmljYXRpb25QcmV2aWV3UmVxdWVzdCc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEVycm9ySGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zaGFyZWQvZXJyb3ItaGFuZGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbm90aWZpY2F0aW9uLXByZXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vbm90aWZpY2F0aW9uLXByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ub3RpZmljYXRpb24tcHJldmlldy5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25QcmV2aWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcGF5bWVudDogSVBheW1lbnQ7XG4gIEBJbnB1dCgpIGNvbnRhY3REZXRhaWxzOiBJUmVmdW5kQ29udGFjdERldGFpbHM7XG4gIEBJbnB1dCgpIHJlZnVuZFJlYXNvbjogc3RyaW5nO1xuICBASW5wdXQoKSByZWZ1bmRBbW91bnQ6IG51bWJlcjtcbiAgQElucHV0KCkgcGF5bWVudFJlZmVyZW5jZTogc3RyaW5nO1xuICBASW5wdXQoKSByZWZ1bmRSZWZlcmVuY2U6IHN0cmluZztcbiAgQElucHV0KCkgcHJldmlld0pvdXJuZXk6IHN0cmluZztcbiAgQElucHV0KCkgbm90aWZpY2F0aW9uU2VudDogSU5vdGlmaWNhdGlvblByZXZpZXc7XG5cbiAgQE91dHB1dCgpIG5vdGlmaWNhdGlvblByZXZpZXdFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8SU5vdGlmaWNhdGlvblByZXZpZXc+KCk7XG5cbiAgbm90aWZpY2F0aW9uOiBJTm90aWZpY2F0aW9uUHJldmlldztcbiAgbm90aWZpY2F0aW9uUHJldmlld1JlcXVlc3Q6IE5vdGlmaWNhdGlvblByZXZpZXdSZXF1ZXN0O1xuICB0b2RheTogbnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgLy8gICBlcnJvck1lc3NhZ2UgPSB0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuZ2V0U2VydmVyRXJyb3JNZXNzYWdlKGZhbHNlLCBmYWxzZSwgJycpO1xuICBlcnJvck1lc3NhZ2UgPSBudWxsXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlcnJvckhhbmRsZXJTZXJ2aWNlOiBFcnJvckhhbmRsZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG5cbiAgICBpZiAodGhpcy5wcmV2aWV3Sm91cm5leSAhPSB1bmRlZmluZWQgJiYgdGhpcy5wcmV2aWV3Sm91cm5leSAhPSBudWxsICYmIHRoaXMucHJldmlld0pvdXJuZXkgPT09ICdOb3RpZmljYXRpb25zIHNlbnQnKSB7XG5cbiAgICAgIHRoaXMubm90aWZpY2F0aW9uID0gdGhpcy5ub3RpZmljYXRpb25TZW50O1xuXG4gICAgICBpZiAodGhpcy5ub3RpZmljYXRpb24gIT0gdW5kZWZpbmVkICYmIHRoaXMubm90aWZpY2F0aW9uICE9IG51bGwgJiYgdGhpcy5ub3RpZmljYXRpb24udGVtcGxhdGVfdHlwZSA9PT0gJ2xldHRlcicpIHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uYm9keSA9IHRoaXMubm90aWZpY2F0aW9uLmJvZHkucmVwbGFjZSgvXFxyXFxuL2csICc8YnIvPicpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG5cbiAgICAgIGNvbnN0IG5vdGZpY2F0aW9uUHJldmlld1JlcXVlc3RCb2R5ID0gbmV3IE5vdGlmaWNhdGlvblByZXZpZXdSZXF1ZXN0KHRoaXMucGF5bWVudCwgdGhpcy5jb250YWN0RGV0YWlscyxcbiAgICAgICAgdGhpcy5yZWZ1bmRSZWFzb24sIHRoaXMucmVmdW5kQW1vdW50LCB0aGlzLnJlZnVuZFJlZmVyZW5jZSwgdGhpcy5wYXltZW50UmVmZXJlbmNlKTtcblxuICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmdldE5vdGlmaWNhdGlvblByZXZpZXcobm90ZmljYXRpb25QcmV2aWV3UmVxdWVzdEJvZHkpLnN1YnNjcmliZShcbiAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5nZXRTZXJ2ZXJFcnJvck1lc3NhZ2UoZmFsc2UsIGZhbHNlLCAnJyk7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24gPSBKU09OLnBhcnNlKHJlcyk7XG5cbiAgICAgICAgICBpZiAodGhpcy5ub3RpZmljYXRpb24gIT0gdW5kZWZpbmVkICYmIHRoaXMubm90aWZpY2F0aW9uICE9IG51bGwgJiYgdGhpcy5ub3RpZmljYXRpb24udGVtcGxhdGVfdHlwZSA9PT0gJ2xldHRlcicpIHtcbiAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uLmJvZHkgPSB0aGlzLm5vdGlmaWNhdGlvbi5ib2R5LnJlcGxhY2UoL1xcclxcbi9nLCAnPGJyLz4nKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuZ2V0U2VydmVyRXJyb3JNZXNzYWdlKHRydWUsIGZhbHNlLCAnJyk7XG4gICAgICAgICAgY29uc29sZS5sb2codGhpcy5lcnJvck1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXdFdmVudC5lbWl0KHRoaXMubm90aWZpY2F0aW9uKTtcblxuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1jb2x1bW4tZnVsbFwiPlxuICA8dGFibGUgY2xhc3M9XCJnb3Z1ay10YWJsZVwiPlxuICAgIDx0Ym9keSBjbGFzcz1cImdvdnVrLXRhYmxlX19ib2R5XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibm90aWZpY2F0aW9uPy50ZW1wbGF0ZV90eXBlID09PSAnZW1haWwnXCI+XG4gICAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbCB3aGl0ZXNwYWNlLWluaGVyaXRcIj48c3BhbiBjbGFzcz1cImdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPkZyb206PC9zcGFuPlxuICAgICAgICAgICAge3tub3RpZmljYXRpb24/LmZyb20/LmZyb21fZW1haWxfYWRkcmVzc319PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsIHdoaXRlc3BhY2UtaW5oZXJpdFwiPjxzcGFuIGNsYXNzPVwiZ292dWstIS1mb250LXdlaWdodC1ib2xkXCI+VG86PC9zcGFuPlxuICAgICAgICAgICAge3tub3RpZmljYXRpb24/LnJlY2lwaWVudF9jb250YWN0Py5yZWNpcGllbnRfZW1haWxfYWRkcmVzc319PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsIHdoaXRlc3BhY2UtaW5oZXJpdFwiPjxzcGFuIGNsYXNzPVwiZ292dWstIS1mb250LXdlaWdodC1ib2xkXCI+U3ViamVjdDo8L3NwYW4+XG4gICAgICAgICAgICB7e25vdGlmaWNhdGlvbj8uc3ViamVjdH19PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsIHdoaXRlc3BhY2UtaW5oZXJpdFwiPlxuICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cIm5vdGlmaWNhdGlvbj8uaHRtbFwiPjwvZGl2PlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub3RpZmljYXRpb24/LnRlbXBsYXRlX3R5cGUgPT09ICdsZXR0ZXInXCI+XG4gICAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJsZXR0ZXItcm93LWJvcmRlclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vdGlmaWNhdGlvbj8ucmVjaXBpZW50X2NvbnRhY3Q/LnJlY2lwaWVudF9tYWlsX2FkZHJlc3M/LmFkZHJlc3NfbGluZVwiPlxuICAgICAgICAgICAgICB7e25vdGlmaWNhdGlvbj8ucmVjaXBpZW50X2NvbnRhY3Q/LnJlY2lwaWVudF9tYWlsX2FkZHJlc3M/LmFkZHJlc3NfbGluZX19PGJyIC8+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibm90aWZpY2F0aW9uPy5yZWNpcGllbnRfY29udGFjdD8ucmVjaXBpZW50X21haWxfYWRkcmVzcz8uY2l0eVwiPlxuICAgICAgICAgICAgICB7e25vdGlmaWNhdGlvbj8ucmVjaXBpZW50X2NvbnRhY3Q/LnJlY2lwaWVudF9tYWlsX2FkZHJlc3M/LmNpdHl9fTxiciAvPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vdGlmaWNhdGlvbj8ucmVjaXBpZW50X2NvbnRhY3Q/LnJlY2lwaWVudF9tYWlsX2FkZHJlc3M/LmNvdW50eVwiPlxuICAgICAgICAgICAgICB7e25vdGlmaWNhdGlvbj8ucmVjaXBpZW50X2NvbnRhY3Q/LnJlY2lwaWVudF9tYWlsX2FkZHJlc3M/LmNvdW50eX19PGJyIC8+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibm90aWZpY2F0aW9uPy5yZWNpcGllbnRfY29udGFjdD8ucmVjaXBpZW50X21haWxfYWRkcmVzcz8uY291bnRyeVwiPlxuICAgICAgICAgICAgICB7e25vdGlmaWNhdGlvbj8ucmVjaXBpZW50X2NvbnRhY3Q/LnJlY2lwaWVudF9tYWlsX2FkZHJlc3M/LmNvdW50cnl9fTxiciAvPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAge3tub3RpZmljYXRpb24/LnJlY2lwaWVudF9jb250YWN0Py5yZWNpcGllbnRfbWFpbF9hZGRyZXNzPy5wb3N0YWxfY29kZX19XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImxldHRlci1yb3ctYm9yZGVyXCI+e3sgdG9kYXkgfCBkYXRlOidkIE1NTU0geScgfX08L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCI+XG4gICAgICAgICAgPHRkIGNsYXNzPVwibGV0dGVyLXJvdy1ib3JkZXJcIj48c3BhbiBjbGFzcz1cImdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPnt7bm90aWZpY2F0aW9uPy5zdWJqZWN0fX08L3NwYW4+PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsIHdoaXRlc3BhY2UtaW5oZXJpdFwiPlxuICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cIm5vdGlmaWNhdGlvbj8uYm9keVwiPjwvZGl2PlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgXG4gICAgPC90Ym9keT5cbiAgPC90YWJsZT5cbjwvZGl2PlxuIl19
@@ -0,0 +1,17 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class PageNotFoundComponent {
4
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: PageNotFoundComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: PageNotFoundComponent, selector: "ng-component", ngImport: i0, template: `
6
+ <h1>This is not the page you were looking for!</h1>
7
+ `, isInline: true });
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: PageNotFoundComponent, decorators: [{
10
+ type: Component,
11
+ args: [{
12
+ template: `
13
+ <h1>This is not the page you were looking for!</h1>
14
+ `
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1ub3QtZm91bmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2Utbm90LWZvdW5kLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU8xQyxNQUFNLE9BQU8scUJBQXFCO3VHQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQixvREFKcEI7O0tBRVQ7OzJGQUVRLHFCQUFxQjtrQkFMakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUU7O0tBRVQ7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGU6IGBcbiAgICA8aDE+VGhpcyBpcyBub3QgdGhlIHBhZ2UgeW91IHdlcmUgbG9va2luZyBmb3IhPC9oMT5cbiAgICBgXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VOb3RGb3VuZENvbXBvbmVudCB7IH1cbiJdfQ==
@@ -0,0 +1,36 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import { PaymentListService } from '../../services/payment-list/payment-list.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../services/payment-list/payment-list.service";
5
+ import * as i2 from "@angular/common";
6
+ export class PaymentListComponent {
7
+ paymentListService;
8
+ paymentLibComponent;
9
+ payments;
10
+ errorMessage;
11
+ code;
12
+ constructor(paymentListService, paymentLibComponent) {
13
+ this.paymentListService = paymentListService;
14
+ this.paymentLibComponent = paymentLibComponent;
15
+ }
16
+ ngOnInit() {
17
+ this.paymentListService.getPaymentByCcdCaseNumber(this.paymentLibComponent.CCD_CASE_NUMBER, this.paymentLibComponent.PAYMENT_METHOD)
18
+ .subscribe(payments => this.payments = payments, (error) => this.errorMessage = error);
19
+ }
20
+ loadPaymentViewComponent(paymentGroupReference, paymentReference, paymentMethod) {
21
+ this.paymentLibComponent.paymentMethod = paymentMethod;
22
+ this.paymentLibComponent.paymentGroupReference = paymentGroupReference;
23
+ this.paymentLibComponent.paymentReference = paymentReference;
24
+ this.paymentLibComponent.viewName = 'payment-view';
25
+ }
26
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: PaymentListComponent, deps: [{ token: i1.PaymentListService }, { token: 'PAYMENT_LIB' }], target: i0.ɵɵFactoryTarget.Component });
27
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: PaymentListComponent, selector: "ccpay-payment-list", ngImport: i0, template: "<div class=\"govuk-width-container\">\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 Payments list could not be retrieved\n </h2>\n <div class=\"govuk-error-summary__body\">\n {{ errorMessage }}\n </div>\n </div>\n </div>\n\n <div *ngIf=\"!errorMessage && payments\">\n\n <table class=\"table\">\n <tr>\n <th class=\"bold font-xsmall\">Payment group reference</th>\n <th class=\"bold font-xsmall\">Payment reference</th>\n <th class=\"bold font-xsmall\">Date created</th>\n <th class=\"bold font-xsmall\">Channel</th>\n <th class=\"bold font-xsmall\">Method</th>\n <th class=\"bold font-xsmall\">Amount</th>\n <th class=\"bold font-xsmall\">Status</th>\n </tr>\n <tr *ngFor=\"let payment of payments.payments\">\n <td class=\"font-xsmall\">\n <a href=\"javascript:void(0)\" (click)=\"loadPaymentViewComponent(payment.payment_group_reference, payment.payment_reference, payment.method)\">{{ payment.payment_group_reference }}</a>\n <td class=\"font-xsmall\">{{ payment.payment_reference }}</td>\n <td class=\"font-xsmall\">{{ payment.date_created | date:'dd MMM yyyy' }}</td>\n <td class=\"font-xsmall\">{{ payment.channel | titlecase }}</td>\n <td class=\"font-xsmall\">{{ payment.method | titlecase }}</td>\n <td class=\"font-xsmall\">\u00A3{{ payment.amount | number:'.2' }}</td>\n <td *ngIf=\"payment.method === 'card' && payment.channel === 'online'\">\n <details>\n <summary><span class=\"summary font-xsmall\">{{ payment.status }}</span></summary>\n <div class=\"panel panel-border-narrow\" *ngIf=\"payment.status === 'Failed'\">\n <div *ngFor=\"let statusHistory of payment.status_histories\">\n <p class=\"font-xsmall\" *ngIf=\"statusHistory.error_code === 'P0010'\">\n Payment rejected due to payment method selected or payment information entered, for example, failed fraud check, a 3D Secure authentication failure, or the user does not have enough money in account\n </p>\n <p class=\"font-xsmall\" *ngIf=\"statusHistory.error_code === 'P0020'\">\n Payment was not confirmed and completed within 90 minutes of being created\n </p>\n <p class=\"font-xsmall\" *ngIf=\"statusHistory.error_code === 'P0030'\">\n User clicked on the \u201CCancel payment\u201D button during the payment journey\n </p>\n <p class=\"font-xsmall\" *ngIf=\"statusHistory.error_code === 'P0050'\">\n Multiple possible causes, for example a configuration problem with the payment provider, or incorrect login credentials\n </p>\n </div>\n </div>\n </details>\n </td>\n <td *ngIf=\"payment.method === 'card' && payment.channel === 'telephony'\" class=\"font-xsmall\">\n {{ payment.status}}\n </td>\n <td *ngIf=\"payment.method === 'payment by account'\">\n <details>\n <summary><span class=\"summary font-xsmall\">{{ payment.status }}</span></summary>\n <div class=\"panel panel-border-narrow\" *ngIf=\"payment.status === 'Pending'\">\n <p class=\"font-xsmall\">This means the transaction is being processed by Liberata.</p>\n </div>\n </details>\n </td>\n </tr>\n </table>\n\n </div>\n\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i2.DatePipe, name: "date" }] });
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: PaymentListComponent, decorators: [{
30
+ type: Component,
31
+ args: [{ selector: 'ccpay-payment-list', template: "<div class=\"govuk-width-container\">\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 Payments list could not be retrieved\n </h2>\n <div class=\"govuk-error-summary__body\">\n {{ errorMessage }}\n </div>\n </div>\n </div>\n\n <div *ngIf=\"!errorMessage && payments\">\n\n <table class=\"table\">\n <tr>\n <th class=\"bold font-xsmall\">Payment group reference</th>\n <th class=\"bold font-xsmall\">Payment reference</th>\n <th class=\"bold font-xsmall\">Date created</th>\n <th class=\"bold font-xsmall\">Channel</th>\n <th class=\"bold font-xsmall\">Method</th>\n <th class=\"bold font-xsmall\">Amount</th>\n <th class=\"bold font-xsmall\">Status</th>\n </tr>\n <tr *ngFor=\"let payment of payments.payments\">\n <td class=\"font-xsmall\">\n <a href=\"javascript:void(0)\" (click)=\"loadPaymentViewComponent(payment.payment_group_reference, payment.payment_reference, payment.method)\">{{ payment.payment_group_reference }}</a>\n <td class=\"font-xsmall\">{{ payment.payment_reference }}</td>\n <td class=\"font-xsmall\">{{ payment.date_created | date:'dd MMM yyyy' }}</td>\n <td class=\"font-xsmall\">{{ payment.channel | titlecase }}</td>\n <td class=\"font-xsmall\">{{ payment.method | titlecase }}</td>\n <td class=\"font-xsmall\">\u00A3{{ payment.amount | number:'.2' }}</td>\n <td *ngIf=\"payment.method === 'card' && payment.channel === 'online'\">\n <details>\n <summary><span class=\"summary font-xsmall\">{{ payment.status }}</span></summary>\n <div class=\"panel panel-border-narrow\" *ngIf=\"payment.status === 'Failed'\">\n <div *ngFor=\"let statusHistory of payment.status_histories\">\n <p class=\"font-xsmall\" *ngIf=\"statusHistory.error_code === 'P0010'\">\n Payment rejected due to payment method selected or payment information entered, for example, failed fraud check, a 3D Secure authentication failure, or the user does not have enough money in account\n </p>\n <p class=\"font-xsmall\" *ngIf=\"statusHistory.error_code === 'P0020'\">\n Payment was not confirmed and completed within 90 minutes of being created\n </p>\n <p class=\"font-xsmall\" *ngIf=\"statusHistory.error_code === 'P0030'\">\n User clicked on the \u201CCancel payment\u201D button during the payment journey\n </p>\n <p class=\"font-xsmall\" *ngIf=\"statusHistory.error_code === 'P0050'\">\n Multiple possible causes, for example a configuration problem with the payment provider, or incorrect login credentials\n </p>\n </div>\n </div>\n </details>\n </td>\n <td *ngIf=\"payment.method === 'card' && payment.channel === 'telephony'\" class=\"font-xsmall\">\n {{ payment.status}}\n </td>\n <td *ngIf=\"payment.method === 'payment by account'\">\n <details>\n <summary><span class=\"summary font-xsmall\">{{ payment.status }}</span></summary>\n <div class=\"panel panel-border-narrow\" *ngIf=\"payment.status === 'Pending'\">\n <p class=\"font-xsmall\">This means the transaction is being processed by Liberata.</p>\n </div>\n </details>\n </td>\n </tr>\n </table>\n\n </div>\n\n</div>\n" }]
32
+ }], ctorParameters: function () { return [{ type: i1.PaymentListService }, { type: undefined, decorators: [{
33
+ type: Inject,
34
+ args: ['PAYMENT_LIB']
35
+ }] }]; } });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BheW1lbnQtbGliL3NyYy9saWIvY29tcG9uZW50cy9wYXltZW50LWxpc3QvcGF5bWVudC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BheW1lbnQtbGliL3NyYy9saWIvY29tcG9uZW50cy9wYXltZW50LWxpc3QvcGF5bWVudC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRTFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOzs7O0FBVXRGLE1BQU0sT0FBTyxvQkFBb0I7SUFLWDtJQUNhO0lBTGpDLFFBQVEsQ0FBWTtJQUNwQixZQUFZLENBQVM7SUFDckIsSUFBSSxDQUFTO0lBRWIsWUFBb0Isa0JBQXNDLEVBQ3pCLG1CQUF3QztRQURyRCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3pCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7SUFDekUsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsa0JBQWtCLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDO2FBQ2pJLFNBQVMsQ0FDUixRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxFQUNwQyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBUSxLQUFLLENBQy9DLENBQUM7SUFDTixDQUFDO0lBRUQsd0JBQXdCLENBQUMscUJBQTZCLEVBQUUsZ0JBQXdCLEVBQUUsYUFBcUI7UUFDckcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDdkQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDO1FBQ3ZFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUM3RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQztJQUNyRCxDQUFDO3VHQXRCVSxvQkFBb0Isb0RBTXJCLGFBQWE7MkZBTlosb0JBQW9CLDBEQ1pqQywyb0hBdUVBOzsyRkQzRGEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLG9CQUFvQjs7MEJBVTNCLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUGF5bWVudExpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcGF5bWVudC1saXN0L3BheW1lbnQtbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IElQYXltZW50cyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVBheW1lbnRzJztcbmltcG9ydCB0eXBlIHsgUGF5bWVudExpYkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BheW1lbnQtbGliLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJU3RhdHVzSGlzdG9yeSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVN0YXR1c0hpc3RvcnknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY3BheS1wYXltZW50LWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGF5bWVudC1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGF5bWVudC1saXN0LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQYXltZW50TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHBheW1lbnRzOiBJUGF5bWVudHM7XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICBjb2RlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwYXltZW50TGlzdFNlcnZpY2U6IFBheW1lbnRMaXN0U2VydmljZSxcbiAgICBASW5qZWN0KCdQQVlNRU5UX0xJQicpIHByaXZhdGUgcGF5bWVudExpYkNvbXBvbmVudDogUGF5bWVudExpYkNvbXBvbmVudCkge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5wYXltZW50TGlzdFNlcnZpY2UuZ2V0UGF5bWVudEJ5Q2NkQ2FzZU51bWJlcih0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuQ0NEX0NBU0VfTlVNQkVSLCB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuUEFZTUVOVF9NRVRIT0QpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICBwYXltZW50cyA9PiB0aGlzLnBheW1lbnRzID0gcGF5bWVudHMsXG4gICAgICAgIChlcnJvcjogYW55KSA9PiB0aGlzLmVycm9yTWVzc2FnZSA9IDxhbnk+ZXJyb3JcbiAgICAgICk7XG4gIH1cblxuICBsb2FkUGF5bWVudFZpZXdDb21wb25lbnQocGF5bWVudEdyb3VwUmVmZXJlbmNlOiBzdHJpbmcsIHBheW1lbnRSZWZlcmVuY2U6IHN0cmluZywgcGF5bWVudE1ldGhvZDogc3RyaW5nKSB7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnBheW1lbnRNZXRob2QgPSBwYXltZW50TWV0aG9kO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5wYXltZW50R3JvdXBSZWZlcmVuY2UgPSBwYXltZW50R3JvdXBSZWZlcmVuY2U7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnBheW1lbnRSZWZlcmVuY2UgPSBwYXltZW50UmVmZXJlbmNlO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdwYXltZW50LXZpZXcnO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ292dWstd2lkdGgtY29udGFpbmVyXCI+XG5cbiAgPGRpdiAqbmdJZj1cImVycm9yTWVzc2FnZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJlcnJvci1zdW1tYXJ5XCIgcm9sZT1cImdyb3VwXCIgYXJpYS1sYWJlbGxlZGJ5PVwiZmFpbHVyZS1lcnJvci1zdW1tYXJ5LWhlYWRpbmdcIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICA8aDIgY2xhc3M9XCJoZWFkaW5nLW1lZGl1bSBlcnJvci1zdW1tYXJ5LWhlYWRpbmdcIiBpZD1cImZhaWx1cmUtZXJyb3Itc3VtbWFyeS1oZWFkaW5nXCI+XG4gICAgICAgIFBheW1lbnRzIGxpc3QgY291bGQgbm90IGJlIHJldHJpZXZlZFxuICAgICAgPC9oMj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5X19ib2R5XCI+XG4gICAgICAgIHt7IGVycm9yTWVzc2FnZSB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9XCIhZXJyb3JNZXNzYWdlICYmIHBheW1lbnRzXCI+XG5cbiAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZVwiPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggY2xhc3M9XCJib2xkIGZvbnQteHNtYWxsXCI+UGF5bWVudCBncm91cCByZWZlcmVuY2U8L3RoPlxuICAgICAgICA8dGggY2xhc3M9XCJib2xkIGZvbnQteHNtYWxsXCI+UGF5bWVudCByZWZlcmVuY2U8L3RoPlxuICAgICAgICA8dGggY2xhc3M9XCJib2xkIGZvbnQteHNtYWxsXCI+RGF0ZSBjcmVhdGVkPC90aD5cbiAgICAgICAgPHRoIGNsYXNzPVwiYm9sZCBmb250LXhzbWFsbFwiPkNoYW5uZWw8L3RoPlxuICAgICAgICA8dGggY2xhc3M9XCJib2xkIGZvbnQteHNtYWxsXCI+TWV0aG9kPC90aD5cbiAgICAgICAgPHRoIGNsYXNzPVwiYm9sZCBmb250LXhzbWFsbFwiPkFtb3VudDwvdGg+XG4gICAgICAgIDx0aCBjbGFzcz1cImJvbGQgZm9udC14c21hbGxcIj5TdGF0dXM8L3RoPlxuICAgICAgPC90cj5cbiAgICAgIDx0ciAqbmdGb3I9XCJsZXQgcGF5bWVudCBvZiBwYXltZW50cy5wYXltZW50c1wiPlxuICAgICAgICA8dGQgY2xhc3M9XCJmb250LXhzbWFsbFwiPlxuICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAoY2xpY2spPVwibG9hZFBheW1lbnRWaWV3Q29tcG9uZW50KHBheW1lbnQucGF5bWVudF9ncm91cF9yZWZlcmVuY2UsIHBheW1lbnQucGF5bWVudF9yZWZlcmVuY2UsIHBheW1lbnQubWV0aG9kKVwiPnt7IHBheW1lbnQucGF5bWVudF9ncm91cF9yZWZlcmVuY2UgfX08L2E+XG4gICAgICAgIDx0ZCBjbGFzcz1cImZvbnQteHNtYWxsXCI+e3sgcGF5bWVudC5wYXltZW50X3JlZmVyZW5jZSB9fTwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cImZvbnQteHNtYWxsXCI+e3sgcGF5bWVudC5kYXRlX2NyZWF0ZWQgfCBkYXRlOidkZCBNTU0geXl5eScgfX08L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJmb250LXhzbWFsbFwiPnt7IHBheW1lbnQuY2hhbm5lbCB8IHRpdGxlY2FzZSB9fTwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cImZvbnQteHNtYWxsXCI+e3sgcGF5bWVudC5tZXRob2QgfCB0aXRsZWNhc2UgfX08L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJmb250LXhzbWFsbFwiPsKje3sgcGF5bWVudC5hbW91bnQgfCBudW1iZXI6Jy4yJyB9fTwvdGQ+XG4gICAgICAgIDx0ZCAqbmdJZj1cInBheW1lbnQubWV0aG9kID09PSAnY2FyZCcgJiYgcGF5bWVudC5jaGFubmVsID09PSAnb25saW5lJ1wiPlxuICAgICAgICAgIDxkZXRhaWxzPlxuICAgICAgICAgICAgPHN1bW1hcnk+PHNwYW4gY2xhc3M9XCJzdW1tYXJ5IGZvbnQteHNtYWxsXCI+e3sgcGF5bWVudC5zdGF0dXMgfX08L3NwYW4+PC9zdW1tYXJ5PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhbmVsIHBhbmVsLWJvcmRlci1uYXJyb3dcIiAqbmdJZj1cInBheW1lbnQuc3RhdHVzID09PSAnRmFpbGVkJ1wiPlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBzdGF0dXNIaXN0b3J5IG9mIHBheW1lbnQuc3RhdHVzX2hpc3Rvcmllc1wiPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC14c21hbGxcIiAqbmdJZj1cInN0YXR1c0hpc3RvcnkuZXJyb3JfY29kZSA9PT0gJ1AwMDEwJ1wiPlxuICAgICAgICAgICAgICAgICAgUGF5bWVudCByZWplY3RlZCBkdWUgdG8gcGF5bWVudCBtZXRob2Qgc2VsZWN0ZWQgb3IgcGF5bWVudCBpbmZvcm1hdGlvbiBlbnRlcmVkLCBmb3IgZXhhbXBsZSwgZmFpbGVkIGZyYXVkIGNoZWNrLCBhIDNEIFNlY3VyZSBhdXRoZW50aWNhdGlvbiBmYWlsdXJlLCBvciB0aGUgdXNlciBkb2VzIG5vdCBoYXZlIGVub3VnaCBtb25leSBpbiBhY2NvdW50XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC14c21hbGxcIiAqbmdJZj1cInN0YXR1c0hpc3RvcnkuZXJyb3JfY29kZSA9PT0gJ1AwMDIwJ1wiPlxuICAgICAgICAgICAgICAgICAgUGF5bWVudCB3YXMgbm90IGNvbmZpcm1lZCBhbmQgY29tcGxldGVkIHdpdGhpbiA5MCBtaW51dGVzIG9mIGJlaW5nIGNyZWF0ZWRcbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LXhzbWFsbFwiICpuZ0lmPVwic3RhdHVzSGlzdG9yeS5lcnJvcl9jb2RlID09PSAnUDAwMzAnXCI+XG4gICAgICAgICAgICAgICAgICBVc2VyIGNsaWNrZWQgb24gdGhlIOKAnENhbmNlbCBwYXltZW504oCdIGJ1dHRvbiBkdXJpbmcgdGhlIHBheW1lbnQgam91cm5leVxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQteHNtYWxsXCIgKm5nSWY9XCJzdGF0dXNIaXN0b3J5LmVycm9yX2NvZGUgPT09ICdQMDA1MCdcIj5cbiAgICAgICAgICAgICAgICAgIE11bHRpcGxlIHBvc3NpYmxlIGNhdXNlcywgZm9yIGV4YW1wbGUgYSBjb25maWd1cmF0aW9uIHByb2JsZW0gd2l0aCB0aGUgcGF5bWVudCBwcm92aWRlciwgb3IgaW5jb3JyZWN0IGxvZ2luIGNyZWRlbnRpYWxzXG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGV0YWlscz5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkICpuZ0lmPVwicGF5bWVudC5tZXRob2QgPT09ICdjYXJkJyAmJiBwYXltZW50LmNoYW5uZWwgPT09ICd0ZWxlcGhvbnknXCIgY2xhc3M9XCJmb250LXhzbWFsbFwiPlxuICAgICAgICAgIHt7IHBheW1lbnQuc3RhdHVzfX1cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkICpuZ0lmPVwicGF5bWVudC5tZXRob2QgPT09ICdwYXltZW50IGJ5IGFjY291bnQnXCI+XG4gICAgICAgICAgPGRldGFpbHM+XG4gICAgICAgICAgICA8c3VtbWFyeT48c3BhbiBjbGFzcz1cInN1bW1hcnkgZm9udC14c21hbGxcIj57eyBwYXltZW50LnN0YXR1cyB9fTwvc3Bhbj48L3N1bW1hcnk+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFuZWwgcGFuZWwtYm9yZGVyLW5hcnJvd1wiICpuZ0lmPVwicGF5bWVudC5zdGF0dXMgPT09ICdQZW5kaW5nJ1wiPlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQteHNtYWxsXCI+VGhpcyBtZWFucyB0aGUgdHJhbnNhY3Rpb24gaXMgYmVpbmcgcHJvY2Vzc2VkIGJ5IExpYmVyYXRhLjwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGV0YWlscz5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgPC90YWJsZT5cblxuICA8L2Rpdj5cblxuPC9kaXY+XG4iXX0=