(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},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,{ConfigurationError:()=>K,SHIPPING_OPTION_REGEX:()=>y,convertCartAddressToPayPal:()=>C,convertFormToJson:()=>B,convertPayPalAddressToCart:()=>S,debounce:()=>z,extractFullName:()=>R,extractShippingMethod:()=>M,fieldsToJson:()=>_,formatPaymentMethod:()=>U,getErrorMessage:()=>j,getFieldValue:()=>E,getPage:()=>I,getPayPalQueryParams:()=>b,getRestPath:()=>x,getRestRoute:()=>$,getSetting:()=>P,isAddPaymentMethod:()=>V,isAdminUser:()=>Q,isCart:()=>F,isCheckout:()=>N,isFieldRequired:()=>X,isMiniCartEnabled:()=>G,isOrderPay:()=>L,isPluginConnected:()=>J,isProduct:()=>D,isProduction:()=>W,isShop:()=>H,isValid:()=>q,isValidAddress:()=>A,isValidFieldValue:()=>T,loadPayPalSdk:()=>w,setFieldValue:()=>k,setSetting:()=>v,submitErrorMessage:()=>O});const r=window.lodash,n=window.jQuery;var o=e.n(n);const a=window.wp.hooks;function i(e,t){void 0===t&&(t={});var r=document.createElement("script");return r.src=e,Object.keys(t).forEach(function(e){r.setAttribute(e,t[e]),"data-csp-nonce"===e&&r.setAttribute("nonce",t["data-csp-nonce"])}),r}function s(e,t){if(void 0===t&&(t=c()),u(e,t),"undefined"==typeof document)return t.resolve(null);var r=function(e){var t="https://www.paypal.com/sdk/js";e.sdkBaseURL&&(t=e.sdkBaseURL,delete e.sdkBaseURL),function(e){var t=e["merchant-id"],r=e["data-merchant-id"],n="",o="";Array.isArray(t)?t.length>1?(n="*",o=t.toString()):n=t.toString():"string"==typeof t&&t.length>0?n=t:"string"==typeof r&&r.length>0&&(n="*",o=r),e["merchant-id"]=n,e["data-merchant-id"]=o}(e);var r,n,o=Object.keys(e).filter(function(t){return void 0!==e[t]&&null!==e[t]&&""!==e[t]}).reduce(function(t,r){var n=e[r].toString();return"data-"===r.substring(0,5)?t.dataAttributes[r]=n:t.queryParams[r]=n,t},{queryParams:{},dataAttributes:{}}),a=o.queryParams,i=o.dataAttributes;return{url:"".concat(t,"?").concat((r=a,n="",Object.keys(r).forEach(function(e){0!==n.length&&(n+="&"),n+=e+"="+r[e]}),n)),dataAttributes:i}}(e),n=r.url,o=r.dataAttributes,a=o["data-namespace"]||"paypal",s=l(a);return function(e,t){var r=document.querySelector('script[src="'.concat(e,'"]'));if(null===r)return null;var n=i(e,t),o=r.cloneNode();if(delete o.dataset.uidAuto,Object.keys(o.dataset).length!==Object.keys(n.dataset).length)return null;var a=!0;return Object.keys(o.dataset).forEach(function(e){o.dataset[e]!==n.dataset[e]&&(a=!1)}),a?r:null}(n,o)&&s?t.resolve(s):function(e,t){void 0===t&&(t=c()),u(e,t);var r=e.url,n=e.attributes;if("string"!=typeof r||0===r.length)throw new Error("Invalid url.");if(void 0!==n&&"object"!=typeof n)throw new Error("Expected attributes to be an object.");return new t(function(e,t){if("undefined"==typeof document)return e();!function(e){var t=e.onSuccess,r=e.onError,n=i(e.url,e.attributes);n.onerror=r,n.onload=t,document.head.insertBefore(n,document.head.firstElementChild)}({url:r,attributes:n,onSuccess:function(){return e()},onError:function(){var e=new Error('The script "'.concat(r,'" failed to load.'));return window.fetch?fetch(r).then(function(r){return 200===r.status&&t(e),r.text()}).then(function(e){var r=function(e){var t=e.split("/* Original Error:")[1];return t?t.replace(/\n/g,"").replace("*/","").trim():e}(e);t(new Error(r))}).catch(function(e){t(e)}):t(e)}})})}({url:n,attributes:o},t).then(function(){var e=l(a);if(e)return e;throw new Error("The window.".concat(a," global variable is not available."))})}function c(){if("undefined"==typeof Promise)throw new Error("Promise is undefined. To resolve the issue, use a Promise polyfill.");return Promise}function l(e){return window[e]}function u(e,t){if("object"!=typeof e||null===e)throw new Error("Expected an options object.");if(void 0!==t&&"function"!=typeof t)throw new Error("Expected PromisePonyfill to be a function.")}let d={},f=!1;const p=new Map;let m=null;const y=/^([\w]+)\:(.+)$/,g={address_1:"address_line_1|line1",address_2:"address_line_2|line2",state:"admin_area_1|state",city:"admin_area_2|city",postcode:"postal_code",country:"country_code"},h={city:"city",state:"state",postal_code:"postcode",country_code:"country"},w=(e=null)=>new Promise((t,n)=>{!e||(0,r.isEmpty)(e)||(0,r.isEqual)(e,d)?window.paypal&&!f?t(window.paypal):(a.defaultHooks.addAction("paypalInstanceCreated","wcPPCP",e=>{t(e)}),a.defaultHooks.addAction("paypalLoadError","wcPPCP",()=>{n()})):(d=e,window.paypal&&a.defaultHooks.doAction("paypalInstanceCleanup",window.paypal),f=!0,s({...e}).then(e=>{t(e),a.defaultHooks.doAction("paypalInstanceCreated",e,d)}).catch(r=>{console.log(r);const o=r?.message?.toLowerCase()||null;let i;if(o){if(o.includes("locale")){const{locale:r,...n}=e;return w(n).then(e=>{t(e)})}o.includes("client-id not recognized")||o.includes("invalid query value for client-id")?i={code:"invalid_client_id"}:o.includes("invalid query value for currency")}a.defaultHooks.doAction("paypalLoadError"),n(i)}).finally(()=>{f=!1}))}),P=e=>void 0!==window.wcPPCPSettings&&window.wcPPCPSettings[e]||{},v=(e,t)=>{if(void 0!==window.wcPPCPSettings)return window.wcPPCPSettings[e]=t},b=()=>P("queryParams"),E=(e,t="billing",r=!1)=>("shipping"!=e.substring(0,8)&&"billing"!=e.substring(0,7)&&t&&(e=`${t}_${e}`),r?p.get(e):o()(`[name="${e}"]`).length?o()(`[name="${e}"]`).val():p.get(e)),_=()=>{const e={};return p.forEach((t,r)=>{e[r]=t}),e},k=(e,t,r="billing")=>{r&&"shipping"!=e.substring(0,8)&&"billing"!=e.substring(0,7)&&(e=`${r}_${e}`),p.set(e,t),o()(`[name="${e}"]`).length&&o()(`[name="${e}"]`).val(t)},j=e=>{const t=P("errorMessages");return"string"==typeof e?e:e?.code&&t?.[e.code]?t[e.code]:e?.message?e.message:void 0},O=(e,t,r="checkout")=>{if(e?.message?.toLowerCase()?.match(/detected popup close|window is closed/))return;let n=j(e),a="woocommerce-NoticeGroup";const i=o()(t);"checkout"===r&&(a+=" woocommerce-NoticeGroup-checkout"),n=Array.isArray(e)?'<div class="'+a+'"><ul class="woocommerce-error"><li>'+e.join("</li><li>")+"</li></ul></div>":"string"==typeof e&&/<[^>]*>/.test(e)?'<div class="'+a+'">'+e+"</div>":'<div class="'+a+'"><ul class="woocommerce-error"><li>'+n+"</li></ul></div>",o()(".woocommerce-NoticeGroup-checkout, .woocommerce-error, .woocommerce-message").remove(),i.prepend(n),o().scroll_to_notices?o().scroll_to_notices(i):o()("html, body").animate({scrollTop:i.offset().top-100},1e3)},A=(e,t=[])=>{let n="undefined"==typeof wc_address_i18n_params?P("i18n"):wc_address_i18n_params;if((0,r.isEmpty)(e))return!1;if(m||(m=JSON.parse(n.locale.replace(/&quot;/g,'"'))),!e.country||(0,r.isEmpty)(e))return!1;let a=m?.[e.country]?m[e.country]:m.default;a=o().extend(!0,{},m.default,a);const i=Object.entries(a).filter(([e,r])=>!t.includes(e));a=Object.fromEntries(i);for(let t in a)if(a[t]?.required){const r=e?.[t]||null;if(!r||!r?.trim())return!1}return!0},C=e=>{const t={};for(let r in e)if(g?.[r])if(g[r].includes("|")){const[n,o]=g[r].split("|");t[n]=e[r]}else t[g[r]]=e[r];return t},S=(e,t=!1)=>{let r={};r=t?h:Object.fromEntries(Object.entries(g).map(([e,t])=>[t,e]));const n={};for(let t in r)if(t.includes("|")){const o=t.split("|");for(let a of o){if(e.hasOwnProperty(a)){n[r[t]]=e[a];break}n[r[t]]=""}}else e.hasOwnProperty(t)?n[r[t]]=e[t]:n[r[t]]="";return n},T=e=>(e=e?.trim(),!!e),q=e=>T(E(e)),M=e=>{const t=e.match(y);if(t){const{1:e,2:r}=t;return{[e]:r}}return null},R=e=>[(e=e.trim()).split(" ").slice(0,-1).join(" "),e.split(" ").pop()],$=e=>P("generalData")?.restRoutes?.[e]?.url||null,x=e=>(e=e.replace(/^\//,""),P("generalData")?.ajaxRestPath?.replace("%s",e)),I=()=>P("generalData").page,N=()=>"checkout"===I(),F=()=>"cart"===I(),L=()=>"order_pay"===I(),D=()=>"product"===I(),H=()=>"shop"===I(),V=()=>"add_payment_method"===I(),G=()=>!1,B=(e,t=[])=>e.serializeArray().reduce((e,r)=>{if(t.includes(r.name))return e;const n=[];r.name.replace(/([^\[\]]*)/g,(e,t)=>{""!==t&&n.push(t)});const o=r.name.endsWith("[]");return n.reduce((e,t,a)=>{var i,s;return a===n.length-1?o?(e[t]=null!==(i=e[t])&&void 0!==i?i:[],e[t].push(r.value)):e[t]=r.value:e[t]=null!==(s=e[t])&&void 0!==s?s:{},e[t]},e),e},{}),U=(e,t)=>{const r={};Object.keys(t).forEach(e=>{r[`{${e}}`]=t[e]});let n=e;return Object.keys(r).forEach(e=>{for(;n.includes(e);)n=n.replace(e,r[e])}),n},J=()=>P("generalData")?.clientId?.length>0,z=(e,t=250)=>{let r;return(...n)=>{clearTimeout(r),r=setTimeout(()=>{e(...n)},t)}},Q=()=>!0===P("generalData")?.is_admin,W=()=>"production"===P("generalData")?.environment,X=e=>(P("requiredFields")||[]).includes(e);class K extends Error{constructor(e){super(e),this.name="ConfigurationError"}}(this.wcPPCP=this.wcPPCP||{}).utils=t})();