{"version":3,"file":"7655.12742ea40955aea396cd.js","mappings":"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","sources":["webpack://shipley-du-lib/./common/js/legacy/custPortal/cw/cw.widget.payment.js","webpack://shipley-du-lib/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://shipley-du-lib/./common/js/du/appEnum/AlertSeverity.ts","webpack://shipley-du-lib/./common/js/du/components/form/checkbox.vue?be2d","webpack://shipley-du-lib/./common/js/du/components/form/checkbox.vue","webpack://shipley-du-lib/./common/js/du/components/form/checkbox.vue?f028","webpack://shipley-du-lib/./common/js/du/interfaces/utility/IClickableAlertMessage.ts","webpack://shipley-du-lib/./common/js/du/components/utility/alert.vue?8475","webpack://shipley-du-lib/./common/js/du/components/utility/alert.vue?5e44","webpack://shipley-du-lib/./common/js/du/components/utility/alert.vue","webpack://shipley-du-lib/./common/js/du/components/utility/pdfViewer.vue?5d6e","webpack://shipley-du-lib/./common/js/du/components/utility/pdfViewer.vue?9576","webpack://shipley-du-lib/./common/js/du/components/utility/pdfViewer.vue"],"sourcesContent":["import moment from \"moment\";\r\n//import '../lib/bootstrap-datetimepicker/bootstrap-datetime-4.7.14';\r\nimport * as BootstrapDialog from \"bootstrap3-dialog\";\r\n\r\nimport { createNonRoutedApp } from \"@du/AppStartup\";\r\nimport pdfViewer from \"@components/utility/pdfViewer\";\r\n\r\nconst isMobile = $(window).width() <= 579;\r\n\r\n(function (cw, $) {\r\n  \"use strict\";\r\n  $.extend(true, cw, {\r\n    widget: {\r\n      payment: {\r\n        S1CcTransactionResponse: {\r\n          Unknown: 0,\r\n          Success: 1,\r\n          TransactionProcessedButNotApproved: 2,\r\n          NoResponseFromCreditCardProcessorWhileAddingCard: 3,\r\n          AddingCardToInvalidAccount: 4,\r\n          CouldNotDetermineCustomerPaymentId: 5,\r\n          CouldParseProcessorAddPaymentMethodResponse: 6,\r\n          SuccessButCouldNotReportTransactionToRemoteSystem: 7,\r\n          PaymentAmountRequired: 8,\r\n          CouldNotDetermineCustomerUser: 9,\r\n          CreditCardNumberOrExpirationDateMissing: 10,\r\n          CreditCardDidNotPassLuhnCheck: 11,\r\n          CreditCardInvalidExpiration: 12,\r\n          CreditCardInvalidCvv2: 13,\r\n          CreditCardInvalidZipCode: 14,\r\n          CreditCardInvalidCardholderName: 15,\r\n          CreditCardSystemError: 16,\r\n        },\r\n        EftPaymentResponse: {\r\n          Unknown: 0,\r\n          Success: 1,\r\n          UnableToVerifyBankAccount: 2,\r\n          EftPaymentSubmitFail: 3,\r\n          EftProfileSaveFail: 4,\r\n          OnetimeEftProfileSaveFail: 5,\r\n        },\r\n        CustomerBudgetEligibility: null,\r\n        modalRef: null,\r\n        init: function (\r\n          s1AccountId,\r\n          authToken,\r\n          selectedBillingAccountObj,\r\n          successCallback,\r\n          budgetEligibility\r\n        ) {\r\n          var self = this;\r\n          cw.loadingIndicator.start();\r\n          cw.webservices.getJson(\r\n            \"S1AccountManager/get-account-balances-and-payment-methods\",\r\n            {\r\n              S1AccountId: s1AccountId,\r\n              AuthToken: authToken,\r\n            },\r\n            function (balanceObj) {\r\n              if (balanceObj) {\r\n                if (balanceObj.AccountBalances && balanceObj.AccountBalances.length > 0) {\r\n                  balanceObj.AccountBalances.forEach(function (x) {\r\n                    x.obj = JSON.stringify(x);\r\n                    if (parseFloat(x.BudgetBalance)) {\r\n                      x.BudgetBalanceFormatted = \"$\" + x.BudgetBalance.formatMoney(2);\r\n                      x.NonBudgetBalanceFormatted = \"$\" + x.NonBudgetCoveredBalance.formatMoney(2);\r\n                    }\r\n                  });\r\n                } else if (balanceObj.AccountBalances && balanceObj.AccountBalances.length === 1) {\r\n                  balanceObj.BalanceDueFormatted = balanceObj.AccountBalances[0].BalanceFormatted;\r\n                }\r\n\r\n                balanceObj.ExpirationYears = cw.utility.getCreditCardExpirationYears();\r\n                balanceObj.hasCCOnFile = false;\r\n                balanceObj.DraftDays = self.getDraftDays();\r\n\r\n                var mData = {\r\n                  balanceObj: balanceObj,\r\n                  s1AccountId: s1AccountId,\r\n                  authToken: authToken,\r\n                  selectedRemoteAccount: null,\r\n                  successCallback: successCallback,\r\n                  division: null,\r\n                };\r\n\r\n                balanceObj.EftConfigs.forEach(function (x) {\r\n                  x.EftSelectionId = x.EftConfigId > 0 ? x.EftConfigId : x.CargasEftConfigId;\r\n                });\r\n\r\n                mData.balanceObj.hasAccountSelection = false;\r\n\r\n                //this code is duplicated below (in open modal's shownCallback) when there are multiple accounts to choose from (selectedBillingAccountObj is empty and there are multiple accts)\r\n                if (mData.balanceObj.AccountBalances.length === 1) {\r\n                  mData.selectedRemoteAccount = mData.balanceObj.AccountBalances[0];\r\n                  mData.division = mData.balanceObj.AccountBalances[0].Division;\r\n                  mData.balanceObj.hasAccountSelection = true;\r\n                  mData.balanceObj.balanceFormatted = mData.selectedRemoteAccount.BalanceFormatted;\r\n                  mData.balanceObj.payNowFormatted = mData.selectedRemoteAccount.PayNowFormatted;\r\n                  mData.balanceObj.payNowBalance = mData.selectedRemoteAccount.PayNowBalance;\r\n                  mData.balanceObj.nonBudgetBalanceFormatted =\r\n                    mData.selectedRemoteAccount.NonBudgetBalanceFormatted;\r\n                } else if (\r\n                  selectedBillingAccountObj &&\r\n                  mData.balanceObj.AccountBalances.some(function (x) {\r\n                    return (\r\n                      x.RemoteSystemId === selectedBillingAccountObj.RemoteSystemId &&\r\n                      x.RemoteSystemAccountId === selectedBillingAccountObj.RemoteSystemAccountId &&\r\n                      x.RemoteSystemAccountNumber === selectedBillingAccountObj.RemoteSystemAccountNumber\r\n                    );\r\n                  })\r\n                ) {\r\n                  mData.selectedRemoteAccount = mData.balanceObj.AccountBalances.filterSingle(function (x) {\r\n                    return (\r\n                      x.RemoteSystemId === selectedBillingAccountObj.RemoteSystemId &&\r\n                      x.RemoteSystemAccountId === selectedBillingAccountObj.RemoteSystemAccountId &&\r\n                      x.RemoteSystemAccountNumber === selectedBillingAccountObj.RemoteSystemAccountNumber\r\n                    );\r\n                  });\r\n                  mData.balanceObj.hasAccountSelection = true;\r\n                  mData.balanceObj.balanceFormatted = mData.selectedRemoteAccount.BalanceFormatted;\r\n                  mData.balanceObj.payNowFormatted = mData.selectedRemoteAccount.PayNowFormatted;\r\n                  mData.balanceObj.payNowBalance = mData.selectedRemoteAccount.PayNowBalance;\r\n                  mData.balanceObj.nonBudgetBalanceFormatted =\r\n                    mData.selectedRemoteAccount.NonBudgetBalanceFormatted;\r\n                }\r\n\r\n                if (budgetEligibility && budgetEligibility.IsEligible) {\r\n                  self.CustomerBudgetEligibility = budgetEligibility;\r\n                  mData.balanceObj.BudgetPaymentPreview = self.CustomerBudgetEligibility;\r\n                }\r\n\r\n                if (mData.balanceObj.hasAccountSelection) {\r\n                  mData.balanceObj.numPendingPayments = mData.selectedRemoteAccount.PendingPayments\r\n                    ? mData.selectedRemoteAccount.PendingPayments.length\r\n                    : null;\r\n                  mData.balanceObj.pendingPaymentsTotal = 0;\r\n\r\n                  if (\r\n                    mData.selectedRemoteAccount.PendingPayments &&\r\n                    mData.selectedRemoteAccount.PendingPayments.length > 0\r\n                  ) {\r\n                    mData.selectedRemoteAccount.PendingPayments.forEach(function (pp) {\r\n                      mData.balanceObj.pendingPaymentsTotal += pp.PaymentAmount;\r\n                    });\r\n\r\n                    mData.balanceObj.pendingPaymentsTotalFormatted =\r\n                      \"$\" + mData.balanceObj.pendingPaymentsTotal.formatMoney(2);\r\n                  }\r\n\r\n                  self.getPaymentSubmittalOptions(\r\n                    mData.s1AccountId,\r\n                    mData.selectedRemoteAccount,\r\n                    mData.authToken,\r\n                    function (paymentSubmitOpts) {\r\n                      var totalInvoiceAmount = 0;\r\n                      mData.balanceObj.CreditCardProfiles = paymentSubmitOpts.CreditCardPaymentProfiles;\r\n                      if (\r\n                        mData.balanceObj.CreditCardProfiles &&\r\n                        mData.balanceObj.CreditCardProfiles.length > 0\r\n                      ) {\r\n                        mData.balanceObj.hasCCOnFile = mData.balanceObj.CreditCardProfiles.some(function (c) {\r\n                          return (\r\n                            c.PaymentProfile &&\r\n                            c.PaymentProfile.PaymentProfiles &&\r\n                            c.PaymentProfile.PaymentProfiles.length > 0\r\n                          );\r\n                        });\r\n                      }\r\n                      if (\r\n                        [cw.appEnum.S1RemoteSystem.As400, cw.appEnum.S1RemoteSystem.Cargas].includes(\r\n                          mData.selectedRemoteAccount.RemoteSystemId\r\n                        )\r\n                      ) {\r\n                        mData.balanceObj.OpenInvoices = paymentSubmitOpts.OpenInvoices.map(function (i) {\r\n                          i.InvoiceId =\r\n                            i.InvoiceId && i.InvoiceId > 0 ? i.InvoiceId : i.DocumentTypeDescription;\r\n                          i.InvoiceDateFormatted = moment(i.InvoiceDate).format(\"l\");\r\n                          i.AmountDueFormatted = \"$\" + i.AmountDue.formatMoney(2);\r\n                          i.InvoiceTotalFormatted = \"$\" + i.InvoiceTotal.formatMoney(2);\r\n                          i.IsBudgetPayment = false;\r\n                          totalInvoiceAmount += i.AmountDue;\r\n\r\n                          if (i.DocumentTypeDescription === \"Budget Payment\") {\r\n                            i.IsBudgetPayment = true;\r\n                          }\r\n                          return i;\r\n                        });\r\n                        mData.balanceObj.BudgetPayments = paymentSubmitOpts.OpenInvoices.filterSingle(\r\n                          function (i) {\r\n                            if (i.DocumentTypeDescription === \"Budget Payment\") {\r\n                              i.BudgetPaymentFormatted = \"$\" + i.AmountDue.formatMoney(2);\r\n                              i.BudgetPaymentTotalFormatted = \"$\" + i.InvoiceTotal.formatMoney(2);\r\n                              return i;\r\n                            }\r\n                          }\r\n                        );\r\n\r\n                        var ccAmtRemaining =\r\n                          parseFloat(mData.balanceObj.payNowBalance).toFixed(2) -\r\n                          parseFloat(totalInvoiceAmount).toFixed(2);\r\n                        if (parseInt(ccAmtRemaining).toFixed(2) > 0) {\r\n                          mData.balanceObj.nonBudgetAndInvoiceBalance = \"$\" + ccAmtRemaining.formatMoney(2);\r\n                        }\r\n                      } else {\r\n                        mData.balanceObj.OpenInvoices = [];\r\n                      }\r\n\r\n                      self.renderTemplate(mData, function (renderedTemplate) {\r\n                        self.openModal(renderedTemplate, mData, authToken);\r\n                      });\r\n                    }\r\n                  );\r\n\r\n                  return;\r\n                } else {\r\n                  self.renderTemplate(mData, function (renderedTemplate) {\r\n                    self.openModal(renderedTemplate, mData, authToken);\r\n                  });\r\n                  return;\r\n                }\r\n              }\r\n            }\r\n          );\r\n        },\r\n        openModal: function (renderedTemplate, modalData, authToken) {\r\n          var self = cw.widget.payment;\r\n          self.modalRef = cw.modal.Open({\r\n            data: modalData,\r\n            title: !modalData.balanceObj.hasAccountSelection\r\n              ? \"Select account to apply payment towards\"\r\n              : \"Make a Payment\",\r\n            modalBody: $(renderedTemplate),\r\n            buttons: [\r\n              {\r\n                label: '<i class=\"fa fa-times\"></i> Cancel',\r\n                cssClass: \"btn-white btn-xs-block\",\r\n                action: function (dialogRef) {\r\n                  dialogRef.close();\r\n                },\r\n              },\r\n              {\r\n                label: 'Make Payment <i class=\"fa fa-arrow-right\"></i>',\r\n                cssClass:\r\n                  \"btn-primary btn-xs-block make-payment disabled \" +\r\n                  (!modalData.balanceObj.hasAccountSelection ? \"hidden\" : \"\"),\r\n                action: self.handleSubmit,\r\n              },\r\n            ],\r\n            onShownCallback: function (mr) {\r\n              if (mr.$modalBody.find(\".pending-payment-indicator\").length > 0) {\r\n                mr.$modalFooter\r\n                  .find(\".bootstrap-dialog-footer-buttons\")\r\n                  .prepend(\r\n                    '<div class=\"pull-left fs-xs-12 pt15 pb15 pending-payments-indicator-wrapper\"><i class=\"fa fa-regular fa-clock shipley-blue\" title=\"Account has pending payments\" aria-hidden=\"true\"></i> Accounts with pending/processing payments</div>'\r\n                  );\r\n              } else if (!mr.$modalBody.find(\".payment-type-select-pane\").hasClass(\"hidden\")) {\r\n                mr.$modalFooter.find(\".pending-payments-indicator-wrapper\").remove();\r\n                mr.$modalFooter\r\n                  .find(\".bootstrap-dialog-footer-buttons\")\r\n                  .prepend(\r\n                    '<div class=\"pull-left fs-xs-12 pt15 pb15\"><i class=\"fa fa-star shipley-blue required\" title=\"Required Field\" aria-hidden=\"true\"></i> Required Fields</div>'\r\n                  );\r\n              }\r\n\r\n              // Desktop view or mobile view for Make A Payment Modal with no Account Selection Modal\r\n              var $mobileTable = $(\".mobile-table\");\r\n              var $deskTable = $(\".desk-table\");\r\n              if (isMobile) {\r\n                $mobileTable.removeClass(\"hidden\");\r\n                $deskTable.addClass(\"hidden\");\r\n              } else {\r\n                $mobileTable.addClass(\"hidden\");\r\n                $deskTable.removeClass(\"hidden\");\r\n              }\r\n\r\n              var $makePaymentBtn = mr.$modalFooter.find(\".make-payment\");\r\n              var $paymentConfigure = mr.$modalBody.find(\".payment-configure\");\r\n              var $newCCform = mr.$modalBody.find(\".new-credit-card-form\");\r\n              var $existingCcWrapper = mr.$modalBody.find(\".existing-cc-wrapper\");\r\n\r\n              var selAcct = mr.getData(\"selectedRemoteAccount\");\r\n\r\n              if (selAcct && selAcct.RemoteSystemId === cw.appEnum.S1RemoteSystem.Nexant) {\r\n                mr.$modalBody.find(\".eft-config-select\").addClass(\"hidden\");\r\n                mr.$modalBody.find(\"#cc-config\").prop(\"checked\", true);\r\n                mr.$modalBody.find(\".cc-configure\").removeClass(\"hidden\");\r\n              }\r\n\r\n              mr.$modalBody.find('[data-toggle=\"tooltip\"]').tooltip({ trigger: \"hover click\" });\r\n\r\n              // #region rebind upon selecting billing account\r\n              mr.$modalBody.on(\"click\", \".select-acct\", function (e) {\r\n                e.preventDefault();\r\n                var $this = $(this);\r\n                var selectedAccount = $this.data(\"account\");\r\n                cw.loadingIndicator.start();\r\n\r\n                self.getPaymentSubmittalOptions(\r\n                  mr.getData(\"s1AccountId\"),\r\n                  selectedAccount,\r\n                  mr.getData(\"authToken\"),\r\n                  function (paymentSubmitOpts) {\r\n                    var modalData = {\r\n                      s1AccountId: mr.getData(\"s1AccountId\"),\r\n                      balanceObj: mr.getData(\"balanceObj\"),\r\n                      authToken: mr.getData(\"authToken\"),\r\n                      selectedRemoteAccount: selectedAccount,\r\n                      successCallback: mr.getData(\"successCallback\"),\r\n                    };\r\n\r\n                    var totalInvoiceAmount = 0;\r\n\r\n                    if (\r\n                      [cw.appEnum.S1RemoteSystem.As400, cw.appEnum.S1RemoteSystem.Cargas].includes(\r\n                        selectedAccount.RemoteSystemId\r\n                      )\r\n                    ) {\r\n                      modalData.balanceObj.OpenInvoices = paymentSubmitOpts.OpenInvoices.map(function (i) {\r\n                        i.InvoiceId =\r\n                          i.InvoiceId && i.InvoiceId > 0 ? i.InvoiceId : i.DocumentTypeDescription;\r\n                        i.InvoiceDateFormatted = moment(i.InvoiceDate).format(\"l\");\r\n                        i.AmountDueFormatted = \"$\" + i.AmountDue.formatMoney(2);\r\n                        i.InvoiceTotalFormatted = \"$\" + i.InvoiceTotal.formatMoney(2);\r\n                        totalInvoiceAmount += i.AmountDue;\r\n                        return i;\r\n                      });\r\n                      modalData.balanceObj.BudgetPayments = paymentSubmitOpts.OpenInvoices.filterSingle(\r\n                        function (i) {\r\n                          if (i.DocumentTypeDescription === \"Budget Payment\") {\r\n                            i.BudgetPaymentFormatted = \"$\" + i.AmountDue.formatMoney(2);\r\n                            i.BudgetPaymentTotalFormatted = \"$\" + i.InvoiceTotal.formatMoney(2);\r\n                            return i;\r\n                          }\r\n                        }\r\n                      );\r\n                    } else {\r\n                      modalData.balanceObj.OpenInvoices = [];\r\n                    }\r\n\r\n                    var ccAmtRemaining =\r\n                      parseFloat(modalData.balanceObj.payNowBalance).toFixed(2) -\r\n                      parseFloat(totalInvoiceAmount).toFixed(2);\r\n                    if (parseInt(ccAmtRemaining).toFixed(2) > 0) {\r\n                      modalData.balanceObj.nonBudgetAndInvoiceBalance = \"$\" + ccAmtRemaining.formatMoney(2);\r\n                    }\r\n\r\n                    modalData.balanceObj.CreditCardProfiles = paymentSubmitOpts.CreditCardPaymentProfiles;\r\n\r\n                    if (\r\n                      modalData.balanceObj.CreditCardProfiles &&\r\n                      modalData.balanceObj.CreditCardProfiles.length > 0\r\n                    ) {\r\n                      modalData.balanceObj.hasCCOnFile = modalData.balanceObj.CreditCardProfiles.some(\r\n                        function (c) {\r\n                          return (\r\n                            c.PaymentProfile &&\r\n                            c.PaymentProfile.PaymentProfiles &&\r\n                            c.PaymentProfile.PaymentProfiles.length > 0\r\n                          );\r\n                        }\r\n                      );\r\n                    }\r\n                    modalData.balanceObj.hasAccountSelection = true;\r\n                    modalData.balanceObj.balanceFormatted = modalData.selectedRemoteAccount.BalanceFormatted;\r\n                    modalData.balanceObj.payNowFormatted = modalData.selectedRemoteAccount.PayNowFormatted;\r\n                    modalData.balanceObj.payNowBalance = modalData.selectedRemoteAccount.PayNowBalance;\r\n\r\n                    if (\r\n                      modalData.balanceObj.AccountBalances &&\r\n                      modalData.balanceObj.AccountBalances.length > 0\r\n                    ) {\r\n                      modalData.balanceObj.AccountBalances.forEach(function (x) {\r\n                        x.obj = JSON.stringify(x);\r\n                        if (parseFloat(x.BudgetBalance)) {\r\n                          x.BudgetBalanceFormatted = \"$\" + x.BudgetBalance.formatMoney(2);\r\n                          x.NonBudgetBalanceFormatted = \"$\" + x.NonBudgetCoveredBalance.formatMoney(2);\r\n                        }\r\n                      });\r\n                    } else if (\r\n                      modalData.balanceObj.AccountBalances &&\r\n                      modalData.balanceObj.AccountBalances.length === 1\r\n                    ) {\r\n                      modalData.balanceObj.BalanceDueFormatted =\r\n                        modalData.balanceObj.AccountBalances[0].BalanceFormatted;\r\n                    }\r\n\r\n                    if (selectedAccount.RemoteSystemId === cw.appEnum.S1RemoteSystem.Nexant) {\r\n                      // we need only EFT Configs found in S1 for Nexant\r\n                      modalData.balanceObj.EftConfigs = modalData.balanceObj.EftConfigs.filter(function (x) {\r\n                        return (\r\n                          x.EftConfigId > 0 ||\r\n                          x.RemoteSystemAccountNumber === selectedAccount.RemoteSystemAccountNumber\r\n                        );\r\n                      });\r\n                    } else if (selectedAccount.RemoteSystemId === cw.appEnum.S1RemoteSystem.Cargas) {\r\n                      // we need only EFT Configs in S1 or our own accounts EFT's\r\n                      modalData.balanceObj.EftConfigs = modalData.balanceObj.EftConfigs.filter(function (x) {\r\n                        return (\r\n                          x.RemoteSystemAccountNumber === selectedAccount.RemoteSystemAccountNumber ||\r\n                          x.EftConfigId > 0\r\n                        );\r\n                      });\r\n                    }\r\n\r\n                    modalData.balanceObj.numPendingPayments = modalData.selectedRemoteAccount.PendingPayments\r\n                      ? modalData.selectedRemoteAccount.PendingPayments.length\r\n                      : null;\r\n                    modalData.balanceObj.pendingPaymentsTotal = 0;\r\n\r\n                    if (\r\n                      modalData.selectedRemoteAccount.PendingPayments &&\r\n                      modalData.selectedRemoteAccount.PendingPayments.length > 0\r\n                    ) {\r\n                      modalData.selectedRemoteAccount.PendingPayments.forEach(function (pp) {\r\n                        modalData.balanceObj.pendingPaymentsTotal += pp.PaymentAmount;\r\n                      });\r\n\r\n                      modalData.balanceObj.pendingPaymentsTotalFormatted =\r\n                        \"$\" + modalData.balanceObj.pendingPaymentsTotal.formatMoney(2);\r\n                    }\r\n\r\n                    modalData.balanceObj.ExpirationYears = cw.utility.getCreditCardExpirationYears();\r\n                    modalData.balanceObj.hasCCOnFile = false;\r\n                    if (\r\n                      modalData.balanceObj.CreditCardProfiles &&\r\n                      modalData.balanceObj.CreditCardProfiles.length > 0\r\n                    ) {\r\n                      modalData.balanceObj.hasCCOnFile = modalData.balanceObj.CreditCardProfiles.some(\r\n                        function (c) {\r\n                          return (\r\n                            c.PaymentProfile &&\r\n                            c.PaymentProfile.PaymentProfiles &&\r\n                            c.PaymentProfile.PaymentProfiles.length > 0\r\n                          );\r\n                        }\r\n                      );\r\n                    }\r\n                    modalData.balanceObj.DraftDays = self.getDraftDays();\r\n\r\n                    if (self.CustomerBudgetEligibility && self.CustomerBudgetEligibility.IsEligible) {\r\n                      self.CustomerBudgetEligibility = cw.pages.budgetManager.getBudgetBalanceByCustomer(\r\n                        selectedAccount.RemoteSystemAccountNumber,\r\n                        self.CustomerBudgetEligibility.ServiceLocations,\r\n                        modalData.balanceObj.payNowBalance,\r\n                        self.CustomerBudgetEligibility\r\n                      );\r\n                      modalData.balanceObj.BudgetPaymentPreview = self.CustomerBudgetEligibility;\r\n                    }\r\n\r\n                    self.renderTemplate(modalData, function (renderedTemplate) {\r\n                      mr.$modalBody.find(\".make-a-payment-wrapper\").replaceWith(renderedTemplate);\r\n\r\n                      if (mr.$modalBody.find(\".required-indicator-wrapper\").length < 1) {\r\n                        mr.$modalFooter.find(\".pending-payments-indicator-wrapper\").remove();\r\n                        mr.$modalFooter\r\n                          .find(\".bootstrap-dialog-footer-buttons\")\r\n                          .prepend(\r\n                            '<div class=\"pull-left fs-xs-12 pt15 pb15 required-indicator-wrapper\"><i class=\"fa fa-star shipley-blue required\" title=\"Required Field\" aria-hidden=\"true\"></i> Required Fields</div>'\r\n                          );\r\n                      }\r\n\r\n                      //nexant doesn't currently support a direct EFT payment, so its hidden here\r\n                      if ($this.data(\"account\").RemoteSystemId === cw.appEnum.S1RemoteSystem.Nexant) {\r\n                        mr.$modalBody.find(\".eft-config-select\").addClass(\"hidden\");\r\n                        mr.$modalBody.find(\"#cc-config\").prop(\"checked\", true);\r\n                        mr.$modalBody.find(\".cc-configure\").removeClass(\"hidden\");\r\n                      }\r\n\r\n                      mr.$modalBody.find('[data-toggle=\"tooltip\"]').tooltip({ trigger: \"hover click\" });\r\n\r\n                      var $balanceDueDisplay = mr.$modalBody.find(\".balance-due\");\r\n                      var $payNowDueDisplay = mr.$modalBody.find(\".pay-now-due\");\r\n                      var $acctPane = mr.$modalBody.find(\".account-select-pane\");\r\n                      var $paymentTypePane = mr.$modalBody.find(\".payment-type-select-pane\");\r\n                      $paymentConfigure = mr.$modalBody.find(\".payment-configure\");\r\n                      $newCCform = mr.$modalBody.find(\".new-credit-card-form\");\r\n                      $existingCcWrapper = mr.$modalBody.find(\".existing-cc-wrapper\");\r\n\r\n                      $balanceDueDisplay.html($this.data(\"account\").BalanceFormatted);\r\n                      $payNowDueDisplay.html($this.data(\"account\").PayNowFormatted);\r\n                      $acctPane.addClass(\"hidden\");\r\n                      $paymentTypePane.removeClass(\"hidden\");\r\n                      mr.setTitle(\"Select Payment Method\");\r\n                      mr.setData(\"selectedRemoteAccount\", $this.data(\"account\"));\r\n                      $makePaymentBtn.removeClass(\"hidden\");\r\n\r\n                      //re-init this for subsequent loads\r\n                      /*\r\n\t\t\t\t\t\t\t\t\t\t\t\tmr.$modalBody.find('.datepicker-wrapper').datetimepicker({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tformat: 'MM/DD/YYYY',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdaysOfWeekDisabled: [0, 6],\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tminDate: moment().add(1, 'day').startOf('day'),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tmaxDate: cw.widget.payment.addWeekDaysToPicker(new Date(), 12)\r\n\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\t\t*/\r\n                      // Controls whether its desktop view or mobile view for Make A Payment Modal After Account Selection\r\n\r\n                      if (isMobile) {\r\n                        mr.$modalBody.find(\"table.mobile-table\").removeClass(\"hidden\");\r\n                        mr.$modalBody.find(\"table.desk-table\").addClass(\"hidden\");\r\n                      } else {\r\n                        mr.$modalBody.find(\"table.mobile-table\").addClass(\"hidden\");\r\n                        mr.$modalBody.find(\"table.desk-table\").removeClass(\"hidden\");\r\n                      }\r\n                      cw.loadingIndicator.stop();\r\n                    });\r\n                  }\r\n                );\r\n              });\r\n\r\n              // #endregion rebind upon selecting billing account\r\n\r\n              var payThis = function ($this) {\r\n                var amount = $this.data(\"amt\").toString().replace(\"$\", \"\").replace(\",\", \"\");\r\n                if ($.isNumeric(amount)) {\r\n                  mr.$modalBody\r\n                    .find('input[data-invoice-id=\"' + $this.data(\"id\") + '\"]')\r\n                    .val(parseFloat(amount).toFixed(2));\r\n                }\r\n\r\n                var valObj = self.validateModal(mr);\r\n                if (valObj.errs.length > 0) {\r\n                  $makePaymentBtn.addClass(\"disabled\");\r\n                } else {\r\n                  $makePaymentBtn.removeClass(\"disabled\");\r\n                }\r\n              };\r\n\r\n              mr.$modalBody.on(\"click\", \".pay-all\", function (e) {\r\n                mr.$modalBody.find(\".pay-this\").each(function () {\r\n                  payThis($(this));\r\n                });\r\n              });\r\n\r\n              mr.$modalBody.on(\"click\", \".pay-this\", function (e) {\r\n                payThis($(this));\r\n              });\r\n\r\n              mr.$modalBody.on(\"change dp.change keyup\", \"input, select, .datepicker-wrapper\", function (e) {\r\n                var $this = $(this);\r\n                if ($this.data(\"amt\")) {\r\n                  mr.$modalBody\r\n                    .find('input[data-invoice-id=\"' + $this.data(\"id\") + '\"]')\r\n                    .val($this.data(\"amt\").toString().replace(\"$\", \"\").replace(\",\", \"\"));\r\n                }\r\n\r\n                var valObj = self.validateModal(mr);\r\n                if (valObj.errs.length > 0) {\r\n                  $makePaymentBtn.addClass(\"disabled\");\r\n                } else {\r\n                  $makePaymentBtn.removeClass(\"disabled\");\r\n                }\r\n              });\r\n\r\n              var balObj = mr.getData(\"balanceObj\");\r\n              var accountBal = balObj.AccountBalances;\r\n              var onBudget = accountBal.some(function (c) {\r\n                return c.OnBudget;\r\n              });\r\n\r\n              mr.$modalBody.on(\"click\", \".budget-signup\", function (e) {\r\n                e.preventDefault();\r\n                cw.loadingIndicator.start();\r\n                cw.pages.budgetManager.budgetEnroll({\r\n                  CustomerBudgetResponse: self.CustomerBudgetEligibility,\r\n                  ServiceLocations: Array.isArray(self.CustomerBudgetEligibility.ServiceLocations)\r\n                    ? self.CustomerBudgetEligibility.ServiceLocations\r\n                    : [self.CustomerBudgetEligibility.ServiceLocations],\r\n                  AccountBalances: accountBal,\r\n                  S1AccountId: mr.getData(\"s1AccountId\"),\r\n                  successCallback: function () {\r\n                    var successCallback = mr.getData(\"successCallback\");\r\n                    if (typeof successCallback === \"function\") {\r\n                      mr.close();\r\n                      successCallback();\r\n                    }\r\n                  },\r\n                });\r\n              });\r\n\r\n              mr.$modalBody.on(\"change\", '[name=\"payment-option\"]', function (e) {\r\n                var $this = $(this);\r\n\r\n                $paymentConfigure.addClass(\"hidden\");\r\n                $this\r\n                  .closest(\".payment-config-option-wrapper\")\r\n                  .find(\".payment-configure\")\r\n                  .removeClass(\"hidden\");\r\n              });\r\n\r\n              mr.$modalBody.on(\"click\", \".add-new-eft\", function (e) {\r\n                e.preventDefault();\r\n                mr.$modalBody.find(\".existing-eft-options\").addClass(\"hidden\");\r\n                mr.$modalBody.find(\".add-new-eft\").addClass(\"hidden\");\r\n                mr.$modalBody.find(\".new-eft-form\").removeClass(\"hidden\");\r\n\r\n                //remove draft date datepicker from modal if Cargas Account\r\n                if (selAcct && selAcct.RemoteSystemId === cw.appEnum.S1RemoteSystem.Cargas) {\r\n                  mr.$modalBody.find(\".draft-date-wrapper\").addClass(\"hidden\");\r\n                } else {\r\n                  mr.$modalBody.find(\".draft-date-wrapper\").removeClass(\"hidden\");\r\n                }\r\n              });\r\n\r\n              mr.$modalBody.on(\"click\", \".use-existing-eft\", function (e) {\r\n                e.preventDefault();\r\n                mr.$modalBody.find(\".new-eft-form\").addClass(\"hidden\");\r\n                mr.$modalBody.find(\".existing-eft-options\").removeClass(\"hidden\");\r\n                mr.$modalBody.find(\".add-new-eft\").removeClass(\"hidden\");\r\n              });\r\n\r\n              mr.$modalBody.on(\"click\", \".add-new-cc\", function (e) {\r\n                e.preventDefault();\r\n                mr.$modalBody.find(\".add-new-cc\").addClass(\"hidden\");\r\n                $existingCcWrapper.addClass(\"hidden\");\r\n                $newCCform.removeClass(\"hidden\");\r\n              });\r\n\r\n              mr.$modalBody.on(\"click\", \".back-to-existing-cc\", function (e) {\r\n                e.preventDefault();\r\n                $newCCform.addClass(\"hidden\");\r\n                $existingCcWrapper.removeClass(\"hidden\");\r\n                mr.$modalBody.find(\".add-new-cc\").removeClass(\"hidden\");\r\n              });\r\n\r\n              /* the html around this was commented out\r\n\t\t\t\t\t\t\tmr.$modalBody.find('.datepicker-wrapper').datetimepicker({\r\n\t\t\t\t\t\t\t\tformat: 'MM/DD/YYYY',\r\n\t\t\t\t\t\t\t\tdaysOfWeekDisabled: [0, 6],\r\n\t\t\t\t\t\t\t\tminDate: moment().add(1, 'day').startOf('day'),\r\n\t\t\t\t\t\t\t\tmaxDate: cw.widget.payment.addWeekDaysToPicker(new Date(), 12)\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\r\n\t\r\n\t\t\t\t\t\t\tmr.$modalBody.on('focus', '.datepicker-wrapper input', function (e) {\r\n\t\t\t\t\t\t\t\t$(this).closest('div').data(\"DateTimePicker\").show();\r\n\t\t\t\t\t\t\t});\r\n\t\r\n\t\t\t\t\t\t\tmr.$modalBody.on(\"dp.change\", '.datepicker-wrapper', function (e) {\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\tvar $this = $(this);\r\n\t\t\t\t\t\t\t\tself.validateModal(mr);\r\n\t\t\t\t\t\t\t\t//\tcw.pages.application.setRequiredStarState($this.find('input'), $this.data('DateTimePicker').date() !== null ? true : false);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t*/\r\n\r\n              mr.$modalBody.on(\"click\", \".view-invoice\", function (e) {\r\n                e.preventDefault();\r\n                var $this = $(this);\r\n                cw.modal.Open({\r\n                  data: { docId: $this.data(\"invoiceDocumentId\") },\r\n                  title: \"Invoice #\" + $this.data(\"invoiceId\"),\r\n                  modalBody: $('<div id=\"pdf-target\"></div>'),\r\n                  size: BootstrapDialog.SIZE_WIDE,\r\n                  successCallback: function (modalRef) {\r\n                    modalRef.close();\r\n                  },\r\n                  onShownCallback: function (modalRef) {\r\n                    var doc = modalRef.getData(\"docId\");\r\n\r\n                    createNonRoutedApp(pdfViewer, {\r\n                      pdfUrl: \"/gen-asset/document-viewer/\" + doc + (authToken ? \"?a=\" + authToken : \"\"),\r\n                      allowDownload: true,\r\n                      onPdfLoaded() {\r\n                        cw.loadingIndicator.stop();\r\n                      },\r\n                    }).mount(\"#pdf-target\");\r\n\r\n                    cw.loadingIndicator.stop();\r\n                  },\r\n                });\r\n              });\r\n\r\n              cw.loadingIndicator.stop();\r\n            },\r\n          });\r\n        },\r\n\r\n        checkForAmexCard: function (cardNumber) {\r\n          var cardno = /^(?:3[47][0-9]{13})$/;\r\n          if (cardNumber.match(cardno)) {\r\n            return true;\r\n          } else {\r\n            return false;\r\n          }\r\n        },\r\n\r\n        recalcTotalPayment: function (mr) {\r\n          // In mobile grab the correct classes from mobile table\r\n          if (isMobile) {\r\n            var $paymentTotal = mr.$modalBody.find(\".payment-amount-mobile\");\r\n            var $budgetAmt = mr.$modalBody.find(\".budget-pay-amount-mobile\");\r\n            var $eftBudgetAmt = mr.$modalBody.find(\".eft-budget-pay-amount-mobile\");\r\n            var $invoiceAmounts = mr.$modalBody.find(\".invoice-pay-amount-mobile\");\r\n            var $additionalPayAmt = mr.$modalBody.find(\".additional-pay-amount-mobile\");\r\n          } else {\r\n            var $paymentTotal = mr.$modalBody.find(\".payment-amount\");\r\n            var $budgetAmt = mr.$modalBody.find(\".budget-pay-amount\");\r\n            var $eftBudgetAmt = mr.$modalBody.find(\".eft-budget-pay-amount\");\r\n            var $invoiceAmounts = mr.$modalBody.find(\".invoice-pay-amount\");\r\n            var $additionalPayAmt = mr.$modalBody.find(\".additional-pay-amount\");\r\n          }\r\n          var total = 0;\r\n          var hasError = false;\r\n          var hasBudget = false;\r\n          var paymentOpts = [];\r\n          var paymentOpt = [];\r\n          if (\r\n            $invoiceAmounts.length > 0 ||\r\n            $additionalPayAmt.length > 0 ||\r\n            $budgetAmt.length > 0 ||\r\n            $eftBudgetAmt.length > 0\r\n          ) {\r\n            $invoiceAmounts.each(function () {\r\n              var $me = $(this);\r\n              var $parent = $me.closest(\"td\");\r\n              var myVal = $.trim($me.val());\r\n\r\n              if (myVal !== \"\") {\r\n                //if value of input is greater than the balance, throw error\r\n                var amtDue = $me.data(\"amountDueId\");\r\n\r\n                if (myVal > amtDue) {\r\n                  $parent.addClass(\"has-error\");\r\n                  hasError = true;\r\n                } else {\r\n                  if ($.isNumeric(myVal) && parseFloat(myVal) > 0) {\r\n                    $parent.removeClass(\"has-error\");\r\n                    paymentOpt = {\r\n                      InvoiceId:\r\n                        $.isNumeric($me.data(\"invoiceId\")) && $me.data(\"invoiceId\") > 0\r\n                          ? $me.data(\"invoiceId\")\r\n                          : null,\r\n                      PaymentAmount: parseFloat(myVal),\r\n                      BudgetPayment: hasBudget,\r\n                      RemoteSystemId: $me.data(\"remoteSystemId\"),\r\n                      RemoteSystemAccountNumber: $me.data(\"remoteSystemAccountNumber\"),\r\n                      RemoteSystemAccountId: $me.data(\"remoteSystemAccountId\"),\r\n                    };\r\n                    total += parseFloat(paymentOpt.PaymentAmount);\r\n                    paymentOpts.push(paymentOpt);\r\n                  } else if ($.isNumeric(myVal) && parseFloat(myVal) === 0) {\r\n                    $parent.removeClass(\"has-error\");\r\n                  } else {\r\n                    $parent.addClass(\"has-error\");\r\n                    hasError = true;\r\n                  }\r\n                }\r\n              } else {\r\n                $parent.removeClass(\"has-error\");\r\n              }\r\n            });\r\n\r\n            $budgetAmt.each(function () {\r\n              var $bMe = $(this);\r\n              var bVal = $.trim($bMe.val());\r\n              if (parseFloat(bVal)) {\r\n                hasBudget = true;\r\n              }\r\n            });\r\n\r\n            $eftBudgetAmt.each(function () {\r\n              var eVal = $.trim($(this).val());\r\n              if (parseFloat(eVal)) {\r\n                hasBudget = true;\r\n              }\r\n            });\r\n\r\n            if ($additionalPayAmt) {\r\n              var val = $.trim($additionalPayAmt.val());\r\n              if (val !== \"\") {\r\n                if ($.isNumeric(val) && parseFloat(val) > 0) {\r\n                  paymentOpt = {\r\n                    InvoiceId: null,\r\n                    PaymentAmount: parseFloat(val),\r\n                    BudgetPayment: false,\r\n                    RemoteSystemId: $additionalPayAmt.data(\"remoteSystemId\"),\r\n                    RemoteSystemAccountNumber: $additionalPayAmt.data(\"remoteSystemAccountNumber\"),\r\n                    RemoteSystemAccountId: $additionalPayAmt.data(\"remoteSystemAccountId\"),\r\n                  };\r\n                  total += parseFloat(paymentOpt.PaymentAmount);\r\n                  paymentOpts.push(paymentOpt);\r\n                } else {\r\n                  hasError = true;\r\n                }\r\n              }\r\n            }\r\n            if ($budgetAmt) {\r\n              var budVal = $.trim($budgetAmt.val());\r\n\r\n              if (budVal !== \"\") {\r\n                if ($.isNumeric(budVal) && parseFloat(budVal) > 0) {\r\n                  paymentOpt = {\r\n                    InvoiceId: null,\r\n                    PaymentAmount: parseFloat(budVal),\r\n                    BudgetPayment: hasBudget,\r\n                    RemoteSystemId: $additionalPayAmt.data(\"remoteSystemId\"),\r\n                    RemoteSystemAccountNumber: $additionalPayAmt.data(\"remoteSystemAccountNumber\"),\r\n                    RemoteSystemAccountId: $additionalPayAmt.data(\"remoteSystemAccountId\"),\r\n                  };\r\n                  total += parseFloat(paymentOpt.PaymentAmount);\r\n                  paymentOpts.push(paymentOpt);\r\n                } else {\r\n                  hasError = true;\r\n                }\r\n              }\r\n            }\r\n            if ($eftBudgetAmt) {\r\n              var eftBudVal = $.trim($eftBudgetAmt.val());\r\n\r\n              if (eftBudVal !== \"\") {\r\n                if ($.isNumeric(eftBudVal) && parseFloat(eftBudVal) > 0) {\r\n                  paymentOpt = {\r\n                    InvoiceId: null,\r\n                    PaymentAmount: parseFloat(eftBudVal),\r\n                    BudgetPayment: hasBudget,\r\n                    RemoteSystemId: $additionalPayAmt.data(\"remoteSystemId\"),\r\n                    RemoteSystemAccountNumber: $additionalPayAmt.data(\"remoteSystemAccountNumber\"),\r\n                    RemoteSystemAccountId: $additionalPayAmt.data(\"remoteSystemAccountId\"),\r\n                  };\r\n                  total += parseFloat(paymentOpt.PaymentAmount);\r\n                  paymentOpts.push(paymentOpt);\r\n                } else {\r\n                  hasError = true;\r\n                }\r\n              }\r\n            }\r\n\r\n            if (!hasError) {\r\n              $paymentTotal.val(total.formatMoney(2));\r\n              mr.$modalBody.find(\".payment-amount-display\").html(\"$\" + total.formatMoney(2));\r\n              mr.setData(\"paymentDetails\", paymentOpts);\r\n            } else {\r\n              $paymentTotal.val(\"--\");\r\n              mr.$modalBody.find(\".payment-amount-display\").html(\"--\");\r\n              mr.setData(\"paymentDetails\", null);\r\n            }\r\n          }\r\n\r\n          return {\r\n            hasError: hasError,\r\n            paymentOptions: paymentOpts,\r\n          };\r\n        },\r\n        renderTemplate: function (dataObj, successCallback) {\r\n          cw.templating.GetRenderedTemplateHTML(\r\n            \"MakePayment.html\",\r\n            cw.appEnum.TemplateType.CwWidget,\r\n            dataObj.balanceObj,\r\n            function (renderedTmpl) {\r\n              successCallback(renderedTmpl);\r\n            }\r\n          );\r\n        },\r\n        getPaymentSubmittalOptions: function (s1AccountId, remoteSystemAccount, authToken, successCallback) {\r\n          cw.loadingIndicator.start();\r\n          cw.webservices.getJson(\r\n            \"S1AccountManager/get-payment-submittal-options\",\r\n            {\r\n              S1AccountId: s1AccountId,\r\n              AuthToken: authToken,\r\n              AccountMapping: remoteSystemAccount,\r\n            },\r\n            function (paymentSubmittalOpts) {\r\n              successCallback(paymentSubmittalOpts);\r\n              cw.loadingIndicator.stop();\r\n            }\r\n          );\r\n        },\r\n        handleSubmit: function (mr) {\r\n          var self = cw.widget.payment;\r\n          self.modalRef = mr; //save this here so that the authorized.net 'callback' can have access to it\r\n          var $errPnl = mr.$modalBody.find(\".err-panel\");\r\n          cw.alert.ClearAlert($errPnl);\r\n          var valObj = self.validateModal(mr);\r\n          var remoteAccount = mr.getData(\"selectedRemoteAccount\");\r\n\r\n          if (valObj.errs.length === 0) {\r\n            //success very nice\r\n\r\n            cw.loadingIndicator.start();\r\n            //get mode we are in...\r\n            if (mr.$modalBody.find('[name=\"payment-option\"][value=\"credit-card\"]:checked').length > 0) {\r\n              //credit card mode\r\n\r\n              if (mr.$modalBody.find(\".new-credit-card-form\").hasClass(\"hidden\")) {\r\n                //existing card\r\n                cw.webservices.getJson(\r\n                  \"S1AccountManager/process-cc-payment-with-existing-card\",\r\n                  {\r\n                    S1AccountId: mr.getData(\"s1AccountId\"),\r\n                    RemoteAccount: remoteAccount,\r\n                    PaymentProfileId: valObj.ccObj.paymentProfileId,\r\n                    PaymentAmount: valObj.paymentAmount,\r\n                    PaymentAuthToken: mr.getData(\"authToken\"),\r\n                    PaymentDetails: valObj.PaymentDetails,\r\n                    Division: mr.getData(\"division\") ?? remoteAccount.Division,\r\n                  },\r\n                  function (resp) {\r\n                    if (resp.WasSuccess) {\r\n                      cw.modal.Alert({\r\n                        title: \"Payment successful\",\r\n                        text:\r\n                          \"Thank you! Your payment has been successfully processed. Please allow 24-48 hours for it to reflect on your account. Your Payment Confirmation ID is:\" +\r\n                          resp.PaymentId,\r\n                      });\r\n                      var cb = self.modalRef.getData(\"successCallback\");\r\n\r\n                      if (typeof cb === \"function\") {\r\n                        cb();\r\n                      }\r\n                      self.modalRef.close();\r\n                      cw.loadingIndicator.stop();\r\n                    } else {\r\n                      cw.modal.Alert(self.getCCErr(resp));\r\n                      cw.loadingIndicator.stop();\r\n                    }\r\n                  }\r\n                );\r\n              } else {\r\n                //new CC\r\n                cw.webservices.getJson(\r\n                  \"S1AccountManager/get-cc-payment-token\",\r\n                  {\r\n                    S1AccountId: mr.getData(\"s1AccountId\"),\r\n                    RemoteAccount: mr.getData(\"selectedRemoteAccount\"),\r\n                    PaymentAuthToken: mr.getData(\"authToken\"),\r\n                    Division: mr.getData(\"division\"),\r\n                  },\r\n                  function (tokenObj) {\r\n                    if (tokenObj) {\r\n                      var secureData = {},\r\n                        authData = {},\r\n                        cardData = {};\r\n                      cardData.cardNumber = valObj.ccObj.ccNum;\r\n                      cardData.month = valObj.ccObj.ccMonth;\r\n                      cardData.year = valObj.ccObj.ccYear;\r\n                      cardData.zip = valObj.ccObj.billZip;\r\n                      cardData.fullName = valObj.ccObj.cardHolderName;\r\n                      cardData.cardCode = valObj.ccObj.cvv2;\r\n                      secureData.cardData = cardData;\r\n                      authData.clientKey = tokenObj.PublicClientKey;\r\n                      authData.apiLoginID = tokenObj.ApiLoginId;\r\n                      secureData.authData = authData;\r\n                      window.accountHandleAuthnetResponse = self.getAcceptJsNewCcResp;\r\n                      Accept.dispatchData(secureData, \"accountHandleAuthnetResponse\");\r\n                    }\r\n                  }\r\n                );\r\n              }\r\n            } else if (mr.$modalBody.find('input[name=\"payment-option\"][value=\"eft\"]:checked').length > 0) {\r\n              //eft mode\r\n\r\n              var eftCallbackFunc = function (resp) {\r\n                var msg = \"\";\r\n                if (resp.EftPaymentResponse) {\r\n                  switch (resp.EftPaymentResponse) {\r\n                    case self.EftPaymentResponse.Success:\r\n                      msg =\r\n                        \"Your EFT payment has been submitted.  Please allow 24-48 hours for your account to reflect these changes. Your Payment Confirmation ID is: \" +\r\n                        resp.EftPaymentConfirmationNum;\r\n                      break;\r\n                    case self.EftPaymentResponse.UnableToVerifyBankAccount:\r\n                      msg =\r\n                        \"We were unable to verify your bank account information. Please verify information and try again.\";\r\n                      break;\r\n                    case self.EftPaymentResponse.EftPaymentSubmitFail:\r\n                      msg =\r\n                        \"There was an error submitting your EFT payment. Please contact customer support for more information.\";\r\n                      break;\r\n                    case self.EftPaymentResponse.OnetimeEftProfileSaveFail:\r\n                    case self.EftPaymentResponse.EftProfileSaveFail:\r\n                      msg +=\r\n                        \"There was an error saving your bank account to the backend system. Please verify inforamtion any try again.\";\r\n                      break;\r\n                    default:\r\n                      msg = \"An error occurred submitting your EFT payment\";\r\n                      break;\r\n                  }\r\n                  var successCb = mr.getData(\"successCallback\");\r\n\r\n                  if (typeof successCb === \"function\") {\r\n                    successCb();\r\n                  }\r\n                } else {\r\n                  msg = \"An error occurred submitting your EFT payment\";\r\n                }\r\n\r\n                cw.modal.Alert({\r\n                  title: \"EFT Payment\",\r\n                  text: msg,\r\n                });\r\n\r\n                if (resp.EftPaymentResponse === self.EftPaymentResponse.Success) {\r\n                  mr.close();\r\n                }\r\n\r\n                cw.loadingIndicator.stop();\r\n              };\r\n\r\n              if (mr.$modalBody.find(\".new-eft-form\").hasClass(\"hidden\")) {\r\n                //existing EFT\r\n                cw.webservices.getJson(\r\n                  \"S1AccountManager/make-eft-payment-with-existing-eft-config\",\r\n                  {\r\n                    S1AccountId: mr.getData(\"s1AccountId\"),\r\n                    RemoteAccount: mr.getData(\"selectedRemoteAccount\"),\r\n                    PaymentAmount: valObj.paymentAmount.formatMoney(2),\r\n                    EftConfigId: valObj.eftObj.eftConfigObjId,\r\n                    PaymentAuthToken: mr.getData(\"authToken\"),\r\n                    PaymentDate: valObj.eftObj.draftDate,\r\n                    PaymentDetails: mr.getData(\"paymentDetails\"),\r\n                    CustomerBankAccountId: valObj.eftObj.customerBankId,\r\n                  },\r\n                  eftCallbackFunc\r\n                );\r\n              } else {\r\n                // new eft\r\n\r\n                cw.webservices.getJson(\r\n                  \"S1AccountManager/make-eft-payment-with-new-eft-config\",\r\n                  {\r\n                    S1AccountId: mr.getData(\"s1AccountId\"),\r\n                    RemoteAccount: mr.getData(\"selectedRemoteAccount\"),\r\n                    PaymentAmount: valObj.paymentAmount.formatMoney(2),\r\n                    EftConfigNickName: valObj.eftObj.nickname,\r\n                    BankName: valObj.eftObj.bankName,\r\n                    RoutingNumber: valObj.eftObj.routingNbr,\r\n                    AccountNumber: valObj.eftObj.acctNbr,\r\n                    AccountType: valObj.eftObj.acctType,\r\n                    SaveForLater: valObj.eftObj.saveForLater,\r\n                    PaymentAuthToken: mr.getData(\"authToken\"),\r\n                    PaymentDate: valObj.eftObj.draftDate,\r\n                    PaymentDetails: mr.getData(\"paymentDetails\"),\r\n                  },\r\n                  eftCallbackFunc\r\n                );\r\n              }\r\n            }\r\n          } else {\r\n            cw.alert.Alert(valObj.errs, $errPnl);\r\n          }\r\n        },\r\n        getDraftDays: function () {\r\n          var rtn = [];\r\n          for (var i = 0; i <= 31; i++) {\r\n            rtn.push(i);\r\n          }\r\n          return rtn;\r\n        },\r\n        getAcceptJsNewCcResp: function (authNetResp) {\r\n          var self = cw.widget.payment;\r\n          var $errPnl = self.modalRef.$modalBody.find(\".pnl-err\");\r\n          var remoteAccount = self.modalRef.getData(\"selectedRemoteAccount\");\r\n          //authorized are clowns and insist this is a window object cause their code sucks and don't know what a callback/promise are\r\n          cw.alert.ClearAlert($errPnl);\r\n          var $payAmount = self.modalRef.$modalBody.find(\".payment-amount\").val().replace(\",\", \"\");\r\n          // In mobile $payAmount grabs the mobile table class for CC payment\r\n          if (isMobile) {\r\n            $payAmount = self.modalRef.$modalBody.find(\".payment-amount-mobile\").val().replace(\",\", \"\");\r\n          }\r\n          cw.webservices.getJson(\r\n            \"S1AccountManager/process-auth-net-accept-js-response-and-charge-card\",\r\n            {\r\n              AuthorizedAcceptJsResponse: JSON.stringify(authNetResp),\r\n              S1AccountId: self.modalRef.getData(\"s1AccountId\"),\r\n              RemoteAccount: remoteAccount,\r\n              PaymentAmount: parseFloat($payAmount),\r\n              SaveForLater: self.modalRef.$modalBody.find(\"#save-cc-acct:checked\").length > 0,\r\n              PaymentAuthToken: self.modalRef.getData(\"authToken\"),\r\n              PaymentDetails: self.modalRef.getData(\"paymentDetails\"),\r\n              Division: self.modalRef.getData(\"division\") ?? remoteAccount.Division,\r\n            },\r\n            function (resp) {\r\n              if (resp.WasSuccess) {\r\n                cw.modal.Alert({\r\n                  title: \"Payment successful\",\r\n                  text:\r\n                    \"Thank you! Your payment has been successfully processed. Please allow 24-48 hours for it to reflect on your account. Your Payment Confirmation ID is :\" +\r\n                    resp.PaymentId,\r\n                });\r\n                var cb = self.modalRef.getData(\"successCallback\");\r\n\r\n                if (typeof cb === \"function\") {\r\n                  cb();\r\n                }\r\n                self.modalRef.close();\r\n                cw.loadingIndicator.stop();\r\n              } else {\r\n                cw.modal.Alert(self.getCCErr(resp));\r\n                cw.loadingIndicator.stop();\r\n              }\r\n            }\r\n          );\r\n        },\r\n        getCCErr: function (resp) {\r\n          var msg = { title: \"Error\" };\r\n          var ccResp = cw.widget.payment.S1CcTransactionResponse;\r\n\r\n          switch (resp.TransactionResponse) {\r\n            case ccResp.TransactionProcessedButNotApproved:\r\n              msg.text = \"Transaction was not approved\";\r\n              break;\r\n            case ccResp.NoResponseFromCreditCardProcessorWhileAddingCard:\r\n              msg.text = \"No response from credit card processor\";\r\n              break;\r\n            case ccResp.AddingCardToInvalidAccount:\r\n              msg.text = \"Invalid billing account selected\";\r\n              break;\r\n            case ccResp.CouldNotDetermineCustomerPaymentId:\r\n              msg.text = \"Could not determine credit card payment id\";\r\n              break;\r\n            case ccResp.CouldParseProcessorAddPaymentMethodResponse:\r\n              msg.text = \"Could not process credit card processor response\";\r\n              break;\r\n            case ccResp.SuccessButCouldNotReportTransactionToRemoteSystem:\r\n              msg.text =\r\n                \"Credit card was successfully charged however payment could not be applied to billing system\";\r\n              break;\r\n            case ccResp.PaymentAmountRequired:\r\n              msg.text = \"Missing payment amount\";\r\n              break;\r\n            case ccResp.CouldNotDetermineCustomerUser:\r\n              msg.text = \"Could not determine customer account\";\r\n              break;\r\n            case ccResp.CreditCardNumberOrExpirationDateMissing:\r\n              msg.text = \"Credit card number or expiration date missing\";\r\n              break;\r\n            case ccResp.CreditCardDidNotPassLuhnCheck:\r\n              msg.text = \"Credit card number invalid\";\r\n              break;\r\n            case ccResp.CreditCardInvalidExpiration:\r\n              msg.text = \"Invalid expiration date (must be in the future)\";\r\n              break;\r\n            case ccResp.CreditCardInvalidCvv2:\r\n              msg.text = \"Invalid card cvv code\";\r\n              break;\r\n            case ccResp.CreditCardInvalidZipCode:\r\n              msg.text = \"Invalid card billing zip code\";\r\n              break;\r\n            case ccResp.CreditCardInvalidCardholderName:\r\n              msg.text = \"Invalid card cardholder name\";\r\n              break;\r\n            case ccResp.CreditCardSystemError:\r\n              msg.text = \"Unknown system error\";\r\n              break;\r\n            default:\r\n              msg = { title: \"Unknown Error\", text: \"An unknown error occurred\" };\r\n          }\r\n\r\n          return msg;\r\n        },\r\n\r\n        addWeekDaysToPicker: function (date, days) {\r\n          var dayCounter = 1;\r\n          date.setDate(date.getDate());\r\n          if (days > 0) {\r\n            while (dayCounter < days) {\r\n              date.setDate(date.getDate() + 1);\r\n              var check = date.getDay();\r\n              if (check === 0 || check === 6) {\r\n                // Nothing\r\n              } else {\r\n                dayCounter++;\r\n              }\r\n            }\r\n          }\r\n          return date;\r\n        },\r\n\r\n        validateModal: function (mr) {\r\n          var self = this;\r\n          var rtnObj = {};\r\n          var errs = [];\r\n\r\n          var paymentOpts = self.recalcTotalPayment(mr);\r\n          var selAcct = mr.getData(\"selectedRemoteAccount\");\r\n          var $paymentAmount = mr.$modalBody.find(\".payment-amount\");\r\n          // In mobile $payAmount grabs the mobile table classes for validation\r\n          if (isMobile) {\r\n            $paymentAmount = mr.$modalBody.find(\".payment-amount-mobile\");\r\n          }\r\n\r\n          var paymentAmount = $paymentAmount.val();\r\n          rtnObj.PaymentDetails = paymentOpts.paymentOptions;\r\n\r\n          if (paymentAmount.includes(\",\")) {\r\n            paymentAmount = paymentAmount.replace(/\\,/g, \"\");\r\n          }\r\n\r\n          mr.$modalBody.find(\".accepted-credit-cards\").tooltip(\"destroy\");\r\n\r\n          if (!paymentAmount || paymentAmount === \"\") {\r\n            errs.push({ text: \"Payment amount is required\", $el: $paymentAmount });\r\n            cw.pages.application.setRequiredStarState($paymentAmount, false);\r\n          } else if (paymentOpts.hasError) {\r\n            errs.push({ text: \"Invoice payment amount is invalid\", $el: $paymentAmount });\r\n            cw.pages.application.setRequiredStarState($paymentAmount, false);\r\n          } else if (paymentAmount && !$.isNumeric(paymentAmount)) {\r\n            errs.push({ text: \"Payment amount is invalid\", $el: $paymentAmount });\r\n            cw.pages.application.setRequiredStarState($paymentAmount, false);\r\n          } else if ($.isNumeric(paymentAmount) && parseFloat(paymentAmount) <= 0) {\r\n            errs.push({ text: \"Payment amount should be greater than $0.00\", $el: $paymentAmount });\r\n            cw.pages.application.setRequiredStarState($paymentAmount, false);\r\n          } else {\r\n            cw.pages.application.setRequiredStarState($paymentAmount, true);\r\n            rtnObj.paymentAmount = parseFloat(paymentAmount);\r\n          }\r\n\r\n          //determine if any of the payments are Budget Payments\r\n\r\n          if (mr.$modalBody.find('[name=\"payment-option\"]:checked').length < 1) {\r\n            errs.push({ text: \"Payment Type (bank or credit card) is required\" });\r\n          } else {\r\n            if (mr.$modalBody.find('[name=\"payment-option\"]:checked').val() === \"credit-card\") {\r\n              if (!mr.$modalBody.find(\".new-credit-card-form\").hasClass(\"hidden\")) {\r\n                //new credit card form\r\n\r\n                var $ccNum = mr.$modalBody.find(\".credit-card-number\");\r\n                var ccNum = $ccNum.val().replace(/[^0-9]+/gi, \"\");\r\n                var ccNumAmex = self.checkForAmexCard(ccNum);\r\n\r\n                var $cardHolderName = mr.$modalBody.find(\".credit-card-cardholder-name\");\r\n                var cardHolderName = $.trim($cardHolderName.val());\r\n\r\n                var $ccMonth = mr.$modalBody.find(\".cc-exp-month\");\r\n                var ccMonth = $ccMonth.val();\r\n\r\n                var $ccYear = mr.$modalBody.find(\".cc-exp-year\");\r\n                var ccYear = $ccYear.val();\r\n\r\n                var $cvv2 = mr.$modalBody.find(\".credit-card-cvv\");\r\n                var cvv2 = $.trim($cvv2.val());\r\n\r\n                var $billZip = mr.$modalBody.find(\".credit-card-billing-zip\");\r\n                var billZip = $.trim($billZip.val());\r\n\r\n                var ccObj = {\r\n                  ccNum: ccNum,\r\n                  cardHolderName: cardHolderName,\r\n                  ccMonth: ccMonth,\r\n                  ccYear: ccYear,\r\n                  cvv2: cvv2,\r\n                  billZip: billZip,\r\n                  saveForLater: mr.$modalBody.find(\"#save-cc-acct:checked\").length > 0,\r\n                };\r\n\r\n                if (!ccNum) {\r\n                  errs.push({ text: \"Credit Card Number is required\", $el: $ccNum });\r\n                  cw.pages.application.setRequiredStarState($ccNum, false);\r\n                } else if (!ccNum.luhnCheck()) {\r\n                  errs.push({ text: \"Credit Card Number appears invalid\", $el: this.$ccNum });\r\n                  cw.pages.application.setRequiredStarState($ccNum, false);\r\n                } else if (ccNumAmex) {\r\n                  var amexCcToolTip = mr.$modalBody.find(\".accepted-credit-cards\");\r\n                  var initializeToolTip = amexCcToolTip.tooltip({\r\n                    trigger: \"manual\",\r\n                    placement: \"right\",\r\n                    html: true,\r\n                    title: \"Unfortunately, we do not accept American Express Credit Cards\",\r\n                  });\r\n                  initializeToolTip.tooltip(\"show\");\r\n                  errs.push({\r\n                    text: \"American Express credit cards are not currently accepted\",\r\n                    $el: this.$ccNum,\r\n                  });\r\n                } else {\r\n                  cw.pages.application.setRequiredStarState($ccNum, true);\r\n                  mr.$modalBody.find(\".accepted-credit-cards\").tooltip(\"destroy\");\r\n                }\r\n\r\n                if (!cardHolderName) {\r\n                  errs.push({ text: \"Card Holder's Name is required\", $el: $cardHolderName });\r\n                  cw.pages.application.setRequiredStarState($cardHolderName, false);\r\n                } else {\r\n                  cw.pages.application.setRequiredStarState($cardHolderName, true);\r\n                }\r\n\r\n                var badMonth = false;\r\n                if (!ccMonth) {\r\n                  errs.push({ text: \"Credit Card Expiration month is required\", $el: $ccMonth });\r\n                  badMonth = true;\r\n                } else if (!$.isNumeric(ccMonth) || parseInt(ccMonth) > 12 || parseInt(ccMonth) < 1) {\r\n                  errs.push({ text: \"Credit Card Expiration month appears invalid\", $el: $ccMonth });\r\n                  badMonth = true;\r\n                }\r\n\r\n                var badYear = false;\r\n                if (!ccYear) {\r\n                  errs.push({ text: \"Credit Card Expiration year is required\", $el: $ccYear });\r\n                  badYear = true;\r\n                } else if (!$.isNumeric(ccYear) || parseInt(ccYear) < moment().year()) {\r\n                  errs.push({ text: \"Credit Card Expiration year appears invalid\", $el: $ccYear });\r\n                  badYear = true;\r\n                }\r\n\r\n                if (!badMonth || !badYear) {\r\n                  var ccExpMoment = moment(parseInt(ccMonth) + \"/1/\" + parseInt(ccYear), \"M/D/YYYY\").endOf(\r\n                    \"month\"\r\n                  );\r\n\r\n                  if (ccExpMoment.isBefore(moment().endOf(\"day\"))) {\r\n                    errs.push({ text: \"Credit Card Expiration year appears expired\", $el: $ccYear });\r\n                    cw.pages.application.setRequiredStarState($ccYear, false);\r\n                  } else {\r\n                    cw.pages.application.setRequiredStarState($ccYear, true);\r\n                  }\r\n                } else {\r\n                  cw.pages.application.setRequiredStarState($ccYear, true);\r\n                }\r\n\r\n                if (cvv2 === \"\") {\r\n                  errs.push({ text: \"Credit card security/cvv code required\", $el: $cvv2 });\r\n                  cw.pages.application.setRequiredStarState($cvv2, false);\r\n                } else if (!$.isNumeric(cvv2) || cvv2.length < 3 || cvv2.length > 4) {\r\n                  errs.push({ text: \"Credit card security/cvv code appears invalid\", $el: $cvv2 });\r\n                  cw.pages.application.setRequiredStarState($cvv2, false);\r\n                } else {\r\n                  cw.pages.application.setRequiredStarState($cvv2, true);\r\n                }\r\n\r\n                if (billZip === \"\") {\r\n                  errs.push({ text: \"Credit card billing zip is required\", $el: $billZip });\r\n                  cw.pages.application.setRequiredStarState($billZip, false);\r\n                } else if (!billZip.match(/[0-9]{5}/)) {\r\n                  errs.push({ text: \"Credit card billing zip appears invalid\", $el: $billZip });\r\n                  cw.pages.application.setRequiredStarState($billZip, false);\r\n                } else {\r\n                  cw.pages.application.setRequiredStarState($billZip, true);\r\n                }\r\n\r\n                if (errs.length === 0) {\r\n                  rtnObj.ccObj = ccObj;\r\n                }\r\n              } else {\r\n                //existing credit card\r\n                if (mr.$modalBody.find('input[name=\"cc-selection\"]:checked').length <= 0) {\r\n                  errs.push({ text: \"A credit card selection is required\" });\r\n                } else {\r\n                  rtnObj.ccObj = {\r\n                    paymentProfileId: mr.$modalBody.find('input[name=\"cc-selection\"]:checked').val(),\r\n                  };\r\n                }\r\n              }\r\n            } else if (mr.$modalBody.find('[name=\"payment-option\"]:checked').val() === \"eft\") {\r\n              if (mr.$modalBody.find(\".new-eft-form\").hasClass(\"hidden\")) {\r\n                //existing eft\r\n\r\n                if (mr.$modalBody.find('input[name=\"eft-selection\"]:checked').length <= 0) {\r\n                  errs.push({ text: \"An EFT account selection is required\" });\r\n                } else {\r\n                  rtnObj.eftObj = {\r\n                    eftConfigObjId: parseInt(\r\n                      mr.$modalBody.find('input[name=\"eft-selection\"]:checked').data(\"accountId\")\r\n                    ),\r\n                    customerBankId: parseInt(\r\n                      mr.$modalBody.find('input[name=\"eft-selection\"]:checked').data(\"customerBankId\")\r\n                    ),\r\n                  };\r\n                }\r\n              } else {\r\n                //new eft\r\n\r\n                if (mr.$modalBody.find('input[name=\"eft-account-type\"]:checked').length <= 0) {\r\n                  errs.push({ text: \"A bank account type selection is required\" });\r\n                  cw.pages.application.setRequiredStarState(mr.$modalBody.find(\"#eft-checking\"), false);\r\n                } else {\r\n                  cw.pages.application.setRequiredStarState(mr.$modalBody.find(\"#eft-checking\"), true);\r\n                }\r\n\r\n                var $bankName = mr.$modalBody.find(\".eft-bank-name\");\r\n                var bankName = $.trim($bankName.val());\r\n                if (bankName === \"\") {\r\n                  errs.push({ text: \"Bank name is required\", $el: $bankName });\r\n                  cw.pages.application.setRequiredStarState($bankName, false);\r\n                } else {\r\n                  cw.pages.application.setRequiredStarState($bankName, true);\r\n                }\r\n\r\n                var $routingNbr = mr.$modalBody.find(\".eft-bank-routing-number\");\r\n                var routingNbr = $.trim($routingNbr.val()).replace(/[^0-9]+/g, \"\");\r\n                if (routingNbr === \"\") {\r\n                  errs.push({\r\n                    text: \"Bank routing number is required\",\r\n                    $el: $routingNbr,\r\n                  });\r\n                  cw.pages.application.setRequiredStarState($routingNbr, false);\r\n                } else if (routingNbr.length !== 9) {\r\n                  errs.push({ text: \"Bank routing number should be 9 digits\", $el: $routingNbr });\r\n                  cw.pages.application.setRequiredStarState($routingNbr, false);\r\n                } else {\r\n                  var n = 0;\r\n                  for (var i = 0; i < routingNbr.length; i += 3) {\r\n                    n +=\r\n                      parseInt(routingNbr.charAt(i), 10) * 3 +\r\n                      parseInt(routingNbr.charAt(i + 1), 10) * 7 +\r\n                      parseInt(routingNbr.charAt(i + 2), 10);\r\n                  }\r\n\r\n                  // If the resulting sum is an even multiple of ten (but not zero),\r\n                  // the aba routing number is good.\r\n\r\n                  if (n !== 0 && n % 10 === 0) {\r\n                    cw.pages.application.setRequiredStarState($routingNbr, true);\r\n                  } else {\r\n                    errs.push({ text: \"Bank routing number looks invalid\", $el: $routingNbr });\r\n                    cw.pages.application.setRequiredStarState($routingNbr, false);\r\n                  }\r\n                }\r\n\r\n                var $acctNbr = mr.$modalBody.find(\".eft-bank-account-number\");\r\n                var acctNbr = $.trim($acctNbr.val());\r\n                if (acctNbr === \"\") {\r\n                  errs.push({ text: \"Bank account number is required\", $el: $acctNbr });\r\n                  cw.pages.application.setRequiredStarState($acctNbr, false);\r\n                } else {\r\n                  cw.pages.application.setRequiredStarState($acctNbr, true);\r\n                }\r\n\r\n                /*\r\n\t\t\t\t\t\t\t\tvar $paymentDateWrapper = mr.$modalBody.find('.datepicker-wrapper');\r\n\t\t\t\t\t\t\t\tvar $paymentDate = $paymentDateWrapper.find('input');\r\n\r\n\t\t\t\t\t\t\t\tif (selAcct && selAcct.RemoteSystemId !== cw.appEnum.S1RemoteSystem.Cargas) {\r\n\t\t\t\t\t\t\t\t\tif ($paymentDate.val()) {\r\n\t\t\t\t\t\t\t\t\t\tvar paymentDate = $paymentDateWrapper.data('DateTimePicker').date();\r\n\t\t\t\t\t\t\t\t\t\tif (paymentDate.isValid()) {\r\n\t\t\t\t\t\t\t\t\t\t\tcw.pages.application.setRequiredStarState($paymentDate, true);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\terrs.push({ text: 'Please select a valid date to draft account', $el: $paymentDate });\r\n\t\t\t\t\t\t\t\t\t\tcw.pages.application.setRequiredStarState($paymentDate, false);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t*/\r\n\r\n                if (errs.length === 0) {\r\n                  rtnObj.eftObj = {\r\n                    bankName: bankName,\r\n                    acctType: mr.$modalBody.find('input[name=\"eft-account-type\"]:checked').val(),\r\n                    routingNbr: routingNbr,\r\n                    acctNbr: acctNbr,\r\n                    saveForLater: mr.$modalBody.find(\"#save-eft-acct:checked\").length > 0,\r\n                    nickname: $.trim(mr.$modalBody.find(\".eft-account-nickname\").val()),\r\n                    //draftDate: moment($paymentDate).format(\"YYYYMMDD\")\r\n                    draftDate: moment().format(\"YYYYMMDD\"),\r\n                  };\r\n                }\r\n              }\r\n            }\r\n          }\r\n\r\n          rtnObj.errs = errs;\r\n          return rtnObj;\r\n        },\r\n      },\r\n    },\r\n  });\r\n})((window.cw = window.cw || {}), jQuery);\r\n","var map = {\n\t\"./af\": 25177,\n\t\"./af.js\": 25177,\n\t\"./ar\": 61509,\n\t\"./ar-dz\": 41488,\n\t\"./ar-dz.js\": 41488,\n\t\"./ar-kw\": 58676,\n\t\"./ar-kw.js\": 58676,\n\t\"./ar-ly\": 42353,\n\t\"./ar-ly.js\": 42353,\n\t\"./ar-ma\": 24496,\n\t\"./ar-ma.js\": 24496,\n\t\"./ar-ps\": 6947,\n\t\"./ar-ps.js\": 6947,\n\t\"./ar-sa\": 82682,\n\t\"./ar-sa.js\": 82682,\n\t\"./ar-tn\": 89756,\n\t\"./ar-tn.js\": 89756,\n\t\"./ar.js\": 61509,\n\t\"./az\": 95533,\n\t\"./az.js\": 95533,\n\t\"./be\": 28959,\n\t\"./be.js\": 28959,\n\t\"./bg\": 47777,\n\t\"./bg.js\": 47777,\n\t\"./bm\": 54903,\n\t\"./bm.js\": 54903,\n\t\"./bn\": 61290,\n\t\"./bn-bd\": 17357,\n\t\"./bn-bd.js\": 17357,\n\t\"./bn.js\": 61290,\n\t\"./bo\": 31545,\n\t\"./bo.js\": 31545,\n\t\"./br\": 11470,\n\t\"./br.js\": 11470,\n\t\"./bs\": 66810,\n\t\"./bs.js\": 66810,\n\t\"./ca\": 7306,\n\t\"./ca.js\": 7306,\n\t\"./cs\": 56464,\n\t\"./cs.js\": 56464,\n\t\"./cv\": 73635,\n\t\"./cv.js\": 73635,\n\t\"./cy\": 64226,\n\t\"./cy.js\": 64226,\n\t\"./da\": 93601,\n\t\"./da.js\": 93601,\n\t\"./de\": 77853,\n\t\"./de-at\": 26111,\n\t\"./de-at.js\": 26111,\n\t\"./de-ch\": 54697,\n\t\"./de-ch.js\": 54697,\n\t\"./de.js\": 77853,\n\t\"./dv\": 60708,\n\t\"./dv.js\": 60708,\n\t\"./el\": 54691,\n\t\"./el.js\": 54691,\n\t\"./en-au\": 53872,\n\t\"./en-au.js\": 53872,\n\t\"./en-ca\": 28298,\n\t\"./en-ca.js\": 28298,\n\t\"./en-gb\": 56195,\n\t\"./en-gb.js\": 56195,\n\t\"./en-ie\": 66584,\n\t\"./en-ie.js\": 66584,\n\t\"./en-il\": 65543,\n\t\"./en-il.js\": 65543,\n\t\"./en-in\": 9033,\n\t\"./en-in.js\": 9033,\n\t\"./en-nz\": 79402,\n\t\"./en-nz.js\": 79402,\n\t\"./en-sg\": 43004,\n\t\"./en-sg.js\": 43004,\n\t\"./eo\": 32934,\n\t\"./eo.js\": 32934,\n\t\"./es\": 97650,\n\t\"./es-do\": 20838,\n\t\"./es-do.js\": 20838,\n\t\"./es-mx\": 17730,\n\t\"./es-mx.js\": 17730,\n\t\"./es-us\": 56575,\n\t\"./es-us.js\": 56575,\n\t\"./es.js\": 97650,\n\t\"./et\": 3035,\n\t\"./et.js\": 3035,\n\t\"./eu\": 3508,\n\t\"./eu.js\": 3508,\n\t\"./fa\": 119,\n\t\"./fa.js\": 119,\n\t\"./fi\": 90527,\n\t\"./fi.js\": 90527,\n\t\"./fil\": 95995,\n\t\"./fil.js\": 95995,\n\t\"./fo\": 52477,\n\t\"./fo.js\": 52477,\n\t\"./fr\": 85498,\n\t\"./fr-ca\": 26435,\n\t\"./fr-ca.js\": 26435,\n\t\"./fr-ch\": 37892,\n\t\"./fr-ch.js\": 37892,\n\t\"./fr.js\": 85498,\n\t\"./fy\": 37071,\n\t\"./fy.js\": 37071,\n\t\"./ga\": 41734,\n\t\"./ga.js\": 41734,\n\t\"./gd\": 70217,\n\t\"./gd.js\": 70217,\n\t\"./gl\": 77329,\n\t\"./gl.js\": 77329,\n\t\"./gom-deva\": 32124,\n\t\"./gom-deva.js\": 32124,\n\t\"./gom-latn\": 93383,\n\t\"./gom-latn.js\": 93383,\n\t\"./gu\": 95050,\n\t\"./gu.js\": 95050,\n\t\"./he\": 11713,\n\t\"./he.js\": 11713,\n\t\"./hi\": 43861,\n\t\"./hi.js\": 43861,\n\t\"./hr\": 26308,\n\t\"./hr.js\": 26308,\n\t\"./hu\": 90609,\n\t\"./hu.js\": 90609,\n\t\"./hy-am\": 17160,\n\t\"./hy-am.js\": 17160,\n\t\"./id\": 74063,\n\t\"./id.js\": 74063,\n\t\"./is\": 89374,\n\t\"./is.js\": 89374,\n\t\"./it\": 88383,\n\t\"./it-ch\": 21827,\n\t\"./it-ch.js\": 21827,\n\t\"./it.js\": 88383,\n\t\"./ja\": 23827,\n\t\"./ja.js\": 23827,\n\t\"./jv\": 89722,\n\t\"./jv.js\": 89722,\n\t\"./ka\": 41794,\n\t\"./ka.js\": 41794,\n\t\"./kk\": 27088,\n\t\"./kk.js\": 27088,\n\t\"./km\": 96870,\n\t\"./km.js\": 96870,\n\t\"./kn\": 84451,\n\t\"./kn.js\": 84451,\n\t\"./ko\": 63164,\n\t\"./ko.js\": 63164,\n\t\"./ku\": 98174,\n\t\"./ku-kmr\": 6181,\n\t\"./ku-kmr.js\": 6181,\n\t\"./ku.js\": 98174,\n\t\"./ky\": 78474,\n\t\"./ky.js\": 78474,\n\t\"./lb\": 79680,\n\t\"./lb.js\": 79680,\n\t\"./lo\": 15867,\n\t\"./lo.js\": 15867,\n\t\"./lt\": 45766,\n\t\"./lt.js\": 45766,\n\t\"./lv\": 69532,\n\t\"./lv.js\": 69532,\n\t\"./me\": 58076,\n\t\"./me.js\": 58076,\n\t\"./mi\": 41848,\n\t\"./mi.js\": 41848,\n\t\"./mk\": 30306,\n\t\"./mk.js\": 30306,\n\t\"./ml\": 73739,\n\t\"./ml.js\": 73739,\n\t\"./mn\": 99053,\n\t\"./mn.js\": 99053,\n\t\"./mr\": 86169,\n\t\"./mr.js\": 86169,\n\t\"./ms\": 73386,\n\t\"./ms-my\": 92297,\n\t\"./ms-my.js\": 92297,\n\t\"./ms.js\": 73386,\n\t\"./mt\": 77075,\n\t\"./mt.js\": 77075,\n\t\"./my\": 72264,\n\t\"./my.js\": 72264,\n\t\"./nb\": 22274,\n\t\"./nb.js\": 22274,\n\t\"./ne\": 8235,\n\t\"./ne.js\": 8235,\n\t\"./nl\": 92572,\n\t\"./nl-be\": 43784,\n\t\"./nl-be.js\": 43784,\n\t\"./nl.js\": 92572,\n\t\"./nn\": 54566,\n\t\"./nn.js\": 54566,\n\t\"./oc-lnc\": 69330,\n\t\"./oc-lnc.js\": 69330,\n\t\"./pa-in\": 29849,\n\t\"./pa-in.js\": 29849,\n\t\"./pl\": 94418,\n\t\"./pl.js\": 94418,\n\t\"./pt\": 79834,\n\t\"./pt-br\": 48303,\n\t\"./pt-br.js\": 48303,\n\t\"./pt.js\": 79834,\n\t\"./ro\": 24457,\n\t\"./ro.js\": 24457,\n\t\"./ru\": 82271,\n\t\"./ru.js\": 82271,\n\t\"./sd\": 1221,\n\t\"./sd.js\": 1221,\n\t\"./se\": 33478,\n\t\"./se.js\": 33478,\n\t\"./si\": 17538,\n\t\"./si.js\": 17538,\n\t\"./sk\": 5784,\n\t\"./sk.js\": 5784,\n\t\"./sl\": 46637,\n\t\"./sl.js\": 46637,\n\t\"./sq\": 86794,\n\t\"./sq.js\": 86794,\n\t\"./sr\": 45719,\n\t\"./sr-cyrl\": 3322,\n\t\"./sr-cyrl.js\": 3322,\n\t\"./sr.js\": 45719,\n\t\"./ss\": 56000,\n\t\"./ss.js\": 56000,\n\t\"./sv\": 41011,\n\t\"./sv.js\": 41011,\n\t\"./sw\": 40748,\n\t\"./sw.js\": 40748,\n\t\"./ta\": 11025,\n\t\"./ta.js\": 11025,\n\t\"./te\": 11885,\n\t\"./te.js\": 11885,\n\t\"./tet\": 28861,\n\t\"./tet.js\": 28861,\n\t\"./tg\": 86571,\n\t\"./tg.js\": 86571,\n\t\"./th\": 55802,\n\t\"./th.js\": 55802,\n\t\"./tk\": 59527,\n\t\"./tk.js\": 59527,\n\t\"./tl-ph\": 29231,\n\t\"./tl-ph.js\": 29231,\n\t\"./tlh\": 31052,\n\t\"./tlh.js\": 31052,\n\t\"./tr\": 85096,\n\t\"./tr.js\": 85096,\n\t\"./tzl\": 79846,\n\t\"./tzl.js\": 79846,\n\t\"./tzm\": 81765,\n\t\"./tzm-latn\": 97711,\n\t\"./tzm-latn.js\": 97711,\n\t\"./tzm.js\": 81765,\n\t\"./ug-cn\": 48414,\n\t\"./ug-cn.js\": 48414,\n\t\"./uk\": 16618,\n\t\"./uk.js\": 16618,\n\t\"./ur\": 57777,\n\t\"./ur.js\": 57777,\n\t\"./uz\": 57609,\n\t\"./uz-latn\": 72475,\n\t\"./uz-latn.js\": 72475,\n\t\"./uz.js\": 57609,\n\t\"./vi\": 21135,\n\t\"./vi.js\": 21135,\n\t\"./x-pseudo\": 64051,\n\t\"./x-pseudo.js\": 64051,\n\t\"./yo\": 82218,\n\t\"./yo.js\": 82218,\n\t\"./zh-cn\": 52648,\n\t\"./zh-cn.js\": 52648,\n\t\"./zh-hk\": 1632,\n\t\"./zh-hk.js\": 1632,\n\t\"./zh-mo\": 31541,\n\t\"./zh-mo.js\": 31541,\n\t\"./zh-tw\": 50304,\n\t\"./zh-tw.js\": 50304\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 35358;","export enum AlertSeverity {\r\n  Info = \"alert-info\",\r\n  Warning = \"alert-warning\",\r\n  Error = \"alert-error\",\r\n  Success = \"alert-success\",\r\n}\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, renderSlot as _renderSlot, normalizeStyle as _normalizeStyle, createVNode as _createVNode, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = [\"for\"]\nconst _hoisted_2 = [\"id\", \"checked\", \"readonly\", \"disabled\"]\nconst _hoisted_3 = [\"innerHTML\"]\nconst _hoisted_4 = {\n  key: 0,\n  class: \"pl5\"\n}\nconst _hoisted_5 = [\"innerHTML\"]\n\nimport { computed, ref, watch, StyleValue } from \"vue\";\r\nimport Icon from \"@compUtility/icon.vue\";\r\nimport { trueFalseString, boxBool } from \"@utility/boolUtils\";\r\nimport { genComponentId } from \"@components/componentHelpers\";\r\n\r\ninterface Props {\r\n  checked?: trueFalseString;\r\n  disabled?: trueFalseString;\r\n  readonly?: trueFalseString;\r\n  label?: string;\r\n  hover?: trueFalseString;\r\n  variant?: \"small\" | \"normal\";\r\n  inputClass?: string | string[];\r\n  alignLabel?: \"start\" | \"center\" | \"end\";\r\n  loading?: trueFalseString;\r\n  loadingText?: string;\r\n  labelClass?: string;\r\n  labelStyle?: StyleValue;\r\n}\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n  __name: 'checkbox',\n  props: {\n    checked: { type: [Boolean, String], default: false },\n    disabled: { type: [Boolean, String], default: false },\n    readonly: { type: [Boolean, String], default: false },\n    label: { default: \"&nbsp;\" },\n    hover: { type: [Boolean, String] },\n    variant: { default: \"normal\" },\n    inputClass: { default: \"\" },\n    alignLabel: { default: \"start\" },\n    loading: { type: [Boolean, String], default: false },\n    loadingText: {},\n    labelClass: { default: undefined },\n    labelStyle: { type: [Boolean, null, String, Object, Array], default: undefined }\n  },\n  emits: [\"checked\", \"unchecked\", \"updated\", \"input\"],\n  setup(__props: any, { emit: __emit }) {\n\r\nconst props = __props;\r\n\r\nconst emit = __emit;\r\n\r\nconst componentId = genComponentId(\"cbx\");\r\nconst isChecked = ref<boolean>(boxBool(props.checked));\r\n\r\nconst lblClasses = computed<string[]>(() => {\r\n  const labels = [\"s1-cbx-label\"];\r\n  if (boxBool(props.disabled)) {\r\n    labels.push(\"s1-cbx-label-disabled\");\r\n  }\r\n  if ([\"&nbsp;\", \"\"].indexOf(props.label?.trim() ?? \"&nbsp;\") >= 0) {\r\n    labels.push(\"lbl-no-txt\");\r\n  }\r\n  if (props.labelClass) {\r\n    labels.push(props.labelClass);\r\n  }\r\n  return labels;\r\n});\r\n\r\nconst checkVal = function (newVal: Event) {\r\n  if (newVal != null && newVal.target && newVal.target instanceof HTMLInputElement) {\r\n    const target = newVal.target;\r\n    isChecked.value = boxBool(target.checked);\r\n  }\r\n};\r\n\r\nwatch(\r\n  () => props.checked,\r\n  (newVal) => {\r\n    isChecked.value = boxBool(newVal);\r\n  }\r\n);\r\n\r\nwatch(isChecked, (newVal) => {\r\n  if (newVal) {\r\n    emit(\"checked\");\r\n  } else {\r\n    emit(\"unchecked\");\r\n  }\r\n\r\n  emit(\"updated\", newVal);\r\n  emit(\"input\", newVal);\r\n});\r\n\nreturn (_ctx: any,_cache: any) => {\n  return (_openBlock(), _createElementBlock(\"div\", {\n    class: _normalizeClass(['s1-cbx', props.variant !== 'normal' ? props.variant : ''])\n  }, [\n    _createElementVNode(\"label\", {\n      class: _normalizeClass(lblClasses.value),\n      for: _unref(componentId),\n      style: _normalizeStyle(props.labelStyle)\n    }, [\n      _createElementVNode(\"input\", {\n        type: \"checkbox\",\n        id: _unref(componentId),\n        checked: isChecked.value,\n        readonly: _ctx.readonly,\n        disabled: _unref(boxBool)(props.disabled),\n        class: _normalizeClass(_ctx.inputClass),\n        onChange: checkVal\n      }, null, 42, _hoisted_2),\n      _renderSlot(_ctx.$slots, \"default\", {}, () => [\n        _createElementVNode(\"span\", {\n          class: _normalizeClass(`s1-cbx-lbl-${props.alignLabel}`),\n          innerHTML: _ctx.label\n        }, null, 10, _hoisted_3)\n      ])\n    ], 14, _hoisted_1),\n    (_ctx.loading)\n      ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, [\n          _createVNode(Icon, {\n            animate: \"spin\",\n            icon: \"fa-spinner\"\n          }),\n          _cache[0] || (_cache[0] = _createTextVNode(\" \")),\n          _createElementVNode(\"small\", null, [\n            _createElementVNode(\"span\", { innerHTML: _ctx.loadingText }, null, 8, _hoisted_5)\n          ])\n        ]))\n      : _createCommentVNode(\"\", true)\n  ], 2))\n}\n}\n\n})","<template>\r\n  <div :class=\"['s1-cbx', props.variant !== 'normal' ? props.variant : '']\">\r\n    <label\r\n      :class=\"lblClasses\"\r\n      :for=\"componentId\"\r\n      :style=\"props.labelStyle\"\r\n    >\r\n      <input\r\n        type=\"checkbox\"\r\n        :id=\"componentId\"\r\n        :checked=\"isChecked\"\r\n        :readonly=\"readonly\"\r\n        :disabled=\"boxBool(props.disabled)\"\r\n        :class=\"inputClass\"\r\n        @change=\"checkVal\"\r\n      />\r\n      <slot\r\n        ><span\r\n          :class=\"`s1-cbx-lbl-${props.alignLabel}`\"\r\n          v-html=\"label\"\r\n      /></slot>\r\n    </label>\r\n    <span\r\n      v-if=\"loading\"\r\n      class=\"pl5\"\r\n      ><Icon\r\n        animate=\"spin\"\r\n        icon=\"fa-spinner\" />&nbsp;<small><span v-html=\"loadingText\"> </span></small\r\n    ></span>\r\n  </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { computed, ref, watch, StyleValue } from \"vue\";\r\nimport Icon from \"@compUtility/icon.vue\";\r\nimport { trueFalseString, boxBool } from \"@utility/boolUtils\";\r\nimport { genComponentId } from \"@components/componentHelpers\";\r\n\r\ninterface Props {\r\n  checked?: trueFalseString;\r\n  disabled?: trueFalseString;\r\n  readonly?: trueFalseString;\r\n  label?: string;\r\n  hover?: trueFalseString;\r\n  variant?: \"small\" | \"normal\";\r\n  inputClass?: string | string[];\r\n  alignLabel?: \"start\" | \"center\" | \"end\";\r\n  loading?: trueFalseString;\r\n  loadingText?: string;\r\n  labelClass?: string;\r\n  labelStyle?: StyleValue;\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n  checked: false,\r\n  disabled: false,\r\n  readonly: false,\r\n  label: \"&nbsp;\",\r\n  variant: \"normal\",\r\n  inputClass: \"\",\r\n  alignLabel: \"start\",\r\n  loading: false,\r\n  labelClass: undefined,\r\n  labelStyle: undefined,\r\n});\r\n\r\nconst emit = defineEmits<{\r\n  (e: \"checked\"): void;\r\n  (e: \"unchecked\"): void;\r\n  (e: \"updated\", val: boolean): void;\r\n  (e: \"input\", val: boolean): void;\r\n}>();\r\n\r\nconst componentId = genComponentId(\"cbx\");\r\nconst isChecked = ref<boolean>(boxBool(props.checked));\r\n\r\nconst lblClasses = computed<string[]>(() => {\r\n  const labels = [\"s1-cbx-label\"];\r\n  if (boxBool(props.disabled)) {\r\n    labels.push(\"s1-cbx-label-disabled\");\r\n  }\r\n  if ([\"&nbsp;\", \"\"].indexOf(props.label?.trim() ?? \"&nbsp;\") >= 0) {\r\n    labels.push(\"lbl-no-txt\");\r\n  }\r\n  if (props.labelClass) {\r\n    labels.push(props.labelClass);\r\n  }\r\n  return labels;\r\n});\r\n\r\nconst checkVal = function (newVal: Event) {\r\n  if (newVal != null && newVal.target && newVal.target instanceof HTMLInputElement) {\r\n    const target = newVal.target;\r\n    isChecked.value = boxBool(target.checked);\r\n  }\r\n};\r\n\r\nwatch(\r\n  () => props.checked,\r\n  (newVal) => {\r\n    isChecked.value = boxBool(newVal);\r\n  }\r\n);\r\n\r\nwatch(isChecked, (newVal) => {\r\n  if (newVal) {\r\n    emit(\"checked\");\r\n  } else {\r\n    emit(\"unchecked\");\r\n  }\r\n\r\n  emit(\"updated\", newVal);\r\n  emit(\"input\", newVal);\r\n});\r\n</script>\r\n<style lang=\"less\" scoped>\r\n@import \"@css/constants.less\";\r\n.s1-cbx-label {\r\n  font-size: 2rem;\r\n  display: grid;\r\n  grid-template-columns: 1em auto;\r\n  gap: 0.5em;\r\n}\r\n\r\n.lbl-no-txt {\r\n  gap: 0;\r\n  margin-bottom: 0;\r\n}\r\n\r\n.s1-cbx-label span {\r\n  font-size: 1.33rem;\r\n}\r\n\r\n.s1-cbx-label + .s1-cbx-label {\r\n  margin-top: 1em;\r\n}\r\n\r\n.s1-cbx-label-disabled {\r\n  color: var(--form-control-disabled);\r\n  cursor: not-allowed;\r\n}\r\n\r\n.s1-cbx input {\r\n  /* Remove most all native input styles */\r\n  appearance: none;\r\n  /* For iOS < 15 */\r\n  background-color: @white;\r\n  /* Not removed via appearance */\r\n  margin: 0;\r\n\r\n  font: inherit;\r\n  color: var(--form-control-border);\r\n  width: 1.15em;\r\n  height: 1.15em;\r\n  border: 0.075em solid var(--form-control-border);\r\n  border-radius: 0;\r\n  transform: translateY(-0.075em);\r\n  padding-right: 0 !important;\r\n  display: grid !important;\r\n  place-content: center;\r\n}\r\n\r\n.s1-cbx input::before {\r\n  content: \"\";\r\n  width: 0.65em;\r\n  height: 0.65em;\r\n  clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%); //this looks like a checkmark\r\n  transform: scale(0);\r\n  transform-origin: bottom left;\r\n  transition: 120ms transform ease-in-out;\r\n  box-shadow: inset 1em 1em var(--form-control-color);\r\n  background-color: @white;\r\n}\r\n\r\n.s1-cbx input:checked {\r\n  background-color: var(--secondary-cta-color);\r\n}\r\n\r\n.s1-cbx-label-disabled input:checked {\r\n  background-color: var(--form-control-disabled);\r\n  color: @white;\r\n}\r\n\r\n.s1-cbx-label-disabled input::before {\r\n  box-shadow: inset 1em 1em @white;\r\n}\r\n\r\n.s1-cbx input:checked::before {\r\n  transform: scale(1);\r\n}\r\n\r\n.s1-cbx input:focus {\r\n  outline: ~\"max(2px, 0.15em) solid currentColor\";\r\n  outline-offset: ~\"max(2px, 0.15em)\";\r\n}\r\n\r\n.s1-cbx input:disabled {\r\n  --form-control-color: var(--form-control-disabled);\r\n  color: var(--form-control-disabled);\r\n  cursor: not-allowed;\r\n}\r\n\r\n/* Variant overrides */\r\n.s1-cbx.small .s1-cbx-label {\r\n  font-size: 1.75rem;\r\n  gap: 0.25em;\r\n  grid-template-columns: 0.75em auto;\r\n}\r\n\r\n.s1-cbx.small input {\r\n  width: 0.75em !important;\r\n  height: 0.75em !important;\r\n}\r\n\r\n.s1-cbx.small input::before {\r\n  width: 0.45em;\r\n  height: 0.45em;\r\n}\r\n\r\n.s1-cbx.small .s1-cbx-label span {\r\n  font-size: 0.9rem;\r\n  line-height: 1.2em;\r\n}\r\n/* End Variants */\r\n\r\n.s1-cbx-lbl-start {\r\n  align-self: flex-start;\r\n}\r\n.s1-cbx-lbl-center {\r\n  align-self: center;\r\n}\r\n.s1-cbx-lbl-end {\r\n  align-self: flex-end;\r\n}\r\n</style>\r\n","import script from \"./checkbox.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./checkbox.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./checkbox.vue?vue&type=style&index=0&id=61d0d658&lang=less&scoped=true\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-61d0d658\"]])\n\nexport default __exports__","export default interface IClickableAlertMessage {\r\n  text: string;\r\n  clickCallback?: (string) => void;\r\n}\r\n\r\nexport const isIClickableAlertMessage = (\r\n  msg?: string | IClickableAlertMessage | (string | IClickableAlertMessage)[]\r\n): msg is IClickableAlertMessage => msg !== undefined && msg !== null && msg.hasOwnProperty(\"text\");\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, withModifiers as _withModifiers, renderList as _renderList, Fragment as _Fragment, createElementVNode as _createElementVNode, renderSlot as _renderSlot } from \"vue\"\n\nconst _hoisted_1 = [\"id\"]\nconst _hoisted_2 = [\"id\"]\nconst _hoisted_3 = { key: 2 }\nconst _hoisted_4 = [\"innerHTML\"]\nconst _hoisted_5 = [\"innerHTML\"]\nconst _hoisted_6 = { key: 3 }\nconst _hoisted_7 = [\"innerHTML\", \"onClick\"]\nconst _hoisted_8 = [\"innerHTML\"]\n\nimport { computed, ref, watch, useSlots } from \"vue\";\r\nimport Icon from \"./icon.vue\";\r\nimport { AlertSeverity } from \"@appEnum/AlertSeverity\";\r\nimport { scrollTop, scrollToLocation } from \"@utility/domUtils\";\r\nimport { boxBool, trueFalseString } from \"@utility/boolUtils\";\r\nimport { genComponentId } from \"@components/componentHelpers\";\r\nimport IClickableAlertMessage, { isIClickableAlertMessage } from \"@interfaces/utility/IClickableAlertMessage\";\r\nimport { isNullOrWhiteSpace } from \"@utility/stringUtils\";\r\n\r\ninterface Props {\r\n  message?: string | IClickableAlertMessage | (string | IClickableAlertMessage)[];\r\n  alertIcon?: string;\r\n  alertSeverity?: AlertSeverity;\r\n  dismissible?: trueFalseString;\r\n  dismissAfter?: number;\r\n  iconClass?: string;\r\n  iconWrapperClass?: string;\r\n  cssAlerting?: trueFalseString;\r\n  AlertCss?: string | string[];\r\n  scrollOnError?: trueFalseString;\r\n  scrollLocation?: \"top\" | \"id\";\r\n  dismissIcon?: string;\r\n}\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n  __name: 'alert',\n  props: {\n    message: { default: undefined },\n    alertIcon: { default: \"fa-exclamation-triangle\" },\n    alertSeverity: { default: AlertSeverity.Warning },\n    dismissible: { type: [Boolean, String], default: false },\n    dismissAfter: { default: 0 },\n    iconClass: { default: \"\" },\n    iconWrapperClass: { default: \"\" },\n    cssAlerting: { type: [Boolean, String], default: false },\n    AlertCss: {},\n    scrollOnError: { type: [Boolean, String], default: false },\n    scrollLocation: { default: \"top\" },\n    dismissIcon: { default: \"fa-times\" }\n  },\n  setup(__props: any) {\n\r\nconst props = __props;\r\n\r\nconst $slots = useSlots();\r\n\r\nconst dismissed = ref<boolean>(false);\r\nconst dismissible = ref<boolean>(boxBool(props.dismissible));\r\nconst alertTarget: string = genComponentId(\"s1-alert\");\r\n\r\nconst isSingleMessage = computed<boolean>(\r\n  () => props.message !== undefined && (!Array.isArray(props.message) || props.message.length === 1)\r\n);\r\nconst singleMessage = computed<string | IClickableAlertMessage | undefined>(() => {\r\n  if (isSingleMessage.value && Array.isArray(props.message)) {\r\n    return props.message[0];\r\n  }\r\n  return props.message as string | IClickableAlertMessage | undefined;\r\n});\r\n\r\nconst showAlert = computed<boolean>(\r\n  () =>\r\n    ($slots.message ? ($slots.message?.() ?? []).length > 0 : false) || //[Message] Slot has value or [Message] Props have value\r\n    (!Array.isArray(props.message) && props.message !== undefined && typeof props.message === \"object\") ||\r\n    (typeof props.message === \"string\" && !isNullOrWhiteSpace(props.message)) ||\r\n    (Array.isArray(props.message) && props.message.length > 0 && !dismissed.value && !$slots.message)\r\n);\r\n\r\nif (props.dismissAfter > 0) {\r\n  dismissible.value = true;\r\n  setTimeout(() => {\r\n    const alert = document.getElementById(\"alert-close\");\r\n    alert?.click();\r\n  }, props.dismissAfter);\r\n}\r\nconst scrollOnError = () => {\r\n  switch (props.scrollLocation) {\r\n    case \"top\":\r\n      scrollTop();\r\n      break;\r\n    case \"id\":\r\n      scrollToLocation(alertTarget);\r\n      break;\r\n  }\r\n};\r\n\r\nif (boxBool(props.scrollOnError)) {\r\n  scrollOnError();\r\n}\r\n\r\nwatch(\r\n  () => props.scrollOnError,\r\n  (nv) => {\r\n    if (boxBool(nv)) {\r\n      scrollOnError();\r\n    }\r\n  }\r\n);\r\n\nreturn (_ctx: any,_cache: any) => {\n  return (showAlert.value)\n    ? (_openBlock(), _createElementBlock(\"div\", {\n        key: 0,\n        class: _normalizeClass([\"err-pnl error-wrapper alert flex align-items-center\", _ctx.alertSeverity]),\n        id: _unref(alertTarget)\n      }, [\n        (dismissible.value)\n          ? (_openBlock(), _createElementBlock(\"button\", {\n              key: 0,\n              \"aria-hidden\": \"true\",\n              \"data-dismiss\": \"alert\",\n              class: _normalizeClass([\"close\", () => (props.dismissAfter > 0 ? 'hidden' : '')]),\n              id: `${_unref(alertTarget)}-alert-close`,\n              type: \"button\",\n              onClick: _cache[0] || (_cache[0] = ($event: any) => {\r\n        _ctx.$emit('dismissed');\r\n        dismissed.value = true;\r\n      })\n            }, [\n              _createVNode(Icon, {\n                icon: props.dismissIcon\n              }, null, 8, [\"icon\"])\n            ], 10, _hoisted_2))\n          : _createCommentVNode(\"\", true),\n        (_ctx.alertIcon)\n          ? (_openBlock(), _createBlock(Icon, {\n              key: 1,\n              class: _normalizeClass([\"pr10 pl10 fs-xs-32\", _ctx.iconClass]),\n              icon: _ctx.alertIcon,\n              \"icon-wrapper-class\": _ctx.iconWrapperClass\n            }, null, 8, [\"class\", \"icon\", \"icon-wrapper-class\"]))\n          : _createCommentVNode(\"\", true),\n        (isSingleMessage.value)\n          ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n              (!_unref(isIClickableAlertMessage)(singleMessage.value) || singleMessage.value.clickCallback === undefined)\n                ? (_openBlock(), _createElementBlock(\"span\", {\n                    key: 0,\n                    innerHTML: \r\n          singleMessage.value !== undefined && _unref(isIClickableAlertMessage)(singleMessage.value)\r\n            ? singleMessage.value.text\r\n            : singleMessage.value ?? ''\r\n        \n                  }, null, 8, _hoisted_4))\n                : (_unref(isIClickableAlertMessage)(singleMessage.value) && singleMessage.value.clickCallback)\n                  ? (_openBlock(), _createElementBlock(\"a\", {\n                      key: 1,\n                      href: \"#\",\n                      innerHTML: singleMessage.value.text,\n                      onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (singleMessage.value.clickCallback(singleMessage.value.text)), [\"prevent\"]))\n                    }, null, 8, _hoisted_5))\n                  : _createCommentVNode(\"\", true)\n            ]))\n          : (Array.isArray(_ctx.message) && _ctx.message.length > 1)\n            ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n                _createElementVNode(\"ul\", null, [\n                  (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.message, (m) => {\n                    return (_openBlock(), _createElementBlock(\"li\", {\n                      key: _unref(isIClickableAlertMessage)(m) ? m.text : m\n                    }, [\n                      (_unref(isIClickableAlertMessage)(m) && m.clickCallback)\n                        ? (_openBlock(), _createElementBlock(\"a\", {\n                            key: 0,\n                            href: \"#\",\n                            innerHTML: m.text,\n                            onClick: _withModifiers(($event: any) => (m.clickCallback(m.text)), [\"prevent\"])\n                          }, null, 8, _hoisted_7))\n                        : (_openBlock(), _createElementBlock(\"span\", {\n                            key: 1,\n                            innerHTML: _unref(isIClickableAlertMessage)(m) ? m.text : m\n                          }, null, 8, _hoisted_8))\n                    ]))\n                  }), 128))\n                ])\n              ]))\n            : _createCommentVNode(\"\", true),\n        _renderSlot(_ctx.$slots, \"message\")\n      ], 10, _hoisted_1))\n    : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./alert.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./alert.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./alert.vue?vue&type=style&index=0&id=45150bfd&lang=less\"\n\nconst __exports__ = script;\n\nexport default __exports__","<template>\r\n  <div\r\n    v-if=\"showAlert\"\r\n    class=\"err-pnl error-wrapper alert flex align-items-center\"\r\n    :class=\"alertSeverity\"\r\n    :id=\"alertTarget\"\r\n  >\r\n    <button\r\n      v-if=\"dismissible\"\r\n      aria-hidden=\"true\"\r\n      data-dismiss=\"alert\"\r\n      class=\"close\"\r\n      :class=\"() => (props.dismissAfter > 0 ? 'hidden' : '')\"\r\n      :id=\"`${alertTarget}-alert-close`\"\r\n      type=\"button\"\r\n      @click=\"\r\n        $emit('dismissed');\r\n        dismissed = true;\r\n      \"\r\n    >\r\n      <Icon :icon=\"props.dismissIcon\" />\r\n    </button>\r\n    <Icon\r\n      v-if=\"alertIcon\"\r\n      class=\"pr10 pl10 fs-xs-32\"\r\n      :class=\"iconClass\"\r\n      :icon=\"alertIcon\"\r\n      :icon-wrapper-class=\"iconWrapperClass\"\r\n    />\r\n    <div v-if=\"isSingleMessage\">\r\n      <span\r\n        v-if=\"!isIClickableAlertMessage(singleMessage) || singleMessage.clickCallback === undefined\"\r\n        v-html=\"\r\n          singleMessage !== undefined && isIClickableAlertMessage(singleMessage)\r\n            ? singleMessage.text\r\n            : singleMessage ?? ''\r\n        \"\r\n      />\r\n      <a\r\n        v-else-if=\"isIClickableAlertMessage(singleMessage) && singleMessage.clickCallback\"\r\n        href=\"#\"\r\n        v-html=\"singleMessage.text\"\r\n        @click.prevent=\"singleMessage.clickCallback(singleMessage.text)\"\r\n      />\r\n    </div>\r\n    <div v-else-if=\"Array.isArray(message) && message.length > 1\">\r\n      <ul>\r\n        <li\r\n          v-for=\"m in message\"\r\n          :key=\"isIClickableAlertMessage(m) ? m.text : m\"\r\n        >\r\n          <a\r\n            v-if=\"isIClickableAlertMessage(m) && m.clickCallback\"\r\n            href=\"#\"\r\n            v-html=\"m.text\"\r\n            @click.prevent=\"m.clickCallback(m.text)\"\r\n          />\r\n          <span\r\n            v-else\r\n            v-html=\"isIClickableAlertMessage(m) ? m.text : m\"\r\n          />\r\n        </li>\r\n      </ul>\r\n    </div>\r\n    <slot name=\"message\"></slot>\r\n  </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { computed, ref, watch, useSlots } from \"vue\";\r\nimport Icon from \"./icon.vue\";\r\nimport { AlertSeverity } from \"@appEnum/AlertSeverity\";\r\nimport { scrollTop, scrollToLocation } from \"@utility/domUtils\";\r\nimport { boxBool, trueFalseString } from \"@utility/boolUtils\";\r\nimport { genComponentId } from \"@components/componentHelpers\";\r\nimport IClickableAlertMessage, { isIClickableAlertMessage } from \"@interfaces/utility/IClickableAlertMessage\";\r\nimport { isNullOrWhiteSpace } from \"@utility/stringUtils\";\r\n\r\ninterface Props {\r\n  message?: string | IClickableAlertMessage | (string | IClickableAlertMessage)[];\r\n  alertIcon?: string;\r\n  alertSeverity?: AlertSeverity;\r\n  dismissible?: trueFalseString;\r\n  dismissAfter?: number;\r\n  iconClass?: string;\r\n  iconWrapperClass?: string;\r\n  cssAlerting?: trueFalseString;\r\n  AlertCss?: string | string[];\r\n  scrollOnError?: trueFalseString;\r\n  scrollLocation?: \"top\" | \"id\";\r\n  dismissIcon?: string;\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n  message: undefined,\r\n  alertIcon: \"fa-exclamation-triangle\",\r\n  alertSeverity: AlertSeverity.Warning,\r\n  dismissible: false,\r\n  dismissAfter: 0,\r\n  iconClass: \"\",\r\n  iconWrapperClass: \"\",\r\n  cssAlerting: false,\r\n  scrollOnError: false,\r\n  scrollLocation: \"top\",\r\n  dismissIcon: \"fa-times\",\r\n});\r\n\r\nconst $slots = useSlots();\r\n\r\nconst dismissed = ref<boolean>(false);\r\nconst dismissible = ref<boolean>(boxBool(props.dismissible));\r\nconst alertTarget: string = genComponentId(\"s1-alert\");\r\n\r\nconst isSingleMessage = computed<boolean>(\r\n  () => props.message !== undefined && (!Array.isArray(props.message) || props.message.length === 1)\r\n);\r\nconst singleMessage = computed<string | IClickableAlertMessage | undefined>(() => {\r\n  if (isSingleMessage.value && Array.isArray(props.message)) {\r\n    return props.message[0];\r\n  }\r\n  return props.message as string | IClickableAlertMessage | undefined;\r\n});\r\n\r\nconst showAlert = computed<boolean>(\r\n  () =>\r\n    ($slots.message ? ($slots.message?.() ?? []).length > 0 : false) || //[Message] Slot has value or [Message] Props have value\r\n    (!Array.isArray(props.message) && props.message !== undefined && typeof props.message === \"object\") ||\r\n    (typeof props.message === \"string\" && !isNullOrWhiteSpace(props.message)) ||\r\n    (Array.isArray(props.message) && props.message.length > 0 && !dismissed.value && !$slots.message)\r\n);\r\n\r\nif (props.dismissAfter > 0) {\r\n  dismissible.value = true;\r\n  setTimeout(() => {\r\n    const alert = document.getElementById(\"alert-close\");\r\n    alert?.click();\r\n  }, props.dismissAfter);\r\n}\r\nconst scrollOnError = () => {\r\n  switch (props.scrollLocation) {\r\n    case \"top\":\r\n      scrollTop();\r\n      break;\r\n    case \"id\":\r\n      scrollToLocation(alertTarget);\r\n      break;\r\n  }\r\n};\r\n\r\nif (boxBool(props.scrollOnError)) {\r\n  scrollOnError();\r\n}\r\n\r\nwatch(\r\n  () => props.scrollOnError,\r\n  (nv) => {\r\n    if (boxBool(nv)) {\r\n      scrollOnError();\r\n    }\r\n  }\r\n);\r\n</script>\r\n<style lang=\"less\">\r\n@import \"@css/utilityClasses/boxUtils.less\";\r\n@import \"@css/utilityClasses/fontUtils.less\";\r\n@import \"@css/utilityClasses/flexUtils.less\";\r\n</style>\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, withModifiers as _withModifiers, toDisplayString as _toDisplayString } from \"vue\"\n\nconst _hoisted_1 = { class: \"pdf-viewer-root\" }\nconst _hoisted_2 = {\n  key: 0,\n  class: \"flex full-width align-items-center page-tools-wrapper\",\n  style: {\"justify-content\":\"space-between\"}\n}\nconst _hoisted_3 = { class: \"flex\" }\nconst _hoisted_4 = {\n  key: 0,\n  class: \"ml10\"\n}\nconst _hoisted_5 = {\n  key: 1,\n  class: \"ml10\"\n}\nconst _hoisted_6 = [\"href\"]\nconst _hoisted_7 = { class: \"flex align-items-center\" }\nconst _hoisted_8 = { class: \"btn-group ml10\" }\nconst _hoisted_9 = { class: \"ml10\" }\nconst _hoisted_10 = [\"disabled\"]\nconst _hoisted_11 = { class: \"pr10 pl10\" }\nconst _hoisted_12 = [\"disabled\"]\nconst _hoisted_13 = { class: \"row mt10\" }\nconst _hoisted_14 = {\n  key: 0,\n  class: \"col-xs-12 text-center\"\n}\nconst _hoisted_15 = [\"width\", \"height\"]\nconst _hoisted_16 = {\n  key: 1,\n  class: \"col-xs-12\"\n}\n\nimport { ref, watch, onMounted } from \"vue\";\r\nimport * as pdfJsLib from \"pdfjs-dist\";\r\nimport icon from \"./icon.vue\";\r\nimport alert from \"./alert.vue\";\r\nimport checkbox from \"../form/checkbox.vue\";\r\nimport { createGuid } from \"../../utility/utility\";\r\nimport { PDFDocumentProxy } from \"pdfjs-dist/types/display/api\";\r\n\r\ninterface Props {\r\n  pdfUrl: string;\r\n  allowDownload?: boolean;\r\n  startPageNumber?: number;\r\n  showSelectCheckbox?: boolean;\r\n  selected?: boolean;\r\n  selectCheckboxText?: string;\r\n}\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n  __name: 'pdfViewer',\n  props: {\n    pdfUrl: { default: \"\" },\n    allowDownload: { type: Boolean, default: false },\n    startPageNumber: { default: 1 },\n    showSelectCheckbox: { type: Boolean, default: false },\n    selected: { type: Boolean, default: false },\n    selectCheckboxText: { default: \"\" }\n  },\n  emits: [\r\n  \"pdf-loaded\",\r\n  \"pdf-load-failed\",\r\n  \"pdf-doc-downloaded\",\r\n  \"navigated-to-pagenumber\",\r\n  \"pdf-selected\",\r\n  \"pdf-unselected\",\r\n  \"pdf-selection-change\",\r\n  \"mounted\",\r\n],\n  setup(__props: any, { emit: __emit }) {\n\r\npdfJsLib.GlobalWorkerOptions.workerSrc = new URL(\r\n  \"pdfjs-dist/build/pdf.worker.js\",\r\n  import.meta.url\r\n).toString();\r\n\r\nconst props = __props;\r\n\r\nconst emit = __emit;\r\n\r\nconst componentId = `du-pdf-viewer-${createGuid()}`;\r\nconst downloadUrl = (): string => {\r\n  if (props.pdfUrl !== null && props.pdfUrl.trim() !== \"\") {\r\n    const forceDownload = props.pdfUrl.indexOf(\"?\") > -1 ? \"&fdl=1\" : \"?fdl=1\";\r\n    return `${props.pdfUrl}${forceDownload}`;\r\n  }\r\n\r\n  return \"\";\r\n};\r\n\r\nconst totalPages = ref<number | null>(null);\r\nconst currentPage = ref<number>(props.startPageNumber);\r\nconst canvasHeight = ref<number | null>(792);\r\nconst canvasWidth = ref<number | null>(612);\r\nlet pdfDoc: PDFDocumentProxy | null = null;\r\nconst loadFailed = ref(false);\r\nconst pageRendering = ref<Boolean>(false);\r\nconst scale = ref<number>(1.0);\r\nconst pageNumPending = ref<number | null>(null);\r\n\r\nconst loadPdf = () => {\r\n  const canvasEl = document.getElementById(componentId) as HTMLCanvasElement;\r\n  if (canvasEl) {\r\n    if (canvasEl.height && canvasEl.width) {\r\n      canvasHeight.value = canvasEl.height;\r\n      canvasWidth.value = canvasEl.width;\r\n    }\r\n\r\n    const loadingTask = pdfJsLib.getDocument(props.pdfUrl);\r\n    loadingTask.promise\r\n      .then((pdf) => {\r\n        totalPages.value = pdf.numPages;\r\n        pdfDoc = pdf;\r\n        emit(\"pdf-loaded\");\r\n        renderPage(currentPage.value);\r\n      })\r\n      .catch(() => {\r\n        loadFailed.value = true;\r\n        emit(\"pdf-load-failed\");\r\n      });\r\n  }\r\n};\r\n\r\nonMounted(() => {\r\n  loadPdf();\r\n  emit(\"mounted\");\r\n});\r\n\r\nconst pdfSelectionChange = function (selected: boolean): void {\r\n  emit(\"pdf-selection-change\", selected);\r\n};\r\n\r\nconst renderPage = (pageNum: number): void => {\r\n  pageRendering.value = true;\r\n  pageNumPending.value = pageNum;\r\n  if (pdfDoc && pageNum > 0 && pageNum <= (totalPages.value ?? 1)) {\r\n    pdfDoc.getPage(pageNum).then((page) => {\r\n      var viewport = page.getViewport({ scale: scale.value });\r\n      const canvasEl = document.getElementById(componentId) as HTMLCanvasElement;\r\n      if (canvasEl !== null) {\r\n        const canvasCtx = canvasEl.getContext(\"2d\");\r\n        if (canvasCtx != null) {\r\n          canvasEl.height = viewport.height;\r\n          canvasEl.width = viewport.width;\r\n          currentPage.value = pageNum;\r\n\r\n          // Render PDF page into canvas context\r\n          var renderTask = page.render({\r\n            canvasContext: canvasCtx,\r\n            viewport: viewport,\r\n          });\r\n\r\n          // Wait for rendering to finish\r\n          renderTask.promise.then(() => {\r\n            pageRendering.value = false;\r\n            if (pageNumPending.value !== null && pageNumPending.value !== pageNum) {\r\n              renderPage(pageNumPending.value);\r\n              pageNumPending.value = null;\r\n            } else {\r\n              emit(\"navigated-to-pagenumber\", pageNum);\r\n            }\r\n          });\r\n        }\r\n      }\r\n    });\r\n  }\r\n};\r\n\r\nconst movePage = (currentPageOffset: number): void => {\r\n  renderPage(currentPage.value + currentPageOffset);\r\n};\r\n\r\nconst pageDisplay = (): string => {\r\n  return totalPages.value != null ? `${currentPage.value} of ${totalPages.value}` : \"\";\r\n};\r\n\r\nconst showPageTools = (): boolean => {\r\n  return totalPages.value !== null && totalPages.value > 0;\r\n};\r\n\r\nconst zoom = (zoomPercent: number): void => {\r\n  if (zoomPercent !== 0) {\r\n    scale.value = scale.value + zoomPercent;\r\n    renderPage(currentPage.value);\r\n  }\r\n};\r\n\nreturn (_ctx: any,_cache: any) => {\n  return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n    (showPageTools())\n      ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n          _createElementVNode(\"div\", _hoisted_3, [\n            (_ctx.showSelectCheckbox)\n              ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n                  _createVNode(checkbox, {\n                    checked: _ctx.selected,\n                    label: _ctx.selectCheckboxText,\n                    onUpdated: pdfSelectionChange\n                  }, null, 8, [\"checked\", \"label\"])\n                ]))\n              : _createCommentVNode(\"\", true),\n            (_ctx.allowDownload && downloadUrl() !== '')\n              ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n                  _createElementVNode(\"a\", {\n                    href: downloadUrl(),\n                    title: \"Download document\",\n                    onClick: _cache[0] || (_cache[0] = ($event: any) => (emit('pdf-doc-downloaded'))),\n                    target: \"_blank\"\n                  }, [\n                    _createVNode(icon, { icon: \"fa-download\" }),\n                    _cache[5] || (_cache[5] = _createTextVNode(\"Download \"))\n                  ], 8, _hoisted_6)\n                ]))\n              : _createCommentVNode(\"\", true)\n          ]),\n          _createElementVNode(\"div\", _hoisted_7, [\n            _createElementVNode(\"div\", _hoisted_8, [\n              _createElementVNode(\"a\", {\n                href: \"#\",\n                class: \"btn btn-white btn-xs\",\n                onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (zoom(0.1)), [\"prevent\"]))\n              }, [\n                _createVNode(icon, { icon: \"fa-search-plus\" })\n              ]),\n              _createElementVNode(\"a\", {\n                href: \"#\",\n                class: \"btn btn-white btn-xs\",\n                onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (zoom(-0.1)), [\"prevent\"]))\n              }, [\n                _createVNode(icon, { icon: \"fa-search-minus\" })\n              ])\n            ]),\n            _createElementVNode(\"div\", _hoisted_9, [\n              _cache[6] || (_cache[6] = _createTextVNode(\" Page: \")),\n              _createElementVNode(\"a\", {\n                href: \"#\",\n                class: \"pdf-preview-prev\",\n                onClick: _cache[3] || (_cache[3] = _withModifiers(($event: any) => (movePage(-1)), [\"prevent\"])),\n                disabled: currentPage.value === 1 ? true : null\n              }, [\n                _createVNode(icon, { icon: \"fa-backward\" })\n              ], 8, _hoisted_10),\n              _createElementVNode(\"span\", _hoisted_11, _toDisplayString(pageDisplay()), 1),\n              _createElementVNode(\"a\", {\n                href: \"#\",\n                class: \"pdf-preview-next\",\n                onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (movePage(1)), [\"prevent\"])),\n                disabled: currentPage.value === totalPages.value ? true : null\n              }, [\n                _createVNode(icon, { icon: \"fa-forward\" })\n              ], 8, _hoisted_12)\n            ])\n          ])\n        ]))\n      : _createCommentVNode(\"\", true),\n    _createElementVNode(\"div\", _hoisted_13, [\n      (!loadFailed.value)\n        ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n            _createElementVNode(\"canvas\", {\n              class: \"pdf-preview-canvas\",\n              id: componentId,\n              width: canvasWidth.value,\n              height: canvasHeight.value,\n              style: {\"background\":\"#fff\"}\n            }, null, 8, _hoisted_15)\n          ]))\n        : (_openBlock(), _createElementBlock(\"div\", _hoisted_16, [\n            _createVNode(alert, { message: \"Could not get document.\" })\n          ]))\n    ])\n  ]))\n}\n}\n\n})","import script from \"./pdfViewer.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./pdfViewer.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./pdfViewer.vue?vue&type=style&index=0&id=43db1d9e&lang=less\"\n\nconst __exports__ = script;\n\nexport default __exports__","<template>\r\n  <div class=\"pdf-viewer-root\">\r\n    <div\r\n      v-if=\"showPageTools()\"\r\n      class=\"flex full-width align-items-center page-tools-wrapper\"\r\n      style=\"justify-content: space-between\"\r\n    >\r\n      <div class=\"flex\">\r\n        <div\r\n          v-if=\"showSelectCheckbox\"\r\n          class=\"ml10\"\r\n        >\r\n          <checkbox\r\n            :checked=\"selected\"\r\n            :label=\"selectCheckboxText\"\r\n            @updated=\"pdfSelectionChange\"\r\n          />\r\n        </div>\r\n        <div\r\n          v-if=\"allowDownload && downloadUrl() !== ''\"\r\n          class=\"ml10\"\r\n        >\r\n          <a\r\n            :href=\"downloadUrl()\"\r\n            title=\"Download document\"\r\n            v-on:click=\"emit('pdf-doc-downloaded')\"\r\n            target=\"_blank\"\r\n          >\r\n            <icon icon=\"fa-download\" />Download\r\n          </a>\r\n        </div>\r\n      </div>\r\n      <div class=\"flex align-items-center\">\r\n        <div class=\"btn-group ml10\">\r\n          <a\r\n            href=\"#\"\r\n            class=\"btn btn-white btn-xs\"\r\n            v-on:click.prevent=\"zoom(0.1)\"\r\n          >\r\n            <icon icon=\"fa-search-plus\" />\r\n          </a>\r\n          <a\r\n            href=\"#\"\r\n            class=\"btn btn-white btn-xs\"\r\n            v-on:click.prevent=\"zoom(-0.1)\"\r\n          >\r\n            <icon icon=\"fa-search-minus\" />\r\n          </a>\r\n        </div>\r\n        <div class=\"ml10\">\r\n          Page:\r\n          <a\r\n            href=\"#\"\r\n            class=\"pdf-preview-prev\"\r\n            v-on:click.prevent=\"movePage(-1)\"\r\n            :disabled=\"currentPage === 1 ? true : null\"\r\n          >\r\n            <icon icon=\"fa-backward\" />\r\n          </a>\r\n          <span class=\"pr10 pl10\">{{ pageDisplay() }}</span>\r\n          <a\r\n            href=\"#\"\r\n            class=\"pdf-preview-next\"\r\n            v-on:click.prevent=\"movePage(1)\"\r\n            :disabled=\"currentPage === totalPages ? true : null\"\r\n          >\r\n            <icon icon=\"fa-forward\" />\r\n          </a>\r\n        </div>\r\n      </div>\r\n    </div>\r\n    <div class=\"row mt10\">\r\n      <div\r\n        v-if=\"!loadFailed\"\r\n        class=\"col-xs-12 text-center\"\r\n      >\r\n        <canvas\r\n          class=\"pdf-preview-canvas\"\r\n          :id=\"componentId\"\r\n          :width=\"canvasWidth\"\r\n          :height=\"canvasHeight\"\r\n          style=\"background: #fff\"\r\n        ></canvas>\r\n      </div>\r\n      <div\r\n        v-else\r\n        class=\"col-xs-12\"\r\n      >\r\n        <alert message=\"Could not get document.\" />\r\n      </div>\r\n    </div>\r\n  </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { ref, watch, onMounted } from \"vue\";\r\nimport * as pdfJsLib from \"pdfjs-dist\";\r\nimport icon from \"./icon.vue\";\r\nimport alert from \"./alert.vue\";\r\nimport checkbox from \"../form/checkbox.vue\";\r\nimport { createGuid } from \"../../utility/utility\";\r\nimport { PDFDocumentProxy } from \"pdfjs-dist/types/display/api\";\r\n\r\npdfJsLib.GlobalWorkerOptions.workerSrc = new URL(\r\n  \"pdfjs-dist/build/pdf.worker.js\",\r\n  import.meta.url\r\n).toString();\r\n\r\ninterface Props {\r\n  pdfUrl: string;\r\n  allowDownload?: boolean;\r\n  startPageNumber?: number;\r\n  showSelectCheckbox?: boolean;\r\n  selected?: boolean;\r\n  selectCheckboxText?: string;\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n  pdfUrl: \"\",\r\n  allowDownload: false,\r\n  startPageNumber: 1,\r\n  showSelectCheckbox: false,\r\n  selected: false,\r\n  selectCheckboxText: \"\",\r\n});\r\n\r\nconst emit = defineEmits([\r\n  \"pdf-loaded\",\r\n  \"pdf-load-failed\",\r\n  \"pdf-doc-downloaded\",\r\n  \"navigated-to-pagenumber\",\r\n  \"pdf-selected\",\r\n  \"pdf-unselected\",\r\n  \"pdf-selection-change\",\r\n  \"mounted\",\r\n]);\r\n\r\nconst componentId = `du-pdf-viewer-${createGuid()}`;\r\nconst downloadUrl = (): string => {\r\n  if (props.pdfUrl !== null && props.pdfUrl.trim() !== \"\") {\r\n    const forceDownload = props.pdfUrl.indexOf(\"?\") > -1 ? \"&fdl=1\" : \"?fdl=1\";\r\n    return `${props.pdfUrl}${forceDownload}`;\r\n  }\r\n\r\n  return \"\";\r\n};\r\n\r\nconst totalPages = ref<number | null>(null);\r\nconst currentPage = ref<number>(props.startPageNumber);\r\nconst canvasHeight = ref<number | null>(792);\r\nconst canvasWidth = ref<number | null>(612);\r\nlet pdfDoc: PDFDocumentProxy | null = null;\r\nconst loadFailed = ref(false);\r\nconst pageRendering = ref<Boolean>(false);\r\nconst scale = ref<number>(1.0);\r\nconst pageNumPending = ref<number | null>(null);\r\n\r\nconst loadPdf = () => {\r\n  const canvasEl = document.getElementById(componentId) as HTMLCanvasElement;\r\n  if (canvasEl) {\r\n    if (canvasEl.height && canvasEl.width) {\r\n      canvasHeight.value = canvasEl.height;\r\n      canvasWidth.value = canvasEl.width;\r\n    }\r\n\r\n    const loadingTask = pdfJsLib.getDocument(props.pdfUrl);\r\n    loadingTask.promise\r\n      .then((pdf) => {\r\n        totalPages.value = pdf.numPages;\r\n        pdfDoc = pdf;\r\n        emit(\"pdf-loaded\");\r\n        renderPage(currentPage.value);\r\n      })\r\n      .catch(() => {\r\n        loadFailed.value = true;\r\n        emit(\"pdf-load-failed\");\r\n      });\r\n  }\r\n};\r\n\r\nonMounted(() => {\r\n  loadPdf();\r\n  emit(\"mounted\");\r\n});\r\n\r\nconst pdfSelectionChange = function (selected: boolean): void {\r\n  emit(\"pdf-selection-change\", selected);\r\n};\r\n\r\nconst renderPage = (pageNum: number): void => {\r\n  pageRendering.value = true;\r\n  pageNumPending.value = pageNum;\r\n  if (pdfDoc && pageNum > 0 && pageNum <= (totalPages.value ?? 1)) {\r\n    pdfDoc.getPage(pageNum).then((page) => {\r\n      var viewport = page.getViewport({ scale: scale.value });\r\n      const canvasEl = document.getElementById(componentId) as HTMLCanvasElement;\r\n      if (canvasEl !== null) {\r\n        const canvasCtx = canvasEl.getContext(\"2d\");\r\n        if (canvasCtx != null) {\r\n          canvasEl.height = viewport.height;\r\n          canvasEl.width = viewport.width;\r\n          currentPage.value = pageNum;\r\n\r\n          // Render PDF page into canvas context\r\n          var renderTask = page.render({\r\n            canvasContext: canvasCtx,\r\n            viewport: viewport,\r\n          });\r\n\r\n          // Wait for rendering to finish\r\n          renderTask.promise.then(() => {\r\n            pageRendering.value = false;\r\n            if (pageNumPending.value !== null && pageNumPending.value !== pageNum) {\r\n              renderPage(pageNumPending.value);\r\n              pageNumPending.value = null;\r\n            } else {\r\n              emit(\"navigated-to-pagenumber\", pageNum);\r\n            }\r\n          });\r\n        }\r\n      }\r\n    });\r\n  }\r\n};\r\n\r\nconst movePage = (currentPageOffset: number): void => {\r\n  renderPage(currentPage.value + currentPageOffset);\r\n};\r\n\r\nconst pageDisplay = (): string => {\r\n  return totalPages.value != null ? `${currentPage.value} of ${totalPages.value}` : \"\";\r\n};\r\n\r\nconst showPageTools = (): boolean => {\r\n  return totalPages.value !== null && totalPages.value > 0;\r\n};\r\n\r\nconst zoom = (zoomPercent: number): void => {\r\n  if (zoomPercent !== 0) {\r\n    scale.value = scale.value + zoomPercent;\r\n    renderPage(currentPage.value);\r\n  }\r\n};\r\n</script>\r\n<style lang=\"less\">\r\n@import \"@css/utilityClasses/boxUtils.less\";\r\n@import \"@css/utilityClasses/flexUtils.less\";\r\n</style>\r\n"],"names":["isMobile","$","window","width","cw","extend","widget","payment","S1CcTransactionResponse","Unknown","Success","TransactionProcessedButNotApproved","NoResponseFromCreditCardProcessorWhileAddingCard","AddingCardToInvalidAccount","CouldNotDetermineCustomerPaymentId","CouldParseProcessorAddPaymentMethodResponse","SuccessButCouldNotReportTransactionToRemoteSystem","PaymentAmountRequired","CouldNotDetermineCustomerUser","CreditCardNumberOrExpirationDateMissing","CreditCardDidNotPassLuhnCheck","CreditCardInvalidExpiration","CreditCardInvalidCvv2","CreditCardInvalidZipCode","CreditCardInvalidCardholderName","CreditCardSystemError","EftPaymentResponse","UnableToVerifyBankAccount","EftPaymentSubmitFail","EftProfileSaveFail","OnetimeEftProfileSaveFail","CustomerBudgetEligibility","modalRef","init","s1AccountId","authToken","selectedBillingAccountObj","successCallback","budgetEligibility","self","this","loadingIndicator","start","webservices","getJson","S1AccountId","AuthToken","balanceObj","AccountBalances","length","forEach","x","obj","JSON","stringify","parseFloat","BudgetBalance","BudgetBalanceFormatted","formatMoney","NonBudgetBalanceFormatted","NonBudgetCoveredBalance","BalanceDueFormatted","BalanceFormatted","ExpirationYears","utility","getCreditCardExpirationYears","hasCCOnFile","DraftDays","getDraftDays","mData","selectedRemoteAccount","division","EftConfigs","EftSelectionId","EftConfigId","CargasEftConfigId","hasAccountSelection","Division","balanceFormatted","payNowFormatted","PayNowFormatted","payNowBalance","PayNowBalance","nonBudgetBalanceFormatted","some","RemoteSystemId","RemoteSystemAccountId","RemoteSystemAccountNumber","filterSingle","IsEligible","BudgetPaymentPreview","numPendingPayments","PendingPayments","pendingPaymentsTotal","pp","PaymentAmount","pendingPaymentsTotalFormatted","getPaymentSubmittalOptions","paymentSubmitOpts","totalInvoiceAmount","CreditCardProfiles","CreditCardPaymentProfiles","c","PaymentProfile","PaymentProfiles","appEnum","S1RemoteSystem","As400","Cargas","includes","OpenInvoices","map","i","InvoiceId","DocumentTypeDescription","InvoiceDateFormatted","InvoiceDate","format","AmountDueFormatted","AmountDue","InvoiceTotalFormatted","InvoiceTotal","IsBudgetPayment","BudgetPayments","BudgetPaymentFormatted","BudgetPaymentTotalFormatted","ccAmtRemaining","toFixed","parseInt","nonBudgetAndInvoiceBalance","renderTemplate","renderedTemplate","openModal","modalData","modal","Open","data","title","modalBody","buttons","label","cssClass","action","dialogRef","close","handleSubmit","onShownCallback","mr","$modalBody","find","$modalFooter","prepend","hasClass","remove","$mobileTable","$deskTable","removeClass","addClass","$makePaymentBtn","$paymentConfigure","$newCCform","$existingCcWrapper","selAcct","getData","Nexant","prop","tooltip","trigger","on","e","preventDefault","$this","selectedAccount","filter","pages","budgetManager","getBudgetBalanceByCustomer","ServiceLocations","replaceWith","$balanceDueDisplay","$payNowDueDisplay","$acctPane","$paymentTypePane","html","setTitle","setData","stop","payThis","amount","toString","replace","isNumeric","val","validateModal","errs","each","accountBal","OnBudget","budgetEnroll","CustomerBudgetResponse","Array","isArray","closest","docId","size","doc","pdfUrl","allowDownload","onPdfLoaded","mount","checkForAmexCard","cardNumber","match","recalcTotalPayment","$paymentTotal","$budgetAmt","$eftBudgetAmt","$invoiceAmounts","$additionalPayAmt","total","hasError","hasBudget","paymentOpts","paymentOpt","$me","$parent","myVal","trim","BudgetPayment","push","$bMe","bVal","eVal","budVal","eftBudVal","paymentOptions","dataObj","templating","GetRenderedTemplateHTML","TemplateType","CwWidget","renderedTmpl","remoteSystemAccount","AccountMapping","paymentSubmittalOpts","$errPnl","alert","ClearAlert","valObj","remoteAccount","RemoteAccount","PaymentProfileId","ccObj","paymentProfileId","paymentAmount","PaymentAuthToken","PaymentDetails","resp","WasSuccess","Alert","text","PaymentId","cb","getCCErr","tokenObj","secureData","authData","cardData","ccNum","month","ccMonth","year","ccYear","zip","billZip","fullName","cardHolderName","cardCode","cvv2","clientKey","PublicClientKey","apiLoginID","ApiLoginId","accountHandleAuthnetResponse","getAcceptJsNewCcResp","Accept","dispatchData","eftCallbackFunc","msg","EftPaymentConfirmationNum","successCb","eftObj","eftConfigObjId","PaymentDate","draftDate","CustomerBankAccountId","customerBankId","EftConfigNickName","nickname","BankName","bankName","RoutingNumber","routingNbr","AccountNumber","acctNbr","AccountType","acctType","SaveForLater","saveForLater","rtn","authNetResp","$payAmount","AuthorizedAcceptJsResponse","ccResp","TransactionResponse","addWeekDaysToPicker","date","days","dayCounter","setDate","getDate","check","getDay","rtnObj","$paymentAmount","$el","application","setRequiredStarState","$ccNum","ccNumAmex","$cardHolderName","$ccMonth","$ccYear","$cvv2","$billZip","luhnCheck","placement","badMonth","badYear","endOf","isBefore","$bankName","$routingNbr","n","charAt","$acctNbr","jQuery","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","Error","code","keys","Object","resolve","module","exports","AlertSeverity","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","key","class","_hoisted_5","__name","props","checked","type","Boolean","String","default","disabled","readonly","hover","variant","inputClass","alignLabel","loading","loadingText","labelClass","undefined","labelStyle","emits","setup","__props","emit","__emit","componentId","isChecked","lblClasses","labels","indexOf","checkVal","newVal","target","HTMLInputElement","value","_ctx","_cache","for","style","onChange","$slots","innerHTML","animate","icon","isIClickableAlertMessage","hasOwnProperty","_hoisted_6","_hoisted_7","_hoisted_8","message","alertIcon","alertSeverity","Warning","dismissible","dismissAfter","iconClass","iconWrapperClass","cssAlerting","AlertCss","scrollOnError","scrollLocation","dismissIcon","dismissed","alertTarget","isSingleMessage","singleMessage","showAlert","setTimeout","document","getElementById","click","nv","onClick","$event","$emit","clickCallback","href","m","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","startPageNumber","showSelectCheckbox","selected","selectCheckboxText","pdf","workerSrc","URL","downloadUrl","forceDownload","totalPages","currentPage","canvasHeight","canvasWidth","pdfDoc","loadFailed","pageRendering","scale","pageNumPending","canvasEl","height","promise","then","numPages","renderPage","catch","loadPdf","pdfSelectionChange","pageNum","getPage","page","viewport","getViewport","canvasCtx","getContext","render","canvasContext","movePage","currentPageOffset","zoom","zoomPercent","onUpdated"],"sourceRoot":""}