10 lines
5.8 KiB
JavaScript
10 lines
5.8 KiB
JavaScript
var c=Object.defineProperty;var d=(s,e,t)=>e in s?c(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var i=(s,e,t)=>(d(s,typeof e!="symbol"?e+"":e,t),t);import{i as l,w as m}from"./wait-8f4ae121.js";/**
|
|
* Invoice Ninja (https://invoiceninja.com)
|
|
*
|
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
|
*
|
|
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
|
*
|
|
* @license https://www.elastic.co/licensing/elastic-license
|
|
*/class h{constructor(e,t){i(this,"handleAuthorization",()=>{var o,r;if(!this.isFormValid())return;this.submitButton.disabled=!0,(o=this.submitButton.querySelector("svg"))==null||o.classList.remove("hidden"),(r=this.submitButton.querySelector("span"))==null||r.classList.add("hidden");const e=document.querySelector('input[name="account_type"]:checked').value??"checking";var t={};t.clientKey=this.publicKey,t.apiLoginID=this.loginId;var a={};a.accountType=e,a.routingNumber=this.routingNumber.value,a.accountNumber=this.accountNumber.value,a.nameOnAccount=this.accountHolderName.value;var n={};return n.authData=t,n.bankData=a,Accept.dispatchData(n,this.responseHandler),!1});i(this,"responseHandler",e=>{if(e.messages.resultCode==="Error"){var t=0;const a=document.getElementById("errors");a&&(a.innerText=`${e.messages.message[t].code}: ${e.messages.message[t].text}`,a.style.display="block"),document.getElementById("pay-now").disabled=!1,document.querySelector("#pay-now > svg").classList.add("hidden"),document.querySelector("#pay-now > span").classList.remove("hidden")}else if(e.messages.resultCode==="Ok"){document.getElementById("dataDescriptor").value=e.opaqueData.dataDescriptor,document.getElementById("dataValue").value=e.opaqueData.dataValue;let a=document.querySelector("input[name=token-billing-checkbox]:checked");a&&(document.getElementById("store_card").value=a.value),document.getElementById("server_response").submit()}return!1});i(this,"handle",()=>{Array.from(document.getElementsByClassName("toggle-payment-with-token")).forEach(a=>a.addEventListener("click",n=>{document.getElementById("authorize-ach-container").style.display="none",document.getElementById("token").value=n.target.dataset.token,document.getElementById("pay-now").disabled=!1,document.querySelector("#pay-now > svg").classList.add("hidden"),document.querySelector("#pay-now > span").classList.remove("hidden")}));let e=document.getElementById("toggle-payment-with-ach");e&&e.addEventListener("click",()=>{document.getElementById("authorize-ach-container").style.display="grid",document.getElementById("token").value=null,this.updateSubmitButton()});let t=document.getElementById("pay-now");return t&&t.addEventListener("click",a=>{let n=document.getElementById("token");n.value?this.handlePayNowAction(n.value):this.handleAuthorization()}),this});this.form=document.getElementById("server_response"),this.submitButton=document.getElementById("pay-now"),this.errorDiv=document.getElementById("errors"),this.publicKey=e,this.loginId=t,this.accountHolderName=document.getElementById("account_holder_name"),this.routingNumber=document.getElementById("routing_number"),this.accountNumber=document.getElementById("account_number"),this.acceptTerms=document.getElementById("accept-terms"),this.isValid={accountHolderName:!1,routingNumber:!1,accountNumber:!1,acceptTerms:!1},this.setupEventListeners(),this.updateSubmitButton()}setupEventListeners(){this.accountHolderName.addEventListener("input",()=>{this.validateAccountHolderName(),this.updateSubmitButton()}),this.routingNumber.addEventListener("input",()=>{this.validateRoutingNumber(),this.updateSubmitButton()}),this.accountNumber.addEventListener("input",()=>{this.validateAccountNumber(),this.updateSubmitButton()}),this.submitButton.addEventListener("click",e=>{e.preventDefault(),this.isFormValid()&&this.handleAuthorization()}),this.acceptTerms.addEventListener("change",()=>{this.validateAcceptTerms(),this.updateSubmitButton()})}validateAcceptTerms(){this.isValid.acceptTerms=this.acceptTerms.checked,this.isValid.acceptTerms?this.acceptTerms.classList.remove("border-red-500"):this.acceptTerms.classList.add("border-red-500")}validateAccountHolderName(){const e=this.accountHolderName.value.trim();this.isValid.accountHolderName=e.length>0&&e.length<=22,this.isValid.accountHolderName?this.accountHolderName.classList.remove("border-red-500"):this.accountHolderName.classList.add("border-red-500")}validateRoutingNumber(){const e=this.routingNumber.value.replace(/\D/g,"");this.isValid.routingNumber=e.length===9,this.isValid.routingNumber?this.routingNumber.classList.remove("border-red-500"):this.routingNumber.classList.add("border-red-500")}validateAccountNumber(){const e=this.accountNumber.value.replace(/\D/g,"");this.isValid.accountNumber=e.length>=1&&e.length<=17,this.isValid.accountNumber?this.accountNumber.classList.remove("border-red-500"):this.accountNumber.classList.add("border-red-500")}isFormValid(){return Object.values(this.isValid).every(Boolean)}updateSubmitButton(){const e=this.isFormValid();this.submitButton.disabled=!e,e?(this.submitButton.classList.remove("opacity-50","cursor-not-allowed"),this.submitButton.classList.add("hover:bg-primary-dark")):(this.submitButton.classList.add("opacity-50","cursor-not-allowed"),this.submitButton.classList.remove("hover:bg-primary-dark"))}handlePayNowAction(e){document.getElementById("pay-now").disabled=!0,document.querySelector("#pay-now > svg").classList.remove("hidden"),document.querySelector("#pay-now > span").classList.add("hidden"),document.getElementById("token").value=e,document.getElementById("server_response").submit()}}function u(){const s=document.querySelector('meta[name="authorize-public-key"]').content,e=document.querySelector('meta[name="authorize-login-id"]').content;new h(s,e).handle();const t=document.querySelectorAll("input.toggle-payment-with-token");t.length>0&&t[0].click()}l()?u():m("#authorize-ach-payment").then(()=>u());
|