/** * 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 u{constructor(t,e){this.form=document.getElementById("server_response"),this.submitButton=document.getElementById("card_button"),this.errorDiv=document.getElementById("errors"),this.publicKey=t,this.loginId=e,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.acceptTerms.addEventListener("change",()=>{this.validateAcceptTerms(),this.updateSubmitButton()}),this.submitButton.addEventListener("click",t=>{t.preventDefault(),this.isFormValid()&&this.handleSubmit()})}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 t=this.accountHolderName.value.trim();this.isValid.accountHolderName=t.length>0&&t.length<=22,this.isValid.accountHolderName?this.accountHolderName.classList.remove("border-red-500"):this.accountHolderName.classList.add("border-red-500")}validateRoutingNumber(){const t=this.routingNumber.value.replace(/\D/g,"");this.isValid.routingNumber=t.length===9,this.isValid.routingNumber?this.routingNumber.classList.remove("border-red-500"):this.routingNumber.classList.add("border-red-500")}validateAccountNumber(){const t=this.accountNumber.value.replace(/\D/g,"");this.isValid.accountNumber=t.length>=1&&t.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 t=this.isFormValid();this.submitButton.disabled=!t,t?(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"))}handleSubmit(){var i,r;if(!this.isFormValid())return;this.submitButton.disabled=!0,(i=this.submitButton.querySelector("svg"))==null||i.classList.remove("hidden"),(r=this.submitButton.querySelector("span"))==null||r.classList.add("hidden");const t=document.querySelector('input[name="account_type"]:checked').value??"checking";var e={};e.clientKey=this.publicKey,e.apiLoginID=this.loginId;var s={};s.accountType=t,s.routingNumber=this.routingNumber.value,s.accountNumber=this.accountNumber.value,s.nameOnAccount=this.accountHolderName.value;var a={};a.authData=e,a.bankData=s,Accept.dispatchData(a,this.handleResponse.bind(this))}handleResponse(t){var e,s;if(t.messages.resultCode==="Error"){let a="";for(let i=0;i{new u(n,o)});