1(()=>{"use strict";var e={n:t=>{var n=t&&t.__esModule?()=>t.default:()=>t;return e.d(n,{a:n}),n},d:(t,n)=>{for(var i in n)e.o(n,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:n[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{ApplePayGateway:()=>_,BaseGateway:()=>l,CheckoutSessionGateway:()=>y,GooglePayGateway:()=>b,LinkCheckoutGateway:()=>v,LocalPaymentGateway:()=>o,UPMCheckoutSessionGateway:()=>E,UniversalPaymentGateway:()=>h,createCreditCardGateway:()=>u});const n=window.jQuery;var i=e.n(n);const s=window.wcStripe.actions;var a=e.n(s);const r=window.wcStripe.utils,l=class{id;stripe=null;elements=null;elementType="";paymentElement=null;_styles={};controller=null;capabilities=[];_elementsSubmitted=!1;_terms=["applePay","auBecsDebit","bancontact","card","cashapp","googlePay","ideal","paypal","sepaDebit","sofort","usBankAccount"];constructor({id:e,settings:t,context:n}){this.id=e,this.actions=a(),this.settings=t,this.context=n,"payment_method"===this.settings.button_placement&&this.capabilities.push("place_order_button")}initialize(){this.actions.addAction("stripe_sdk_loaded",this.onStripeSDKLoaded.bind(this)),this.actions.addAction("checkout_field_changed",this.onCheckoutFieldChanged.bind(this))}onCheckoutFieldChanged(e){"expressCheckout"!==this.elementType&&this.updatePaymentElement()}onStripeSDKLoaded(e){this.setStripe(e)}createPaymentElement(){const e=this.actions.applyFilters("payment_element_options",this.buildPaymentElementOptions(),this,!1);this.paymentElement=this.elements.create(this.elementType,e)}createElements(){if(this.stripe){const e=this.actions.applyFilters("stripe_element_options",this.getElementOptions(),this,!1);this.elements=this.stripe.elements(e)}}updateElements(){if(this.elements){const e=this.actions.applyFilters("stripe_element_options",this.getElementOptions(!0),this,!0);this.elements.update(e)}}updatePaymentElement(){if(this.paymentElement){const e=this.actions.applyFilters("payment_element_options",this.buildPaymentElementOptions(!0),this,!0);this.paymentElement.update(e)}}getOption(e,t=null){var n;return null!==(n=this.settings[e])&&void 0!==n?n:t}getElementOptions(e=!1){let t={locale:"auto",currency:this.controller.getCurrency().toLowerCase(),...this.settings.elementOptions},n=this.controller.getTotalCents(),i=this.controller.getSubtotalCents();return n<=0&&"subscription"!==t.mode&&(this.context.isProduct()||this.context.isCart()||this.context.isMinicart()?t.mode="setup":n=i>0?i:100),["payment","subscription"].includes(t.mode)&&(t.amount=n),t}setController(e){this.controller=e}setStripe(e){this.stripe=e}onPaymentMethodAvailable(){this.elements?this.updateElements():this.createElements(),this.paymentElement||this.createPaymentElement()}async canMakePayment(){return this.actions.applyFilters("can_make_payment",this.isSetupMode()||this.isSubscriptionMode()||this.controller.getTotalCents()>0||this.controller.needsPayment(),this)}shouldMountElement(e){return!e?.querySelector("iframe")}shouldCreatePaymentMethod(){return!1}async createPaymentMethod(){try{const e=await this.stripe.createPaymentMethod({elements:this.elements,params:{billing_details:{...this.context.isCheckout()&&{address:this.getBillingAddress()},...this.hasDOMNameValue()&&{name:this.getBillingName()},...this.getBillingEmail()?{email:this.getBillingEmail()}:"never"===this._paymentElementOptions?.fields?.billingDetails?.email&&{email:""},...this.getBillingPhone()?{phone:this.getBillingPhone()}:"never"===this._paymentElementOptions?.fields?.billingDetails?.phone&&{phone:""}}}});if(e.error)throw e.error;this.setPaymentMethodId(e.paymentMethod.id)}catch(e){throw e}}
1async mountPaymentElement(e){throw new Error("Must implement mountPaymentElement()")}async validatePaymentElement(){try{let e=await this.elements.submit();if(e.error)throw e.error;return this._elementsSubmitted=!0,e}catch(e){throw e}}getPaymentIntentFieldKey(){return`${this.id}_payment_intent_id`}setPaymentMethodId(e){const t=`${this.id}_payment_method_id`;(0,r.setFieldValue)(t,e),(0,r.setFieldValue)(`${this.id}_token_key`,e)}getPaymentMethodId(){return(0,r.getFieldValue)(`${this.id}_payment_method_id`)}hasPaymentMethodId(){return!!this.getPaymentMethodId()}setSetupIntentId(e){(0,r.setFieldValue)(`${this.id}_setup_intent_id`,e)}hasSetupIntentId(){return!!(0,r.getFieldValue)(`${this.id}_setup_intent_id`)}clearElementSubmitted(){this._elementsSubmitted=!1}enablePaymentElement(){}disablePaymentElement(){}destroyPaymentElement(){}supports(e){return this.capabilities.includes(e)}isPaymentCancelled(e){const t=e.paymentIntent?.next_action;return!("verify_with_microdeposits"===t?.type||"redirect_to_url"===t?.type||this.settings.isVoucher&&t?.type?.endsWith("_display_details"))}isPaymentMode(){return"payment"===this.settings.elementOptions.mode}isSubscriptionMode(){return"subscription"===this.settings.elementOptions.mode}isSetupMode(){return"setup"===this.settings.elementOptions.mode}getPaymentElementStyles(){return Object.entries(this._styles).map(([e,t])=>`${e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}: ${t}`).join("; ")}setSavePaymentMethod(e){"subscription"!==this.settings.elementOptions.mode&&(this.settings.elementOptions.mode=e?"setup":"payment")}buildPaymentElementOptions(e=!1){return this._paymentElementOptions={fields:{billingDetails:this.context.isCheckout()?{address:"never",name:this.hasDOMNameValue()?"never":"auto",email:this.getBillingEmail()||(0,r.isFieldRequired)("billing_email")?"never":"auto",phone:this.getBillingPhone()||(0,r.isFieldRequired)("billing_phone")?"never":"auto"}:"auto"},...!e&&{wallets:{applePay:"never",googlePay:"never",link:this.getPaymentMethodTypes().includes("link")?"auto":"never"}},defaultValues:{billingDetails:{name:this.getBillingName(),email:this.getBillingEmail(),phone:this.getBillingPhone()}},terms:this.getTerms(),...this.settings.paymentElementOptions},this._paymentElementOptions}getPaymentMethodType(){return this.settings.paymentMethodType}getPaymentMethodTypes(){return this.settings.elementOptions?.paymentMethodTypes?this.settings.elementOptions.paymentMethodTypes:[this.getPaymentMethodType()]}getTerms(){const e=this.settings.termsDisplayRule;return this._terms.reduce((t,n)=>(t[n]=e,t),{})}async confirmPayment(e,t={}){return await this.stripe.confirmPayment({...!t.skipElements&&{elements:this.elements},clientSecret:e.client_secret,redirect:"if_required",confirmParams:{return_url:e.return_url,payment_method_data:{billing_details:e.billing_details},...e.confirmation_args&&e.confirmation_args}})}async confirmSetup(e,t={}){return await this.stripe.confirmSetup({...!t.skipElements&&{elements:this.elements},clientSecret:e.client_secret,redirect:"if_required",confirmParams:{...e.return_url&&{return_url:e.return_url},payment_method_data:{...e.billing_details&&{billing_details:e.billing_details}},...e.confirmation_args&&e.confirmation_args}})}getBillingName(){if(this.context.isAddPaymentMethod())return(0,r.getSetting)("customer").billing_address.name;if(this.context.isOrderPay())return this.controller.order.getBillingName();const e=i()('[name="billing_first_name"]'),t=i()('[name="billing_last_name"]'),n=i()('[name="shipping_first_name"]'),s=i()('[name="shipping_last_name"]');return e.is(":visible")?[e.val()||"",t.val()||""].filter(Boolean).join(" "):n.is(":visible")?[n.val()||"",s.val()||""].filter(Boolean).join(" "):e.val()?[e.val()||"",t.val()||""].filter(Boolean).join(" "):n.val()?[n.val()||"",s.val()||""].filter(Boolean).join(" "):""}getBillingEmail(){if(this.context.isAddPaymentMethod()){const e=(0,r.getSetting)("customer");return e?.billing_address?.email||""}if(this.context.isOrderPay())return this.controller.order.getBillingEmail();const e=i()('[name="billing_email"]');return e.is(":visible")?e.val()||"":e.val()?e.val():""}
1getBillingPhone(){if(this.context.isAddPaymentMethod()){const e=(0,r.getSetting)("customer");return e?.billing_address?.phone||""}if(this.context.isOrderPay())return this.controller.order.getBillingPhone();const e=i()('[name="billing_phone"]'),t=i()('[name="shipping_phone"]');return e.is(":visible")?e.val()||"":t.is(":visible")?t.val()||"":e.val()?e.val():t.val()?t.val():""}getBillingAddress(){if(this.context.isAddPaymentMethod()){const e=(0,r.getSetting)("customer");return this.transformAddress(e?.billing_address)}if(this.context.isOrderPay())return this.transformAddress(this.controller.order.getBillingAddress());const e=i()('[name="billing_country"]'),t=i()('[name="shipping_country"]');return e.is(":visible")?{line1:i()('[name="billing_address_1"]').val()||"",line2:i()('[name="billing_address_2"]').val()||"",postal_code:i()('[name="billing_postcode"]').val()||"",city:i()('[name="billing_city"]').val()||"",state:i()('[name="billing_state"]').val()||"",country:e.val()||null}:t.is(":visible")?{line1:i()('[name="shipping_address_1"]').val()||"",line2:i()('[name="shipping_address_2"]').val()||"",postal_code:i()('[name="shipping_postcode"]').val()||"",city:i()('[name="shipping_city"]').val()||"",state:i()('[name="shipping_state"]').val()||"",country:t.val()||null}:e.val()?{line1:i()('[name="billing_address_1"]').val()||"",line2:i()('[name="billing_address_2"]').val()||"",postal_code:i()('[name="billing_postcode"]').val()||"",city:i()('[name="billing_city"]').val()||"",state:i()('[name="billing_state"]').val()||"",country:e.val()}:t.val()?{line1:i()('[name="shipping_address_1"]').val()||"",line2:i()('[name="shipping_address_2"]').val()||"",postal_code:i()('[name="shipping_postcode"]').val()||"",city:i()('[name="shipping_city"]').val()||"",state:i()('[name="shipping_state"]').val()||"",country:t.val()}:{line1:null,line2:null,postal_code:null,city:null,state:null,country:null}}getBillingDetails(){return{name:this.getBillingName(),phone:this.getBillingPhone(),email:this.getBillingEmail(),address:this.getBillingAddress()}}hasDOMNameValue(){return!!i()('[name="billing_first_name"]').is(":visible")||!!i()('[name="shipping_first_name"]').is(":visible")||!!this.getBillingName()}hasDOMEmailValue(){return!!i()('[name="billing_email"]').is(":visible")||!!this.getBillingEmail()}hasDOMPhoneValue(){return!!i()('[name="billing_phone"]').is(":visible")||!!i()('[name="shipping_phone"]').is(":visible")||!!this.getBillingPhone()}transformAddress(e){return{line1:e.address_1||"",line2:e.address_2||"",city:e.city||"",state:e.state||"",postal_code:e.postcode||"",country:e.country||""}}},o=class extends l{elementType="payment";constructor(e){super(e),this.capabilities.push("place_order_button","checkout_error")}async mountPaymentElement(e){this._elementsSubmitted=!1,this.paymentElement.removeAllListeners(),this.paymentElement.on("change",this.onPaymentElementChange.bind(this)),this.paymentElement.on("loaderror",this.onPaymentElementLoadError.bind(this,e)),this.paymentElement.mount(e)}async validatePaymentElement(){try{let e=await this.elements.submit();if(e.error)throw e.error;this._elementsSubmitted=!0}catch(e){throw e}}onPaymentElementChange(e){e?.value?.type&&(this.paymentMethodType=e.value.type)}onPaymentElementLoadError(e,t){const{error:n}=t;this.elements=null,this.paymentElement=null,i()(e).append(n.message)}hasPaymentMethodId(){return this._elementsSubmitted}},h=class extends l{elementType="payment";paymentMethodType="";constructor(e){super(e),this.capabilities.push("place_order_button","checkout_error")}async mountPaymentElement(e){this._elementsSubmitted=!1,this.paymentElement.removeAllListeners(),this.paymentElement.on("change",this.onPaymentElementChange.bind(this)),this.paymentElement.on("loaderror",this.onLoadError.bind(this)),this.paymentElement.mount(e)}onPaymentElementChange(e){e?.value?.type&&this.setPaymentMethodType(e.value.type)}setPaymentMethodType(e){this.paymentMethodType=e,i()("#_stripe_payment_method_type").val(e)}onLoadError(){}async validatePaymentElement(){const e=await super.validatePaymentElement();e?.selectedPaymentMethod&&this.setPaymentMethodType(e.selectedPaymentMethod)}hasPaymentMethodId(){return["card","link","apple_pay","google_pay"].includes(this.paymentMethodType)?super.hasPaymentMethodId():this._elementsSubmitted}shouldCreatePaymentMethod(){return["card","link","apple_pay","google_pay"].includes(this.paymentMethodType)}buildPaymentElementOptions(e=!1){return super.buildPaymentElementOptions(),e||(this._paymentElementOptions.wallets={applePay:"auto",googlePay:"auto"}),this._paymentElementOptions}},m=class extends l{constructor(e){super(e),this.capabilities.push("place_order_button","checkout_error")}initialize(){super.initialize(),this.actions.addFilter("get_error_message_selector",this.getErrorMessageSelector.bind(this))}shouldCreatePaymentMethod(){return!0}
1getErrorMessageSelector(e,t,n){return this.id!==n||(t.context.isCheckout()||t.context.isOrderPay())&&(e=this.settings.noticeSelector,"bcf"===this.settings.noticeLocation&&(i()(".wc-stripe-card-notice").remove(),i()(".wc-stripe_cc-container").append('<div class="wc-stripe-card-notice"></div>'))),e}},c=class extends m{selector="#wc-stripe-card-element";elementType="payment";_paymentElementOptions={};async mountPaymentElement(e){this._elementsSubmitted=!1,this.paymentElement.removeAllListeners(),this.paymentElement.on("change",this.onPaymentElementChange.bind(this)),this.paymentElement.on("loaderror",this.onLoadError.bind(this)),this.paymentElement.mount(e)}onPaymentElementChange(e){}onLoadError(e){console.log(`Error loading payment element: ${e}`)}shouldCreatePaymentMethod(){return!this.isInstallmentsEnabled()}hasPaymentMethodId(){return this.isInstallmentsEnabled()?this._elementsSubmitted:super.hasPaymentMethodId()}isInstallmentsEnabled(){return!!this.settings.installments?.clientSecret}getElementOptions(e=!1){const t=super.getElementOptions();return this.isInstallmentsEnabled()&&(delete t.mode,delete t.amount,delete t.currency,delete t.paymentMethodTypes,delete t.paymentMethodCreation,e||(t.clientSecret=this.settings.installments.clientSecret)),t}},d=class extends m{selector="#wc-stripe-card-element";elementType="card";async mountPaymentElement(e){this.paymentElement.mount(e),this.paymentElement.update({value:{postalCode:i()("#billing_postcode").val()||""},hidePostalCode:i()("#billing_postcode").is(":visible")})}buildPaymentElementOptions(e=!1){const t={...this.settings.inlineFormOptions,value:{postalCode:i()("#billing_postcode").val()||""},hidePostalCode:i()("#billing_postcode").is(":visible")};return e&&delete t.disableLink,t}async createPaymentMethod(){try{const e=await this.stripe.createPaymentMethod({type:"card",card:this.paymentElement,billing_details:this.getBillingDetails()});if(e.error)throw e.error;this.setPaymentMethodId(e.paymentMethod.id)}catch(e){throw e}}async confirmPayment(e,t={}){return this.stripe.confirmCardPayment(e.client_secret)}async confirmSetup(e,t={}){return this.stripe.confirmCardSetup(e.client_secret)}},p=class extends m{selector="#wc-stripe-cc-custom-form";
1_elementClasses={focus:"focused",empty:"empty",invalid:"invalid"};shouldMountElement(e){return 0===i()("#wc-stripe-cc-custom-form").find("iframe").length}createPaymentElement(){const e={classes:this._elementClasses,...this.settings.cardFormOptions};this.cardNumber=this.elements.create("cardNumber",{...this.settings.customFieldOptions.cardNumber,...e}),this.cardExpiry=this.elements.create("cardExpiry",{...this.settings.customFieldOptions.cardExpiry,...e}),this.cardCvc=this.elements.create("cardCvc",{...this.settings.customFieldOptions.cardCvc,...e}),this.cardNumber.on("change",this.onCardNumberChange.bind(this)),this.paymentElement=!0}async mountPaymentElement(e){this.cardNumber.mount("#stripe-card-number"),this.cardExpiry.mount("#stripe-exp"),this.cardCvc.mount("#stripe-cvv"),i()("#stripe-card-number").prepend(this.settings.html.card_brand),i()("#stripe-postal-code").length&&(i()("#stripe-postal-code").on("focus",e=>{i()("#stripe-postal-code").addClass("focused")}),i()("#stripe-postal-code").on("blur",e=>{i()("#stripe-postal-code").removeClass("focused").trigger("keyup")}),i()("#stripe-postal-code").on("keyup",e=>{""===i()("#stripe-postal-code").val()?i()("#stripe-postal-code").addClass("empty"):i()("#stripe-postal-code").removeClass("empty")}))}onCardNumberChange(e){"unknown"===e.brand?i()("#wc-stripe-card").removeClass("active"):i()("#wc-stripe-card").addClass("active"),i()("#wc-stripe-card").attr("src",this.settings.cardIcons[e.brand])}async createPaymentMethod(){try{const e=this.getBillingDetails(),t=await this.stripe.createPaymentMethod({type:"card",card:this.cardNumber,billing_details:this.context.isCheckout()?{...e,...i()("#stripe-postal-code").length&&{address:{...e.address,postal_code:i()("#stripe-postal-code").val()}}}:{...e,address:{...i()("#stripe-postal-code").length&&{postal_code:i()("#stripe-postal-code").val()}}}});if(t.error)throw t.error;this.setPaymentMethodId(t.paymentMethod.id)}catch(e){throw e}}async confirmPayment(e,t={}){return this.stripe.confirmCardPayment(e.client_secret)}async confirmSetup(e,t={}){return this.stripe.confirmCardSetup(e.client_secret)}},u=(e,t)=>{switch(e){case"inline":return new d(t);case"custom":return new p(t);default:return new c(t)}},y=class extends l{checkout=null;activeGatewayId=null;activeContainer=null;gatewayInstances=new Map;get id(){var e;return null!==(e=document.querySelector('input[name="payment_method"]:checked')?.value)&&void 0!==e?e:this._id}set id(e){this._id=e}get settings(){var e,t;return null!==(e=null!==(t=this.getGatewayInstance(this.id)?.settings)&&void 0!==t?t:this._settings)&&void 0!==e?e:{}}set settings(e){this._settings=e}isActive(){return!!this._settings?.client_secret}onStripeSDKLoaded(e){super.onStripeSDKLoaded(e),this.isActive()&&this.setup()}onPaymentMethodAvailable(){}setup(){this.checkout=this.stripe.initCheckoutElementsSdk({clientSecret:this._settings.client_secret}),this.paymentElement=this.checkout.createPaymentElement(this.buildPaymentElementOptions())}buildPaymentElementOptions(e=!1){var t;const n=this.getGatewayTarget(this.id),{defaultValues:i,...s}=null!==(t=this.getGatewayInstance(this.id)?.buildPaymentElementOptions(e))&&void 0!==t?t:{};return{...s,...n&&{visiblePaymentMethods:[n.paymentMethodType]}}}onPaymentMethodSelected(e){this.id=e,this.paymentElement&&this.mountActiveGateway(e)}mountActiveGateway(e=this.id){const t=this.getGatewayTarget(e);t&&(e!==this.activeGatewayId?this.performMount(e,t):this.paymentElement.update(this.buildPaymentElementOptions(!0)))}performMount(e,t){this.activeContainer&&this.paymentElement.unmount();const n=()=>{this.paymentElement.off("ready",n),this.paymentElement.update(this.buildPaymentElementOptions(!0))};this.paymentElement.on("ready",n),this.paymentElement.mount(t.selector),this.activeGatewayId=e,this.activeContainer=t.selector}getGatewayTarget(e){const t=this.getGatewayInstance(e);if(!t)return null;const n=(0,r.getSetting)(`${e}_data`),i=t.getPaymentMethodType();return n?.selector&&i?{selector:n.selector,paymentMethodType:i}:null}getGatewayInstance(e){if(this.gatewayInstances||(this.gatewayInstances=new Map),this.gatewayInstances.has(e))return this.gatewayInstances.get(e);const t=(0,r.getSetting)("paymentMethods",{})[e],n=(0,r.getSetting)(`${e}_data`);let i=null;return t?.isLocal?i=new o({id:e,settings:n,context:this.context}):"stripe_upm"===e?i=new h({id:e,settings:n,context:this.context}):"stripe_cc"===e&&"payment"===n?.cardFormType&&(i=u("payment",{id:e,settings:n,context:this.context})),this.gatewayInstances.set(e,i),i}async mountPaymentElement(e){const t=this.id,n=this.getGatewayTarget(t);n&&this.performMount(t,n)}async validatePaymentElement(){try{const{actions:e}=await this.checkout.loadActions(),t=await e.validateElements();if(t.error)throw t.error;this._elementsSubmitted=!0}catch(e){throw e}}async confirmPayment(e,t={}){return this.confirmCheckoutSession(t)}async confirmSetup(e,t={}){return this.confirmCheckoutSession(t)}async confirmCheckoutSession(e={}){const{actions:t}=await this.checkout.loadActions();return t.confirm(e)}},g=class extends l{type;_isEligible=null;_isDisabled=!1;elementType="expressCheckout";_isOpen=!1;_styles={clear:"both",minHeight:"40px"};constructor(e){super(e),this.capabilities=[...this.capabilities,"elements","payment_sheet"]}async mountPaymentElement(e){this.paymentElement.removeAllListeners(),this.paymentElement.on("ready",this.onReady.bind(this)),this.paymentElement.on("loaderror",this.onLoadError.bind(this)),this.paymentElement.on("click",this.onClickElement.bind(this)),this.paymentElement.on("confirm",this.onConfirm.bind(this)),this.paymentElement.on("cancel",this.onCancel.bind(this)),this.paymentElement.on("shippingaddresschange",this.onShippingDataChange.bind(this,"shippingaddresschange")),this.paymentElement.on("shippingratechange",this.onShippingDataChange.bind(this,"shippingratechange")),this.paymentElement.mount(e)}
1async canMakePayment(){try{return!!(this.context.isProduct()||this.isSetupMode()||this.isSubscriptionMode()||0!==this.controller.getTotalCents()||this.controller.needsPayment())&&this.isEligible()}catch(e){return console.log("Payment method is not available. ",e),!1}}isEligible(){return null===this._isEligible&&(this._isEligible=new Promise((e,t)=>{const n=document.createElement("div");n.style.display="none",document.querySelector("body").appendChild(n),this.paymentElement.on("ready",({availablePaymentMethods:t={}})=>{e(!!t[this.type]),n.remove(),this.paymentElement.removeAllListeners()}),this.paymentElement.on("loaderror",e=>{t(e),n.remove()}),this.paymentElement.mount(n)})),this._isEligible}onReady({availablePaymentMethods:e={}}){this.actions.doAction("express_element_ready",e,this)}onLoadError(e){console.error("Express checkout element load error:",e),this.controller.submitError(e.error)}async onClickElement(e){if(this._isDisabled)return e.reject();try{this.controller.onClick()}catch(t){return e.reject()}this._isOpen=!0;const t={},n=this.controller.getTotalCents(),i=this.controller.getLineItems();if(i&&i.length>0&&i.reduce((e,t)=>e+t.amountCents,0)===n&&(t.lineItems=this.transformLineItems(i)),this.controller.needsShipping()){const e=this.controller.getShippingOptions();e&&e.length>0&&(t.shippingRates=this.transformShippingRates(e,this.controller.getSelectedShippingMethod()))}!this.isSetupMode()&&n>0&&this.elements.update({amount:this.controller.getTotalCents()});const s=await this.actions.applyFilters("express_click_data",t,this,e);e.resolve(s)}async onConfirm(e){try{await this.elements.submit();const t=await this.stripe.createPaymentMethod({elements:this.elements,...this.context.isCheckout()&&{params:{billing_details:{address:this.getBillingAddress(),...this.hasDOMNameValue()&&{name:this.getBillingName()},...this.getBillingEmail()&&{email:this.getBillingEmail()},...this.getBillingPhone()&&{phone:this.getBillingPhone()}}}}});if(t.error)return void this.controller.submitError(t.error);this.setPaymentMethodId(t.paymentMethod.id);const n=this.extractStandardizedCheckoutData(e,t.paymentMethod);this.controller.submit(n)}catch(t){e.paymentFailed({reason:"fail",message:t.message})}}extractStandardizedCheckoutData(e,t){const n={paymentMethodId:t.id};if(e.billingDetails){const t={},{name:i,email:s,phone:a,address:r}=e.billingDetails;if(i){const e=i.split(" ");t.first_name=e[0]||"",t.last_name=e.slice(1).join(" ")||""}s&&(t.email=s),a&&(t.phone=a),r&&(t.address_1=r.line1||"",t.address_2=r.line2||"",t.city=r.city||"",t.state=r.state||"",t.postcode=r.postal_code||"",t.country=r.country||""),n.billing=t}if(e.shippingAddress){const t={},{name:i,address:s}=e.shippingAddress;if(i){const e=i.split(" ");t.first_name=e[0]||"",t.last_name=e.slice(1).join(" ")||""}s&&(t.address_1=s.line1||"",t.address_2=s.line2||"",t.city=s.city||"",t.state=s.state||"",t.postcode=s.postal_code||"",t.country=s.country||""),n.shipping=t}return n}onCancel(e){this._isOpen=!1,this.controller.onCancel()}async onShippingDataChange(e,t){const{resolve:n,reject:i,address:s=null,shippingRate:a=null}=t;try{const t={};s?t.address=this.transformIntermediateAddress(s):t.shipping_method=a.id,await this.controller.onShippingChange(t);const r=this.controller.getShippingOptions();if("shippingaddresschange"===e&&0===r.length)return console.log("No shipping options available for address, rejecting shippingaddresschange.",s),i();this.controller.getTotalCents()>0&&this.elements.update({amount:this.controller.getTotalCents()});const l={shippingRates:this.transformShippingRates(r,this.controller.getSelectedShippingMethod())},o=this.controller.getLineItems();o&&o.length>0&&o.reduce((e,t)=>e+t.amountCents,0)===this.controller.getTotalCents()&&(l.lineItems=this.transformLineItems(o)),n(l)}catch(e){i()}}transformIntermediateAddress(e){return{city:e.city||"",state:e.state||"",postcode:e.postal_code||"",country:e.country||""}}transformShippingRates(e=[],t=null){let n=e.map(e=>({id:e.id,displayName:e.label,amount:e.amountCents}));if(t){const e=n.findIndex(e=>e.id===t);if(e>0){const[t]=n.splice(e,1);n.unshift(t)}}return n}transformLineItems(e=[]){return e.map(e=>({name:e.label,amount:e.amountCents}))}buildPaymentElementOptions(e=!1){return{emailRequired:this.isEmailRequired(),phoneNumberRequired:this.isPhoneRequired(),billingAddressRequired:this.isBillingAddressRequired(),shippingAddressRequired:this.controller.needsShipping(),buttonHeight:Math.max(40,Math.min(55,parseInt(this.settings.button?.height||50))),...this.supports("button_theme")&&{buttonTheme:{[this.type]:this.settings.button?.theme||"black"}},...this.supports("button_type")&&{buttonType:{[this.type]:this.getButtonType()}},paymentMethods:{applePay:"applePay"===this.type?this.settings.display_rule:"never",googlePay:"googlePay"===this.type?this.settings.display_rule:"never",amazonPay:"never",paypal:"never",link:"link"===this.type?"auto":"never"},layout:{maxColumns:1,maxRows:1}}}async destroyPaymentElement(){this.paymentElement&&(null!==this._isEligible&&await this.isEligible(),this.paymentElement.destroy(),this.paymentElement=null,this.createElements(),this.createPaymentElement())}disablePaymentElement(){this.paymentElement&&(this._isDisabled=!0)}enablePaymentElement(){this.paymentElement&&(this._isDisabled=!1)}closePaymentSheet(){this.paymentElement?.unmount()}getElementOptions(e=!1){const t=super.getElementOptions(e);return delete t.paymentMethodTypes,this.settings?.button?.radius&&(t.appearance={...t.appearance,variables:{...t.appearance?.variables,borderRadius:this.settings.button.radius}}),t}isEmailRequired(){return(0,r.isFieldRequired)("billing_email")&&!this.context.
1isCheckout()&&!this.context.isOrderPay()&&!this.context.isAddPaymentMethod()}isPhoneRequired(){return((0,r.isFieldRequired)("billing_phone")||this.controller.needsShipping()&&(0,r.isFieldRequired)("shipping_phone"))&&!this.context.isCheckout()&&!this.context.isOrderPay()&&!this.context.isAddPaymentMethod()}isBillingAddressRequired(){return!this.context.isCheckout()}isPaymentSheetOpen(){return this._isOpen}getButtonType(){if(this.settings?.buttonTypes){const e=this.context.getPage();if(this.settings.buttonTypes[e])return this.settings.buttonTypes[e]}return this.settings.button?.type||"buy"}},_=class extends g{type="applePay";constructor(e){super(e),this.capabilities=[...this.capabilities,"button_theme","button_type","form_validation"]}},b=class extends g{type="googlePay";constructor(e){super(e),this.capabilities=[...this.capabilities,"button_theme","button_type","form_validation"]}},v=class extends g{type="link";constructor(e){super(e),this.capabilities=[...this.capabilities,"form_validation"]}},E=class extends l{checkout=null;currencyElement=null;paymentMethodType="";_mounted=!1;_lastSyncedSignature=null;_savePaymentMethod=!1;constructor(e){var t;super(e),this.session=null!==(t=e.session)&&void 0!==t?t:{},this.capabilities.push("place_order_button","checkout_error","checkout_session")}initialize(){super.initialize(),this.actions.addAction("updated_checkout",this.onUpdatedCheckout.bind(this)),this.actions.addAction("checkout_session_requires_confirmation",this.onRequiresConfirmation.bind(this))}hasPaymentMethodId(){return this._elementsSubmitted}async onRequiresConfirmation(e){if(this.controller.isPaymentGatewaySelected())try{await this.confirmCheckoutSession(e),window.location.href=e.return_url}catch(e){this._elementsSubmitted=!1,this.controller.getForm().removeClass("processing").unblock?.(),this.controller.submitError(e)}}onStripeSDKLoaded(e){super.onStripeSDKLoaded(e),this.setup()}setup(){!this.checkout&&this.session.client_secret&&(this.checkout=this.stripe.initCheckoutElementsSdk({clientSecret:this.session.client_secret,adaptivePricing:{allowed:!0}}),this.paymentElement=this.checkout.createPaymentElement(this.buildPaymentElementOptions()),this.currencyElement=this.checkout.createCurrencySelectorElement(),this.currencyElement.on("change",(...e)=>{console.log("currency change")}),this._savePaymentMethod=i()(`[name="wc-${this.id}-new-payment-method"]`).is(":checked"),this._lastSyncedSignature=this.getCartSignature())}onPaymentMethodAvailable(){}async mountPaymentElement(e){this._elementsSubmitted=!1,this.paymentElement.removeAllListeners(),this.paymentElement.on("change",this.onPaymentElementChange.bind(this)),this.paymentElement.on("loaderror",this.onLoadError.bind(this)),this.paymentElement.on("availablepaymentmethodschange",this.onAvailablePaymentMethodsChange.bind(this)),this.paymentElement.mount(e),this._mounted=!0,this.mountCurrencyElement()}mountCurrencyElement(){const e=this.getCurrencySelectorContainer();this.currencyElement&&e&&!e.querySelector("iframe")&&this.currencyElement.mount(e)}getCurrencySelectorContainer(){let e=document.getElementById("wc-stripe-currency-selector-element");if(e)return e;const t=document.querySelector(`.payment_box.payment_method_${this.id}`);return t?(e=document.createElement("div"),e.id="wc-stripe-currency-selector-element","below_payment_methods"===this.settings?.currencySelectorPosition?(e.classList.add("wc-stripe-currency-selector-below"),t.appendChild(e)):(e.classList.add("wc-stripe-currency-selector-above"),t.insertBefore(e,t.firstChild)),e):null}onPaymentElementChange(e){e?.value?.type&&this.setPaymentMethodType(e.value.type)}setPaymentMethodType(e){this.paymentMethodType=e,i()("#_stripe_payment_method_type").val(e)}onLoadError(){}onAvailablePaymentMethodsChange(e){const t=e?.paymentMethods||{},n=i()(`li.payment_method_${this.id} .woocommerce-SavedPaymentMethods`);if(!n.length)return;let s=null;n.find(".wc-stripe-saved-method[data-payment-method-type]").each((e,n)=>{const a=i()(n),r=this.toEventPaymentMethodKey(a.data("paymentMethodType")),l=!0===t[r]?.available;a.toggleClass("wc-stripe-saved-method--unavailable",!l),a.find(".wc-stripe-saved-method__input").prop("disabled",!l),!l&&a.hasClass("selected")&&(s=a)}),s&&this.reselectSavedMethod(n)}toEventPaymentMethodKey(e){return e.replace(/_([a-z])/g,(e,t)=>t.toUpperCase())}reselectSavedMethod(e){const t=e.find(".wc-stripe-saved-method:not(.wc-stripe-saved-method--unavailable)").first(),n=t.length?t:e.find(".woocommerce-SavedPaymentMethods-new");n.length&&(n.show(),n.trigger("click"))}setSavePaymentMethod(e){e!==this._savePaymentMethod&&(this._savePaymentMethod=e,i()(document.body).trigger("update_checkout"))}async onUpdatedCheckout(){if(!this.checkout)return;const e=this.getCartSignature();if(e!==this._lastSyncedSignature){this._lastSyncedSignature=e;try{const{actions:e}=await this.checkout.loadActions(),t=await e.runServerUpdate(()=>Promise.resolve());"error"===t?.type&&console.error("Adaptive Pricing runServerUpdate error:",t.error)}catch(e){console.error("Adaptive Pricing runServerUpdate failed:",e)}}}getCartSignature(){const e=this._savePaymentMethod?1:0;return`${this.controller.getCurrency()}:${this.controller.getTotalCents()}:${e}`}buildPaymentElementOptions(e=!1){const{defaultValues:t,...n}=super.buildPaymentElementOptions(e);return e||(n.wallets={...n.wallets,applePay:"auto",googlePay:"auto"}),this._paymentElementOptions=n,n}async validatePaymentElement(){const{actions:e}=await this.checkout.loadActions(),t=await e.validateElements();if(t.error)throw t.error;t.selectedPaymentMethod&&this.setPaymentMethodType(t.selectedPaymentMethod),this._elementsSubmitted=!0}async confirmPayment(e={},t={}){return this.confirmCheckoutSession(e)}async confirmSetup(e={},t={}){return this.confirmCheckoutSession(e)}async confirmCheckoutSession(e={}){const{actions:t}=await this.checkout.loadActions(),n=e.billing_details||{},i=this._paymentElementOptions?.fields?.billingDetails,s=e=>"never"===i||!(!i||"auto"===i)&&"never"===i[e],a=s("address")&&n.address?.country?{address:n.address,...s("name")&&n.name&&{name:n.name}}:null,r=await t.confirm({redirect:"if_required",...e.return_url&&{returnUrl:e.return_url},...e.payment_method&&{paymentMethod:e.payment_method},...s("email")&&n.email&&{email:n.email},...n.phone&&{phoneNumber:n.phone},...!e.payment_method&&a&&{billingAddress:a}});if("error"===r.type)throw r.error;return r}};(this.wcStripe=this.wcStripe||{}).gateways=t})(); 2//# sourceMappingURL=gateways.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.