@hmcts/ccpay-web-component 5.0.8-beta12 → 5.0.8-beta14

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