Files
invoiceninja/public/build/assets/stripe-ach-1f0bff4a.js
2026-01-19 09:16:40 +11:00

10 lines
3.1 KiB
JavaScript
Vendored

var i=Object.defineProperty;var u=(n,e,t)=>e in n?i(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var s=(n,e,t)=>(u(n,typeof e!="symbol"?e+"":e,t),t);/**
* 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 d{constructor(){s(this,"setupStripe",()=>(this.stripe_connect?this.stripe=Stripe(this.key,{stripeAccount:this.stripe_connect}):this.stripe=Stripe(this.key),this));s(this,"getFormData",()=>{var e;return{account_holder_name:document.getElementById("account-holder-name").value,account_holder_type:document.querySelector('input[name="account-holder-type"]:checked').value,email:((e=document.querySelector('meta[name="contact-email"]'))==null?void 0:e.content)||""}});s(this,"handleError",e=>{document.getElementById("save-button").disabled=!1,document.querySelector("#save-button > svg").classList.add("hidden"),document.querySelector("#save-button > span").classList.remove("hidden"),this.errors.textContent="",this.errors.textContent=e,this.errors.hidden=!1});s(this,"handleSuccess",e=>{document.getElementById("gateway_response").value=JSON.stringify(e),document.getElementById("server_response").submit()});s(this,"handleSubmit",async e=>{if(e.preventDefault(),!document.getElementById("accept-terms").checked){this.errors.textContent="You must accept the mandate terms prior to adding this payment method.",this.errors.hidden=!1;return}document.getElementById("save-button").disabled=!0,document.querySelector("#save-button > svg").classList.remove("hidden"),document.querySelector("#save-button > span").classList.add("hidden"),this.errors.textContent="",this.errors.hidden=!0;const t=this.getFormData();try{const{setupIntent:r,error:c}=await this.stripe.collectBankAccountForSetup({clientSecret:this.clientSecret,params:{payment_method_type:"us_bank_account",payment_method_data:{billing_details:{name:t.account_holder_name,email:t.email}}}});if(c)return this.handleError(c.message);if(r.status==="requires_payment_method")return this.handleError("Please complete the bank account verification process.");if(r.status==="requires_confirmation"){const{setupIntent:a,error:o}=await this.stripe.confirmUsBankAccountSetup(this.clientSecret);return o?this.handleError(o.message):this.handleSuccess(a)}return r.status==="requires_action"?this.handleSuccess(r):r.status==="succeeded"?this.handleSuccess(r):this.handleSuccess(r)}catch(r){return this.handleError(r.message||"An unexpected error occurred.")}});var e,t;this.errors=document.getElementById("errors"),this.key=document.querySelector('meta[name="stripe-publishable-key"]').content,this.stripe_connect=(e=document.querySelector('meta[name="stripe-account-id"]'))==null?void 0:e.content,this.clientSecret=(t=document.querySelector('meta[name="stripe-client-secret"]'))==null?void 0:t.content}handle(){document.getElementById("save-button").addEventListener("click",e=>this.handleSubmit(e))}}new d().setupStripe().handle();