import{r as t,h as e,H as i}from"./p-e97fde0a.js";import{l as a,g as n}from"./p-a0974978.js";import{a as s}from"./p-dd3464cd.js";import"./p-401e165e.js";import"./p-d3366af3.js";const r=':host{display:block}.paypal-buttons{position:relative;line-height:0;text-align:center}.paypal-buttons:after{content:" ";border-bottom:1px solid var(--sc-input-border-color);width:100%;height:0;top:50%;left:0;right:0;position:absolute}';const o=r;const d=class{constructor(e){t(this,e);this.liveMode=true;this.customerId=undefined;this.successUrl=undefined;this.currency=undefined;this.loading=undefined;this.loaded=undefined;this.error=undefined;this.paymentIntent=undefined}componentWillLoad(){this.createPaymentIntent()}async handlePaymentIntentCreate(){var t,e,i;const{external_intent_id:r}=this.paymentIntent||{};const{client_id:o,account_id:d,merchant_initiated:c}=((e=(t=this.paymentIntent)===null||t===void 0?void 0:t.processor_data)===null||e===void 0?void 0:e.paypal)||{};if(!o||!d||!r)return;if(!this.paypal){try{this.paypal=await a(n({clientId:o,merchantId:d,merchantInitiated:c,reusable:true,locale:(i=window.scData)===null||i===void 0?void 0:i.locale}));this.paypal.Buttons({onInit:()=>{this.loaded=true},createBillingAgreement:()=>new Promise((t=>t(r))),onApprove:async()=>{var t;try{this.loading=true;const e=await s({method:"PATCH",path:`surecart/v1/payment_intents/${(t=this.paymentIntent)===null||t===void 0?void 0:t.id}/capture`});if(["succeeded","pending","requires_approval"].includes(e===null||e===void 0?void 0:e.status)){window.location.assign(this.successUrl)}else{throw{message:wp.i18n.__("The payment did not process. Please try again.","surecart")}}}catch(t){console.error(t);this.error=(t===null||t===void 0?void 0:t.message)||wp.i18n.__("The payment did not process. Please try again.","surecart");this.loading=false}},onError:t=>{console.error(t);alert((t===null||t===void 0?void 0:t.message)||wp.i18n.__("The payment did not process. Please try again.","surecart"))}}).render(this.container)}catch(t){console.error("Failed to load the PayPal JS SDK script",t);this.error=wp.i18n.__("Failed to load the PayPal JS SDK script","surecart")}}}async createPaymentIntent(){var t,e;try{this.loading=true;this.error="";this.paymentIntent=await s({method:"POST",path:"surecart/v1/payment_intents",data:{processor_type:"paypal",reusable:true,live_mode:this.liveMode,customer_id:this.customerId,currency:this.currency,refresh_status:true}})}catch(i){this.error=((e=(t=i===null||i===void 0?void 0:i.additional_errors)===null||t===void 0?void 0:t[0])===null||e===void 0?void 0:e.message)||(i===null||i===void 0?void 0:i.message)||wp.i18n.__("Something went wrong","surecart")}finally{this.loading=false}}render(){return e(i,{key:"f1ab046ac184127426e53c7dff336a2c2fc05775"},this.error&&e("sc-alert",{key:"14f25f7ca714fa2ace2a5838ab8a8934be3e2dc6",open:!!this.error,type:"danger"},e("span",{key:"87015bb886c5571795e64af5a14f61e5d244071b",slot:"title"},wp.i18n.__("Error","surecart")),this.error),e("div",{key:"940a2ebac3d5b6deaba844494a77f6ec30b418ce",class:"sc-paypal-button-container",hidden:!this.loaded,ref:t=>this.container=t}))}static get watchers(){return{paymentIntent:["handlePaymentIntentCreate"]}}};d.style=o;export{d as sc_paypal_add_method};
//# sourceMappingURL=p-56868df2.entry.js.map