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