@bigcommerce/checkout-sdk 1.817.0 → 1.819.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- import*as e from"iframe-resizer";import*as t from"iframe-resizer/js/iframeResizer.contentWindow";import{createRequestSender as n,createTimeout as i}from"@bigcommerce/request-sender";import{ScriptLoader as r,createScriptLoader as o,getScriptLoader as a,getStylesheetLoader as s}from"@bigcommerce/script-loader";import{combineReducers as d,composeReducers as c,createAction as l,createDataStore as u,createErrorAction as h,deepFreeze as p}from"@bigcommerce/data-store";import{cond as m,constant as y,difference as g,each as v,filter as f,find as S,findIndex as w,flatMap as _,flatten as C,get as I,identity as b,includes as P,isArray as O,isEmpty as E,isEqual as A,isMatch as k,isNil as T,isObject as D,isPlainObject as M,isString as z,isUndefined as N,kebabCase as x,keyBy as F,keys as R,last as L,map as B,max as j,memoize as U,merge as q,noop as V,omit as G,omitBy as H,overSome as $,pick as W,pickBy as Y,reduce as K,round as J,some as Z,stubTrue as Q,transform as X,union as ee,uniq as te,uniqueId as ne,values as ie,without as re}from"lodash";import{Observable as oe,Subject as ae,concat as se,defer as de,empty as ce,from as le,fromEvent as ue,merge as he,noop as pe,of as me,throwError as ye}from"rxjs";import{catchError as ge,delay as ve,distinctUntilChanged as fe,filter as Se,map as we,retryWhen as _e,shareReplay as Ce,switchMap as Ie,take as be}from"rxjs/operators";import{memoize as Pe,memoizeOne as Oe}from"@bigcommerce/memoize";import{createFormPoster as Ee}from"@bigcommerce/form-poster";import{supportsPopups as Ae}from"@braintree/browser-detection";import{default as ke}from"local-storage-fallback";import{createClient as Te}from"@bigcommerce/bigpay-client";import{creditCardType as De,number as Me}from"card-validator";import{exclude as ze,parseUrl as Ne,stringifyUrl as xe}from"query-string";import{createSelector as Fe,createSelectorCreator as Re,defaultMemoize as Le}from"reselect";import{default as Be}from"shallowequal";import{IntlMessageFormat as je}from"intl-messageformat";import{default as Ue}from"messageformat";var qe={785:t=>{t.exports=e},939:e=>{e.exports=t}},Ve={};function Ge(e){var t=Ve[e];if(void 0!==t)return t.exports;var n=Ve[e]={exports:{}};return qe[e](n,n.exports,Ge),n.exports}Ge.d=(e,t)=>{for(var n in t)Ge.o(t,n)&&!Ge.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},Ge.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Ge.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var He={};Ge.r(He),Ge.d(He,{createAmazonPayV2CustomerStrategy:()=>zi,createApplePayCustomerStrategy:()=>cr,createBigCommercePaymentsCustomerStrategy:()=>Nr,createBigCommercePaymentsFastlaneCustomerStrategy:()=>eo,createBigCommercePaymentsPayLaterCustomerStrategy:()=>io,createBigCommercePaymentsVenmoCustomerStrategy:()=>ao,createBoltCustomerStrategy:()=>vo,createBraintreeFastlaneCustomerStrategy:()=>Uo,createBraintreePaypalCreditCustomerStrategy:()=>No,createBraintreePaypalCustomerStrategy:()=>Do,createBraintreeVisaCheckoutCustomerStrategy:()=>Go,createGooglePayAdyenV2CustomerStrategy:()=>ga,createGooglePayAdyenV3CustomerStrategy:()=>va,createGooglePayAuthorizeDotNetCustomerStrategy:()=>Sa,createGooglePayBigCommercePaymentsCustomerStrategy:()=>Ja,createGooglePayBnzCustomerStrategy:()=>Ea,createGooglePayBraintreeCustomerStrategy:()=>Ua,createGooglePayCheckoutComCustomerStrategy:()=>ba,createGooglePayCybersourceCustomerStrategy:()=>Oa,createGooglePayOrbitalCustomerStrategy:()=>ka,createGooglePayPayPalCommerceCustomerStrategy:()=>Wa,createGooglePayStripeCustomerStrategy:()=>xa,createGooglePayStripeUpeCustomerStrategy:()=>Fa,createGooglePayTdOnlineMartCustomerStrategy:()=>es,createGooglePayWorldpayAccessCustomerStrategy:()=>La,createPayPalCommerceCreditCustomerStrategy:()=>ws,createPayPalCommerceCustomerStrategy:()=>vs,createPayPalCommerceFastlaneCustomerStrategy:()=>Bs,createPayPalCommerceVenmoCustomerStrategy:()=>Is,createStripeLinkV2CustomerStrategy:()=>hd,createStripeUPECustomerStrategy:()=>td});var $e={};Ge.r($e),Ge.d($e,{createAdyenV2PaymentStrategy:()=>Od,createAdyenV3PaymentStrategy:()=>Dd,createAffirmPaymentStrategy:()=>Fd,createAfterpayPaymentStrategy:()=>Vd,createAmazonPayV2PaymentStrategy:()=>$d,createApplePayPaymentStrategy:()=>Jd,createBigCommercePaymentsAlternativeMethodsPaymentStrategy:()=>Ic,createBigCommercePaymentsCreditCardsPaymentStrategy:()=>wc,createBigCommercePaymentsFastlanePaymentStrategy:()=>oc,createBigCommercePaymentsPayLaterPaymentStrategy:()=>cc,createBigCommercePaymentsPaymentStrategy:()=>tc,createBigCommercePaymentsRatePayPayPaymentStrategy:()=>pc,createBigCommercePaymentsVenmoPaymentStrategy:()=>Oc,createBlueSnapDirectAPMPaymentStrategy:()=>$c,createBlueSnapDirectCreditCardPaymentStrategy:()=>Gc,createBlueSnapV2PaymentStrategy:()=>Zc,createBoltPaymentStrategy:()=>rl,createBraintreeAchPaymentStrategy:()=>dl,createBraintreeCreditCardPaymentStrategy:()=>Ll,createBraintreeFastlanePaymentStrategy:()=>bl,createBraintreeLocalMethodsPaymentStrategy:()=>wl,createBraintreePaypalPaymentStrategy:()=>gl,createBraintreeVenmoPaymentStrategy:()=>Tl,createBraintreeVisaCheckoutPaymentStrategy:()=>El,createCBAMPGSPaymentStrategy:()=>Hl,createCheckoutComAPMPaymentStrategy:()=>su,createCheckoutComCreditCardPaymentStrategy:()=>eu,createCheckoutComFawryPaymentStrategy:()=>Kl,createCheckoutComIdealPaymentStrategy:()=>ru,createCheckoutComSepaPaymentStrategy:()=>nu,createClearpayPaymentStrategy:()=>uu,createCreditCardPaymentStrategy:()=>hu,createCyberSourcePaymentStrategy:()=>Eu,createCyberSourceV2PaymentStrategy:()=>Mu,createExternalPaymentStrategy:()=>Nu,createGooglePayAdyenV2PaymentStrategy:()=>ju,createGooglePayAdyenV3PaymentStrategy:()=>Vu,createGooglePayAuthorizeNetPaymentStrategy:()=>Gu,createGooglePayBigCommercePaymentsPaymentStrategy:()=>ah,createGooglePayBraintreePaymentStrategy:()=>Ju,createGooglePayCheckoutComPaymentStrategy:()=>Hu,createGooglePayCybersourcePaymentStrategy:()=>$u,createGooglePayOrbitalPaymentStrategy:()=>Wu,createGooglePayPPCPPaymentStrategy:()=>th,createGooglePayStripePaymentStrategy:()=>Yu,createGooglePayTdOnlineMartPaymentStrategy:()=>sh,createGooglePayWorldpayAccessPaymentStrategy:()=>Ku,createHummPaymentStrategy:()=>lh,createKlarnaPaymentStrategy:()=>gh,createKlarnaV2PaymentStrategy:()=>_h,createLegacyPaymentStrategy:()=>Ih,createMolliePaymentStrategy:()=>kh,createMonerisPaymentStrategy:()=>zh,createNoPaymentStrategy:()=>xh,createOfflinePaymentStrategy:()=>Rh,createOffsitePaymentStrategy:()=>jh,createPayPalCommerceAlternativeMethodsPaymentStrategy:()=>ep,createPayPalCommerceCreditCardsPaymentStrategy:()=>ip,createPayPalCommerceCreditPaymentStrategy:()=>Yh,createPayPalCommerceFastlanePaymentStrategy:()=>lp,createPayPalCommercePaymentStrategy:()=>Hh,createPayPalCommerceRatePayPaymentStrategy:()=>ap,createPayPalCommerceVenmoPaymentStrategy:()=>Zh,createPayPalProPaymentStrategy:()=>Ip,createPaypalExpressPaymentStrategy:()=>wp,createSagePayPaymentStrategy:()=>Pp,createSezzlePaymentStrategy:()=>Ep,createSquareV2PaymentStrategy:()=>xp,createStripeOCSPaymentStrategy:()=>em,createStripeUPEPaymentStrategy:()=>Zp,createStripeV3PaymentStrategy:()=>$p,createTDOnlineMartPaymentStrategy:()=>om,createWorldpayAccessPaymentStrategy:()=>lm,createZipPaymentStrategy:()=>pm});var We,Ye,Ke={};function Je(e,t,n){return(i=t)&&i.type&&i.error?se(me(t),ye(h(e,t.payload,n))):ye(h(e,t,n));var i}Ge.r(Ke),Ge.d(Ke,{createAmazonPayV2ButtonStrategy:()=>sw,createApplePayButtonStrategy:()=>hw,createBigCommercePaymentsAlternativeMethodsButtonStrategy:()=>_w,createBigCommercePaymentsButtonStrategy:()=>yw,createBigCommercePaymentsPayLaterButtonStrategy:()=>fw,createBigCommercePaymentsVenmoButtonStrategy:()=>bw,createBoltButtonStrategy:()=>Ow,createBraintreePaypalButtonStrategy:()=>Dw,createBraintreePaypalCreditButtonStrategy:()=>Nw,createBraintreeVenmoButtonStrategy:()=>Vw,createBraintreeVisaCheckoutButtonStrategy:()=>Rw,createGooglePayAdyenV2ButtonStrategy:()=>Kw,createGooglePayAdyenV3ButtonStrategy:()=>Jw,createGooglePayAuthorizeDotNetButtonStrategy:()=>Zw,createGooglePayBigCommercePaymentsButtonStrategy:()=>Yw,createGooglePayBraintreeButtonStrategy:()=>$w,createGooglePayCheckoutComButtonStrategy:()=>Qw,createGooglePayCybersourceButtonStrategy:()=>Xw,createGooglePayOrbitalButtonStrategy:()=>e_,createGooglePayPayPalCommerceButtonStrategy:()=>Ww,createGooglePayStripeButtonStrategy:()=>t_,createGooglePayTdOnlineMartButtonStrategy:()=>i_,createGooglePayWorldpayAccessButtonStrategy:()=>n_,createPayPalCommerceAlternativeMethodsButtonStrategy:()=>y_,createPayPalCommerceButtonStrategy:()=>a_,createPayPalCommerceCreditButtonStrategy:()=>c_,createPayPalCommerceVenmoButtonStrategy:()=>h_,createPaypalExpressButtonStrategy:()=>f_});class Ze extends Error{constructor(e){var t;super(e||"An unexpected error has occurred."),this.name="StandardError",this.type="standard",t=new.target.prototype,Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,"function"==typeof Error.captureStackTrace?Error.captureStackTrace(this,new.target):this.stack=new Error(this.message).stack}}!function(e){e[e.MissingBillingAddress=0]="MissingBillingAddress",e[e.MissingCart=1]="MissingCart",e[e.MissingCheckout=2]="MissingCheckout",e[e.MissingConsignments=3]="MissingConsignments",e[e.MissingCustomer=4]="MissingCustomer",e[e.MissingCheckoutConfig=5]="MissingCheckoutConfig",e[e.MissingOrder=6]="MissingOrder",e[e.MissingOrderConfig=7]="MissingOrderConfig",e[e.MissingOrderId=8]="MissingOrderId",e[e.MissingPayment=9]="MissingPayment",e[e.MissingPaymentId=10]="MissingPaymentId",e[e.MissingPaymentInstrument=11]="MissingPaymentInstrument",e[e.MissingPaymentMethod=12]="MissingPaymentMethod",e[e.MissingPaymentProviderCustomer=13]="MissingPaymentProviderCustomer",e[e.MissingPaymentRedirectUrl=14]="MissingPaymentRedirectUrl",e[e.MissingPaymentStatus=15]="MissingPaymentStatus",e[e.MissingPaymentToken=16]="MissingPaymentToken",e[e.MissingShippingAddress=17]="MissingShippingAddress"}(We||(We={}));class Qe extends Ze{constructor(e){super(function(e){switch(e){case We.MissingBillingAddress:return"Unable to proceed because billing address data is unavailable.";case We.MissingCart:return"Unable to proceed because cart data is unavailable.";case We.MissingConsignments:return"Unable to proceed because consignments data is unavailable.";case We.MissingCheckout:return"Unable to proceed because checkout data is unavailable.";case We.MissingCustomer:return"Unable to proceed because customer data is unavailable.";case We.MissingCheckoutConfig:case We.MissingOrderConfig:return"Unable to proceed because configuration data is unavailable.";case We.MissingOrder:return"Unable to proceed because order data is unavailable.";case We.MissingOrderId:return"Unable to proceed because order ID is unavailable or not generated yet.";case We.MissingPayment:return"Unable to proceed because payment data is unavailable.";case We.MissingPaymentToken:return"Unable to proceed because the token required to submit a payment is missing.";case We.MissingPaymentMethod:return"Unable to proceed because payment method data is unavailable or not properly configured.";case We.MissingPaymentProviderCustomer:return"Unable to proceed because payment provider customer is unavailable.";case We.MissingShippingAddress:return"Unable to proceed because shipping address data is unavailable.";default:return"Unable to proceed because the required data is unavailable."}}(e)),this.subtype=e,this.name="MissingDataError",this.type="missing_data"}}!function(e){e.UpdateBillingAddressRequested="UPDATE_BILLING_ADDRESS_REQUESTED",e.UpdateBillingAddressSucceeded="UPDATE_BILLING_ADDRESS_SUCCEEDED",e.UpdateBillingAddressFailed="UPDATE_BILLING_ADDRESS_FAILED",e.ContinueAsGuestRequested="CONTINUE_AS_GUEST_REQUESTED",e.ContinueAsGuestSucceeded="CONTINUE_AS_GUEST_SUCCEEDED",e.ContinueAsGuestFailed="CONTINUE_AS_GUEST_FAILED"}(Ye||(Ye={}));class Xe extends Ze{constructor(e){super(e||"Unable to continue as a guest because the customer is already signed in."),this.name="UnableToContinueAsGuestError",this.type="unable_to_continue_as_guest"}}var et;class tt{constructor(e,t){this._requestSender=e,this._subscriptionActionCreator=t}continueAsGuest(e,t){return n=>{const i=n.getState(),r=i.checkout.getCheckout();if(!r)throw new Qe(We.MissingCheckout);const o=i.customer.getCustomer();if(o&&!o.isGuest)throw new Xe;const a=i.billingAddress.getBillingAddress();let s;if(a){const{country:t}=a,n=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(a,["country"]);s=Object.assign(Object.assign({},n),e)}else s=e;const d=!E(a);return he(se(me(l(Ye.ContinueAsGuestRequested)),de(()=>{return e=this,n=void 0,o=function*(){const{body:e}=yield this._createOrUpdateBillingAddress(r.id,s,d,t);return l(Ye.ContinueAsGuestSucceeded,e)},new((i=void 0)||(i=Promise))(function(t,r){function a(e){try{d(o.next(e))}catch(e){r(e)}}function s(e){try{d(o.throw(e))}catch(e){r(e)}}function d(e){var n;e.done?t(e.value):(n=e.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((o=o.apply(e,n||[])).next())});var e,n,i,o})).pipe(ge(e=>Je(Ye.ContinueAsGuestFailed,e))),this._updateCustomerConsent(e,t))}}updateAddress(e,t){return n=>oe.create(i=>{const r=n.getState(),o=r.checkout.getCheckout();if(!o)throw new Qe(We.MissingCheckout);i.next(l(Ye.UpdateBillingAddressRequested));const a=r.billingAddress.getBillingAddress(),s=!E(a),d=Object.assign(Object.assign({},e),{email:void 0===e.email&&a?a.email:e.email});a&&a.id&&(d.id=a.id),this._createOrUpdateBillingAddress(o.id,d,s,t).then(({body:e})=>{i.next(l(Ye.UpdateBillingAddressSucceeded,e)),i.complete()}).catch(e=>{i.error(h(Ye.UpdateBillingAddressFailed,e))})})}_updateCustomerConsent({email:e,acceptsAbandonedCartEmails:t,acceptsMarketingNewsletter:n},i){return null==t&&null==n?ce():this._subscriptionActionCreator.updateSubscriptions({email:e,acceptsMarketingNewsletter:n||!1,acceptsAbandonedCartEmails:t||!1},i)}_createOrUpdateBillingAddress(e,t,n,i){return n?this._requestSender.updateAddress(e,t,i):this._requestSender.createAddress(e,t,i)}}class nt extends Ze{constructor(e){super(e||"Your checkout could not be processed because your cart is empty. Please add items to your cart and try again."),this.name="EmptyCartError",this.type="empty_cart"}}!function(e){e.Json="application/json",e.JsonV1="application/vnd.bc.v1+json"}(et||(et={}));const it=et,rt={"X-Checkout-SDK-Version":"1.817.0"};const ot={include:["cart.lineItems.physicalItems.options","cart.lineItems.digitalItems.options","customer","promotions.banners"].join(",")};class at{constructor(e){this._requestSender=e}createAddress(e,t,{timeout:n}={}){const i=`/api/storefront/checkouts/${e}/billing-address`,r=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.post(i,{body:t,params:ot,headers:r,timeout:n}).catch(e=>{if("empty_cart"===e.body.type)throw new nt;throw e})}updateAddress(e,t,{timeout:n}={}){const{id:i}=t,r=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(t,["id"]),o=`/api/storefront/checkouts/${e}/billing-address/${i}`,a=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.put(o,{params:ot,body:r,headers:a,timeout:n}).catch(e=>{if("empty_cart"===e.body.type)throw new nt;throw e})}}var st,dt;function ct(e,t){const n=u((e,t)=>t.type===st.Synchronize?t.payload:e,e.getState(),{stateTransformer:t});return e.subscribe(e=>{n.dispatch(l(st.Synchronize,e))},{initial:!1}),n}!function(e){e.Synchronize="SYNCHRONIZE"}(st||(st={}));class lt{log(e){console.error(e)}}!function(e){e.ClearError="CLEAR_ERROR"}(dt||(dt={}));class ut{clearError(e){return{type:dt.ClearError,payload:e}}}function ht(){try{return"production"}catch(e){return"development"}}class pt{constructor(e){this._console=e}log(...e){this._logToConsole("log",...e)}info(...e){this._logToConsole("info",...e)}warn(...e){this._logToConsole("warn",...e)}error(...e){this._logToConsole("error",...e)}debug(...e){this._logToConsole("debug",...e)}_logToConsole(e,...t){this._console&&this._console[e]&&this._console[e].call(this._console,...t)}}class mt{log(){}info(){}warn(){}error(){}debug(){}}const yt=function(e=!0){return e?new pt(console):new mt}("test"!==ht());function gt(){return yt}function vt(e,t,n){const i=new WeakMap;function r(e){return(...n)=>{const r=n[n.length-1],{useCache:o}=(a=r)&&"boolean"==typeof a.useCache?r:{useCache:!1};var a;if(!o)return e.call(this,...n);const s=i.get(this)||{};var d;return i.get(this)||i.set(this,s),s[t]||(s[t]=(d=e,Pe(function(...e){const t=d.call(this,...e);return t instanceof oe?le(t).pipe(Ce()):"function"==typeof t?Pe(e=>le(t(e)).pipe(Ce()),{isEqual:A}):t},{isEqual:A}))),s[t].call(this,...n)}}return{get(){if("function"!=typeof n.value)throw new Error("Decorator should be used in functions");const e=r.call(this,n.value);return Object.defineProperty(this,t,Object.assign(Object.assign({},n),{value:e})),e}}}var ft;!function(e){e.LoadConfigRequested="LOAD_CONFIG_REQUESTED",e.LoadConfigSucceeded="LOAD_CONFIG_SUCCEEDED",e.LoadConfigFailed="LOAD_CONFIG_FAILED"}(ft||(ft={}));class St{constructor(e){this._configRequestSender=e}loadConfig(e){return oe.create(t=>{t.next(l(ft.LoadConfigRequested)),this._configRequestSender.loadConfig(e).then(e=>{t.next(l(ft.LoadConfigSucceeded,e.body)),t.complete()}).catch(e=>{t.error(h(ft.LoadConfigFailed,e))})})}}!function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);o>3&&a&&Object.defineProperty(t,n,a)}([vt],St.prototype,"loadConfig",null);const wt={body:{},headers:{},status:0};class _t extends Ze{constructor(e,{message:t,errors:n}={}){const{body:i,headers:r,status:o}=e||wt;super(t||"An unexpected error has occurred."),this.name="RequestError",this.type="request",this.body=i,this.headers=r,this.status=o,this.errors=n||[]}}class Ct extends _t{constructor(e){super(e,{message:e.body.title}),this.name="CheckoutNotAvailableError",this.type="checkout_not_available"}}const It="This API endpoint is for internal use only and may change in the future";class bt{constructor(e){this._requestSender=e}loadConfig({timeout:e,params:t}={}){return this._requestSender.get("/api/storefront/checkout-settings",{timeout:e,headers:Object.assign({Accept:it.JsonV1,"X-API-INTERNAL":It},rt),params:t}).catch(e=>{if(e.status>=400&&e.status<500)throw new Ct(e);throw e})}}var Pt;!function(e){e.ApplyCouponRequested="APPLY_COUPON_REQUESTED",e.ApplyCouponSucceeded="APPLY_COUPON_SUCCEEDED",e.ApplyCouponFailed="APPLY_COUPON_FAILED",e.RemoveCouponRequested="REMOVE_COUPON_REQUESTED",e.RemoveCouponSucceeded="REMOVE_COUPON_SUCCEEDED",e.RemoveCouponFailed="REMOVE_COUPON_FAILED"}(Pt||(Pt={}));class Ot{constructor(e){this._couponRequestSender=e}applyCoupon(e,t){return n=>oe.create(i=>{const r=n.getState().checkout.getCheckout();if(!r)throw new Qe(We.MissingCheckout);i.next(l(Pt.ApplyCouponRequested)),this._couponRequestSender.applyCoupon(r.id,e,t).then(({body:e})=>{i.next(l(Pt.ApplyCouponSucceeded,e)),i.complete()}).catch(e=>{i.error(h(Pt.ApplyCouponFailed,e))})})}removeCoupon(e,t){return n=>oe.create(i=>{const r=n.getState().checkout.getCheckout();if(!r)throw new Qe(We.MissingCheckout);i.next(l(Pt.RemoveCouponRequested)),this._couponRequestSender.removeCoupon(r.id,e,t).then(({body:e})=>{i.next(l(Pt.RemoveCouponSucceeded,e)),i.complete()}).catch(e=>{i.error(h(Pt.RemoveCouponFailed,e))})})}}const Et=["cart.lineItems.physicalItems.options","cart.lineItems.digitalItems.options","customer","customer.customerGroup","payments","promotions.banners"];var At,kt,Tt,Dt;function Mt(e){return te(e).join(",")}!function(e){e.AvailableShippingOptions="consignments.availableShippingOptions",e.PhysicalItemsCategoryNames="cart.lineItems.physicalItems.categoryNames",e.DigitalItemsCategoryNames="cart.lineItems.digitalItems.categoryNames"}(At||(At={}));class zt{constructor(e){this._requestSender=e}applyCoupon(e,t,{timeout:n}={}){const i=`/api/storefront/checkouts/${e}/coupons`,r=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.post(i,{headers:r,timeout:n,params:{include:Mt([...Et,At.AvailableShippingOptions])},body:{couponCode:t}}).catch(e=>{if("empty_cart"===e.body.type)throw new nt;throw e})}removeCoupon(e,t,{timeout:n}={}){const i=`/api/storefront/checkouts/${e}/coupons/${t}`,r=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.delete(i,{headers:r,timeout:n,params:{include:Mt([...Et,At.AvailableShippingOptions])}}).catch(e=>{if("empty_cart"===e.body.type)throw new nt;throw e})}}!function(e){e.ApplyGiftCertificateRequested="APPLY_GIFT_CERTIFICATE_REQUESTED",e.ApplyGiftCertificateSucceeded="APPLY_GIFT_CERTIFICATE_SUCCEEDED",e.ApplyGiftCertificateFailed="APPLY_GIFT_CERTIFICATE_FAILED",e.RemoveGiftCertificateRequested="REMOVE_GIFT_CERTIFICATE_REQUESTED",e.RemoveGiftCertificateSucceeded="REMOVE_GIFT_CERTIFICATE_SUCCEEDED",e.RemoveGiftCertificateFailed="REMOVE_GIFT_CERTIFICATE_FAILED"}(kt||(kt={}));class Nt{constructor(e){this._giftCertificateRequestSender=e}applyGiftCertificate(e,t){return n=>oe.create(i=>{const r=n.getState().checkout.getCheckout();if(!r)throw new Qe(We.MissingCheckout);i.next(l(kt.ApplyGiftCertificateRequested)),this._giftCertificateRequestSender.applyGiftCertificate(r.id,e,t).then(({body:e})=>{i.next(l(kt.ApplyGiftCertificateSucceeded,e)),i.complete()}).catch(e=>{i.error(h(kt.ApplyGiftCertificateFailed,e))})})}removeGiftCertificate(e,t){return n=>oe.create(i=>{const r=n.getState().checkout.getCheckout();if(!r)throw new Qe(We.MissingCheckout);i.next(l(kt.RemoveGiftCertificateRequested)),this._giftCertificateRequestSender.removeGiftCertificate(r.id,e,t).then(({body:e})=>{i.next(l(kt.RemoveGiftCertificateSucceeded,e)),i.complete()}).catch(e=>{i.error(h(kt.RemoveGiftCertificateFailed,e))})})}}class xt{constructor(e){this._requestSender=e}applyGiftCertificate(e,t,{timeout:n}={}){const i=`/api/storefront/checkouts/${e}/gift-certificates`,r=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.post(i,{headers:r,timeout:n,params:{include:Mt(Et)},body:{giftCertificateCode:t}}).catch(e=>{if("empty_cart"===e.body.type)throw new nt;throw e})}removeGiftCertificate(e,t,{timeout:n}={}){const i=`/api/storefront/checkouts/${e}/gift-certificates/${t}`,r=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.delete(i,{headers:r,timeout:n,params:{include:Mt(Et)}}).catch(e=>{if("empty_cart"===e.body.type)throw new nt;throw e})}}function Ft(e){return e&&"resolveIds"in e}function Rt(e,t){return Object.assign(e,{resolveIds:t})}class Lt extends Ze{constructor(e){super(e||"Invalid arguments have been provided."),this.name="InvalidArgumentError",this.type="invalid_argument"}}class Bt{constructor(e){var t,n,i;this._factories={},this._instances={},this._defaultToken=null!==(t=null==e?void 0:e.defaultToken)&&void 0!==t?t:"default",this._useFallback=null===(n=null==e?void 0:e.useFallback)||void 0===n||n,this._tokenResolver=null!==(i=null==e?void 0:e.tokenResolver)&&void 0!==i?i:e=>e}get(e,t){try{return this._getInstance(e||this._defaultToken,t||e||this._defaultToken)}catch(e){if(!this._useFallback)throw e;return this._getInstance(this._defaultToken,t||this._defaultToken)}}getFactory(e){const t=this._tokenResolver(e,Object.keys(this._factories));return t?this._factories[t]:void 0}register(e,t){if(this._hasFactory(e))throw new Lt(`'${e}' is already registered.`);this._factories[e]=t}_hasFactory(e){return!!this._factories[e]}_hasInstance(e){return!!this._instances[e]}_getInstance(e,t){if(!this._hasInstance(t)){const n=this.getFactory(e);if(!n)throw new Lt(`'${e}' is not registered.`);this._instances[t]=n()}return this._instances[t]}}class jt{constructor(e=!1){this._useFallback=e,this._registry=new Bt({tokenResolver:this._resolveToken.bind(this),useFallback:this._useFallback})}get(e){return this._registry.get(this._encodeToken(e))}getFactory(e){try{return this._registry.getFactory(this._encodeToken(e))}catch(e){return}}register(e,t){this._registry.register(this._encodeToken(e),t)}_encodeToken(e){return btoa(JSON.stringify(e))}_decodeToken(e){return JSON.parse(atob(e))}_resolveToken(e,t){var n;const i=this._decodeToken(e),r=[];t.forEach(e=>{const t=this._decodeToken(e),n={token:e,matches:0,default:!1};for(const[e,r]of Object.entries(t)){if(e in i&&i[e]!==r){n.matches=0;break}e in i&&i[e]===r&&n.matches++,"default"===e&&!0===r&&(n.default=!0)}r.push(n)});const o=r.sort((e,t)=>t.matches-e.matches).filter(e=>e.matches>0);o.length>1&&o[0].matches===o[1].matches&&"development"===ht()&&gt().warn("The provided query matches at least two strategies with the same specificity. This warning can be resolved by making their resolve ID more specific.");const a=o[0];if(a&&a.token)return a.token;if(this._useFallback){const e=null===(n=r.find(e=>e.default))||void 0===n?void 0:n.token;if(e)return e}throw new Error("Unable to resolve to a registered token with the provided token.")}}function Ut(e){const t=e;return"object"==typeof t&&"object"==typeof t.payload&&"string"==typeof t.payload.token}!function(e){e.BuyNow="BUY_NOW"}(Tt||(Tt={})),function(e){e.SignInCustomerRequested="SIGN_IN_CUSTOMER_REQUESTED",e.SignInCustomerSucceeded="SIGN_IN_CUSTOMER_SUCCEEDED",e.SignInCustomerFailed="SIGN_IN_CUSTOMER_FAILED",e.SignOutCustomerRequested="SIGN_OUT_CUSTOMER_REQUESTED",e.SignOutCustomerSucceeded="SIGN_OUT_CUSTOMER_SUCCEEDED",e.SignOutCustomerFailed="SIGN_OUT_CUSTOMER_FAILED",e.CreateCustomerRequested="CREATE_CUSTOMER_REQUESTED",e.CreateCustomerSucceeded="CREATE_CUSTOMER_SUCCEEDED",e.CreateCustomerFailed="CREATE_CUSTOMER_FAILED",e.CreateCustomerAddressRequested="CREATE_CUSTOMER_ADDRESS_REQUESTED",e.CreateCustomerAddressSucceeded="CREATE_CUSTOMER_ADDRESS_SUCCEEDED",e.CreateCustomerAddressFailed="CREATE_CUSTOMER_ADDRESS_FAILED",e.StripeLinkAuthenticated="STRIPE_LINK_AUTHENTICATED"}(Dt||(Dt={}));var qt,Vt,Gt;class Ht{constructor(e,t,n){this._customerRequestSender=e,this._checkoutActionCreator=t,this._spamProtectionActionCreator=n}createCustomer(e,t){return n=>{const i=n.getState().config.getStoreConfigOrThrow(),{isStorefrontSpamProtectionEnabled:r}=i.checkoutSettings,o=i=>le(this._customerRequestSender.createAccount(Object.assign(Object.assign({},e),{token:i}),t)).pipe(Ie(()=>se(this._checkoutActionCreator.loadCurrentCheckout(t)(n),me(l(Dt.CreateCustomerSucceeded)))));return se(me(l(Dt.CreateCustomerRequested)),r?le(this._spamProtectionActionCreator.execute()(n)).pipe(Ie(e=>{var t;return Ut(e)?se(me(e),o(null===(t=e.payload)||void 0===t?void 0:t.token)):me(e)})):o()).pipe(ge(e=>Je(Dt.CreateCustomerFailed,e)))}}createAddress(e,t){return se(me(l(Dt.CreateCustomerAddressRequested)),de(()=>{return n=this,i=void 0,o=function*(){const{body:n}=yield this._customerRequestSender.createAddress(e,t);return l(Dt.CreateCustomerAddressSucceeded,n)},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o})).pipe(ge(e=>Je(Dt.CreateCustomerAddressFailed,e)))}signInCustomer(e,t){return n=>{const i=n.getState().checkout.getCheckoutOrThrow(),r=i.cart.source===Tt.BuyNow?i.id:void 0;return se(me(l(Dt.SignInCustomerRequested)),le(this._customerRequestSender.signInCustomer(Object.assign(Object.assign({},e),{cartId:r}),t)).pipe(Ie(({body:e})=>e.data.persistentCartRetrievalInformation?se(this._checkoutActionCreator.loadCheckout(e.data.persistentCartRetrievalInformation.id,t)(n),me(l(Dt.SignInCustomerSucceeded,e.data))):se(this._checkoutActionCreator.loadCurrentCheckout(t)(n),me(l(Dt.SignInCustomerSucceeded,e.data)))))).pipe(ge(e=>Je(Dt.SignInCustomerFailed,e)))}}signOutCustomer(e){return t=>{const n=t.getState().checkout.getCheckoutOrThrow(),i=n.cart.source===Tt.BuyNow?n.id:void 0;return se(me(l(Dt.SignOutCustomerRequested)),le(this._customerRequestSender.signOutCustomer(e,i)).pipe(Ie(({body:n})=>se(this._checkoutActionCreator.loadCurrentCheckout(e)(t),me(l(Dt.SignOutCustomerSucceeded,n.data)))))).pipe(ge(e=>Je(Dt.SignOutCustomerFailed,e)))}}}class $t{constructor(e){this._requestSender=e}createAccount(e,{timeout:t}={}){return this._requestSender.post("/api/storefront/customer",{timeout:t,headers:rt,body:e})}createAddress(e,{timeout:t}={}){return this._requestSender.post("/api/storefront/customer-address",{timeout:t,headers:rt,body:e})}signInCustomer(e,{timeout:t}={}){return this._requestSender.post("/internalapi/v1/checkout/customer",{timeout:t,headers:rt,body:e})}signOutCustomer({timeout:e}={},t){return this._requestSender.delete("/internalapi/v1/checkout/customer",Object.assign({timeout:e,headers:rt},t&&{body:{cartId:t}}))}}function Wt(e,t,n=!0){var i;return null!==(i=e[t])&&void 0!==i?i:n}function Yt(e,t,n){t.forEach(t=>{Ft(t)&&t.resolveIds.forEach(i=>{if(e.getFactory(i))return;const r=Rt(()=>t(n),t.resolveIds);e.register(i,r)})})}function Kt(e,t,n,i){const r=e.getFactory(n),o=t.some(e=>Ft(r)&&Ft(e)&&A(r.resolveIds,e.resolveIds));if(r&&!o){const e=`A different strategy is registered for ${JSON.stringify(n)}.`;i.log(new Error(e))}return o}!function(e){e.SignInFailed="CUSTOMER_STRATEGY_SIGN_IN_FAILED",e.SignInRequested="CUSTOMER_STRATEGY_SIGN_IN_REQUESTED",e.SignInSucceeded="CUSTOMER_STRATEGY_SIGN_IN_SUCCEEDED",e.SignOutFailed="CUSTOMER_STRATEGY_SIGN_OUT_FAILED",e.SignOutRequested="CUSTOMER_STRATEGY_SIGN_OUT_REQUESTED",e.SignOutSucceeded="CUSTOMER_STRATEGY_SIGN_OUT_SUCCEEDED",e.ExecutePaymentMethodCheckoutFailed="CUSTOMER_STRATEGY_EXECUTE_PAYMENT_METHOD_CHECKOUT_FAILED",e.ExecutePaymentMethodCheckoutRequested="CUSTOMER_STRATEGY_EXECUTE_PAYMENT_METHOD_CHECKOUT_REQUESTED",e.ExecutePaymentMethodCheckoutSucceeded="CUSTOMER_STRATEGY_EXECUTE_PAYMENT_METHOD_CHECKOUT_SUCCEEDED",e.InitializeFailed="CUSTOMER_STRATEGY_INITIALIZE_FAILED",e.InitializeRequested="CUSTOMER_STRATEGY_INITIALIZE_REQUESTED",e.InitializeSucceeded="CUSTOMER_STRATEGY_INITIALIZE_SUCCEEDED",e.DeinitializeFailed="CUSTOMER_STRATEGY_DEINITIALIZE_FAILED",e.DeinitializeRequested="CUSTOMER_STRATEGY_DEINITIALIZE_REQUESTED",e.DeinitializeSucceeded="CUSTOMER_STRATEGY_DEINITIALIZE_SUCCEEDED",e.WidgetInteractionStarted="CUSTOMER_STRATEGY_WIDGET_INTERACTION_STARTED",e.WidgetInteractionFinished="CUSTOMER_STRATEGY_WIDGET_INTERACTION_FINISHED",e.WidgetInteractionFailed="CUSTOMER_STRATEGY_WIDGET_INTERACTION_FAILED"}(qt||(qt={}));class Jt{constructor(e,t,n,i){this._strategyRegistry=e,this._strategyRegistryV2=t,this._paymentIntegrationService=n,this._errorLogger=i}signIn(e,t){return oe.create(n=>{const i=t&&t.methodId,r={methodId:i};n.next(l(qt.SignInRequested,void 0,r)),this._getStrategy(i).signIn(e,t).then(()=>{n.next(l(qt.SignInSucceeded,void 0,r)),n.complete()}).catch(e=>{n.error(h(qt.SignInFailed,e,r))})})}signOut(e){return oe.create(t=>{const n=e&&e.methodId,i={methodId:n};t.next(l(qt.SignOutRequested,void 0,i)),this._getStrategy(n).signOut(e).then(()=>{t.next(l(qt.SignOutSucceeded,void 0,i)),t.complete()}).catch(e=>{t.error(h(qt.SignOutFailed,e,i))})})}executePaymentMethodCheckout(e){return oe.create(t=>{const n=e&&e.methodId,i={methodId:n};t.next(l(qt.ExecutePaymentMethodCheckoutRequested,void 0,i)),this._getStrategy(n).executePaymentMethodCheckout(e).then(()=>{t.next(l(qt.ExecutePaymentMethodCheckoutSucceeded,void 0,i)),t.complete()}).catch(e=>{t.error(h(qt.ExecutePaymentMethodCheckoutFailed,e,i))})})}initialize(e){return t=>oe.create(n=>{var i,r;const o=t.getState(),a=e&&e.methodId,s={methodId:a},{features:d}=o.config.getStoreConfigOrThrow().checkoutSettings;if(Wt(d,"CHECKOUT-9450.lazy_load_payment_strategies",!1)){const t={id:a||""};Kt(this._strategyRegistryV2,null!==(i=null==e?void 0:e.integrations)&&void 0!==i?i:[],t,this._errorLogger),Yt(this._strategyRegistryV2,null!==(r=null==e?void 0:e.integrations)&&void 0!==r?r:[],this._paymentIntegrationService)}if(a&&o.customerStrategies.isInitialized(a))return n.complete();n.next(l(qt.InitializeRequested,void 0,s)),this._getStrategy(a).initialize(e).then(()=>{n.next(l(qt.InitializeSucceeded,void 0,s)),n.complete()}).catch(e=>{n.error(h(qt.InitializeFailed,e,s))})})}deinitialize(e){return t=>oe.create(n=>{const i=t.getState(),r=e&&e.methodId,o={methodId:r};if(r&&!i.customerStrategies.isInitialized(r))return n.complete();n.next(l(qt.DeinitializeRequested,void 0,o)),this._getStrategy(r).deinitialize(e).then(()=>{n.next(l(qt.DeinitializeSucceeded,void 0,o)),n.complete()}).catch(e=>{n.error(h(qt.DeinitializeFailed,e,o))})})}widgetInteraction(e,t){return oe.create(n=>{const i={methodId:t&&t.methodId};n.next(l(qt.WidgetInteractionStarted,void 0,i)),e().then(()=>{n.next(l(qt.WidgetInteractionFinished,void 0,i)),n.complete()}).catch(e=>{n.error(h(qt.WidgetInteractionFailed,e,i))})})}_getStrategy(e){let t;try{t=this._strategyRegistryV2.get({id:e||""})}catch(n){t=this._strategyRegistry.get(e)}return t}}function Zt(e,t=[]){return Array.isArray(t)?Mt([...e,...t]):function(e,t){const n=R(Y(t,e=>!e)),i=R(f(t));return Mt([...g(e,n),...i])}(e,t)}class Qt{constructor(e){this._requestSender=e}loadCheckout(e,{params:{include:t}={},timeout:n}={}){const i=`/api/storefront/checkout/${e}`,r=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.get(i,{params:{include:Zt(Et,t)},headers:r,timeout:n}).catch(e=>{if(e.status>=400&&e.status<500)throw new Ct(e);throw e})}updateCheckout(e,t,{params:{include:n}={},timeout:i}={}){const r=`/api/storefront/checkout/${e}`,o=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.put(r,{params:{include:Zt(Et,n)},body:t,headers:o,timeout:i})}}!function(e){e.LoadCheckoutRequested="LOAD_CHECKOUT_REQUESTED",e.LoadCheckoutSucceeded="LOAD_CHECKOUT_SUCCEEDED",e.LoadCheckoutFailed="LOAD_CHECKOUT_FAILED",e.UpdateCheckoutRequested="UPDATE_CHECKOUT_REQUESTED",e.UpdateCheckoutSucceeded="UPDATE_CHECKOUT_SUCCEEDED",e.UpdateCheckoutFailed="UPDATE_CHECKOUT_FAILED"}(Vt||(Vt={})),function(e){e.HydrateInitialState="HYDRATE_INITIAL_STATE"}(Gt||(Gt={}));var Xt;class en{constructor(e,t,n){this._checkoutRequestSender=e,this._configActionCreator=t,this._formFieldsActionCreator=n}loadCheckout(e,t){return()=>se(me(l(Vt.LoadCheckoutRequested)),he(this._configActionCreator.loadConfig({useCache:!0,timeout:null==t?void 0:t.timeout,params:{checkoutId:e}}),this._formFieldsActionCreator.loadFormFields({useCache:!0,timeout:null==t?void 0:t.timeout})),de(()=>this._checkoutRequestSender.loadCheckout(e,t).then(({body:e})=>l(Vt.LoadCheckoutSucceeded,this._transformCustomerAddresses(e))))).pipe(ge(e=>Je(Vt.LoadCheckoutFailed,e)))}loadDefaultCheckout(e){return t=>se(me(l(Vt.LoadCheckoutRequested)),he(this._configActionCreator.loadConfig({useCache:!0,timeout:null==e?void 0:e.timeout}),this._formFieldsActionCreator.loadFormFields({useCache:!0,timeout:null==e?void 0:e.timeout})),de(()=>{return n=this,i=void 0,o=function*(){const n=t.getState().config.getContextConfig();if(!n||!n.checkoutId)throw new Qe(We.MissingCheckoutConfig);const{body:i}=yield this._checkoutRequestSender.loadCheckout(n.checkoutId,e);return l(Vt.LoadCheckoutSucceeded,this._transformCustomerAddresses(i))},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o})).pipe(ge(e=>Je(Vt.LoadCheckoutFailed,e)))}updateCheckout(e,t){return n=>new oe(i=>{const r=n.getState().checkout.getCheckout();if(!r)throw new Qe(We.MissingCheckout);i.next(l(Vt.UpdateCheckoutRequested)),this._checkoutRequestSender.updateCheckout(r.id,e,t).then(({body:e})=>{i.next(l(Vt.UpdateCheckoutSucceeded,e)),i.complete()}).catch(e=>{i.error(h(Vt.UpdateCheckoutFailed,e))})})}loadCurrentCheckout(e){return t=>{const n=t.getState().checkout.getCheckout();if(!n)throw new Qe(We.MissingCheckout);return this.loadCheckout(n.id,e)(t)}}hydrateInitialState(e){return{type:Gt.HydrateInitialState,payload:e}}_transformCustomerAddresses(e){return Object.assign(Object.assign({},e),{customer:Object.assign(Object.assign({},e.customer),{addresses:e.customer.addresses.map(e=>Object.assign(Object.assign({},e),{shouldSaveAddress:!1}))})})}}!function(e){e.LoadFormFieldsRequested="LOAD_FORM_FIELDS_REQUESTED",e.LoadFormFieldsSucceeded="LOAD_FORM_FIELDS_SUCCEEDED",e.LoadFormFieldsFailed="LOAD_FORM_FIELDS_FAILED"}(Xt||(Xt={}));var tn;class nn{constructor(e){this._formFieldsRequestSender=e}loadFormFields(e){return se(me(l(Xt.LoadFormFieldsRequested)),de(()=>{return t=this,n=void 0,r=function*(){const{body:t}=yield this._formFieldsRequestSender.loadFields(e);return l(Xt.LoadFormFieldsSucceeded,t)},new((i=void 0)||(i=Promise))(function(e,o){function a(e){try{d(r.next(e))}catch(e){o(e)}}function s(e){try{d(r.throw(e))}catch(e){o(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((r=r.apply(t,n||[])).next())});var t,n,i,r})).pipe(ge(e=>Je(Xt.LoadFormFieldsFailed,e)))}}!function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);o>3&&a&&Object.defineProperty(t,n,a)}([vt],nn.prototype,"loadFormFields",null);class rn{constructor(e){this._requestSender=e}loadFields({timeout:e}={}){return this._requestSender.get("/api/storefront/form-fields",{timeout:e,headers:Object.assign({Accept:it.JsonV1,"X-API-INTERNAL":It},rt)})}}!function(e){e.LoadPaymentMethodRequested="LOAD_PAYMENT_METHOD_REQUESTED",e.LoadPaymentMethodSucceeded="LOAD_PAYMENT_METHOD_SUCCEEDED",e.LoadPaymentMethodFailed="LOAD_PAYMENT_METHOD_FAILED",e.LoadPaymentMethodsRequested="LOAD_PAYMENT_METHODS_REQUESTED",e.LoadPaymentMethodsSucceeded="LOAD_PAYMENT_METHODS_SUCCEEDED",e.LoadPaymentMethodsFailed="LOAD_PAYMENT_METHODS_FAILED"}(tn||(tn={}));const on=e=>!!e;class an{constructor(e){this._requestSender=e}loadPaymentMethodsById(e,t){return n=>new oe(i=>{var r;const o=null===(r=n.getState().cart.getCart())||void 0===r?void 0:r.id,a=o?Object.assign(Object.assign({},null==t?void 0:t.params),{cartId:o}):Object.assign({},null==t?void 0:t.params);i.next(l(tn.LoadPaymentMethodsRequested)),Promise.all(e.map(e=>{return n=this,i=void 0,o=function*(){try{return(yield this._requestSender.loadPaymentMethod(e,Object.assign(Object.assign({},t),{params:a}))).body}catch(e){return}},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o})).then(e=>{const t=e.filter(on);i.next(l(tn.LoadPaymentMethodsSucceeded,t)),i.complete()}).catch(e=>{i.next(l(tn.LoadPaymentMethodsFailed,e)),i.complete()})})}loadPaymentMethods(e){return t=>oe.create(n=>{const i=t.getState().cart.getCartOrThrow();n.next(l(tn.LoadPaymentMethodsRequested)),this._requestSender.loadPaymentMethods(Object.assign(Object.assign({},e),{params:Object.assign(Object.assign({},null==e?void 0:e.params),{cartId:i.id})})).then(e=>{const t={deviceSessionId:e.headers["x-device-session-id"],sessionHash:e.headers["x-session-hash"]},i=e.body;n.next(l(tn.LoadPaymentMethodsSucceeded,i,t)),n.complete()}).catch(e=>{n.error(h(tn.LoadPaymentMethodsFailed,e))})})}loadPaymentMethod(e,t){return n=>oe.create(i=>{var r;const o=null===(r=n.getState().cart.getCart())||void 0===r?void 0:r.id,a=o?Object.assign(Object.assign({},null==t?void 0:t.params),{cartId:o}):Object.assign({},null==t?void 0:t.params);i.next(l(tn.LoadPaymentMethodRequested,void 0,{methodId:e})),this._requestSender.loadPaymentMethod(e,Object.assign(Object.assign({},t),{params:a})).then(t=>{i.next(l(tn.LoadPaymentMethodSucceeded,t.body,{methodId:e})),i.complete()}).catch(t=>{i.error(h(tn.LoadPaymentMethodFailed,t,{methodId:e}))})})}}!function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);o>3&&a&&Object.defineProperty(t,n,a)}([vt],an.prototype,"loadPaymentMethod",null);class sn{constructor(e){this._requestSender=e}loadPaymentMethods({timeout:e,params:t}={}){return this._requestSender.get("/api/storefront/payments",{timeout:e,headers:Object.assign({Accept:it.JsonV1,"X-API-INTERNAL":It},rt),params:t})}loadPaymentMethod(e,{timeout:t,params:n}={}){const i=`/api/storefront/payments/${e}`;return this._requestSender.get(i,{timeout:t,headers:Object.assign({Accept:it.JsonV1,"X-API-INTERNAL":It},rt),params:n})}}class dn extends Ze{constructor(e){super(e||"Unable to proceed because the client library of a payment method is not loaded or ready to be used."),this.name="PaymentMethodClientUnavailableError",this.type="payment_method_client_unavailable"}}var cn;class ln{constructor(e,t=window){this._scriptLoader=e,this._window=t}load({useMasterpassSrc:e,language:t,testMode:n,checkoutId:i}){return r=this,o=void 0,s=function*(){if(e){const e=[`https://${n?"sandbox.":""}src.mastercard.com/srci/integration/merchant.js`,[`locale=${t}`,`checkoutid=${i}`].join("&")].join("?");if(yield this._scriptLoader.loadScript(e),!this._window.masterpass)throw new dn;return this._window.masterpass}if(yield this._scriptLoader.loadScript(`//${n?"sandbox.":""}masterpass.com/integration/merchant.js`),!this._window.masterpass)throw new dn;return this._window.masterpass},new((a=void 0)||(a=Promise))(function(e,t){function n(e){try{d(s.next(e))}catch(e){t(e)}}function i(e){try{d(s.throw(e))}catch(e){t(e)}}function d(t){var r;t.done?e(t.value):(r=t.value,r instanceof a?r:new a(function(e){e(r)})).then(n,i)}d((s=s.apply(r,o||[])).next())});var r,o,a,s}}class un{constructor(e){this._requestSender=e}initializeBilling(e,t,{timeout:n}={}){const i=`/remote-checkout/${e}/billing`;return this._requestSender.get(i,{params:t,timeout:n,headers:rt})}initializeShipping(e,t,{timeout:n}={}){const i=`/remote-checkout/${e}/shipping`;return this._requestSender.get(i,{params:t,timeout:n,headers:rt})}initializePayment(e,t,{timeout:n}={}){const i=`/remote-checkout/${e}/payment`;return this._requestSender.get(i,{params:t,timeout:n,headers:rt})}loadSettings(e,{timeout:t}={}){const n=`/remote-checkout/${e}/settings`;return this._requestSender.get(n,{timeout:t,headers:rt})}signOut(e,{timeout:t}={}){const n=`/remote-checkout/${e}/signout`;return this._requestSender.get(n,{timeout:t,headers:rt})}generateToken({timeout:e}={}){return this._requestSender.get("/remote-checkout-token",{timeout:e,headers:rt})}trackAuthorizationEvent({timeout:e}={}){return this._requestSender.post("/remote-checkout/events/shopper-checkout-service-provider-authorization-requested",{timeout:e,headers:rt})}forgetCheckout({timeout:e}={}){return this._requestSender.post("/remote-checkout/forget-checkout",{timeout:e,headers:rt})}}!function(e){e.ForgetCheckoutRemoteCustomerRequested="FORGET_CHECKOUT_REMOTE_CUSTOMER_REQUESTED",e.ForgetCheckoutRemoteCustomerSucceeded="FORGET_CHECKOUT_REMOTE_CUSTOMER_SUCCEEDED",e.ForgetCheckoutRemoteCustomerFailed="FORGET_CHECKOUT_REMOTE_CUSTOMER_FAILED",e.InitializeRemoteBillingRequested="INITIALIZE_REMOTE_BILLING_REQUESTED",e.InitializeRemoteBillingSucceeded="INITIALIZE_REMOTE_BILLING_SUCCEEDED",e.InitializeRemoteBillingFailed="INITIALIZE_REMOTE_BILLING_FAILED",e.InitializeRemoteShippingRequested="INITIALIZE_REMOTE_SHIPPING_REQUESTED",e.InitializeRemoteShippingSucceeded="INITIALIZE_REMOTE_SHIPPING_SUCCEEDED",e.InitializeRemoteShippingFailed="INITIALIZE_REMOTE_SHIPPING_FAILED",e.InitializeRemotePaymentRequested="INITIALIZE_REMOTE_PAYMENT_REQUESTED",e.InitializeRemotePaymentSucceeded="INITIALIZE_REMOTE_PAYMENT_SUCCEEDED",e.InitializeRemotePaymentFailed="INITIALIZE_REMOTE_PAYMENT_FAILED",e.LoadRemoteSettingsRequested="LOAD_REMOTE_SETTINGS_REQUESTED",e.LoadRemoteSettingsSucceeded="LOAD_REMOTE_SETTINGS_SUCCEEDED",e.LoadRemoteSettingsFailed="LOAD_REMOTE_SETTINGS_FAILED",e.SignOutRemoteCustomerRequested="SIGN_OUT_REMOTE_CUSTOMER_REQUESTED",e.SignOutRemoteCustomerSucceeded="SIGN_OUT_REMOTE_CUSTOMER_SUCCEEDED",e.SignOutRemoteCustomerFailed="SIGN_OUT_REMOTE_CUSTOMER_FAILED",e.UpdateRemoteCheckout="UPDATE_REMOTE_CHECKOUT"}(cn||(cn={}));var hn;class pn{constructor(e,t){this._remoteCheckoutRequestSender=e,this._checkoutActionCreator=t}initializeBilling(e,t,n){return oe.create(i=>{i.next(l(cn.InitializeRemoteBillingRequested,void 0,{methodId:e})),this._remoteCheckoutRequestSender.initializeBilling(e,t,n).then(({body:t={}})=>{i.next(l(cn.InitializeRemoteBillingSucceeded,t,{methodId:e})),i.complete()}).catch(t=>{i.error(h(cn.InitializeRemoteBillingFailed,t,{methodId:e}))})})}initializeShipping(e,t,n){return oe.create(i=>{i.next(l(cn.InitializeRemoteShippingRequested,void 0,{methodId:e})),this._remoteCheckoutRequestSender.initializeShipping(e,t,n).then(({body:t={}})=>{i.next(l(cn.InitializeRemoteShippingSucceeded,t,{methodId:e})),i.complete()}).catch(t=>{i.error(h(cn.InitializeRemoteShippingFailed,t,{methodId:e}))})})}initializePayment(e,t,n){return oe.create(i=>{i.next(l(cn.InitializeRemotePaymentRequested,void 0,{methodId:e})),this._remoteCheckoutRequestSender.initializePayment(e,t,n).then(({body:t={}})=>{i.next(l(cn.InitializeRemotePaymentSucceeded,t,{methodId:e})),i.complete()}).catch(t=>{i.error(h(cn.InitializeRemotePaymentFailed,t,{methodId:e}))})})}loadSettings(e,t){return oe.create(n=>{n.next(l(cn.LoadRemoteSettingsRequested,void 0,{methodId:e})),this._remoteCheckoutRequestSender.loadSettings(e,t).then(({body:t})=>{n.next(l(cn.LoadRemoteSettingsSucceeded,t,{methodId:e})),n.complete()}).catch(t=>{n.error(h(cn.LoadRemoteSettingsFailed,t,{methodId:e}))})})}signOut(e,t){return oe.create(n=>{n.next(l(cn.SignOutRemoteCustomerRequested,void 0,{methodId:e})),this._remoteCheckoutRequestSender.signOut(e,t).then(()=>{n.next(l(cn.SignOutRemoteCustomerSucceeded,void 0,{methodId:e})),n.complete()}).catch(t=>{n.error(h(cn.SignOutRemoteCustomerFailed,t,{methodId:e}))})})}forgetCheckout(e,t){return se(me(l(cn.ForgetCheckoutRemoteCustomerRequested,void 0,{methodId:e})),de(()=>{return n=this,i=void 0,o=function*(){return yield this._remoteCheckoutRequestSender.forgetCheckout(t),yield this._checkoutActionCreator.loadCurrentCheckout(),l(cn.ForgetCheckoutRemoteCustomerSucceeded,void 0,{methodId:e})},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o})).pipe(ge(t=>Je(cn.ForgetCheckoutRemoteCustomerFailed,t,{methodId:e})))}updateCheckout(e,t){return l(cn.UpdateRemoteCheckout,t,{methodId:e})}}class mn extends Ze{constructor(){super("You haven't complete our spam protection challenge. Please try again."),this.name="SpamProtectionChallengeNotCompletedError",this.type="spam_protection_challenge_not_completed"}}class yn extends Ze{constructor(){super("We were not able to complete your spam protection verification. Please try again."),this.name="SpamProtectionFailedError",this.type="spam_protection_failed"}}!function(e){e.InitializeFailed="SPAM_PROTECTION_INITIALIZE_FAILED",e.InitializeSucceeded="SPAM_PROTECTION_INITIALIZE_SUCCEEDED",e.InitializeRequested="SPAM_PROTECTION_INITIALIZE_REQUESTED",e.VerifyCheckoutRequested="SPAM_PROTECTION_CHECKOUT_VERIFY_REQUESTED",e.VerifyCheckoutSucceeded="SPAM_PROTECTION_CHECKOUT_VERIFY_SUCCEEDED",e.VerifyCheckoutFailed="SPAM_PROTECTION_CHECKOUT_VERIFY_FAILED",e.ExecuteRequested="SPAM_PROTECTION_EXECUTE_REQUESTED",e.ExecuteSucceeded="SPAM_PROTECTION_EXECUTE_SUCCEEDED",e.ExecuteFailed="SPAM_PROTECTION_EXECUTE_FAILED"}(hn||(hn={}));var gn,vn=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class fn{constructor(e,t){this._googleRecaptcha=e,this._requestSender=t}initialize(e){return t=>se(me(l(hn.InitializeRequested,void 0)),de(()=>vn(this,void 0,void 0,function*(){const n=e?e.containerId:"spamProtectionContainer";if(document.getElementById(n)&&this._googleRecaptcha.reset(n),!e&&!document.getElementById(n)){const e=document.createElement("div");e.setAttribute("id",n),document.body.appendChild(e)}const i=t.getState().config.getStoreConfigOrThrow().checkoutSettings.googleRecaptchaSitekey;return yield this._googleRecaptcha.load(n,i),l(hn.InitializeSucceeded)}))).pipe(ge(e=>Je(hn.InitializeFailed,e)))}verifyCheckoutSpamProtection(){return e=>de(()=>{const t=e.getState().checkout.getCheckout();if(!t)throw new Qe(We.MissingCheckout);return se(me(l(hn.VerifyCheckoutRequested)),le(this.execute()(e)).pipe(Ie(e=>Ut(e)&&e.payload?le(this._requestSender.validate(t.id,e.payload.token)).pipe(Ie(({body:t})=>se(me(e),me(l(hn.VerifyCheckoutSucceeded,t))))):me(e)))).pipe(ge(e=>Je(hn.VerifyCheckoutFailed,e)))})}execute(){return e=>se(me(l(hn.ExecuteRequested)),this.initialize()(e),this._googleRecaptcha.execute().pipe(be(1)).pipe(Ie(({error:e,token:t})=>vn(this,void 0,void 0,function*(){if(e instanceof mn)throw e;if(e||!t)throw new yn;return l(hn.ExecuteSucceeded,{token:t})})))).pipe(ge(e=>Je(hn.ExecuteFailed,e)))}}class Sn{constructor(e=window){this._window=e}create(e){return new this._window.MutationObserver(e)}}!function(e){e[e.CheckoutButtonNotInitialized=0]="CheckoutButtonNotInitialized",e[e.CustomerNotInitialized=1]="CustomerNotInitialized",e[e.PaymentNotInitialized=2]="PaymentNotInitialized",e[e.ShippingNotInitialized=3]="ShippingNotInitialized",e[e.SpamProtectionNotInitialized=4]="SpamProtectionNotInitialized"}(gn||(gn={}));class wn extends Ze{constructor(e){super(function(e){switch(e){case gn.CustomerNotInitialized:return"Unable to proceed because the customer step of checkout has not been initialized.";case gn.PaymentNotInitialized:return"Unable to proceed because the payment step of checkout has not been initialized.";case gn.ShippingNotInitialized:return"Unable to proceed because the shipping step of checkout has not been initialized.";case gn.SpamProtectionNotInitialized:return"Unable to proceed because the checkout spam protection has not been initialized.";default:return"Unable to proceed because the required component has not been initialized."}}(e)),this.subtype=e,this.name="NotInitializedError",this.type="not_initialized"}}class _n extends Ze{constructor(){super("Spam protection is not loaded. Please try again."),this.name="SpamProtectionNotLoadedError",this.type="spam_protection_failed"}}class Cn{constructor(e,t){this.googleRecaptchaScriptLoader=e,this.mutationObserverFactory=t,this._memoized=Pe((e,t,n)=>{const i=new ae;if(!n)throw new Error;return this._widgetId=e.render(n.id,{sitekey:t,size:"invisible",callback:()=>{i.next({token:e.getResponse(this._widgetId)}),e.reset(this._widgetId)},"error-callback":()=>{i.next({error:new yn})}}),i},{isEqual:(e,t)=>e===t})}load(e,t){return this.googleRecaptchaScriptLoader.load().then(n=>{n&&(this._event$=this._memoized(n,t,document.getElementById(e)),this._recaptcha=n)}).catch(e=>{throw e})}reset(e){var t;const n=document.getElementById(e);null==n||n.remove(),null===(t=this._recaptcha)||void 0===t||t.reset(this._widgetId)}execute(){return de(()=>{const e=this._event$,t=this._recaptcha;if(!e||!t)throw new wn(gn.SpamProtectionNotInitialized);return de(()=>{const e=document.querySelector('iframe[src*="bframe"]');return e?me(e):ye(new _n)}).pipe(_e(e=>e.pipe(ve(250),Ie((e,t)=>t<28?me(e):ye(e)))),Ie(n=>(this._watchRecaptchaChallengeWindow(e,n),t.execute(this._widgetId),e)),ge(e=>me({error:e})))})}_watchRecaptchaChallengeWindow(e,t){const n=t.parentElement;if(!n)throw new _n;const i=n.parentElement;if(!i)throw new _n;this.mutationObserverFactory.create(()=>{"hidden"===i.style.visibility&&e.next({error:new mn})}).observe(i,{attributes:!0,attributeFilter:["style"]})}}class In{constructor(e,t=window){this._scriptLoader=e,this._window=t}load(){return this._loadPromise||(this._loadPromise=this._loadScript()),this._loadPromise}_loadScript(){const e="initRecaptcha",t=[`onload=${e}`,"render=explicit"].join("&");return new Promise((n,i)=>{this._window[e]=()=>n(this._window.grecaptcha),this._scriptLoader.loadScript(`//www.google.com/recaptcha/api.js?${t}`).catch(e=>{this._loadPromise=void 0,i(e)})})}}function bn(e){return new Cn(new In(e),new Sn)}class Pn{constructor(e){this._requestSender=e}validate(e,t,{timeout:n}={}){const i=`/api/storefront/checkouts/${e}/spam-protection`,r=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.post(i,{body:{token:t},headers:r,timeout:n}).catch(e=>{if("empty_cart"===e.body.type)throw new nt;throw e})}}class On{constructor(e,t){this._store=e,this._customerActionCreator=t}signIn(e,t){return this._store.dispatch(this._customerActionCreator.signInCustomer(e,t))}signOut(e){return this._store.dispatch(this._customerActionCreator.signOutCustomer(e))}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve(this._store.getState())}initialize(){return Promise.resolve(this._store.getState())}deinitialize(){return Promise.resolve(this._store.getState())}}class En extends Ze{constructor(e){super(e||"Not implemented."),this.name="NotImplementedError",this.type="not_implemented"}}function An(e){return`${window.location.origin}/checkout.php?action=set_external_checkout&provider=masterpass&gateway=stripe&origin=${e}`}const kn={es:["es_es","es_mx","es_pe","es_co","es_ar","es_cl"],en:["en_us","en_gb","en_ca","en_es","en_fr","en_ie","en_sg","en_au","en_nz","en_my","en_hk","en_th","en_ae","en_sa","en_qa","en_kw","en_za"],pt:["pt_br"],zu:["zu_za"],ar:["ar_sa","ar_ae","ar_qa","ar_kw"],zh:["zh_sg","zh_hk"],ms:["ms_my"],uk:["uk_ua"],sv:["sv_se"],hr:["hr_hr"],pl:["pl_pl"],nl:["nl_be"],it:["it_it"],de:["de_de"],fr:["fr_fr","fr_ca"]};function Tn(e){const[t,n]=e.replace("-","_").toLowerCase().split("_"),i=`${t}_${n}`,r=kn[t];return r?r.indexOf(i)>-1?i:r[0]:"en_us"}class Dn{constructor(e,t,n,i,r){this._store=e,this._paymentMethodActionCreator=t,this._remoteCheckoutActionCreator=n,this._masterpassScriptLoader=i,this._locale=r}initialize(e){const{masterpass:t,methodId:n}=e;if(!t||!n)throw new Lt('Unable to proceed because "options.masterpass" argument is not provided.');return this._store.dispatch(this._paymentMethodActionCreator.loadPaymentMethod(n)).then(e=>{if(this._paymentMethod=e.paymentMethods.getPaymentMethod(n),!this._paymentMethod||!this._paymentMethod.initializationData.checkoutId)throw new Qe(We.MissingPaymentMethod);const i=e.cart.getCart();if(!i)throw new Qe(We.MissingCart);const{container:r}=t,o={checkoutId:this._paymentMethod.initializationData.checkoutId,allowedCardTypes:this._paymentMethod.initializationData.allowedCardTypes,amount:i.cartAmount.toString(),currency:i.currency.code,cartId:i.id,suppressShippingAddress:!1,callbackUrl:An("checkout")},a={useMasterpassSrc:this._paymentMethod.initializationData.isMasterpassSrcEnabled,language:Tn(this._locale),testMode:this._paymentMethod.config.testMode,checkoutId:this._paymentMethod.initializationData.checkoutId};return this._masterpassScriptLoader.load(a).then(e=>{this._signInButton=this._createSignInButton(r),this._signInButton.addEventListener("click",()=>{e.checkout(o)})})}).then(()=>this._store.getState())}deinitialize(){return this._paymentMethod=void 0,this._signInButton&&this._signInButton.parentNode&&(this._signInButton.parentNode.removeChild(this._signInButton),this._signInButton=void 0),Promise.resolve(this._store.getState())}signIn(){throw new En('In order to sign in via Masterpass, the shopper must click on "Masterpass" button.')}signOut(e){const t=this._store.getState().payment.getPaymentId();return t?this._store.dispatch(this._remoteCheckoutActionCreator.signOut(t.providerId,e)):Promise.resolve(this._store.getState())}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve(this._store.getState())}_createSignInButton(e){const t=document.querySelector(`#${e}`);if(!this._paymentMethod||!this._paymentMethod.initializationData.checkoutId)throw new Qe(We.MissingPaymentMethod);if(!t)throw new Lt("Unable to create sign-in button without valid container ID.");const n=document.createElement("input");if(n.type="image",this._paymentMethod.initializationData.isMasterpassSrcEnabled){const e=this._paymentMethod.config.testMode?"sandbox.":"",{checkoutId:t}=this._paymentMethod.initializationData,i=[`locale=${Tn(this._locale)}`,"paymentmethod=master,visa,amex,discover",`checkoutid=${t}`];n.src=[`https://${e}src.mastercard.com/assets/img/btn/src_chk_btn_126x030px.svg`,i.join("&")].join("?")}else n.src="https://static.masterpass.com/dyn/img/btn/global/mp_chk_btn_160x037px.svg";return t.appendChild(n),n}}function Mn(e){if(!/^(https?:)?\/\//.test(e))throw new Lt("The provided URL must be absolute.");const t=document.createElement("a");t.href=e;const n=t.port&&-1!==e.indexOf(`${t.hostname}:${t.port}`)?t.port:"";return{hash:t.hash,hostname:t.hostname,href:t.href,origin:`${t.protocol}//${t.hostname}${n?`:${n}`:""}`,pathname:t.pathname,port:n,protocol:t.protocol,search:t.search}}class zn extends Ze{constructor(e){super(e||"Unable to proceed due to no extension configured for this region."),this.name="ExtensionNotFoundError",this.type="extension_not_found"}}var Nn,xn;function Fn(e,t){return e.type===t}!function(e){e.LoadExtensionsRequested="LOAD_EXTENSIONS_REQUESTED",e.LoadExtensionsSucceeded="LOAD_EXTENSIONS_SUCCEEDED",e.LoadExtensionsFailed="LOAD_EXTENSIONS_FAILED",e.RenderExtensionRequested="RENDER_EXTENSION_REQUESTED",e.RenderExtensionSucceeded="RENDER_EXTENSION_SUCCEEDED",e.RenderExtensionFailed="RENDER_EXTENSION_FAILED"}(Nn||(Nn={}));class Rn{constructor(e,t,n){this._targetWindow=t,this._context=n,this._targetOrigin="*"===e?"*":Mn(e).origin}post(e,t){const n=this._targetWindow;if(window===n)return;if(!n)throw new Error("Unable to post message because target window is not set.");const i=t&&ue(window,"message").pipe(Se(e=>e.origin===this._targetOrigin&&Fn(e.data,e.data.type)&&-1!==[t.successType,t.errorType].indexOf(e.data.type)),we(e=>{if(t.errorType===e.data.type)throw e.data;return e.data}),be(1)).toPromise();return n.postMessage(Object.assign(Object.assign({},e),{context:this._context}),this._targetOrigin),i}setTarget(e){this._targetWindow=e}setContext(e){this._context=e}}function Ln(e){var t;const n=null===(t=document.querySelector(`[data-extension-id="${e.id}"]`))||void 0===t?void 0:t.querySelector("iframe");if(!(null==n?void 0:n.contentWindow))throw new zn(`Unable to post due to no extension rendered for ID: ${e.id}.`);return new Rn(e.url,n.contentWindow)}!function(e){e.ExtensionReady="EXTENSION:READY",e.ExtensionFailed="EXTENSION:FAILED"}(xn||(xn={}));class Bn{constructor(e){const t=new Promise((e,t)=>{this.cancel=t});this.promise=Promise.race([e,t])}}class jn extends Ze{constructor(e){super(e||"Unable to proceed because the required element is unexpectedly detached from the page."),this.name="UnexpectedDetachmentError",this.type="unexpected_detachment"}}var Un;class qn{constructor(e){this._mutationObserver=e}ensurePresence(e,t){return n=this,i=void 0,o=function*(){const n=new Bn(t),i=this._mutationObserver.create(t=>{t.forEach(t=>{0!==Array.from(t.removedNodes).filter(t=>e.some(e=>t===e||t.contains(e))).length&&n.cancel(new jn)})});i.observe(document.body,{childList:!0,subtree:!0});try{const e=yield n.promise;return i.disconnect(),e}catch(e){throw i.disconnect(),e}},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}}function Vn(e,t){const{iframeResizer:n}=Ge(785);return n(e,t)}class Gn extends Ze{constructor(e){super(e||"Unable to load an extension"),this.name="ExtensionNotLoadedError",this.type="extension_not_loaded"}}!function(e){e.Subscribe="EXTENSION_INTERNAL:SUBSCRIBE",e.Unsubscribe="EXTENSION_INTERNAL:UNSUBSCRIBE",e.ResizeIframe="EXTENSION_INTERNAL:RESIZE_IFRAME"}(Un||(Un={}));class Hn{constructor(e){this._options=e}createFrame(e,t,n,i){const r=document.getElementById(t),{timeout:o=6e4}=this._options||{};if(!r)throw new Gn("Unable to embed the iframe because the container element could not be found.");const a=document.createElement("iframe");return a.src=e,a.style.border="none",a.style.display="none",a.style.width="100%",r.appendChild(a),this._toResizableFrame(a,o,n,i).catch(e=>{throw r.removeChild(a),e})}_toResizableFrame(e,t,n,i){return r=this,o=void 0,s=function*(){const r=new qn(new Sn),o=new Promise((r,o)=>{const a=window.setTimeout(()=>{try{i()}catch(e){e instanceof Error&&console.error(`Extension rendering timed out after ${t}ms, and the callback function could not be executed. Error: ${e.message}`)}o(new Gn("Unable to load the extension because the content could not be loaded."))},t),s=t=>{if(t.origin===Mn(e.src).origin&&Fn(t.data,Un.ResizeIframe)){e.style.display="";const t=Vn({autoResize:!1,scrolling:!1,sizeWidth:!1,heightCalculationMethod:"bodyOffset",initCallback:n},e);d(),r(t[t.length-1])}},d=()=>{window.removeEventListener("message",s),window.clearTimeout(a)};window.addEventListener("message",s)});return r.ensurePresence([e],o)},new((a=void 0)||(a=Promise))(function(e,t){function n(e){try{d(s.next(e))}catch(e){t(e)}}function i(e){try{d(s.throw(e))}catch(e){t(e)}}function d(t){var r;t.done?e(t.value):(r=t.value,r instanceof a?r:new a(function(e){e(r)})).then(n,i)}d((s=s.apply(r,o||[])).next())});var r,o,a,s}}class $n{constructor(e,t,n){this._containerId=e,this._extension=t,this._config=n;const{cartId:i,parentOrigin:r}=this._config;this._url=new URL(this._extension.url),this._url.searchParams.set("extensionId",this._extension.id),this._url.searchParams.set("cartId",i),this._url.searchParams.set("parentOrigin",r)}attach(){var e,t,n,i,r;return t=this,n=void 0,r=function*(){if(null===(e=document.querySelector(`[data-extension-id="${this._extension.id}"]`))||void 0===e?void 0:e.querySelector("iframe"))return;const t=new Hn,n=e=>{Ln(this._extension).post({type:e})};this._iframe=yield t.createFrame(this._url.toString(),this._containerId,()=>{n(xn.ExtensionReady)},()=>{n(xn.ExtensionFailed)});const i=document.getElementById(this._containerId);null==i||i.setAttribute("data-extension-id",this._extension.id)},new((i=void 0)||(i=Promise))(function(e,o){function a(e){try{d(r.next(e))}catch(e){o(e)}}function s(e){try{d(r.throw(e))}catch(e){o(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((r=r.apply(t,n||[])).next())})}detach(){this._iframe&&this._iframe.parentElement&&this._iframe.parentElement.removeChild(this._iframe)}}class Wn{constructor(e){this._requestSender=e}loadExtensions(e){return()=>oe.create(t=>{t.next(l(Nn.LoadExtensionsRequested)),this._requestSender.loadExtensions(e).then(e=>{const n=e.body;t.next(l(Nn.LoadExtensionsSucceeded,n)),t.complete()}).catch(e=>{t.error(h(Nn.LoadExtensionsFailed,e))})})}renderExtension(e,t,n){return i=>oe.create(r=>{return o=this,a=void 0,d=function*(){const o=i.getState(),{id:a}=o.cart.getCartOrThrow(),{links:{checkoutLink:s},checkoutSettings:{features:d}}=o.config.getStoreConfigOrThrow();if(!d["PROJECT-5029.checkout_extension"])return r.complete();const c=o.extensions.getExtensionByRegion(t);try{if(!c)throw new zn(`Unable to proceed due to no extension configured for the region: ${t}.`);if(r.next(l(Nn.RenderExtensionRequested)),"worker"===c.type){const e=function(e){if(!window.Worker)throw new Error("Unable to load the extension's web worker: your browser does not support Web Workers.");try{const t=URL.createObjectURL(new Blob([`importScripts=((i)=>(...a)=>i(...a.map((u)=>''+new URL(u,"${e}"))))(importScripts);importScripts("${e}")`],{type:"text/javascript"}));return new Worker(t)}catch(e){throw new Error("Unable to load the extension's web worker")}}(c.url);n.add(c.id,e)}else{const t=new $n(e,c,{cartId:a,parentOrigin:Mn(s).origin});yield t.attach()}r.next(l(Nn.RenderExtensionSucceeded)),r.complete()}catch(e){r.error(h(Nn.RenderExtensionFailed,e))}},new((s=void 0)||(s=Promise))(function(e,t){function n(e){try{r(d.next(e))}catch(e){t(e)}}function i(e){try{r(d.throw(e))}catch(e){t(e)}}function r(t){var r;t.done?e(t.value):(r=t.value,r instanceof s?r:new s(function(e){e(r)})).then(n,i)}r((d=d.apply(o,a||[])).next())});var o,a,s,d})}}class Yn{constructor(e){this._requestSender=e}loadExtensions({timeout:e,params:t}={}){return this._requestSender.get("/api/storefront/checkout-extensions",{timeout:e,headers:Object.assign({Accept:it.JsonV1},rt),params:t})}}const Kn=function(e,t,n){return t&&n?Jn(0,t,n):function(e){const t=class extends e{};return Object.getOwnPropertyNames(e.prototype).forEach(n=>{const i=Object.getOwnPropertyDescriptor(e.prototype,n);i&&"constructor"!==n&&Object.defineProperty(t.prototype,n,Jn(e.prototype,n,i))}),t}(e)};function Jn(e,t,n){if("function"!=typeof n.value)return n;let i=n.value;return{get(){const e=i.bind(this);return Object.defineProperty(this,t,Object.assign(Object.assign({},n),{value:e})),e},set(e){i=e}}}var Zn,Qn;class Xn{constructor(e){this._worker=e,this._isListening=!1,this._listeners={}}listen(){this._isListening||(this._isListening=!0,this._worker.addEventListener("message",this._handleMessage))}stopListen(){this._isListening&&(this._isListening=!1,this._worker.removeEventListener("message",this._handleMessage))}addListener(e,t){let n=this._listeners[e];n||(this._listeners[e]=n=[]),-1===n.indexOf(t)&&n.push(t)}removeListener(e,t){const n=this._listeners[e];if(!n)return;const i=n.indexOf(t);i>=0&&n.splice(i,1)}trigger(e,t){const n=this._listeners[e.type];n&&n.forEach(n=>t?n(e,t):n(e))}_handleMessage(e){const t=e.data,{context:n}=t,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(t,["context"]);this.trigger(i,n)}}!function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);o>3&&a&&Object.defineProperty(t,n,a)}([Kn],Xn.prototype,"_handleMessage",null);class ei{constructor(e,t){this._worker=e,this._context=t}post(e){if(!this._worker)throw new Error("WorkerPoster: Worker is not initialized or creation failed. Cannot post message.");this._worker.postMessage(Object.assign(Object.assign({},e),{context:this._context}))}}class ti extends Ze{constructor(e){super(e||"Unable to proceed due to unsupported extension command."),this.name="UnsupportedExtensionCommandError",this.type="unsupported_extension_command_error"}}class ni extends Ze{constructor(e){super(e||"Unable to proceed due to unsupported extension query."),this.name="UnsupportedExtensionQueryError",this.type="unsupported_extension_query_error"}}!function(e){e.ReloadCheckout="EXTENSION:RELOAD_CHECKOUT",e.ShowLoadingIndicator="EXTENSION:SHOW_LOADING_INDICATOR",e.SetIframeStyle="EXTENSION:SET_IFRAME_STYLE",e.ReRenderShippingForm="EXTENSION:RE_RENDER_SHIPPING_FORM",e.ReRenderShippingStep="EXTENSION:RE_RENDER_SHIPPING_STEP"}(Zn||(Zn={})),function(e){e.GetConsignments="EXTENSION:GET_CONSIGNMENTS"}(Qn||(Qn={}));class ii{constructor(e={},t={},n={}){this._workers=e,this._commandListeners=t,this._queryListeners=n}add(e,t){this._workers[e]=t}listenForCommand(e,t,n){const i=this._getWorkerById(e);this._commandListeners[e]||(this._commandListeners[e]=new Xn(i));const r=this._commandListeners[e];r.listen();const o=this._validateCommand(t),a=(t,i)=>{(null==i?void 0:i.extensionId)===e&&n(t,i)};return r.addListener(o,a),()=>{r.removeListener(o,a)}}listenForQuery(e,t,n){const i=this._getWorkerById(e);this._queryListeners[e]||(this._queryListeners[e]=new Xn(i));const r=this._queryListeners[e];r.listen();const o=this._validateQuery(t),a=(t,i)=>{(null==i?void 0:i.extensionId)===e&&n(t,i)};return r.addListener(o,a),()=>{r.removeListener(o,a)}}stopListen(e){this._commandListeners[e]&&this._commandListeners[e].stopListen(),this._queryListeners[e]&&this._queryListeners[e].stopListen()}post(e,t){if(!this._workers[e])throw new Error(`Worker with extensionId ${e} not found`);new ei(this._workers[e],e).post(t)}clearCacheById(e){delete this._workers[e]}_getWorkerById(e){const t=this._workers[e];if(!t)throw new zn(`Worker with extensionId ${e} not found`);return t}_validateCommand(e){if(Object.values(Zn).includes(e))return e;throw new ti}_validateQuery(e){if(Object.values(Qn).includes(e))return e;throw new ni}}function ri(e){return Mn(0===e.hostname.indexOf("www")?e.href:e.href.replace(e.hostname,`www.${e.hostname}`))}var oi;class ai{constructor(e){this._sourceOrigins=[Mn(e).origin,ri(Mn(e)).origin],this._isListening=!1,this._listeners={}}listen(){this._isListening||(this._isListening=!0,window.addEventListener("message",this._handleMessage))}stopListen(){this._isListening&&(this._isListening=!1,window.removeEventListener("message",this._handleMessage))}addListener(e,t){let n=this._listeners[e];n||(this._listeners[e]=n=[]),-1===n.indexOf(t)&&n.push(t)}removeListener(e,t){const n=this._listeners[e];if(!n)return;const i=n.indexOf(t);i>=0&&n.splice(i,1)}trigger(e,t){const n=this._listeners[e.type];n&&n.forEach(n=>t?n(e,t):n(e))}_handleMessage(e){if(-1===this._sourceOrigins.indexOf(e.origin)||!Fn(e.data,e.data.type))return;const t=e.data,{context:n}=t,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(t,["context"]);this.trigger(i,n)}}!function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);o>3&&a&&Object.defineProperty(t,n,a)}([Kn],ai.prototype,"_handleMessage",null);class si{constructor(e,t,n={},i={},r={}){this._store=e,this._workerExtensionMessenger=t,this._commandListeners=n,this._queryListeners=i,this._posters=r}clearCacheByRegion(e){const t=this._getExtensionByRegion(e);"worker"!==t.type?this.clearCacheById(t.id):this._workerExtensionMessenger.clearCacheById(t.id)}clearCacheById(e){const t=this._getExtensionById(e);"worker"!==t.type?(this._commandListeners[e]&&delete this._commandListeners[e],this._queryListeners[e]&&delete this._queryListeners[e],this._posters[e]&&delete this._posters[e]):this._workerExtensionMessenger.clearCacheById(t.id)}listenForCommand(e,t,n){const i=this._getExtensionById(e);if("worker"===i.type)return this._workerExtensionMessenger.listenForCommand(e,t,n);this._commandListeners[e]||(this._commandListeners[e]=new ai(i.url));const r=this._commandListeners[e];r.listen();const o=this._validateCommand(t),a=(t,i)=>{(null==i?void 0:i.extensionId)===e&&n(t,i)};return r.addListener(o,a),()=>{r.removeListener(o,a)}}listenForQuery(e,t,n){const i=this._getExtensionById(e);if("worker"===i.type)return this._workerExtensionMessenger.listenForQuery(e,t,n);this._queryListeners[e]||(this._queryListeners[e]=new ai(i.url));const r=this._queryListeners[e];r.listen();const o=this._validateQuery(t),a=(t,i)=>{(null==i?void 0:i.extensionId)===e&&n(t,i)};return r.addListener(o,a),()=>{r.removeListener(o,a)}}stopListen(e){"worker"!==this._getExtensionById(e).type?(this._commandListeners[e]&&this._commandListeners[e].stopListen(),this._queryListeners[e]&&this._queryListeners[e].stopListen()):this._workerExtensionMessenger.stopListen(e)}post(e,t){try{const n=this._getExtensionById(e);if("worker"===n.type)return void this._workerExtensionMessenger.post(e,t);this._posters[e]||(this._posters[e]=Ln(n)),this._posters[e].post(t)}catch(n){this.clearCacheById(e),console.log(`Unable to post event to extension(${e}) because extension iframe is not mounted.\nThe event that could not be delivered:`,t)}}_getExtensionById(e){var t;this._getExtensions();const n=null===(t=this._extensions)||void 0===t?void 0:t.find(t=>t.id===e);if(!n)throw new zn(`Unable to proceed due to no extension found for ID: ${e}.`);return n}_getExtensionByRegion(e){var t;this._getExtensions();const n=null===(t=this._extensions)||void 0===t?void 0:t.find(t=>t.region===e);if(!n)throw new zn(`Unable to proceed due to no extension found for region: ${e}.`);return n}_getExtensions(){if(this._extensions)return;const{extensions:{getExtensions:e}}=this._store.getState();if(this._extensions=e(),!this._extensions)throw new zn("Extension configurations not found.")}_validateCommand(e){if(Object.values(Zn).includes(e))return e;throw new ti}_validateQuery(e){if(Object.values(Qn).includes(e))return e;throw new ni}}class di{constructor(e,t,n){this._store=e,this._extensionMessenger=t,this._subscribers=n,this._subscribed={},this._unsubscribers={},this._listeners={}}listen(){var e;const{data:{getExtensions:t}}=this._store.getState();null===(e=t())||void 0===e||e.forEach(e=>{if(this._listeners[e.id])return;const t=new ai(e.url);t.addListener(Un.Subscribe,this._handleSubscribe.bind(this)),t.addListener(Un.Unsubscribe,this._handleUnsubscribe.bind(this)),t.listen(),this._listeners[e.id]=t})}broadcast(e){var t;const{data:{getExtensions:n}}=this._store.getState();null===(t=n())||void 0===t||t.forEach(t=>{this._subscribed[t.id]&&this._extensionMessenger.post(t.id,e)})}_handleSubscribe({payload:{eventType:e,extensionId:t}}){this._subscribed[t]=!0,this._unsubscribers[e]||(this._unsubscribers[e]=this._subscribers[e](this._store,this))}_handleUnsubscribe({payload:{eventType:e,extensionId:t}}){var n,i;delete this._subscribed[t],Object.keys(this._subscribed).length||(null===(i=(n=this._unsubscribers)[e])||void 0===i||i.call(n),delete this._unsubscribers[e])}}!function(e){e.ConsignmentsChanged="EXTENSION:CONSIGNMENTS_CHANGED"}(oi||(oi={}));const ci=(e,t)=>{var n;const{data:{getConsignments:i}}=e.getState();let r=null!==(n=i())&&void 0!==n?n:[];return e.subscribe(({data:{getConsignments:e}})=>{var n;const i=null!==(n=e())&&void 0!==n?n:[];i!==r&&(t.broadcast({type:oi.ConsignmentsChanged,payload:{consignments:i,previousConsignments:r}}),r=i)},({data:{getConsignments:e}})=>e())};class li extends Error{constructor(e){var t;super(e||"An unexpected error has occurred."),this.name="StandardError",this.type="standard",t=new.target.prototype,Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,"function"==typeof Error.captureStackTrace?Error.captureStackTrace(this,new.target):this.stack=new Error(this.message).stack}}var ui,hi;!function(e){e[e.MissingBillingAddress=0]="MissingBillingAddress",e[e.MissingCart=1]="MissingCart",e[e.MissingCheckout=2]="MissingCheckout",e[e.MissingConsignments=3]="MissingConsignments",e[e.MissingCustomer=4]="MissingCustomer",e[e.MissingCheckoutConfig=5]="MissingCheckoutConfig",e[e.MissingOrder=6]="MissingOrder",e[e.MissingOrderConfig=7]="MissingOrderConfig",e[e.MissingOrderId=8]="MissingOrderId",e[e.MissingPayment=9]="MissingPayment",e[e.MissingPaymentId=10]="MissingPaymentId",e[e.MissingPaymentInstrument=11]="MissingPaymentInstrument",e[e.MissingPaymentMethod=12]="MissingPaymentMethod",e[e.MissingPaymentRedirectUrl=13]="MissingPaymentRedirectUrl",e[e.MissingPaymentStatus=14]="MissingPaymentStatus",e[e.MissingPaymentToken=15]="MissingPaymentToken",e[e.MissingShippingAddress=16]="MissingShippingAddress"}(ui||(ui={}));class pi extends li{constructor(e){super(function(e){switch(e){case ui.MissingBillingAddress:return"Unable to proceed because billing address data is unavailable.";case ui.MissingCart:return"Unable to proceed because cart data is unavailable.";case ui.MissingConsignments:return"Unable to proceed because consignments data is unavailable.";case ui.MissingCheckout:return"Unable to proceed because checkout data is unavailable.";case ui.MissingCustomer:return"Unable to proceed because customer data is unavailable.";case ui.MissingCheckoutConfig:case ui.MissingOrderConfig:return"Unable to proceed because configuration data is unavailable.";case ui.MissingOrder:return"Unable to proceed because order data is unavailable.";case ui.MissingOrderId:return"Unable to proceed because order ID is unavailable or not generated yet.";case ui.MissingPayment:return"Unable to proceed because payment data is unavailable.";case ui.MissingPaymentToken:return"Unable to proceed because the token required to submit a payment is missing.";case ui.MissingPaymentMethod:return"Unable to proceed because payment method data is unavailable or not properly configured.";case ui.MissingShippingAddress:return"Unable to proceed because shipping address data is unavailable.";default:return"Unable to proceed because the required data is unavailable."}}(e)),this.subtype=e,this.name="MissingDataError",this.type="missing_data"}}function mi(e){return t=e.lineItems.physicalItems.filter(e=>!e.addedByPromotion),K(t,(e,t)=>e+t.quantity,0);var t}function yi(e,t){if(null==e)throw t?t():new Error("An unexpected error has occurred.");return e}!function(e){e[e.CheckoutButtonNotInitialized=0]="CheckoutButtonNotInitialized",e[e.CustomerNotInitialized=1]="CustomerNotInitialized",e[e.PaymentNotInitialized=2]="PaymentNotInitialized",e[e.ShippingNotInitialized=3]="ShippingNotInitialized",e[e.SpamProtectionNotInitialized=4]="SpamProtectionNotInitialized"}(hi||(hi={}));class gi extends li{constructor(e){super(function(e){switch(e){case hi.CustomerNotInitialized:return"Unable to proceed because the customer step of checkout has not been initialized.";case hi.PaymentNotInitialized:return"Unable to proceed because the payment step of checkout has not been initialized.";case hi.ShippingNotInitialized:return"Unable to proceed because the shipping step of checkout has not been initialized.";case hi.SpamProtectionNotInitialized:return"Unable to proceed because the checkout spam protection has not been initialized.";default:return"Unable to proceed because the required component has not been initialized."}}(e)),this.subtype=e,this.name="NotInitializedError",this.type="not_initialized"}}const vi={de:"eu",jp:"fe",uk:"eu",us:"na"};var fi,Si,wi,_i,Ci,Ii;!function(e){e.en_US="en_US",e.en_GB="en_GB",e.de_DE="de_DE",e.fr_FR="fr_FR",e.it_IT="it_IT",e.es_ES="es_ES",e.ja_JP="ja_JP"}(fi||(fi={})),function(e){e.Home="Home",e.Product="Product",e.Cart="Cart",e.Checkout="Checkout",e.Other="Other"}(Si||(Si={})),function(e){e.USD="USD",e.EUR="EUR",e.GBP="GBP",e.JPY="JPY"}(wi||(wi={})),function(e){e.PayAndShip="PayAndShip",e.PayOnly="PayOnly"}(_i||(_i={})),function(e){e.Gold="Gold",e.LightGray="LightGray",e.DarkGray="DarkGray"}(Ci||(Ci={})),function(e){e.C0001="C0001"}(Ii||(Ii={}));var bi=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Pi{constructor(e){this.amazonPayV2ScriptLoader=e}initialize(e){return bi(this,void 0,void 0,function*(){this.amazonPayV2SDK=yield this.amazonPayV2ScriptLoader.load(e),this.buttonParentContainer=this.buttonParentContainer||this.createAmazonPayButtonParentContainer()})}deinitialize(){var e;return this.amazonPayV2Button=void 0,null===(e=this.buttonParentContainer)||void 0===e||e.remove(),this.buttonParentContainer=void 0,this.amazonPayV2SDK=void 0,Promise.resolve()}bindButton(e,t,n){this.getAmazonPayV2SDK().Pay.bindChangeAction(`#${e}`,{amazonCheckoutSessionId:t,changeAction:n})}createButton(e,t){this.amazonPayV2Button=this.getAmazonPayV2SDK().Pay.renderButton(`#${e}`,t)}prepareCheckout(e){const t=this.prepareRequestConfig(e);this.getAmazonPayV2Button().onClick(()=>{this.getAmazonPayV2Button().initCheckout(t)})}prepareCheckoutWithCreationRequestConfig(e){this.getAmazonPayV2Button().onClick(()=>bi(this,void 0,void 0,function*(){const t=yield e();if(t){const e=this.prepareRequestConfig(t.createCheckoutSessionConfig,t.estimatedOrderAmount,t.productType);this.getAmazonPayV2Button().initCheckout(e)}}))}signout(){return bi(this,void 0,void 0,function*(){return this.amazonPayV2SDK&&this.amazonPayV2SDK.Pay.signout(),Promise.resolve()})}renderAmazonPayButton({buttonColor:e,checkoutState:t,containerId:n,decoupleCheckoutInitiation:i=!1,methodId:r,options:o,placement:a,isButtonMicroTextDisabled:s=!1}){const d=document.querySelector(`#${n}`);if(!d)return;const{id:c}=d.appendChild(this.getButtonParentContainer());o&&s&&(o.design=Ii.C0001);const l=null!=o?o:this.getAmazonPayV2ButtonOptions(t,r,a,i,e);return this.createButton(c,l),this.getButtonParentContainer()}updateBuyNowFlowFlag(e){this.isBuyNowFlow=Boolean(e)}isPh4Enabled(e,t){const n=!!e["PROJECT-3483.amazon_pay_ph4"],i=!!e["INT-6885.amazon_pay_ph4_us_only"];return n&&i?"US"===t:n}prepareRequestConfig(e,t,n){const{publicKeyId:i}=e,r=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["publicKeyId"]);return Object.assign(Object.assign({createCheckoutSessionConfig:this.isEnvironmentSpecific(i)?r:e},t&&{estimatedOrderAmount:t}),n&&{productType:n})}createAmazonPayButtonParentContainer(){const e=Math.random().toString(16).substr(-4),t=document.createElement("div");return t.id=`amazonpay_button_parent_container_${e}`,t}getAmazonPayV2ButtonOptions(e,t,n,i=!1,r=Ci.Gold){var o;const{getCart:a,getCheckout:s,getStoreConfigOrThrow:d,getPaymentMethodOrThrow:c}=this.getCheckoutState(e),{config:{merchantId:l,testMode:u},initializationData:h}=c(t);if(!h)throw new pi(ui.MissingPaymentMethod);const{checkoutLanguage:p,checkoutSessionMethod:m,createCheckoutSessionConfig:y,extractAmazonCheckoutSessionId:g,ledgerCurrency:v,publicKeyId:f="",isButtonMicroTextDisabled:S}=h;if(!l||!v)throw new pi(ui.MissingPaymentMethod);const w=Object.assign({merchantId:l,ledgerCurrency:v,checkoutLanguage:p,placement:n,buttonColor:r},S?{design:Ii.C0001}:{});if(this.isBuyNowFlow)return Object.assign(Object.assign({},w),{sandbox:!!u});const _=a();w.productType=_&&0===mi(_)?_i.PayOnly:_i.PayAndShip;const{checkoutSettings:{features:C},storeProfile:{shopPath:I,storeCountryCode:b}}=d();if(this.isPh4Enabled(C,b)){if(!y)throw new pi(ui.MissingPaymentMethod);const e=null===(o=s())||void 0===o?void 0:o.outstandingBalance.toString(),t=null==_?void 0:_.currency.code,n=Object.assign({},w);let r;return this.isEnvironmentSpecific(f)?(n.publicKeyId=f,r=y):(n.sandbox=!!u,r=Object.assign(Object.assign({},y),{publicKeyId:f})),i||(n.createCheckoutSessionConfig=r),e&&t&&(n.estimatedOrderAmount={amount:e,currencyCode:t}),n}const P={method:m,url:`${I}/remote-checkout/${t}/payment-session`,extractAmazonCheckoutSessionId:g};return Object.assign(Object.assign({},w),{createCheckoutSession:P,sandbox:!!u})}isEnvironmentSpecific(e){return/^(SANDBOX|LIVE)/.test(e)}getAmazonPayV2SDK(){return this.getOrThrow(this.amazonPayV2SDK)}getButtonParentContainer(){return this.getOrThrow(this.buttonParentContainer)}getAmazonPayV2Button(){return this.getOrThrow(this.amazonPayV2Button)}getOrThrow(e){return yi(e,()=>new gi(hi.PaymentNotInitialized))}getCheckoutState(e){return"object"==typeof(t=e)&&null!==t&&"cart"in t&&"checkout"in t&&"config"in t&&"paymentMethods"in t?{getCart:e.cart.getCart,getCheckout:e.checkout.getCheckout,getStoreConfigOrThrow:e.config.getStoreConfigOrThrow,getPaymentMethodOrThrow:t=>e.paymentMethods.getPaymentMethodOrThrow(t)}:e;var t}}class Oi extends li{constructor(e){super(e||"Unable to proceed because the client library of a payment method is not loaded or ready to be used."),this.name="PaymentMethodClientUnavailableError",this.type="payment_method_client_unavailable"}}class Ei{constructor(e,t=window){this.scriptLoader=e,this.windowWithAmazonPay=t}load(e){return t=this,n=void 0,r=function*(){const{initializationData:t}=e,n=(null==t?void 0:t.region)||"us",i=vi[n];if(yield this.scriptLoader.loadScript(`https://static-${i}.payments-amazon.com/checkout.js`),!this.windowWithAmazonPay.amazon)throw new Oi;return this.windowWithAmazonPay.amazon},new((i=void 0)||(i=Promise))(function(e,o){function a(e){try{d(r.next(e))}catch(e){o(e)}}function s(e){try{d(r.throw(e))}catch(e){o(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((r=r.apply(t,n||[])).next())});var t,n,i,r}}function Ai(){return new Pi(new Ei(a()))}class ki extends li{constructor(e){super(e||"Invalid arguments have been provided."),this.name="InvalidArgumentError",this.type="invalid_argument"}}class Ti extends li{constructor(e){super(e||"Not implemented."),this.name="NotImplementedError",this.type="not_implemented"}}var Di=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Mi{constructor(e,t){this.paymentIntegrationService=e,this.amazonPayV2PaymentProcessor=t}initialize(e){return Di(this,void 0,void 0,function*(){const{methodId:t,amazonpay:n}=e;if(!t||!(null==n?void 0:n.container))throw new ki('Unable to proceed because "methodId" or "containerId" argument is not provided.');let i;try{i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(t)}catch(e){yield this.paymentIntegrationService.loadPaymentMethod(t),i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(t)}yield this.amazonPayV2PaymentProcessor.initialize(i),this.amazonPayV2PaymentProcessor.renderAmazonPayButton({checkoutState:this.paymentIntegrationService.getState(),containerId:n.container,methodId:t,placement:Si.Checkout})})}deinitialize(){return Di(this,void 0,void 0,function*(){yield this.amazonPayV2PaymentProcessor.deinitialize()})}signIn(){throw new Ti('In order to sign in via Amazon, the shopper must click on "Amazon Pay" button.')}signOut(e){return Di(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState().getPaymentId();t&&(yield this.amazonPayV2PaymentProcessor.signout(),yield this.paymentIntegrationService.remoteCheckoutSignOut(t.providerId,e))})}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}}const zi=Rt(e=>new Mi(e,Ai()),[{id:"amazonpay"}]),Ni="3.128.0",xi="3.123.2",Fi="3.106.0";class Ri{constructor(e){this.paymentIntegrationService=e,this.braintreeWindow=window}getSDKVersion(){const e=this.paymentIntegrationService.getState().getStoreConfig(),t=(null==e?void 0:e.checkoutSettings.features)||{};return this.getPreloadedSDKVersion()||(Wt(t,"PAYPAL-5809.braintree_hosted_fields_fix_version")?Ni:Wt(t,"PAYPAL-5636.update_braintree_sdk_version")?xi:Fi)}getPreloadedSDKVersion(){const e=this.braintreeWindow.braintree;if(e){const t=S(Object.values(e),e=>!!e.VERSION);return null==t?void 0:t.VERSION}}}class Li extends li{constructor(e){super(e||"Unsupported browser error"),this.name="UnsupportedBrowserError",this.type="unsupported_browser"}}var Bi,ji,Ui,qi,Vi,Gi,Hi;function $i(e){return Boolean("object"==typeof e&&null!==e&&("type"in e||"message"in e||"code"in e))}!function(e){e.ESTIMATED="ESTIMATED",e.FINAL="FINAL",e.NOT_CURRENTLY_KNOWN="NOT_CURRENTLY_KNOWN"}(Bi||(Bi={})),function(e){e.Completed="COMPLETED",e.Pending="PENDING",e.Failed="FAILED"}(ji||(ji={})),function(e){e.TRUSTLY="trustly"}(Ui||(Ui={})),function(e){e.SUCCEEDED="succeeded",e.FAILED="failed",e.CANCELED="cancelled",e.UNRECOGNIZED="unrecognized"}(qi||(qi={})),function(e){e.Customer="CUSTOMER",e.Merchant="MERCHANT",e.Network="NETWORK",e.Internal="INTERNAL",e.Unknown="UNKNOWN"}(Vi||(Vi={})),function(e){e.KountNotEnabled="DATA_COLLECTOR_KOUNT_NOT_ENABLED"}(Gi||(Gi={})),function(e){e.Visa="visa",e.Mastercard="mastercard",e.AmericanExpress="american-express",e.DinersClub="diners-club",e.Discover="discover",e.Jcb="jcb",e.UnionPay="union-pay",e.Maestro="maestro",e.Elo="elo",e.Mir="mir",e.Hiper="hiper",e.Hipercard="hipercard"}(Hi||(Hi={}));var Wi,Yi,Ki,Ji=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Zi{constructor(e){this.braintreeScriptLoader=e}initialize(e){this.setClientToken(e)}deinitialize(){return Ji(this,void 0,void 0,function*(){yield this.teardownModule(this.dataCollector),this.dataCollector=void 0})}getClient(){return Ji(this,void 0,void 0,function*(){if(!this.client){const e=this.getClientTokenOrThrow(),t=yield this.braintreeScriptLoader.loadClient();this.client=yield t.create({authorization:e})}return this.client})}getDataCollectorOrThrow(e){return Ji(this,void 0,void 0,function*(){const t={deviceData:void 0,teardown:()=>Promise.resolve()};if(!this.dataCollector)try{const t=yield this.getClient(),n=yield this.braintreeScriptLoader.loadDataCollector(),i=Object.assign({client:t,kount:!0},e);this.dataCollector=yield n.create(i)}catch(e){if($i(e)&&e.code===Gi.KountNotEnabled)return t;throw e}return this.dataCollector})}getBraintreeGooglePayment(){return Ji(this,void 0,void 0,function*(){if(!this.googlePayment){const[e,t]=yield Promise.all([this.getClient(),this.braintreeScriptLoader.loadGooglePayment()]);this.googlePayment=yield t.create({client:e})}return this.googlePayment})}getBraintreeThreeDS(){return Ji(this,void 0,void 0,function*(){if(!this.threeDS){const[e,t]=yield Promise.all([this.getClient(),this.braintreeScriptLoader.load3DS()]);this.threeDS=yield t.create({client:e,version:2})}return this.threeDS})}getBraintreeLocalPayment(e){return Ji(this,void 0,void 0,function*(){if(!this.braintreeLocalPayment){const[t,n]=yield Promise.all([this.getClient(),this.braintreeScriptLoader.loadLocalPayment()]);this.braintreeLocalPayment=yield new Promise((i,r)=>{n.create({client:t,merchantAccountId:e},(e,t)=>{e&&r(e),i(t)})})}return this.braintreeLocalPayment})}getUsBankAccount(){return Ji(this,void 0,void 0,function*(){if(!this.usBankAccount){const e=yield this.getClient(),t=yield this.braintreeScriptLoader.loadUsBankAccount();this.usBankAccount=yield t.create({client:e})}return this.usBankAccount})}getBraintreeVisaCheckout(){return this.visaCheckout||(this.visaCheckout=Promise.all([this.getClient(),this.braintreeScriptLoader.loadVisaCheckout()]).then(([e,t])=>t.create({client:e}))),this.visaCheckout}getVisaCheckoutSdk(e){return Ji(this,void 0,void 0,function*(){return this.visaCheckoutSDK||(this.visaCheckoutSDK=yield this.braintreeScriptLoader.loadVisaCheckoutSdk(e)),this.visaCheckoutSDK})}getVenmoCheckoutOrThrow(){return Ji(this,void 0,void 0,function*(){if(!this.braintreeVenmo){const e=yield this.getClient(),t=yield this.braintreeScriptLoader.loadVenmoCheckout(),n={client:e,allowDesktop:!0,paymentMethodUsage:"multi_use"},i=yield t.create(n);if(!i.isBrowserSupported())throw new Li;this.braintreeVenmo=i}return this.braintreeVenmo})}setClientToken(e){this.clientToken=e}getClientTokenOrThrow(){if(!this.clientToken)throw new gi(hi.PaymentNotInitialized);return this.clientToken}teardownModule(e){return e?e.teardown():Promise.resolve()}}!function(e){e.Sandbox="sandbox",e.Production="production"}(Wi||(Wi={})),function(e){e.Client="client",e.DataCollector="dataCollector",e.Fastlane="fastlane",e.GooglePayment="googlePayment",e.HostedFields="hostedFields",e.LocalPayment="localPayment",e.Paypal="paypal",e.PaypalCheckout="paypalCheckout",e.ThreeDSecure="threeDSecure",e.UsBankAccount="usBankAccount",e.Venmo="venmo",e.VisaCheckout="visaCheckout"}(Yi||(Yi={})),function(e){e.CardCode="cardCode",e.CardCodeVerification="cardCodeVerification",e.CardExpiry="cardExpiry",e.CardName="cardName",e.CardNumber="cardNumber",e.CardNumberVerification="cardNumberVerification"}(Ki||(Ki={}));const Qi={[Fi]:{[Yi.Client]:"sha384-26BXDNnJI23JYRyFBj4xe4sVNrUSSiSSu11kxVXNM/vEPONm4LuL00w6ZaTgQewt",[Yi.PaypalCheckout]:"sha384-B+vzbZwnQtzWBthpkT4TXKUibO65tyeK7eCxSvpblgprTep2+IAXB2Cxxjrn710O",[Yi.Paypal]:"sha384-uyAGL1/3+XJAHnGoNy4eCoXdzJ4f7Ilzp+6w9PNnEjs6DCCz9WMyJjMN1gzc78U+",[Yi.LocalPayment]:"sha384-LIvOEMkIVEwVuYBdVOQc1AC5YbGGlwyfUheS0ACK218D2STuVYQlZ4FyEPowAEfT",[Yi.DataCollector]:"sha384-1bo9JDz+Kscthc085cCKWur8CLwUoBpoNyxsDi7932mCl0zFq3A5mv+FQLw9GHpV",[Yi.UsBankAccount]:"sha384-xmHBVaU+w74V+OebD3AaPONFxHUGMf+QRs8G/JxVPXNNP7MDa2jL0ICWHIe2tTfJ",[Yi.GooglePayment]:"sha384-WKDJl8mqoP82qZpMGH6AbZxnvXnSW8ILV4M64CyMLiugGMwu7LyP89wjCkHqsiBe",[Yi.ThreeDSecure]:"sha384-VQUlpGHzsGvs5XeiGFip7EXRsvoHWEXDVmgCacfbyieZI9mdBOqq3NSoyo28OCOB",[Yi.VisaCheckout]:"sha384-yx7mADfzTN0T43Q6rlH49LIg1EJ0iUZgBp/EczX9LXsUGkySgxrD+nWHQRBkyfoT",[Yi.Venmo]:"sha384-QX4rPjoj1ZDhuG0aSyKs56lEKDqTMTcjYxUHY1SzO5VZDsqIE2NTkqot7KNSCyov",[Yi.HostedFields]:"sha384-VvYBACfSu0Cr/J32uKmxG7AXcNOJE1AzIIL3kbikyS7YKp5fz5Is+NzNP/lyauNy",[Yi.Fastlane]:"sha384-9oGsZMRZwpGtDEDYa/dFt76dECqj1xAni9gIKgc3KfMIiRnR73nEeeUDLiBzxhFa"},[xi]:{[Yi.Client]:"sha384-o+nbQGcwNNxIBeXeu3+XmbSq+Cg8R3EN3N0l5hXCgMMU2RGY0t1z0LroSEIAbfAO",[Yi.PaypalCheckout]:"sha384-WrfbWPBS4mH86GAoycPSgiH8hQ8KH7A67C93Hjhunv/xhNk2YpBn3wbFA4Fhg9U/",[Yi.Paypal]:"sha384-VF389nvvrRUgDsTXMxTYORDtVegB9IQa3Cxr//DyJnLYnz8/X8VCzEvck2c+Megt",[Yi.LocalPayment]:"sha384-tZKx2rEQbfmZpoPSY5VPmJEhaq4X75dLvwHMs3VE9U+C8lPyw+hWTIL1+GPvWCIH",[Yi.DataCollector]:"sha384-E6k3wOpP7syCDDwaRDLF06942Y00NkbwJvWi2OQXwwKzGwG5fd3E7RFUvCCecfvO",[Yi.UsBankAccount]:"sha384-258FON8LZGG0W9Qaz4Jij83pZHu30YnKjJA7gNulLBh6CclkucgF+tHDQuYFRYfW",[Yi.GooglePayment]:"sha384-taJ2p/0+n0VH328POAoBiuEbL3tnHUTE9S42hK1V+Txs3X+QYjZOyKW35JgHRFfO",[Yi.ThreeDSecure]:"sha384-+NSZH4Zj3sO5bdWvPKhU5N16QDxeueTVTnUVeleeESkhLSaz4Ob1hh/5myecc9Ym",[Yi.VisaCheckout]:"sha384-66DiBjghxk1OmBj8aksN8gbQ+CwoQcx1vPfiXUN08g1iQVM+BwewF0p7toM3i7SS",[Yi.Venmo]:"sha384-B5UwY42kE4RoLoWbQ7YpqosUlUad2/DlGWiw0HhoZbSPk30CQAaSA10ohyLDTkDU",[Yi.HostedFields]:"sha384-Aw9EesSaUeWxe36PqEHiOyOyOq8M6CIb1gw7/yHNVPRzGtFXXcd2OQ8qXrIlOj2P",[Yi.Fastlane]:"sha384-rhBL1hpZ71JqG+2TsT0Dih47mbjx8cjJCpeZjk9tw3df1gFMKfCTmMyZunhr7H4Y"},[Ni]:{[Yi.Client]:"sha384-0WNxksIpRP+fYZiIdr12g6DBUQfLDzYCQJZtR/C8KkcwSGhPHfcFp3tTaGcMyFTq",[Yi.PaypalCheckout]:"sha384-lWM1jk4BOxoDNV6Kop7tVNvQgINlmEVz0c/OwM+HNHK3QC8xqwd54Ovrt2QRDTjh",[Yi.Paypal]:"sha384-fXUmVxC2EMZBDXZ7eTHSTL/LFBrHej/MSXT/vTBXvra4lzgLNGvREAp+x0GYObuH",[Yi.LocalPayment]:"sha384-pha1xGuGSkmZH5x9aqHvRaO4xLea7rmQ/79PFj9zxNzxuFcOWZg7gOP7FibygOEC",[Yi.DataCollector]:"sha384-Q6PI2F9eekWbAxhroybl+aEcvqhdowN/EQlGwBUyJOzPFn9982u9xl6SU6XfGKzc",[Yi.UsBankAccount]:"sha384-W3RLQSKJL1tQ3+Y7mP6tmkamtZ8bV4Yw/XxL9Jj5JtXHraD8loMF8hAIG5m2zK7F",[Yi.GooglePayment]:"sha384-TITQMsFWA3elDNGP2mWz2oKBo4qjt+TlqzovcaPoeBiAh/wPBi6nae50ADdgU1/i",[Yi.ThreeDSecure]:"sha384-YiycYN89ZlL/Evcaq4y1ajW1mhd7JYfZBDuOwHtIn4/Jnm20GL+/XCM+zYAwWD8D",[Yi.VisaCheckout]:"sha384-/OdaTv9qrkKzjObtUe6yzfDhHozFW/+uXlrSl736sOZRJpjGQETvpYXqMFFg69xv",[Yi.Venmo]:"sha384-dA+ojdW9vbJS4JavcXyOs9d5uZHJg5dNtYupoPSH2zsXIiYDVS5amLb/u8qmQ6oz",[Yi.HostedFields]:"sha384-31ZkS58+iaWsW06ftW52zzVZFp43WPd7pNYRiddYynSNg6Oh7WGbSFGorAUH6T1z",[Yi.Fastlane]:"sha384-jlbrwNvL3HvLAUCtLSmrnQ2GH1udCUrRS/bVmReAS5fuIVvcW8Pko/Gkg82tlgtr"}};var Xi,er=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class tr{constructor(e,t,n){this.scriptLoader=e,this.braintreeHostWindow=t,this.braintreeSDKVersionManager=n}loadClient(){return er(this,void 0,void 0,function*(){return this.loadBraintreeModuleOrThrow(Yi.Client,"client.min.js")})}loadFastlane(){return er(this,void 0,void 0,function*(){return this.loadBraintreeModuleOrThrow(Yi.Fastlane,"fastlane.min.js")})}loadPaypalCheckout(){return er(this,void 0,void 0,function*(){return this.loadBraintreeModuleOrThrow(Yi.PaypalCheckout,"paypal-checkout.min.js")})}loadPaypal(){return er(this,void 0,void 0,function*(){return this.loadBraintreeModuleOrThrow(Yi.Paypal,"paypal.min.js")})}loadLocalPayment(){return er(this,void 0,void 0,function*(){return this.loadBraintreeModuleOrThrow(Yi.LocalPayment,"local-payment.min.js")})}loadDataCollector(){return er(this,void 0,void 0,function*(){return this.loadBraintreeModuleOrThrow(Yi.DataCollector,"data-collector.min.js")})}loadUsBankAccount(){return er(this,void 0,void 0,function*(){return this.loadBraintreeModuleOrThrow(Yi.UsBankAccount,"us-bank-account.min.js")})}loadGooglePayment(){return er(this,void 0,void 0,function*(){return this.loadBraintreeModuleOrThrow(Yi.GooglePayment,"google-payment.min.js")})}load3DS(){return er(this,void 0,void 0,function*(){return this.loadBraintreeModuleOrThrow(Yi.ThreeDSecure,"three-d-secure.min.js")})}loadVisaCheckout(){return this.loadBraintreeModuleOrThrow(Yi.VisaCheckout,"visa-checkout.min.js")}loadVenmoCheckout(){return this.loadBraintreeModuleOrThrow(Yi.Venmo,"venmo.min.js")}loadHostedFields(){return er(this,void 0,void 0,function*(){return this.loadBraintreeModuleOrThrow(Yi.HostedFields,"hosted-fields.min.js")})}loadVisaCheckoutSdk(e){return er(this,void 0,void 0,function*(){if(this.braintreeHostWindow.V)return this.braintreeHostWindow.V;const t=e?"sha384-0eu1s1GtqzXlL9DtLgmwzC5WWlEH/ADRM0n38cVQkvtT+W/gey96rcb1LwuUOPDm":"sha384-1f1csvP3ZFxg4dILH1GaY4LHlZ0oX7Rk83rxmLlwbnIi4TM0NYzXoev1VoEiVDS6";return this.scriptLoader.loadScript(`//${e?"sandbox-":""}assets.secure.checkout.visa.com/checkout-widget/resources/js/integration/v1/sdk.js`,{async:!0,attributes:{integrity:t,crossorigin:"anonymous"}}).then(()=>{if(!this.braintreeHostWindow.V)throw new Oi;return this.braintreeHostWindow.V})})}loadBraintreeModuleOrThrow(e,t){return er(this,void 0,void 0,function*(){let n=this.getBraintreeModule(e);if(n)return n;const i=this.braintreeSDKVersionManager.getSDKVersion(),r=`//js.braintreegateway.com/web/${i}/js/${t}`,o=i in Qi?this.getIntegrityValuesByModuleName(e,i):void 0;if(yield this.scriptLoader.loadScript(r,o?{async:!0,attributes:{integrity:o,crossorigin:"anonymous"}}:void 0),n=this.getBraintreeModule(e),!n)throw new Oi;return n})}getBraintreeModule(e){var t;return null===(t=this.braintreeHostWindow.braintree)||void 0===t?void 0:t[e]}getIntegrityValuesByModuleName(e,t){const n=Qi[t][e];if(!n)throw new Error("Unexpected fileName value");return n}}class nr extends li{constructor(e){super(e||"Payment process was cancelled."),this.name="PaymentMethodCancelledError",this.type="payment_cancelled"}}!function(e){e.BRAINTREE="braintree",e.BRAINTREE_FASTLANE="braintreeacceleratedcheckout"}(Xi||(Xi={}));var ir,rr=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};!function(e){e.Subtotal="Subtotal",e.Shipping="Shipping"}(ir||(ir={}));class or{constructor(e,t,n,i,r){this._requestSender=e,this._paymentIntegrationService=t,this._sessionFactory=n,this._braintreeSdk=i,this._applePayScriptLoader=r,this._onAuthorizeCallback=V,this._onError=V,this._onClick=V,this._subTotalLabel=ir.Subtotal,this._shippingLabel=ir.Shipping,this._hasApplePaySession=!1}initialize(e){var t;return rr(this,void 0,void 0,function*(){const{methodId:n,applepay:i}=e;if(!n||!i)throw new pi(ui.MissingPaymentMethod);const{container:r,shippingLabel:o,subtotalLabel:a,onError:s=V,onClick:d=V,onPaymentAuthorize:c}=i;this._shippingLabel=o||ir.Shipping,this._subTotalLabel=a||ir.Subtotal,this._onAuthorizeCallback=c,this._onError=s,this._onClick=d;let l=this._paymentIntegrationService.getState();yield this._applePayScriptLoader.loadSdk();try{this._paymentMethod=l.getPaymentMethodOrThrow(n)}catch(e){l=yield this._paymentIntegrationService.loadPaymentMethod(n),this._paymentMethod=l.getPaymentMethodOrThrow(n)}yield this._paymentIntegrationService.verifyCheckoutSpamProtection(),this._applePayButton=this._createButton(r),this._applePayButton.addEventListener("click",this._handleWalletButtonClick.bind(this)),(null===(t=this._paymentMethod.initializationData)||void 0===t?void 0:t.gateway)===Xi.BRAINTREE&&(yield this._initializeBraintreeSdk())})}deinitialize(){return Promise.resolve()}signIn(){throw new Ti('In order to sign in via Apple, the shopper must click on "Apple Pay" button.')}signOut(){throw new Ti("Need to do signout via apple.")}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}_createButton(e){const t=document.getElementById(e);if(!t)throw new ki("Unable to create sign-in button without valid container ID.");const n=this._createApplePayButtonElement();return t.appendChild(n),n}_createApplePayButtonElement(){const e=document.createElement("apple-pay-button");return e.setAttribute("buttonstyle","black"),e.setAttribute("type","plain"),e.setAttribute("style","--apple-pay-button-width: 100%; --apple-pay-button-height: 36px; --apple-pay-button-border-radius: 4px;"),e}_handleWalletButtonClick(e){if(e.preventDefault(),this._hasApplePaySession)return;this._onClick();const t=this._paymentIntegrationService.getState(),n=t.getCartOrThrow(),i=t.getStoreConfigOrThrow(),r=t.getCheckoutOrThrow();if(!this._paymentMethod||!this._paymentMethod.initializationData)throw new pi(ui.MissingPaymentMethod);const o=this._getBaseRequest(n,r,i,this._paymentMethod),a=this._sessionFactory.create(o);this._handleApplePayEvents(a,this._paymentMethod,i),a.begin(),this._hasApplePaySession=!0}_getBaseRequest(e,t,n,i){var r;const{storeProfile:{storeCountryCode:o,storeName:a}}=n,{currency:{code:s,decimalPlaces:d}}=e,{initializationData:{merchantCapabilities:c,supportedNetworks:l}}=i,u=e.lineItems.physicalItems.length>0,h={requiredBillingContactFields:["postalAddress"],requiredShippingContactFields:["email","phone"],countryCode:o,currencyCode:s,merchantCapabilities:c,supportedNetworks:l,lineItems:[],total:u?{label:a,amount:`${t.grandTotal.toFixed(d)}`,type:"pending"}:{label:a,amount:`${t.grandTotal.toFixed(d)}`,type:"final"}};if(u)null===(r=h.requiredShippingContactFields)||void 0===r||r.push("postalAddress");else{const e=[{label:this._subTotalLabel,amount:`${t.subtotal.toFixed(d)}`}];t.taxes.forEach(t=>e.push({label:t.name,amount:`${t.amount.toFixed(d)}`})),h.lineItems=e}return h}_handleApplePayEvents(e,t,n){e.onvalidatemerchant=n=>rr(this,void 0,void 0,function*(){try{const{body:i}=yield this._onValidateMerchant(t,n);e.completeMerchantValidation(i)}catch(e){this._onError(e)}}),e.onshippingcontactselected=t=>rr(this,void 0,void 0,function*(){return this._handleShippingContactSelected(e,n,t)}),e.onshippingmethodselected=t=>rr(this,void 0,void 0,function*(){return this._handleShippingMethodSelected(e,n,t)}),e.oncancel=()=>rr(this,void 0,void 0,function*(){this._hasApplePaySession=!1;try{const e=`/remote-checkout/${t.id}/signout`;return yield this._requestSender.get(e),yield this._paymentIntegrationService.loadCheckout()}catch(e){return this._onError(new nr)}}),e.onpaymentauthorized=n=>rr(this,void 0,void 0,function*(){return this._onPaymentAuthorized(n,e,t)})}_handleShippingContactSelected(e,t,n){var i;return rr(this,void 0,void 0,function*(){const r=this._transformContactToAddress(n.shippingContact);try{yield this._paymentIntegrationService.updateShippingAddress(r)}catch(t){return e.abort(),this._hasApplePaySession=!1,this._onError(t)}const{storeProfile:{storeName:o}}=t;let a=this._paymentIntegrationService.getState();const{currency:{decimalPlaces:s}}=a.getCartOrThrow();let d=a.getCheckoutOrThrow();const c=null===(i=d.consignments[0].selectedShippingOption)||void 0===i?void 0:i.id,l=d.consignments[0].availableShippingOptions,u=null==l?void 0:l.find(({id:e})=>e===c),h=null==l?void 0:l.filter(e=>e.id!==c),p=u?[{label:u.description,amount:`${u.cost.toFixed(s)}`,detail:u.additionalDescription,identifier:u.id}]:[];if(h&&[...h.filter(e=>e.isRecommended),...h.filter(e=>!e.isRecommended)].forEach(e=>p.push({label:e.description,amount:`${e.cost.toFixed(s)}`,detail:e.additionalDescription,identifier:e.id})),!(l instanceof Array))throw new Error("Shipping options not available.");if(0===l.length)return void e.completeShippingContactSelection(ApplePaySession.STATUS_INVALID_SHIPPING_POSTAL_ADDRESS,[],{type:"pending",label:o,amount:`${d.grandTotal.toFixed(s)}`},[]);const m=l.find(e=>e.isRecommended),y=m?m.id:l[0].id,g=u?u.id:y;try{yield this._updateShippingOption(g)}catch(e){return this._onError(e)}a=this._paymentIntegrationService.getState(),d=a.getCheckoutOrThrow(),e.completeShippingContactSelection({newShippingMethods:p,newTotal:{type:"final",label:o,amount:`${d.grandTotal.toFixed(s)}`},newLineItems:this._getUpdatedLineItems(d,s)})})}_handleShippingMethodSelected(e,t,n){return rr(this,void 0,void 0,function*(){const{storeProfile:{storeName:i}}=t,{shippingMethod:{identifier:r}}=n;try{yield this._updateShippingOption(r)}catch(t){return e.abort(),this._hasApplePaySession=!1,this._onError(t)}const o=this._paymentIntegrationService.getState(),{currency:{decimalPlaces:a}}=o.getCartOrThrow(),s=o.getCheckoutOrThrow();e.completeShippingMethodSelection({newTotal:{type:"final",label:i,amount:`${s.grandTotal.toFixed(a)}`},newLineItems:this._getUpdatedLineItems(s,a)})})}_getUpdatedLineItems(e,t){const n=[{label:this._subTotalLabel,amount:`${e.subtotal.toFixed(t)}`}];return e.taxes.forEach(e=>n.push({label:e.name,amount:`${e.amount.toFixed(t)}`})),n.push({label:this._shippingLabel,amount:`${e.shippingCostTotal.toFixed(t)}`}),n}_updateShippingOption(e){return rr(this,void 0,void 0,function*(){return this._paymentIntegrationService.selectShippingOption(e)})}_onValidateMerchant(e,t){return rr(this,void 0,void 0,function*(){const n=[`validationUrl=${t.validationURL}`,`merchantIdentifier=${e.initializationData.merchantId}`,`displayName=${e.initializationData.storeName}`,`domainName=${window.location.hostname}`].join("&");return this._requestSender.post(`${e.initializationData.paymentsUrl}/api/public/v1/payments/applepay/validate_merchant`,{credentials:!1,headers:{Accept:"application/json","Content-Type":"application/x-www-form-urlencoded","X-XSRF-TOKEN":null},body:n})})}_onPaymentAuthorized(e,t,n){var i;return rr(this,void 0,void 0,function*(){const{token:r,billingContact:o,shippingContact:a}=e.payment,s=this._paymentIntegrationService.getState().getCartOrThrow().lineItems.physicalItems.length>0;let d;(null===(i=n.initializationData)||void 0===i?void 0:i.gateway)===Xi.BRAINTREE&&(d=yield this._getBraintreeDeviceData());const c={methodId:n.id,paymentData:{deviceSessionId:d,formattedPayload:{apple_pay_token:{payment_data:r.paymentData,payment_method:r.paymentMethod,transaction_id:r.transactionIdentifier}}}},l=this._transformContactToAddress(o),u=this._transformContactToAddress(a),h=null==a?void 0:a.emailAddress,p=(null==a?void 0:a.phoneNumber)||"";try{return yield this._paymentIntegrationService.updateBillingAddress(Object.assign(Object.assign({},l),{email:h,phone:p})),s&&(yield this._paymentIntegrationService.updateShippingAddress(u)),yield this._paymentIntegrationService.submitOrder({useStoreCredit:!1}),yield this._paymentIntegrationService.submitPayment(c),t.completePayment(ApplePaySession.STATUS_SUCCESS),this._onAuthorizeCallback()}catch(e){return t.completePayment(ApplePaySession.STATUS_FAILURE),this._onError(e)}})}_transformContactToAddress(e){return{firstName:(null==e?void 0:e.givenName)||"",lastName:(null==e?void 0:e.familyName)||"",city:(null==e?void 0:e.locality)||"",company:"",address1:(null==e?void 0:e.addressLines)&&e.addressLines[0]||"",address2:(null==e?void 0:e.addressLines)&&e.addressLines[1]||"",postalCode:(null==e?void 0:e.postalCode)||"",countryCode:(null==e?void 0:e.countryCode)||"",phone:(null==e?void 0:e.phoneNumber)||"",stateOrProvince:(null==e?void 0:e.administrativeArea)||"",stateOrProvinceCode:(null==e?void 0:e.administrativeArea)||"",customFields:[]}}_getBraintreeDeviceData(){return rr(this,void 0,void 0,function*(){try{const{deviceData:e}=yield this._braintreeSdk.getDataCollectorOrThrow();return e}catch(e){}})}_initializeBraintreeSdk(){return rr(this,void 0,void 0,function*(){yield this._paymentIntegrationService.loadPaymentMethod(Xi.BRAINTREE);const e=this._paymentIntegrationService.getState().getPaymentMethod(Xi.BRAINTREE);e&&e.clientToken&&e.initializationData&&this._braintreeSdk.initialize(e.clientToken)})}}function ar(e){if(!function(e){return"ApplePaySession"in e}(e))throw new Error("Apple pay is not supported")}class sr{create(e){return ar(window),new ApplePaySession(1,e)}}class dr{constructor(e){this.scriptLoader=e,this.sdkVersion="1.latest"}loadSdk(){return e=this,t=void 0,i=function*(){yield this.scriptLoader.loadScript(`https://applepay.cdn-apple.com/jsapi/${this.sdkVersion}/apple-pay-sdk.js`),ar(window)},new((n=void 0)||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())});var e,t,n,i}}const cr=Rt(e=>{const{getHost:t}=e.getState(),i=new Ri(e);return new or(n({host:t()}),e,new sr,new Zi(new tr(a(),window,i)),new dr(new r))},[{id:"applepay"}]);class lr extends li{constructor(e){super(e||"An unexpected error has occurred during buy now cart creation process. Please try again later."),this.name="BuyNowCartCreationError",this.type="buy_now_cart_creation_error"}}const ur={body:{},headers:{},status:0};class hr extends li{constructor(e,{message:t,errors:n}={}){const{body:i,headers:r,status:o}=e||ur;super(t||"An unexpected error has occurred."),this.name="RequestError",this.type="request",this.body=i,this.headers=r,this.status=o,this.errors=n||[]}}var pr,mr,yr,gr,vr,fr,Sr;!function(e){e.Possible="POSSIBLE",e.No="NO",e.Unknown="UNKNOWN",e.Yes="YES"}(pr||(pr={})),function(e){e.AUTHORIZE="authorize",e.CAPTURE="capture"}(mr||(mr={})),function(e){e.paypal="paypal",e.checkout="checkout",e.buynow="buynow",e.pay="pay",e.installment="installment"}(yr||(yr={})),function(e){e.gold="gold",e.blue="blue",e.silver="silver",e.black="black",e.white="white"}(gr||(gr={})),function(e){e.pill="pill",e.rect="rect"}(vr||(vr={})),function(e){e.OXXO="oxxo"}(fr||(fr={})),function(e){e.Approved="APPROVED",e.Created="CREATED",e.PayerActionRequired="PAYER_ACTION_REQUIRED",e.PollingStop="POLLING_STOP",e.PollingError="POLLING_ERROR"}(Sr||(Sr={}));var wr=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class _r{constructor(e,t,n,i){this.formPoster=e,this.paymentIntegrationService=t,this.bigCommercePaymentsRequestSender=n,this.bigCommercePaymentsScriptLoader=i}loadPayPalSdk(e,t,n,i){return wr(this,void 0,void 0,function*(){const r=this.paymentIntegrationService.getState(),o=t||r.getCartOrThrow().currency.code,a=r.getPaymentMethodOrThrow(e);return this.paypalSdk=yield this.bigCommercePaymentsScriptLoader.getPayPalSDK(a,o,n,i),this.paypalSdk})}getPayPalSdkOrThrow(){if(!this.paypalSdk)throw new Oi;return this.paypalSdk}createBuyNowCartOrThrow(e){return wr(this,void 0,void 0,function*(){const t=e.getBuyNowCartRequestBody();if(!t)throw new pi(ui.MissingCart);try{return yield this.paymentIntegrationService.createBuyNowCart(t)}catch(e){throw new lr}})}createOrder(e,t){return wr(this,void 0,void 0,function*(){const n=this.paymentIntegrationService.getState().getCartOrThrow().id,{orderId:i}=yield this.bigCommercePaymentsRequestSender.createOrder(e,Object.assign({cartId:n},t));return i})}createOrderCardFields(e,t){return wr(this,void 0,void 0,function*(){const n=this.paymentIntegrationService.getState().getCartOrThrow().id,{orderId:i,setupToken:r}=yield this.bigCommercePaymentsRequestSender.createOrder(e,Object.assign({cartId:n},t));return Object.assign({orderId:i},r?{setupToken:r}:{})})}updateOrder(){return wr(this,void 0,void 0,function*(){const e=this.paymentIntegrationService.getState(),t=e.getCartOrThrow(),n=e.getConsignmentsOrThrow()[0];try{yield this.bigCommercePaymentsRequestSender.updateOrder({availableShippingOptions:n.availableShippingOptions,cartId:t.id,selectedShippingOption:n.selectedShippingOption})}catch(e){throw new hr}})}getOrderStatus(e,t){return wr(this,void 0,void 0,function*(){try{const{status:n}=yield this.bigCommercePaymentsRequestSender.getOrderStatus(e,t);return n}catch(e){throw new hr}})}tokenizePayment(e,t){const n=this.paymentIntegrationService.getState().getCartOrThrow();if(!t)throw new pi(ui.MissingOrderId);return this.formPoster.postForm("/checkout.php",Object.assign({payment_type:"paypal",action:"set_external_checkout",provider:e,order_id:t},n.source===Tt.BuyNow&&{cart_id:n.id}))}submitPayment(e,t,n){return wr(this,void 0,void 0,function*(){const i={formattedPayload:{vault_payment_instrument:null,set_as_default_stored_instrument:null,device_info:null,method_id:e,paypal_account:{order_id:t}}};yield this.paymentIntegrationService.submitPayment(Object.assign({methodId:e,paymentData:i},n?{gatewayId:n}:{}))})}getShippingOptionOrThrow(e){const t=this.paymentIntegrationService.getState().getConsignmentsOrThrow()[0],n=t.availableShippingOptions||[],i=n.find(e=>e.isRecommended),r=(e?n.find(t=>t.id===e):n.find(e=>{var n;return e.id===(null===(n=t.selectedShippingOption)||void 0===n?void 0:n.id)}))||i||n[0];if(!r)throw new Error("Your order can't be shipped to this address");return r}getAddress(e){return{firstName:(null==e?void 0:e.firstName)||"",lastName:(null==e?void 0:e.lastName)||"",email:(null==e?void 0:e.email)||"",phone:(null==e?void 0:e.phone)||"",company:"",address1:(null==e?void 0:e.address1)||"",address2:(null==e?void 0:e.address2)||"",city:(null==e?void 0:e.city)||"",countryCode:(null==e?void 0:e.countryCode)||"",postalCode:(null==e?void 0:e.postalCode)||"",stateOrProvince:"",stateOrProvinceCode:(null==e?void 0:e.stateOrProvinceCode)||"",customFields:[]}}getBillingAddressFromOrderDetails({payer:e}){var t,n;return this.getAddress({firstName:e.name.given_name,lastName:e.name.surname,email:e.email_address,address1:e.address.address_line_1,address2:e.address.address_line_2,city:e.address.admin_area_2,countryCode:e.address.country_code,postalCode:e.address.postal_code,stateOrProvinceCode:e.address.admin_area_1,phone:null===(n=null===(t=e.phone)||void 0===t?void 0:t.phone_number)||void 0===n?void 0:n.national_number})}getShippingAddressFromOrderDetails(e){const{payer:t,purchase_units:n}=e,{address:i,name:{full_name:r}}=n[0].shipping,[o,...a]=r.split(" ");return this.getAddress({firstName:o,lastName:a.join(" "),email:t.email_address,address1:i.address_line_1,address2:i.address_line_2,city:i.admin_area_2,countryCode:i.country_code,postalCode:i.postal_code,stateOrProvinceCode:i.admin_area_1})}getValidButtonStyle(e){const{color:t,height:n,label:i,shape:r}=e||{},o={color:t&&gr[t]?t:void 0,height:this.getValidHeight(n),label:i&&yr[i]?i:void 0,shape:r&&vr[r]?r:void 0};return H(o,T)}getValidHeight(e){return e&&"number"==typeof e?e>55?55:e<25?25:e:40}removeElement(e){const t=e&&document.getElementById(e);t&&(t.style.display="none")}}const Cr="This API endpoint is for internal use only and may change in the future";var Ir;!function(e){e.Json="application/json",e.JsonV1="application/vnd.bc.v1+json"}(Ir||(Ir={}));const br=Ir,Pr={"X-Checkout-SDK-Version":"1.817.0"};var Or=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Er{constructor(e){this.requestSender=e}createOrder(e,t){return Or(this,void 0,void 0,function*(){const n=`/api/storefront/payment/${e}`,i=t,r=Object.assign({"X-API-INTERNAL":Cr,"Content-Type":br.Json},Pr);return(yield this.requestSender.post(n,{headers:r,body:i})).body})}updateOrder(e){return Or(this,void 0,void 0,function*(){const t=e,n=Object.assign({"X-API-INTERNAL":Cr,"Content-Type":br.Json},Pr);return(yield this.requestSender.put("/api/storefront/initialization/bigcommerce_payments",{headers:n,body:t})).body})}getOrderStatus(e="bigcommerce_payments",t){return Or(this,void 0,void 0,function*(){const n=`/api/storefront/initialization/${e}`,i=Object.assign({"X-API-INTERNAL":Cr,"Content-Type":br.Json},Pr);return(yield this.requestSender.get(n,Object.assign({headers:i},t))).body})}}var Ar=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class kr{constructor(e){this.scriptLoader=e,this.window=window}getPayPalSDK(e,t,n,i){return Ar(this,void 0,void 0,function*(){const r=this.getPayPalSdkScriptConfigOrThrow(e,t,n);return this.loadPayPalSDK(r,i)})}loadPayPalSDK(e,t=!1){return Ar(this,void 0,void 0,function*(){if(!this.window.paypal||t){const t=this.transformConfig(e.options),n=this.transformConfig(e.attributes),i=`https://www.paypal.com/sdk/js?${new URLSearchParams(t).toString()}`;yield this.scriptLoader.loadScript(i,{async:!0,attributes:n})}if(!this.window.paypal)throw new Oi;return this.window.paypal})}getPayPalSdkScriptConfigOrThrow(e,t,n=!0){const{id:i,clientToken:r,initializationData:o}=e;if(!(null==o?void 0:o.clientId))throw new pi(ui.MissingPaymentMethod);const{intent:a,clientId:s,merchantId:d,buyerCountry:c,attributionId:l,isVenmoEnabled:u,isHostedCheckoutEnabled:h,isPayPalCreditAvailable:p,isDeveloperModeApplicable:m,availableAlternativePaymentMethods:y=[],enabledAlternativePaymentMethods:g=[],isGooglePayEnabled:v}=o,f=h||n,S="bigcommerce_payments_creditcards"===i,w=S?["card"]:[],_=S?[]:["card"],C=p?["credit","paylater"]:[],I=p?[]:["credit","paylater"],b=n||!f,P=u?["venmo"]:[],O=u?[]:["venmo"],E=b?g:[],A=b?y.filter(e=>!g.includes(e)):y,k=v?["googlepay"]:[],T=n?["card-fields"]:[],D=this.filterFundingOptions([..._,...I,...O,...A]),M=this.filterFundingOptions([...w,...C,...P,...E]);return{options:Object.assign({"client-id":s,"merchant-id":d,"enable-funding":M.length>0?M:void 0,"disable-funding":D.length>0?D:void 0,commit:f,components:["buttons","hosted-fields","payment-fields","legal",...k,...T],currency:t,intent:a},m&&{"buyer-country":c}),attributes:{"data-partner-attribution-id":l,"data-client-token":r}}}filterFundingOptions(e){const t=["klarna"];return e?e.filter(e=>!t.includes(e)):[]}transformConfig(e){let t={};return Object.keys(e).forEach(n=>{const i=e[n];null==i||""===i||Array.isArray(i)&&0===i.length||(t=Object.assign(Object.assign({},t),{[n]:Array.isArray(i)?i.join(","):i}))}),t}}const Tr=e=>{const{getHost:t}=e.getState();return new _r(Ee(),e,new Er(n({host:t()})),new kr(a()))},Dr=36;var Mr=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class zr{constructor(e,t){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t,this.onError=V}initialize(e){return Mr(this,void 0,void 0,function*(){const{bigcommerce_payments:t,methodId:n}=e;if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.bigcommerce_payments" argument is not provided.');if(!t.container)throw new ki('Unable to initialize payment because "options.bigcommerce_payments.container" argument is not provided.');if(t.onClick&&"function"!=typeof t.onClick)throw new ki('Unable to initialize payment because "options.bigcommerce_payments.onClick" argument is not a function.');this.onError=t.onError||V,this.paymentIntegrationService.getState().getPaymentMethod(n)||(yield this.paymentIntegrationService.loadPaymentMethod(n));const i=yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(n);i&&i.Buttons&&"function"==typeof i.Buttons?this.renderButton(n,t):console.error("[BC PayPal]: PayPal Button could not be rendered, due to issues with loading PayPal SDK")})}deinitialize(){return Promise.resolve()}signIn(e,t){return Mr(this,void 0,void 0,function*(){return yield this.paymentIntegrationService.signInCustomer(e,t),Promise.resolve()})}signOut(e){return Mr(this,void 0,void 0,function*(){return yield this.paymentIntegrationService.signOutCustomer(e),Promise.resolve()})}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}renderButton(e,t){const{container:n,onClick:i,onComplete:r}=t,o=this.bigCommercePaymentsIntegrationService.getPayPalSdkOrThrow(),a=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{isHostedCheckoutEnabled:s,paymentButtonStyles:d}=a.initializationData||{},{checkoutTopButtonStyles:c}=d||{},l=Object.assign({createOrder:()=>this.bigCommercePaymentsIntegrationService.createOrder("bigcommerce_payments"),onApprove:({orderID:t})=>this.bigCommercePaymentsIntegrationService.tokenizePayment(e,t)},i&&{onClick:()=>i()}),u={onShippingAddressChange:e=>this.onShippingAddressChange(e),onShippingOptionsChange:e=>this.onShippingOptionsChange(e),onApprove:(t,n)=>this.onHostedCheckoutApprove(t,n,e,r)},h=Object.assign(Object.assign({fundingSource:o.FUNDING.PAYPAL,style:this.bigCommercePaymentsIntegrationService.getValidButtonStyle(Object.assign(Object.assign({},c),{height:Dr}))},l),s&&u),p=o.Buttons(h);p.isEligible()?p.render(`#${n}`):this.bigCommercePaymentsIntegrationService.removeElement(n)}onHostedCheckoutApprove(e,t,n,i){return Mr(this,void 0,void 0,function*(){if(!e.orderID)throw new pi(ui.MissingOrderId);const r=this.paymentIntegrationService.getState().getCartOrThrow(),o=yield t.order.get();try{const t=this.bigCommercePaymentsIntegrationService.getBillingAddressFromOrderDetails(o);if(yield this.paymentIntegrationService.updateBillingAddress(t),r.lineItems.physicalItems.length>0){const e=this.bigCommercePaymentsIntegrationService.getShippingAddressFromOrderDetails(o);yield this.paymentIntegrationService.updateShippingAddress(e),yield this.bigCommercePaymentsIntegrationService.updateOrder()}yield this.paymentIntegrationService.submitOrder({},{params:{methodId:n}}),yield this.bigCommercePaymentsIntegrationService.submitPayment(n,e.orderID),i&&"function"==typeof i&&i()}catch(e){this.handleError(e)}})}onShippingAddressChange(e){return Mr(this,void 0,void 0,function*(){const t=this.bigCommercePaymentsIntegrationService.getAddress({city:e.shippingAddress.city,countryCode:e.shippingAddress.countryCode,postalCode:e.shippingAddress.postalCode,stateOrProvinceCode:e.shippingAddress.state});try{yield this.paymentIntegrationService.updateBillingAddress(t),yield this.paymentIntegrationService.updateShippingAddress(t);const e=this.bigCommercePaymentsIntegrationService.getShippingOptionOrThrow();yield this.paymentIntegrationService.selectShippingOption(e.id),yield this.bigCommercePaymentsIntegrationService.updateOrder()}catch(e){this.handleError(e)}})}onShippingOptionsChange(e){return Mr(this,void 0,void 0,function*(){const t=this.bigCommercePaymentsIntegrationService.getShippingOptionOrThrow(e.selectedShippingOption.id);try{yield this.paymentIntegrationService.selectShippingOption(t.id),yield this.bigCommercePaymentsIntegrationService.updateOrder()}catch(e){this.handleError(e)}})}handleError(e){if("function"!=typeof this.onError)throw e;this.onError(e)}}const Nr=Rt(e=>new zr(e,Tr(e)),[{id:"bigcommerce_payments"}]);var xr,Fr,Rr,Lr,Br,jr,Ur,qr,Vr=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Gr{constructor(e){this.scriptLoader=e,this.window=window}getPayPalFastlaneSdk(e,t,n){return Vr(this,void 0,void 0,function*(){if(!this.window.paypalFastlaneSdk){const i=this.getPayPalFastlaneSdkConfiguration(e,t,n);if(yield this.loadPayPalSdk(i),!this.window.paypalFastlaneSdk)throw new Oi}return this.window.paypalFastlaneSdk})}getPayPalGooglePaySdk(e,t,n,i){return Vr(this,void 0,void 0,function*(){if(!this.window.paypalGooglePay||i){const i=this.getPayPalGooglePaySdkScriptConfigOrThrow(e,t,n);yield this.loadPayPalSdk(i)}if(!this.window.paypalGooglePay)throw new Oi;return this.window.paypalGooglePay})}getPayPalApmsSdk(e,t){return Vr(this,void 0,void 0,function*(){if(!this.window.paypalApms){const n=this.getPayPalApmSdkConfiguration(e,t);if(yield this.loadPayPalSdk(n),!this.window.paypalApms)throw new Oi}return this.window.paypalApms})}getPayPalMessages(e,t){return Vr(this,void 0,void 0,function*(){if(!this.window.paypalMessages){const n=this.getPayPalSdkMessagesConfiguration(e,t);yield this.loadPayPalSdk(n)}if(!this.window.paypalMessages)throw new Oi;return this.window.paypalMessages})}loadPayPalSdk({options:e,attributes:t}){return Vr(this,void 0,void 0,function*(){const n=this.transformConfig(e),i=this.transformConfig(t),r=`https://www.paypal.com/sdk/js?${new URLSearchParams(n).toString()}`;yield this.scriptLoader.loadScript(r,{async:!0,attributes:i})})}getPayPalFastlaneSdkConfiguration(e,t,n){const{clientToken:i,initializationData:r}=e;if(!r||!r.clientId)throw new pi(ui.MissingPaymentMethod);const{intent:o,clientId:a,merchantId:s,attributionId:d}=r;return{options:{"client-id":a,"merchant-id":s,commit:!0,components:["fastlane","three-domain-secure"],currency:t,intent:o},attributes:{"data-client-metadata-id":n.replace(/-/g,""),"data-namespace":"paypalFastlaneSdk","data-partner-attribution-id":d,"data-sdk-client-token":i}}}getPayPalGooglePaySdkScriptConfigOrThrow(e,t,n=!0){const{clientToken:i,initializationData:r}=e;if(!r||!r.clientId)throw new pi(ui.MissingPaymentMethod);const{intent:o,clientId:a,merchantId:s,buyerCountry:d,attributionId:c,isHostedCheckoutEnabled:l,isDeveloperModeApplicable:u}=r,h=l||n;return{options:Object.assign({"client-id":a,"merchant-id":s,commit:h,components:["googlepay"],currency:t,intent:o},u&&{"buyer-country":d}),attributes:{"data-partner-attribution-id":c,"data-client-token":i,"data-namespace":"paypalGooglePay"}}}getPayPalApmSdkConfiguration(e,t){const{initializationData:n}=e;if(!n||!n.clientId)throw new pi(ui.MissingPaymentMethod);const{intent:i,clientId:r,merchantId:o,buyerCountry:a,attributionId:s,isDeveloperModeApplicable:d,availableAlternativePaymentMethods:c=[],enabledAlternativePaymentMethods:l=[]}=n,u=this.filterFundingOptions(l),h=this.filterFundingOptions(c.filter(e=>!l.includes(e)));return{options:Object.assign({"client-id":r,"merchant-id":o,"enable-funding":u.length>0?u:void 0,"disable-funding":h.length>0?h:void 0,commit:!0,components:["buttons","payment-fields"],currency:t,intent:i},d&&{"buyer-country":a}),attributes:{"data-partner-attribution-id":s,"data-namespace":"paypalApms"}}}getPayPalSdkMessagesConfiguration(e,t){const{initializationData:n}=e;if(!n||!n.clientId)throw new pi(ui.MissingPaymentMethod);const{clientId:i,merchantId:r,attributionId:o,isDeveloperModeApplicable:a,buyerCountry:s}=n;return{options:Object.assign({"client-id":i,"merchant-id":r,components:["messages"],currency:t},a&&{"buyer-country":s}),attributes:{"data-namespace":"paypalMessages","data-partner-attribution-id":o}}}filterFundingOptions(e){const t=["klarna"];return e?e.filter(e=>!t.includes(e)):[]}transformConfig(e){let t={};return Object.keys(e).forEach(n=>{const i=e[n];null==i||""===i||Array.isArray(i)&&0===i.length||(t=Object.assign(Object.assign({},t),{[n]:Array.isArray(i)?i.join(","):i}))}),t}}function Hr(){return new Gr(o())}!function(e){e.CVV="cvv",e.PAN="pan"}(xr||(xr={}));class $r{static get(e){const t=`${encodeURIComponent(`${e}`)}=`,n=document.cookie;let i=null;const r=n.indexOf(t);if(r>-1){let e=n.indexOf(";",r);-1===e&&(e=n.length),i=decodeURIComponent(n.substring(r+t.length,e))}return i}static set(e,t,n={secure:!0}){let i=`${encodeURIComponent(e)}=${encodeURIComponent(t)}`;const{expires:r,path:o,domain:a,secure:s}=n;if(r)i+=`; expires=${r.toUTCString()}`;else{const e=new Date,t=60;e.setTime(e.getTime()+60*t*1e3),i+=`; expires=${e.toUTCString()}`}o&&(i+=`; path=${o}`),a&&(i+=`; domain=${a}`),s&&(i+="; secure"),document.cookie=i}static remove(e,t){$r.set(e,"",Object.assign({expires:new Date(0)},t))}}!function(e){e.AUTHORIZE="authorize",e.CAPTURE="capture"}(Fr||(Fr={})),function(e){e.Possible="POSSIBLE",e.No="NO",e.Unknown="UNKNOWN",e.Yes="YES"}(Rr||(Rr={})),function(e){e.Succeeded="succeeded",e.Cancelled="cancelled",e.Errored="errored"}(Lr||(Lr={})),function(e){e.paypal="paypal",e.checkout="checkout",e.buynow="buynow",e.pay="pay",e.installment="installment"}(Br||(Br={})),function(e){e.gold="gold",e.blue="blue",e.silver="silver",e.black="black",e.white="white"}(jr||(jr={})),function(e){e.pill="pill",e.rect="rect"}(Ur||(Ur={})),function(e){e.SUCCEEDED="succeeded",e.FAILED="failed",e.CANCELED="canceled",e.UNRECOGNIZED="unrecognized"}(qr||(qr={}));var Wr=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Yr{constructor(){this.window=window}initializePayPalFastlane(e,t,n){return Wr(this,void 0,void 0,function*(){if(t&&(window.localStorage.setItem("fastlaneEnv","sandbox"),window.localStorage.setItem("axoEnv","sandbox")),!this.window.paypalFastlane){const t={root:{backgroundColorPrimary:"transparent"}};this.window.paypalFastlane=yield e.Fastlane({styles:n||t})}return this.window.paypalFastlane})}getPayPalFastlaneOrThrow(){if(!this.window.paypalFastlane)throw new Oi;return this.window.paypalFastlane}lookupCustomerOrThrow(e){return Wr(this,void 0,void 0,function*(){return this.getPayPalFastlaneOrThrow().identity.lookupCustomerByEmail(e)})}triggerAuthenticationFlowOrThrow(e){return Wr(this,void 0,void 0,function*(){return e?this.getPayPalFastlaneOrThrow().identity.triggerAuthenticationFlow(e):{}})}updateStorageSessionId(e){const t=new Date;t.setDate(t.getDate()+14);const n={expires:t,secure:!0};$r.set("bc-fastlane-sessionId",e,n)}removeStorageSessionId(){$r.remove("bc-fastlane-sessionId")}getStorageSessionId(){return $r.get("bc-fastlane-sessionId")||""}mapPayPalFastlaneProfileToBcCustomerData(e,t){var n,i,r;const{authenticationState:o,profileData:a}=t,s=null===(r=null===(i=null===(n=null==a?void 0:a.card)||void 0===n?void 0:n.paymentSource)||void 0===i?void 0:i.card)||void 0===r?void 0:r.billingAddress,d=null==a?void 0:a.shippingAddress,c=null==a?void 0:a.name,l=null==a?void 0:a.card,u=d?this.mapPayPalToBcAddress(d.address,d.name,d.phoneNumber):void 0,h=s&&c?this.mapPayPalToBcAddress(s,c,null==d?void 0:d.phoneNumber):void 0,p=l?this.mapPayPalToBcInstrument(e,l):[],m=this.filterAddresses([u,h]);return{authenticationState:o||qr.UNRECOGNIZED,addresses:m,billingAddress:h,shippingAddress:u,instruments:p}}mapPayPalToBcInstrument(e,t){const{id:n,paymentSource:i}=t,{brand:r,expiry:o,lastDigits:a}=i.card,[s,d]=o.split("-");return[{bigpayToken:n,brand:r,defaultInstrument:!1,expiryMonth:d,expiryYear:s,iin:"",last4:a,method:e,provider:e,trustedShippingAddress:!1,untrustedShippingCardVerificationMode:xr.PAN,type:"card"}]}mapBcToPayPalAddress(e){return{company:(null==e?void 0:e.company)||"",addressLine1:(null==e?void 0:e.address1)||"",addressLine2:(null==e?void 0:e.address2)||"",adminArea1:(null==e?void 0:e.stateOrProvinceCode)||(null==e?void 0:e.stateOrProvince)||"",adminArea2:(null==e?void 0:e.city)||"",postalCode:(null==e?void 0:e.postalCode)||"",countryCode:(null==e?void 0:e.countryCode)||""}}mapPayPalToBcAddress(e,t,n,i){const[r,o]=t.fullName.split(" "),a=(null==n?void 0:n.nationalNumber)||"",s=(null==n?void 0:n.countryCode)||"";return{id:Date.now(),type:"paypal-address",firstName:t.firstName||r||"",lastName:t.lastName||o||"",company:e.company||"",address1:e.addressLine1,address2:e.addressLine2||"",city:e.adminArea2,stateOrProvince:e.adminArea1,stateOrProvinceCode:e.adminArea1,country:e.countryCode||"",countryCode:e.countryCode||"",postalCode:e.postalCode,phone:s+a,customFields:i||[]}}filterAddresses(e){return e.reduce((e,t)=>t?e.some(e=>this.isEqualAddresses(e,t))?e:[...e,t]:e,[])}isEqualAddresses(e,t){return A(this.normalizeAddress(e),this.normalizeAddress(t))}normalizeAddress(e){return G(e,["id","phone"])}}function Kr(){return new Yr}function Jr(e){return"string"!=typeof e}function Zr(e,t){if(t||e)return function(e){var t,n;const i={},r=H(e.root,Jr),o=H(e.input,Jr),a=H(e.toggle,Jr),s=H(null===(t=e.text)||void 0===t?void 0:t.body,Jr),d=H(null===(n=e.text)||void 0===n?void 0:n.caption,Jr),c=e.branding;return Object.keys(r).length&&(i.root=r),Object.keys(o).length&&(i.input=o),Object.keys(a).length&&(i.toggle=a),Object.keys(s).length&&(i.text={},i.text.body=s),Object.keys(d).length&&(i.text=Object.assign({},i.text),i.text.caption=d),c&&(i.branding=c),i}(function(e,t){var n,i,r,o,a,s,d,c,l,u,h,p,m,y,g,v,f,S,w,_,C,I;return{root:{backgroundColorPrimary:(null==e?void 0:e.fastlaneRootSettingsBackgroundColor)||(null===(n=null==t?void 0:t.root)||void 0===n?void 0:n.backgroundColorPrimary),errorColor:(null==e?void 0:e.fastlaneRootSettingsErrorColor)||(null===(i=null==t?void 0:t.root)||void 0===i?void 0:i.errorColor),fontFamily:(null==e?void 0:e.fastlaneRootSettingsFontFamily)||(null===(r=null==t?void 0:t.root)||void 0===r?void 0:r.fontFamily),fontSizeBase:(null==e?void 0:e.fastlaneRootSettingsFontSize)||(null===(o=null==t?void 0:t.root)||void 0===o?void 0:o.fontSizeBase),padding:(null==e?void 0:e.fastlaneRootSettingsPadding)||(null===(a=null==t?void 0:t.root)||void 0===a?void 0:a.padding),primaryColor:(null==e?void 0:e.fastlaneRootSettingsPrimaryColor)||(null===(s=null==t?void 0:t.root)||void 0===s?void 0:s.primaryColor)},input:{borderRadius:(null==e?void 0:e.fastlaneInputSettingsBorderRadius)||(null===(d=null==t?void 0:t.input)||void 0===d?void 0:d.borderRadius),borderColor:(null==e?void 0:e.fastlaneInputSettingsBorderColor)||(null===(c=null==t?void 0:t.input)||void 0===c?void 0:c.borderColor),focusBorderColor:(null==e?void 0:e.fastlaneInputSettingsFocusBorderBase)||(null===(l=null==t?void 0:t.input)||void 0===l?void 0:l.focusBorderColor),backgroundColor:(null==e?void 0:e.fastlaneInputSettingsBackgroundColor)||(null===(u=null==t?void 0:t.input)||void 0===u?void 0:u.backgroundColor),borderWidth:(null==e?void 0:e.fastlaneInputSettingsBorderWidth)||(null===(h=null==t?void 0:t.input)||void 0===h?void 0:h.borderWidth),textColorBase:(null==e?void 0:e.fastlaneInputSettingsTextColorBase)||(null===(p=null==t?void 0:t.input)||void 0===p?void 0:p.textColorBase)},toggle:{colorPrimary:(null==e?void 0:e.fastlaneToggleSettingsColorPrimary)||(null===(m=null==t?void 0:t.toggle)||void 0===m?void 0:m.colorPrimary),colorSecondary:(null==e?void 0:e.fastlaneToggleSettingsColorSecondary)||(null===(y=null==t?void 0:t.toggle)||void 0===y?void 0:y.colorSecondary)},text:{body:{color:(null==e?void 0:e.fastlaneTextBodySettingsColor)||(null===(v=null===(g=null==t?void 0:t.text)||void 0===g?void 0:g.body)||void 0===v?void 0:v.color),fontSize:(null==e?void 0:e.fastlaneTextBodySettingsFontSize)||(null===(S=null===(f=null==t?void 0:t.text)||void 0===f?void 0:f.body)||void 0===S?void 0:S.fontSize)},caption:{color:(null==e?void 0:e.fastlaneTextCaptionSettingsColor)||(null===(_=null===(w=null==t?void 0:t.text)||void 0===w?void 0:w.caption)||void 0===_?void 0:_.color),fontSize:(null==e?void 0:e.fastlaneTextCaptionSettingsFontSize)||(null===(I=null===(C=null==t?void 0:t.text)||void 0===C?void 0:C.caption)||void 0===I?void 0:I.fontSize)}},branding:(null==e?void 0:e.fastlaneBrandingSettings)||(null==t?void 0:t.branding)}}(e,t))}var Qr=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Xr{constructor(e,t,n){this.paymentIntegrationService=e,this.bigCommercePaymentsSdk=t,this.bigCommercePaymentsFastlaneUtils=n}initialize(e){var t;return Qr(this,void 0,void 0,function*(){const{methodId:n,bigcommerce_payments_fastlane:i}=e;if(!n)throw new ki('Unable to proceed because "methodId" argument is not provided.');try{yield this.paymentIntegrationService.loadPaymentMethod(n);const e=this.paymentIntegrationService.getState(),r=e.getCartOrThrow(),o=e.getPaymentMethodOrThrow(n),a=!!(null===(t=o.initializationData)||void 0===t?void 0:t.isDeveloperModeApplicable),s=yield this.bigCommercePaymentsSdk.getPayPalFastlaneSdk(o,r.currency.code,r.id);yield this.bigCommercePaymentsFastlaneUtils.initializePayPalFastlane(s,a,this.getFastlaneStyles(n,i))}catch(e){}return Promise.resolve()})}deinitialize(){return Qr(this,void 0,void 0,function*(){return Promise.resolve()})}signIn(e,t){return Qr(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signInCustomer(e,t)})}signOut(e){return Qr(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signOutCustomer(e)})}executePaymentMethodCheckout(e){return Qr(this,void 0,void 0,function*(){const{checkoutPaymentMethodExecuted:t,continueWithCheckoutCallback:n,methodId:i}=e||{};if(!i)throw new ki('Unable to proceed because "methodId" argument is not provided.');if("function"!=typeof n)throw new ki('Unable to proceed because "continueWithCheckoutCallback" argument is not provided and it must be a function.');if(this.paymentIntegrationService.getState().getCustomerOrThrow().isGuest){t&&"function"==typeof t&&t();try{yield this.runPayPalAuthenticationFlowOrThrow(i)}catch(e){}}n()})}runPayPalAuthenticationFlowOrThrow(e){return Qr(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState(),n=t.getCartOrThrow().id,i=t.getCustomer(),r=t.getBillingAddress(),o=(null==i?void 0:i.email)||(null==r?void 0:r.email)||"",{customerContextId:a}=yield this.bigCommercePaymentsFastlaneUtils.lookupCustomerOrThrow(o),s=yield this.bigCommercePaymentsFastlaneUtils.triggerAuthenticationFlowOrThrow(a),d=s.authenticationState===qr.CANCELED;yield this.updateCustomerDataState(e,s),d?this.bigCommercePaymentsFastlaneUtils.removeStorageSessionId():this.bigCommercePaymentsFastlaneUtils.updateStorageSessionId(n)})}updateCustomerDataState(e,t){var n;return Qr(this,void 0,void 0,function*(){const i=this.paymentIntegrationService.getState().getCartOrThrow(),{authenticationState:r,addresses:o,billingAddress:a,shippingAddress:s,instruments:d}=this.bigCommercePaymentsFastlaneUtils.mapPayPalFastlaneProfileToBcCustomerData(e,t);if(yield this.paymentIntegrationService.updatePaymentProviderCustomer({authenticationState:r,addresses:o,instruments:d}),a&&(yield this.paymentIntegrationService.updateBillingAddress(a)),s&&i.lineItems.physicalItems.length>0){const t=yield this.paymentIntegrationService.updateShippingAddress(s),i=t.getPaymentMethodOrThrow(e),{isFastlaneShippingOptionAutoSelectEnabled:r}=i.initializationData||{},o=t.getConsignments()||[],a=(null===(n=o[0])||void 0===n?void 0:n.availableShippingOptions)||[],d=a[0],c=a.find(e=>e.isRecommended);if((c||d)&&r){const e=(null==c?void 0:c.id)||d.id;yield this.paymentIntegrationService.selectShippingOption(e)}}})}getFastlaneStyles(e,t){const n=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{fastlaneStyles:i,isFastlaneStylingEnabled:r}=n.initializationData||{};return Zr(r?i:{},null==t?void 0:t.styles)}}const eo=Rt(e=>new Xr(e,Hr(),Kr()),[{id:"bigcommerce_payments_fastlane"},{id:"bigcommerce_payments_creditcards"}]);var to=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class no{constructor(e,t){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t,this.onError=V}initialize(e){return to(this,void 0,void 0,function*(){const{bigcommerce_payments_paylater:t,methodId:n}=e;if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_paylater" argument is not provided.');if(!t.container)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_paylater.container" argument is not provided.');if(t.onClick&&"function"!=typeof t.onClick)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_paylater.onClick" argument is not a function.');this.onError=t.onError||V,this.paymentIntegrationService.getState().getPaymentMethod(n)||(yield this.paymentIntegrationService.loadPaymentMethod(n));const i=yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(n);i&&i.Buttons&&"function"==typeof i.Buttons?this.renderButton(n,t):console.error("[BC BigCommercePayments PayLater]: button could not be rendered, due to issues with loading PayPal SDK")})}deinitialize(){return Promise.resolve()}signIn(e,t){return to(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signInCustomer(e,t)})}signOut(e){return to(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signOutCustomer(e)})}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}renderButton(e,t){const{container:n,onComplete:i,onClick:r}=t,o=this.bigCommercePaymentsIntegrationService.getPayPalSdkOrThrow(),a=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{isHostedCheckoutEnabled:s,paymentButtonStyles:d}=a.initializationData||{},{checkoutTopButtonStyles:c}=d||{},l=Object.assign({createOrder:()=>this.bigCommercePaymentsIntegrationService.createOrder("bigcommerce_payments_paylater"),onApprove:({orderID:t})=>this.bigCommercePaymentsIntegrationService.tokenizePayment(e,t)},r&&{onClick:()=>r()}),u={onShippingAddressChange:e=>this.onShippingAddressChange(e),onShippingOptionsChange:e=>this.onShippingOptionsChange(e),onApprove:(t,n)=>this.onHostedCheckoutApprove(t,n,e,i)},h=[o.FUNDING.PAYLATER,o.FUNDING.CREDIT];let p=!1;h.forEach(e=>{if(!p){const t=Object.assign(Object.assign({fundingSource:e,style:this.bigCommercePaymentsIntegrationService.getValidButtonStyle(Object.assign(Object.assign({},c),{height:Dr}))},l),s&&u),i=o.Buttons(t);i.isEligible()&&(i.render(`#${n}`),p=!0)}}),p||this.bigCommercePaymentsIntegrationService.removeElement(n)}onHostedCheckoutApprove(e,t,n,i){return to(this,void 0,void 0,function*(){if(!e.orderID)throw new pi(ui.MissingOrderId);const r=this.paymentIntegrationService.getState().getCartOrThrow(),o=yield t.order.get();try{const t=this.bigCommercePaymentsIntegrationService.getBillingAddressFromOrderDetails(o);if(yield this.paymentIntegrationService.updateBillingAddress(t),r.lineItems.physicalItems.length>0){const e=this.bigCommercePaymentsIntegrationService.getShippingAddressFromOrderDetails(o);yield this.paymentIntegrationService.updateShippingAddress(e),yield this.bigCommercePaymentsIntegrationService.updateOrder()}yield this.paymentIntegrationService.submitOrder({},{params:{methodId:n}}),yield this.bigCommercePaymentsIntegrationService.submitPayment(n,e.orderID),i&&"function"==typeof i&&i()}catch(e){this.handleError(e)}})}onShippingAddressChange(e){return to(this,void 0,void 0,function*(){const t=this.bigCommercePaymentsIntegrationService.getAddress({city:e.shippingAddress.city,countryCode:e.shippingAddress.countryCode,postalCode:e.shippingAddress.postalCode,stateOrProvinceCode:e.shippingAddress.state});try{yield this.paymentIntegrationService.updateBillingAddress(t),yield this.paymentIntegrationService.updateShippingAddress(t);const e=this.bigCommercePaymentsIntegrationService.getShippingOptionOrThrow();yield this.paymentIntegrationService.selectShippingOption(e.id),yield this.bigCommercePaymentsIntegrationService.updateOrder()}catch(e){this.handleError(e)}})}onShippingOptionsChange(e){return to(this,void 0,void 0,function*(){const t=this.bigCommercePaymentsIntegrationService.getShippingOptionOrThrow(e.selectedShippingOption.id);try{yield this.paymentIntegrationService.selectShippingOption(t.id),yield this.bigCommercePaymentsIntegrationService.updateOrder()}catch(e){this.handleError(e)}})}handleError(e){if("function"!=typeof this.onError)throw e;this.onError(e)}}const io=Rt(e=>new no(e,Tr(e)),[{id:"bigcommerce_payments_paylater"}]);var ro=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class oo{constructor(e,t){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t}initialize(e){return ro(this,void 0,void 0,function*(){const{bigcommerce_payments_venmo:t,methodId:n}=e;if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_venmo" argument is not provided.');if(!t.container)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_venmo.container" argument is not provided.');if(t.onClick&&"function"!=typeof t.onClick)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_venmo.onClick" argument is not a function.');this.paymentIntegrationService.getState().getPaymentMethod(n)||(yield this.paymentIntegrationService.loadPaymentMethod(n));const i=yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(n);i&&i.Buttons&&"function"==typeof i.Buttons?this.renderButton(n,t):console.error("[BC Payments Venmo]: Button could not be rendered, due to issues with loading PayPal SDK")})}deinitialize(){return Promise.resolve()}signIn(e,t){return ro(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signInCustomer(e,t)})}signOut(e){return ro(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signOutCustomer(e)})}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}renderButton(e,t){const{container:n,onClick:i}=t,r=this.bigCommercePaymentsIntegrationService.getPayPalSdkOrThrow(),o=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{paymentButtonStyles:a}=o.initializationData||{},{checkoutTopButtonStyles:s}=a||{},d=Object.assign({fundingSource:r.FUNDING.VENMO,style:this.bigCommercePaymentsIntegrationService.getValidButtonStyle(Object.assign(Object.assign({},s),{height:Dr})),createOrder:()=>this.bigCommercePaymentsIntegrationService.createOrder("bigcommerce_payments_venmo"),onApprove:({orderID:t})=>this.bigCommercePaymentsIntegrationService.tokenizePayment(e,t)},i&&{onClick:()=>i()}),c=r.Buttons(d);c.isEligible()?c.render(`#${n}`):this.bigCommercePaymentsIntegrationService.removeElement(n)}}const ao=Rt(e=>new oo(e,Tr(e)),[{id:"bigcommerce_payments_venmo"}]);class so extends li{constructor(e){super(e||"Unable to proceed because the client library of a payment method has thrown an unexpected error."),this.name="PaymentMethodFailedError",this.type="payment_method_client_invalid"}}class co extends hr{constructor(e){super(e,{message:"There is a problem processing your payment. Please try again later."}),this.name="PaymentMethodInvalidError",this.type="payment_method_invalid"}}var lo,uo,ho,po=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class mo{constructor(e,t){this.paymentIntegrationService=e,this.boltScriptLoader=t,this.boltHostWindow=window}initialize(e){var t;return po(this,void 0,void 0,function*(){const{methodId:n,bolt:i}=e,{onInit:r}=i||{};if(!n)throw new ki('Unable to proceed because "methodId" argument is not provided.');yield this.paymentIntegrationService.loadPaymentMethod(n);const o=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(n);if(!(null===(t=o.initializationData)||void 0===t?void 0:t.publishableKey))throw new pi(ui.MissingPaymentMethod);const{developerConfig:a,publishableKey:s}=o.initializationData;if(yield this.boltScriptLoader.loadBoltClient(s,o.config.testMode,a),r&&"function"==typeof r){const e=this.getCustomerEmail();r(yield this.hasBoltAccount(e),e)}})}deinitialize(){return Promise.resolve()}signIn(e,t){return po(this,void 0,void 0,function*(){return yield this.paymentIntegrationService.signInCustomer(e,t),Promise.resolve()})}signOut(e){return po(this,void 0,void 0,function*(){return yield this.paymentIntegrationService.signOutCustomer(e),Promise.resolve()})}executePaymentMethodCheckout(e){return po(this,void 0,void 0,function*(){const{continueWithCheckoutCallback:t=pe,checkoutPaymentMethodExecuted:n,methodId:i}=e||{},r=this.getCustomerEmail();if(!i)throw new ki('Unable to proceed because "methodId" argument is not provided.');if("function"!=typeof t)throw new ki('Unable to proceed because "continueWithCheckoutCallback" argument is not provided and it must be a function.');if(r)return this.openBoltCheckoutModalOrThrow(r,i,t,n);t()})}openBoltCheckoutModalOrThrow(e,t,n,i){var r;return po(this,void 0,void 0,function*(){const o=this.getBoltClientOrThrow(),a=this.paymentIntegrationService.getState().getPaymentMethod(t);try{if(null===(r=null==a?void 0:a.initializationData)||void 0===r?void 0:r.embeddedOneClickEnabled){const t=yield this.hasBoltAccount(e);if(t){const t={close:()=>{n()}};yield o.openCheckout(e,t)}else n();"function"==typeof i&&i({hasBoltAccount:t})}else n()}catch(e){if(function(e){return"string"==typeof e.message&&"string"==typeof e.type&&("string"==typeof e.subtype||!e.subtype)&&e instanceof Error}(e)&&"MissingDataError"!==e.name&&"NotInitializedError"!==e.name)throw new so(e.message);throw e}})}getBoltClientOrThrow(){const e=this.boltHostWindow.BoltCheckout;if(!e)throw new gi(hi.PaymentNotInitialized);return e}hasBoltAccount(e){return po(this,void 0,void 0,function*(){const t=this.getBoltClientOrThrow();try{return yield t.hasBoltAccount(e)}catch(e){throw new co}})}getCustomerEmail(){const e=this.paymentIntegrationService.getState(),t=e.getCustomer(),n=e.getBillingAddress();return(null==t?void 0:t.email)||(null==n?void 0:n.email)||""}}!function(e){e.SandboxMode="bolt_sandbox",e.StagingMode="bolt_staging",e.DevelopmentMode="bolt_development"}(lo||(lo={})),function(e){e.Small="small",e.Medium="medium",e.Large="large"}(uo||(uo={})),function(e){e.Pill="pill",e.Rect="rect"}(ho||(ho={}));var yo=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class go{constructor(e,t=window){this.scriptLoader=e,this.boltHostWindow=t}loadBoltClient(e,t,n,i,r){return yo(this,void 0,void 0,function*(){if(this.boltHostWindow.BoltCheckout)return this.boltHostWindow.BoltCheckout;if(!e)throw new ki('Unable to initialize payment because "publishableKey" argument is not provided.');if(yield this.scriptLoader.loadScript(`//${this.getDomainURL(!!t,n)}/connect-bigcommerce.js`,this.getScriptOptions("bolt-connect",e,i,r)),yield this.scriptLoader.loadScript(`//${this.getDomainURL(!!t,n)}/track.js`,this.getScriptOptions("bolt-track",e)),!this.boltHostWindow.BoltCheckout)throw new Oi;return this.boltHostWindow.BoltCheckout})}loadBoltEmbedded(e,t,n){return yo(this,void 0,void 0,function*(){if(yield this.scriptLoader.loadScript(`//${this.getDomainURL(!!t,n)}/embed.js`,{async:!0,attributes:{id:"bolt-embedded"}}),!this.boltHostWindow.Bolt)throw new Oi;return this.boltHostWindow.Bolt(e)})}getDomainURL(e,t){if(!e)return"connect.bolt.com";if(t)switch(t.developerMode){case lo.StagingMode:return"connect-staging.bolt.com";case lo.DevelopmentMode:return`connect.${t.developerDomain}`}return"connect-sandbox.bolt.com"}getScriptOptions(e,t,n,i){return{async:!0,attributes:Object.assign(Object.assign({id:e,"data-publishable-key":t},n&&{"data-shopping-cart-id":n}),i&&{"data-storefront-api-token":i})}}}const vo=Rt(e=>new mo(e,new go(a())),[{id:"bolt"}]);class fo extends ki{constructor(e){let t="Unable to submit payment for the order because the payload is invalid.";e&&(t=`${t} Make sure the following fields are provided correctly: ${e.join(", ")}.`),super(t),this.name="PaymentArgumentInvalidError"}}class So extends li{constructor(e,t){super(t||"Unable to proceed because the payment form contains invalid data."),this.details=e,this.name="PaymentInvalidFormError",this.type="payment_invalid_form"}}const wo=["buttons","messages"];var _o,Co,Io,bo,Po,Oo;!function(e){e.HORIZONTAL="horizontal",e.VERTICAL="vertical"}(_o||(_o={})),function(e){e.SMALL="small",e.MEDIUM="medium",e.LARGE="large",e.RESPONSIVE="responsive"}(Co||(Co={})),function(e){e.GOLD="gold",e.BLUE="blue",e.SIlVER="silver",e.BLACK="black",e.WHITE="white"}(Io||(Io={})),function(e){e.CHECKOUT="checkout",e.PAY="pay",e.BUYNOW="buynow",e.PAYPAL="paypal",e.CREDIT="credit"}(bo||(bo={})),function(e){e.PILL="pill",e.RECT="rect"}(Po||(Po={})),function(e){e.CART="cart",e.HOME="homepage",e.PAYMENT="payment",e.PRODUCT="product"}(Oo||(Oo={}));var Eo=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Ao{constructor(e,t,n){this.braintreeScriptLoader=e,this.braintreeHostWindow=t,this.overlay=n,this.dataCollectors={}}initialize(e,t){this.clientToken=e,this.threeDSecureOptions=t}getBraintreeFastlane(e,t,n){return Eo(this,void 0,void 0,function*(){if(t&&(window.localStorage.setItem("axoEnv","sandbox"),window.localStorage.setItem("fastlaneEnv","sandbox")),!this.braintreeHostWindow.braintreeFastlane){const t=this.getClientTokenOrThrow(),i=yield this.getClient(),r=yield this.getSessionId(e),o=yield this.braintreeScriptLoader.loadFastlane(),a={root:{backgroundColorPrimary:"transparent"}};this.braintreeHostWindow.braintreeFastlane=yield o.create({authorization:t,client:i,deviceData:r,styles:n||a})}return this.braintreeHostWindow.braintreeFastlane})}getClient(){return Eo(this,void 0,void 0,function*(){if(!this.client){const e=this.getClientTokenOrThrow(),t=yield this.braintreeScriptLoader.loadClient();this.client=t.create({authorization:e})}return this.client})}getPaypal(){return this.braintreePaypal||(this.braintreePaypal=Promise.all([this.getClient(),this.braintreeScriptLoader.loadPaypal()]).then(([e,t])=>t.create({client:e}))),this.braintreePaypal}paypal(e){var{shouldSaveInstrument:t}=e,n=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["shouldSaveInstrument"]);const i=Ae();return this.getPaypal().then(e=>{var r;return i&&(null===(r=this.overlay)||void 0===r||r.show({onClick:()=>e.focusWindow()})),e.tokenize(Object.assign({enableShippingAddress:!0,flow:t?"vault":"checkout",useraction:"commit"},n))}).then(e=>{var t;return null===(t=this.overlay)||void 0===t||t.remove(),e}).catch(e=>{var t;throw null===(t=this.overlay)||void 0===t||t.remove(),e})}getPaypalCheckout(e,t,n){return Eo(this,void 0,void 0,function*(){const i=yield this.getClient(),r=yield this.braintreeScriptLoader.loadPaypalCheckout(),o={client:i};return this.paypalCheckout=yield r.create(o,(i,r)=>{var o;if(i)return n(i);const a=Object.assign(Object.assign({currency:e.currency},e.isCreditEnabled&&{"enable-funding":"paylater"}),{components:wo.toString(),intent:e.intent,commit:null===(o=e.commit)||void 0===o||o});this.braintreeHostWindow.paypal?t(r):r.loadPayPalSDK(a,()=>t(r))}),this.paypalCheckout})}getDataCollector(e){return Eo(this,void 0,void 0,function*(){const t=(null==e?void 0:e.paypal)?"paypal":"default";let n=this.dataCollectors[t];if(!n){try{const t=yield this.getClient(),i=yield this.braintreeScriptLoader.loadDataCollector(),r=Object.assign({client:t,kount:!0},e);n=yield i.create(r)}catch(e){if(!$i(e)||"DATA_COLLECTOR_KOUNT_NOT_ENABLED"!==e.code)throw e;n={deviceData:void 0,teardown:()=>Promise.resolve()}}this.dataCollectors[t]=n}return n})}getBraintreeEnv(e=!1){return e?Wi.Sandbox:Wi.Production}mapToBraintreeShippingAddressOverride(e){return{recipientName:`${e.firstName} ${e.lastName}`,line1:e.address1,line2:e.address2,city:e.city,state:e.stateOrProvinceCode,postalCode:e.postalCode,countryCode:e.countryCode,phone:e.phone}}mapToLegacyShippingAddress(e){const{email:t,phone:n,shippingAddress:i}=e,r=(null==i?void 0:i.recipientName)||"",[o,a]=r.split(" ");return{email:t,first_name:o||"",last_name:a||"",phone_number:n,address_line_1:null==i?void 0:i.line1,address_line_2:null==i?void 0:i.line2,city:null==i?void 0:i.city,state:null==i?void 0:i.state,country_code:null==i?void 0:i.countryCode,postal_code:null==i?void 0:i.postalCode}}mapToLegacyBillingAddress(e){const{billingAddress:t,email:n,firstName:i,lastName:r,phone:o,shippingAddress:a}=e,s=t||a;return{email:n,first_name:i,last_name:r,phone_number:o,address_line_1:null==s?void 0:s.line1,address_line_2:null==s?void 0:s.line2,city:null==s?void 0:s.city,state:null==s?void 0:s.state,country_code:null==s?void 0:s.countryCode,postal_code:null==s?void 0:s.postalCode}}removeElement(e){const t=e&&document.getElementById(e);t&&t.remove()}getSessionId(e){return Eo(this,void 0,void 0,function*(){const{deviceData:t}=yield this.getDataCollector({riskCorrelationId:e});return t})}teardown(){return Eo(this,void 0,void 0,function*(){yield this.teardownModule(this.dataCollectors.default),yield this.teardownModule(this.dataCollectors.paypal),this.dataCollectors={},yield this.teardownModule(this.paypalCheckout),this.paypalCheckout=void 0})}get3DS(){return Eo(this,void 0,void 0,function*(){return this.threeDS||(this.threeDS=Promise.all([this.getClient(),this.braintreeScriptLoader.load3DS()]).then(([e,t])=>t.create({client:e,version:2}))),this.threeDS})}getVenmoCheckout(e){return Eo(this,void 0,void 0,function*(){if(!this.venmoCheckout){const t=yield this.getClient(),n=yield this.braintreeScriptLoader.loadVenmoCheckout(),i=Object.assign({client:t,allowDesktop:!0,paymentMethodUsage:"multi_use"},e||{});this.venmoCheckout=yield new Promise((e,t)=>{n.create(i,(n,i)=>n?t(n):i.isBrowserSupported()?void e(i):t(new Li))})}return this.venmoCheckout})}verifyCard(e,t,n){return Eo(this,void 0,void 0,function*(){const i=yield this.tokenizeCard(e,t);return this.challenge3DSVerification(i,n)})}tokenizeCard(e,t){return Eo(this,void 0,void 0,function*(){const{paymentData:n}=e;if(!function(e){if("object"!=typeof e||null===e)return!1;const t=e;return"object"==typeof t.ccExpiry&&null!==t.ccExpiry&&"string"==typeof t.ccNumber&&"string"==typeof t.ccName}(n))throw new fo(["payment.paymentData"]);const i=this.getErrorsRequiredFields(n);if(!E(i))throw new So(i);const r=this.mapToCreditCard(n,t),o=yield this.getClient(),{creditCards:a}=yield o.request(r);return{nonce:a[0].nonce,bin:a[0].details.bin}})}challenge3DSVerification(e,t){return Eo(this,void 0,void 0,function*(){const n=yield this.get3DS();return this.present3DSChallenge(n,t,e)})}teardownModule(e){return e?e.teardown():Promise.resolve()}getClientTokenOrThrow(){if(!this.clientToken)throw new gi(hi.PaymentNotInitialized);return this.clientToken}getErrorsRequiredFields(e){const{ccNumber:t,ccExpiry:n}=e,i={};return t||(i.ccNumber=[{message:"Credit card number is required",type:"required"}]),n||(i.ccExpiry=[{message:"Expiration date is required",type:"required"}]),i}mapToCreditCard(e,t){return{data:{creditCard:{cardholderName:e.ccName,number:e.ccNumber,cvv:e.ccCvv,expirationDate:`${e.ccExpiry.month}/${e.ccExpiry.year}`,options:{validate:!1},billingAddress:t&&{countryCodeAlpha2:t.countryCode,locality:t.city,countryName:t.country,postalCode:t.postalCode,streetAddress:t.address2?`${t.address1} ${t.address2}`:t.address1}}},endpoint:"payment_methods/credit_cards",method:"post"}}present3DSChallenge(e,t,n){const{nonce:i,bin:r}=n;if(!this.threeDSecureOptions||!i)throw new gi(hi.PaymentNotInitialized);const{addFrame:o,removeFrame:a,challengeRequested:s=!0,additionalInformation:d}=this.threeDSecureOptions,c=()=>Eo(this,void 0,void 0,function*(){const t=yield e.cancelVerifyCard();return u.cancel(new nr),t}),l=t.toFixed(2),u=new Bn(e.verifyCard({addFrame:(e,t)=>{o&&o(e,t,c)},amount:Number(l),bin:r,challengeRequested:s,nonce:i,removeFrame:a,onLookupComplete:(e,t)=>{t()},collectDeviceData:!0,additionalInformation:d}));return u.promise}}var ko=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class To{constructor(e,t,n,i){this.paymentIntegrationService=e,this.formPoster=t,this.braintreeIntegrationService=n,this.braintreeHostWindow=i}initialize(e){return ko(this,void 0,void 0,function*(){const{braintreepaypal:t,methodId:n}=e,{container:i,onError:r}=t||{};if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.braintreepaypal" argument is not provided.');if(!i)throw new ki('Unable to initialize payment because "options.braintreepaypal.container" argument is not provided.');let o,a=this.paymentIntegrationService.getState();try{if(o=a.getPaymentMethodOrThrow(n),!o.clientToken)throw new pi(ui.MissingPaymentToken)}catch(e){a=yield this.paymentIntegrationService.loadPaymentMethod(n),o=a.getPaymentMethodOrThrow(n)}const{clientToken:s,config:d,initializationData:c}=o,{paymentButtonStyles:l}=c||{},{checkoutTopButtonStyles:u}=l||{};if(!s||!c)throw new pi(ui.MissingPaymentMethod);const h={currency:a.getCartOrThrow().currency.code,intent:c.intent,isCreditEnabled:c.isCreditEnabled,commit:!1};this.braintreeIntegrationService.initialize(s),yield this.braintreeIntegrationService.getPaypalCheckout(h,e=>{this.renderPayPalButton(e,t,n,Boolean(d.testMode),u)},e=>this.handleError(e,i,r))})}deinitialize(){return ko(this,void 0,void 0,function*(){yield this.braintreeIntegrationService.teardown()})}signIn(e,t){return ko(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signInCustomer(e,t)})}signOut(e){return ko(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signOutCustomer(e)})}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}renderPayPalButton(e,t,n,i,r){const{container:o,onClick:a=V}=t,{paypal:s}=this.braintreeHostWindow,d=null==s?void 0:s.FUNDING.PAYPAL;if(s&&d){const c=s.Buttons({env:this.braintreeIntegrationService.getBraintreeEnv(i),fundingSource:d,style:Object.assign(Object.assign({},r),{height:Dr}),createOrder:()=>this.setupPayment(e,t,n),onApprove:i=>this.tokenizePayment(i,e,n,t),onClick:a});c.isEligible()&&c.render(`#${o}`)}else this.braintreeIntegrationService.removeElement(o)}setupPayment(e,t,n){var i;return ko(this,void 0,void 0,function*(){try{yield this.paymentIntegrationService.loadDefaultCheckout();const t=this.paymentIntegrationService.getState(),r=t.getCheckoutOrThrow().outstandingBalance,o=t.getCartOrThrow().currency.code,a=t.getCustomer(),s=t.getPaymentMethodOrThrow(n),d=null==a?void 0:a.addresses[0],c=d?this.braintreeIntegrationService.mapToBraintreeShippingAddressOverride(d):void 0;return yield e.createPayment({flow:"checkout",enableShippingAddress:!0,shippingAddressEditable:!1,shippingAddressOverride:c,amount:r,currency:o,offerCredit:!1,intent:null===(i=s.initializationData)||void 0===i?void 0:i.intent})}catch(e){const{container:n,onError:i}=t;this.handleError(e,n,i)}})}tokenizePayment(e,t,n,i){return ko(this,void 0,void 0,function*(){try{const{deviceData:i}=yield this.braintreeIntegrationService.getDataCollector({paypal:!0}),r=yield t.tokenizePayment(e),{details:o,nonce:a}=r,s=this.braintreeIntegrationService.mapToLegacyBillingAddress(o),d=this.braintreeIntegrationService.mapToLegacyShippingAddress(o);return this.formPoster.postForm("/checkout.php",{payment_type:"paypal",provider:n,action:"set_external_checkout",nonce:a,device_data:i,billing_address:JSON.stringify(s),shipping_address:JSON.stringify(d)}),r}catch(e){const{container:t,onError:n}=i;this.handleError(e,t,n)}})}handleError(e,t,n){if(this.braintreeIntegrationService.removeElement(t),!n||!$i(e))throw e;n(e)}}const Do=Rt(e=>{const t=window,n=new Ri(e),i=new Ao(new tr(a(),t,n),t);return new To(e,Ee(),i,t)},[{id:"braintreepaypal"}]);var Mo=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class zo{constructor(e,t,n,i){this.paymentIntegrationService=e,this.formPoster=t,this.braintreeIntegrationService=n,this.braintreeHostWindow=i}initialize(e){return Mo(this,void 0,void 0,function*(){const{braintreepaypalcredit:t,methodId:n}=e,{container:i,onError:r}=t||{};if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.braintreepaypalcredit" argument is not provided.');if(!i)throw new ki('Unable to initialize payment because "options.braintreepaypalcredit.container" argument is not provided.');let o,a=this.paymentIntegrationService.getState();try{if(o=a.getPaymentMethodOrThrow(n),!o.clientToken)throw new pi(ui.MissingPaymentToken)}catch(e){a=yield this.paymentIntegrationService.loadPaymentMethod(n),o=a.getPaymentMethodOrThrow(n)}const{clientToken:s,config:d,initializationData:c}=o,{paymentButtonStyles:l}=c||{},{checkoutTopButtonStyles:u}=l||{};if(!s||!c)throw new pi(ui.MissingPaymentMethod);const h={currency:a.getCartOrThrow().currency.code,intent:c.intent,isCreditEnabled:c.isCreditEnabled,commit:!1};this.braintreeIntegrationService.initialize(s),yield this.braintreeIntegrationService.getPaypalCheckout(h,e=>{this.renderPayPalButton(e,t,n,Boolean(d.testMode),Object.assign(Object.assign({},u),{height:Dr}))},e=>this.handleError(e,i,r))})}deinitialize(){return Mo(this,void 0,void 0,function*(){yield this.braintreeIntegrationService.teardown()})}signIn(e,t){return Mo(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signInCustomer(e,t)})}signOut(e){return Mo(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signOutCustomer(e)})}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}renderPayPalButton(e,t,n,i,r){const{container:o,onClick:a=V}=t,{paypal:s}=this.braintreeHostWindow;let d=!1;s&&[s.FUNDING.PAYLATER,s.FUNDING.CREDIT].forEach(c=>{if(!d){const l=s.Buttons({env:i?"sandbox":"production",fundingSource:c,style:r,createOrder:()=>this.setupPayment(e,t,n),onApprove:i=>this.tokenizePayment(i,e,n,t),onClick:a});l.isEligible()&&(l.render(`#${o}`),d=!0)}}),s&&d||this.braintreeIntegrationService.removeElement(o)}setupPayment(e,t,n){var i;return Mo(this,void 0,void 0,function*(){try{yield this.paymentIntegrationService.loadDefaultCheckout();const t=this.paymentIntegrationService.getState(),r=t.getCheckoutOrThrow().outstandingBalance,o=t.getCartOrThrow().currency.code,a=t.getCustomer(),s=t.getPaymentMethodOrThrow(n),d=null==a?void 0:a.addresses[0],c=d?this.braintreeIntegrationService.mapToBraintreeShippingAddressOverride(d):void 0;return yield e.createPayment({flow:"checkout",enableShippingAddress:!0,shippingAddressEditable:!1,shippingAddressOverride:c,amount:r,currency:o,offerCredit:!0,intent:null===(i=s.initializationData)||void 0===i?void 0:i.intent})}catch(e){const{container:n,onError:i}=t;this.handleError(e,n,i)}})}tokenizePayment(e,t,n,i){return Mo(this,void 0,void 0,function*(){try{const{deviceData:i}=yield this.braintreeIntegrationService.getDataCollector({paypal:!0}),r=yield t.tokenizePayment(e),{details:o,nonce:a}=r,s=this.braintreeIntegrationService.mapToLegacyBillingAddress(o),d=this.braintreeIntegrationService.mapToLegacyShippingAddress(o);return this.formPoster.postForm("/checkout.php",{payment_type:"paypal",provider:n,action:"set_external_checkout",nonce:a,device_data:i,billing_address:JSON.stringify(s),shipping_address:JSON.stringify(d)}),r}catch(e){const{container:t,onError:n}=i;this.handleError(e,t,n)}})}handleError(e,t,n){if(this.braintreeIntegrationService.removeElement(t),!n||!$i(e))throw e;n(e)}}const No=Rt(e=>{const t=window,n=new Ri(e),i=new Ao(new tr(a(),t,n),t);return new zo(e,Ee(),i,t)},[{id:"braintreepaypalcredit"}]);function xo(e){return"string"!=typeof e}function Fo(e,t){if(t||e)return function(e){var t,n;const i={},r=H(e.root,xo),o=H(e.input,xo),a=H(e.toggle,xo),s=H(null===(t=e.text)||void 0===t?void 0:t.body,xo),d=H(null===(n=e.text)||void 0===n?void 0:n.caption,xo),c=e.branding;return Object.keys(r).length&&(i.root=r),Object.keys(o).length&&(i.input=o),Object.keys(a).length&&(i.toggle=a),Object.keys(s).length&&(i.text={},i.text.body=s),Object.keys(d).length&&(i.text=Object.assign({},i.text),i.text.caption=d),c&&(i.branding=c),i}(function(e,t){var n,i,r,o,a,s,d,c,l,u,h,p,m,y,g,v,f,S,w,_,C,I;return{root:{backgroundColorPrimary:(null==e?void 0:e.fastlaneRootSettingsBackgroundColor)||(null===(n=null==t?void 0:t.root)||void 0===n?void 0:n.backgroundColorPrimary),errorColor:(null==e?void 0:e.fastlaneRootSettingsErrorColor)||(null===(i=null==t?void 0:t.root)||void 0===i?void 0:i.errorColor),fontFamily:(null==e?void 0:e.fastlaneRootSettingsFontFamily)||(null===(r=null==t?void 0:t.root)||void 0===r?void 0:r.fontFamily),fontSizeBase:(null==e?void 0:e.fastlaneRootSettingsFontSize)||(null===(o=null==t?void 0:t.root)||void 0===o?void 0:o.fontSizeBase),padding:(null==e?void 0:e.fastlaneRootSettingsPadding)||(null===(a=null==t?void 0:t.root)||void 0===a?void 0:a.padding),primaryColor:(null==e?void 0:e.fastlaneRootSettingsPrimaryColor)||(null===(s=null==t?void 0:t.root)||void 0===s?void 0:s.primaryColor)},input:{borderRadius:(null==e?void 0:e.fastlaneInputSettingsBorderRadius)||(null===(d=null==t?void 0:t.input)||void 0===d?void 0:d.borderRadius),borderColor:(null==e?void 0:e.fastlaneInputSettingsBorderColor)||(null===(c=null==t?void 0:t.input)||void 0===c?void 0:c.borderColor),focusBorderColor:(null==e?void 0:e.fastlaneInputSettingsFocusBorderBase)||(null===(l=null==t?void 0:t.input)||void 0===l?void 0:l.focusBorderColor),backgroundColor:(null==e?void 0:e.fastlaneInputSettingsBackgroundColor)||(null===(u=null==t?void 0:t.input)||void 0===u?void 0:u.backgroundColor),borderWidth:(null==e?void 0:e.fastlaneInputSettingsBorderWidth)||(null===(h=null==t?void 0:t.input)||void 0===h?void 0:h.borderWidth),textColorBase:(null==e?void 0:e.fastlaneInputSettingsTextColorBase)||(null===(p=null==t?void 0:t.input)||void 0===p?void 0:p.textColorBase)},toggle:{colorPrimary:(null==e?void 0:e.fastlaneToggleSettingsColorPrimary)||(null===(m=null==t?void 0:t.toggle)||void 0===m?void 0:m.colorPrimary),colorSecondary:(null==e?void 0:e.fastlaneToggleSettingsColorSecondary)||(null===(y=null==t?void 0:t.toggle)||void 0===y?void 0:y.colorSecondary)},text:{body:{color:(null==e?void 0:e.fastlaneTextBodySettingsColor)||(null===(v=null===(g=null==t?void 0:t.text)||void 0===g?void 0:g.body)||void 0===v?void 0:v.color),fontSize:(null==e?void 0:e.fastlaneTextBodySettingsFontSize)||(null===(S=null===(f=null==t?void 0:t.text)||void 0===f?void 0:f.body)||void 0===S?void 0:S.fontSize)},caption:{color:(null==e?void 0:e.fastlaneTextCaptionSettingsColor)||(null===(_=null===(w=null==t?void 0:t.text)||void 0===w?void 0:w.caption)||void 0===_?void 0:_.color),fontSize:(null==e?void 0:e.fastlaneTextCaptionSettingsFontSize)||(null===(I=null===(C=null==t?void 0:t.text)||void 0===C?void 0:C.caption)||void 0===I?void 0:I.fontSize)}},branding:(null==e?void 0:e.fastlaneBrandingSettings)||(null==t?void 0:t.branding)}}(e,t))}var Ro=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Lo{constructor(e,t){this.paymentIntegrationService=e,this.braintreeFastlaneUtils=t,this.isAcceleratedCheckoutEnabled=!1}initialize({methodId:e,braintreefastlane:t}){var n;return Ro(this,void 0,void 0,function*(){if(!e)throw new ki('Unable to proceed because "methodId" argument is not provided.');const i=yield this.getValidPaymentMethodOrThrow(e),{isAcceleratedCheckoutEnabled:r,isFastlaneStylingEnabled:o}=i.initializationData||{},a=o?null===(n=i.initializationData)||void 0===n?void 0:n.fastlaneStyles:void 0;this.isAcceleratedCheckoutEnabled=!!r;try{if(this.isAcceleratedCheckoutEnabled){const e=Fo(a,null==t?void 0:t.styles);yield this.braintreeFastlaneUtils.initializeBraintreeFastlaneOrThrow(i.id,e)}}catch(e){}return Promise.resolve()})}deinitialize(){return Ro(this,void 0,void 0,function*(){return Promise.resolve()})}signIn(e,t){return Ro(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signInCustomer(e,t)})}signOut(e){return Ro(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signOutCustomer(e)})}executePaymentMethodCheckout(e){return Ro(this,void 0,void 0,function*(){const{checkoutPaymentMethodExecuted:t,continueWithCheckoutCallback:n}=e||{};if("function"!=typeof n)throw new ki('Unable to proceed because "continueWithCheckoutCallback" argument is not provided and it must be a function.');const i=this.paymentIntegrationService.getState().getCustomerOrThrow();if(this.isAcceleratedCheckoutEnabled&&i.isGuest){const e=yield this.shouldRunAuthenticationFlow();t&&"function"==typeof t&&t(),e&&(yield this.braintreeFastlaneUtils.runPayPalAuthenticationFlowOrThrow(void 0,!0))}n()})}shouldRunAuthenticationFlow(){var e;return Ro(this,void 0,void 0,function*(){const t="braintreeacceleratedcheckout";try{yield this.paymentIntegrationService.loadPaymentMethod(t);const n=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(t);return(null===(e=n.initializationData)||void 0===e?void 0:e.shouldRunAcceleratedCheckout)||!1}catch(e){return!1}})}getValidPaymentMethodOrThrow(e){return Ro(this,void 0,void 0,function*(){let t=e;try{yield this.paymentIntegrationService.loadPaymentMethod(t)}catch(n){t="braintree"===e?"braintreeacceleratedcheckout":"braintree",yield this.paymentIntegrationService.loadPaymentMethod(t)}return this.paymentIntegrationService.getState().getPaymentMethodOrThrow(t)})}}var Bo=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class jo{constructor(e,t){this.paymentIntegrationService=e,this.braintreeIntegrationService=t}getDeviceSessionId(){return Bo(this,void 0,void 0,function*(){const e=this.paymentIntegrationService.getState().getCart();return this.braintreeIntegrationService.getSessionId(null==e?void 0:e.id)})}initializeBraintreeFastlaneOrThrow(e,t){return Bo(this,void 0,void 0,function*(){const n=this.paymentIntegrationService.getState(),i=n.getCart(),{clientToken:r,config:o}=n.getPaymentMethodOrThrow(e);if(!r)throw new pi(ui.MissingPaymentMethod);this.methodId=e,this.braintreeIntegrationService.initialize(r),this.braintreeFastlane=yield this.braintreeIntegrationService.getBraintreeFastlane(null==i?void 0:i.id,o.testMode,t)})}getBraintreeFastlaneOrThrow(){if(!this.braintreeFastlane)throw new Oi;return this.braintreeFastlane}getBraintreeFastlaneComponentOrThrow(){return this.getBraintreeFastlaneOrThrow().FastlaneCardComponent}runPayPalAuthenticationFlowOrThrow(e,t){var n;return Bo(this,void 0,void 0,function*(){try{const i=this.getMethodIdOrThrow(),r=this.getBraintreeFastlaneOrThrow(),{lookupCustomerByEmail:o,triggerAuthenticationFlow:a}=r.identity,s=this.paymentIntegrationService.getState(),d=s.getCartOrThrow(),c=s.getCustomer(),l=s.getBillingAddress(),{isFastlaneShippingOptionAutoSelectEnabled:u}=s.getPaymentMethodOrThrow(i).initializationData||{},h=e||(null==c?void 0:c.email)||(null==l?void 0:l.email)||"",{customerContextId:p}=yield o(h);if(!p)return yield this.paymentIntegrationService.updatePaymentProviderCustomer({authenticationState:qi.UNRECOGNIZED,addresses:[],instruments:[]}),void this.saveSessionIdToCookies(d.id);const{authenticationState:m,profileData:y}=yield a(p),g=(null===(n=null==y?void 0:y.shippingAddress)||void 0===n?void 0:n.phoneNumber)||"";if(m===qi.CANCELED)return yield this.paymentIntegrationService.updatePaymentProviderCustomer({authenticationState:m,addresses:[],instruments:[]}),void this.removeSessionIdFromCookies();const v=this.mapPayPalToBcAddress([y.shippingAddress],[g])||[],f=this.getPayPalBillingAddresses(y),S=f?this.mapPayPalToBcAddress([f],[g]):[],w=y.card?this.mapPayPalToBcInstrument(i,[y.card]):[],_=this.mergeShippingAndBillingAddresses(v,S);if(this.saveSessionIdToCookies(d.id),yield this.paymentIntegrationService.updatePaymentProviderCustomer({authenticationState:m,addresses:_,instruments:w}),S.length>0&&d.lineItems.physicalItems.length>0&&(yield this.paymentIntegrationService.updateBillingAddress(S[0])),S.length>0&&d.lineItems.digitalItems.length>0&&0===d.lineItems.physicalItems.length){const{firstName:e,lastName:t}=_[0],n=Object.assign(Object.assign({},S[0]),{firstName:e,lastName:t});yield this.paymentIntegrationService.updateBillingAddress(n)}v.length>0&&d.lineItems.physicalItems.length>0&&(yield this.paymentIntegrationService.updateShippingAddress(v[0]),t&&u&&(yield this.setShippingOption()))}catch(e){}})}getSessionIdFromCookies(){return $r.get("bc-fastlane-sessionId")||""}saveSessionIdToCookies(e){const t=new Date;t.setDate(t.getDate()+14),$r.set("bc-fastlane-sessionId",e,{expires:t,secure:!0})}removeSessionIdFromCookies(){$r.remove("bc-fastlane-sessionId")}mapPayPalToBcInstrument(e,t){if(t)return t.map(t=>{const{id:n,paymentSource:i}=t,{brand:r,expiry:o,lastDigits:a,binDetails:s}=i.card,[d,c]=o.split("-");return{bigpayToken:n,brand:r,defaultInstrument:!1,expiryMonth:c,expiryYear:d,iin:(null==s?void 0:s.bin)||"",last4:a,method:e,provider:e,trustedShippingAddress:!1,type:"card",untrustedShippingCardVerificationMode:xr.PAN}})}mapPayPalToBcAddress(e,t){if(!e)return[];const n=this.paymentIntegrationService.getState().getCountries()||[],i=e=>{const t=n.find(t=>t.code===e);return(null==t?void 0:t.name)||""};return e.map(e=>({id:Date.now(),type:"paypal-address",firstName:e.firstName||"",lastName:e.lastName||"",company:e.company||"",address1:e.streetAddress,address2:e.extendedAddress||"",city:e.locality,stateOrProvince:e.region,stateOrProvinceCode:e.region,country:i(e.countryCodeAlpha2),countryCode:e.countryCodeAlpha2,postalCode:e.postalCode,phone:t&&t[0]||"",customFields:[]}))}getPayPalBillingAddresses(e){const{card:t,name:n}=e||{};if(!t)return;const{firstName:i,lastName:r}=t.paymentSource.card.billingAddress,{firstName:o,lastName:a}=n||{},{shippingAddress:s}=e||{},d=Object.assign(Object.assign({},t.paymentSource.card.billingAddress),{firstName:i||o,lastName:r||a});return s&&A(this.normalizeAddress(d),this.normalizeAddress(s))?s:d}normalizeAddress(e){return G(e,["id"])}mergeShippingAndBillingAddresses(e,t){const n=t.filter(t=>!e.some(e=>A(this.normalizeAddress(e),this.normalizeAddress(t))));return[...e,...n]}getMethodIdOrThrow(){if(!this.methodId)throw new ki('Unable to proceed because "methodId" argument is not provided.');return this.methodId}setShippingOption(){var e;return Bo(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState().getConsignments()||[],n=(null===(e=t[0])||void 0===e?void 0:e.availableShippingOptions)||[],i=n.find(e=>e.isRecommended);if(i||n.length){const e=i||n[0];yield this.paymentIntegrationService.selectShippingOption(e.id)}})}}const Uo=Rt(e=>{const t=window,n=new Ri(e),i=new Ao(new tr(a(),t,n),t),r=new jo(e,i);return new Lo(e,r)},[{id:"braintreeacceleratedcheckout"},{id:"braintree"}]);var qo=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Vo{constructor(e,t,n){this.paymentIntegrationService=e,this.formPoster=t,this.braintreeSdk=n,this.buttonClassName="visa-checkout-wrapper",this.onError=V}initialize(e){return qo(this,void 0,void 0,function*(){const{braintreevisacheckout:t,methodId:n}=e;if(!n)throw new ki('Unable to proceed because "methodId" argument is not provided.');if(!t)throw new ki('Unable to proceed because "options.braintreevisacheckout" argument is not provided.');yield this.paymentIntegrationService.loadPaymentMethod(n);const i=this.paymentIntegrationService.getState(),r=i.getCheckoutOrThrow(),{clientToken:o,config:a}=i.getPaymentMethodOrThrow(n),s=i.getStoreConfigOrThrow();if(!o)throw new pi(ui.MissingPaymentMethod);this.braintreeSdk.initialize(o);const d=yield this.braintreeSdk.getBraintreeVisaCheckout(),c=yield this.braintreeSdk.getVisaCheckoutSdk(a.testMode),{container:l,onError:u}=t;this.onError=u||V;const h=d.createInitOptions({paymentRequest:{currencyCode:s.currency.code,subtotal:String(r.subtotal)},settings:{locale:s.storeProfile.storeLanguage,shipping:{collectShipping:!0}}}),p=this.createSignInButton(l,this.buttonClassName);yield c.init(h),c.on("payment.success",e=>this.tokenizePayment(d,e).then(()=>this.paymentIntegrationService.loadCheckout()).catch(e=>this.handleError(e))),c.on("payment.error",(e,t)=>this.handleError(t)),p.style.visibility="visible"})}deinitialize(){return qo(this,void 0,void 0,function*(){yield this.braintreeSdk.deinitialize()})}signIn(){throw new Ti('In order to sign in via VisaCheckout, the shopper must click on "Visa Checkout" button.')}signOut(e){return qo(this,void 0,void 0,function*(){return yield this.paymentIntegrationService.signOutCustomer(e),Promise.resolve()})}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}tokenizePayment(e,t){return qo(this,void 0,void 0,function*(){return Promise.all([e.tokenize(t),this.braintreeSdk.getDataCollectorOrThrow()]).then(([e,t])=>{const n=this.paymentIntegrationService.getState(),i=n.getShippingAddress(),r=n.getBillingAddress(),{shippingAddress:o=this.mapToVisaCheckoutAddress(i),billingAddress:a=this.mapToVisaCheckoutAddress(r)}=e;return this.postForm(Object.assign(Object.assign({},e),{shippingAddress:o,billingAddress:a}),t)})})}postForm(e,t){const{userData:n,billingAddress:i,shippingAddress:r,details:o}=e,{userEmail:a}=n,{deviceData:s}=t;return this.formPoster.postForm("/checkout.php",{payment_type:e.type,nonce:e.nonce,provider:"braintreevisacheckout",action:"set_external_checkout",device_data:s,card_information:JSON.stringify({type:o.cardType,number:o.lastTwo}),billing_address:JSON.stringify(this.getAddress(a,i)),shipping_address:JSON.stringify(this.getAddress(a,r))})}mapToVisaCheckoutAddress(e){return e?{firstName:e.firstName,lastName:e.lastName,phoneNumber:e.phone,streetAddress:e.address1,extendedAddress:e.address2,locality:e.city,region:e.stateOrProvinceCode,countryCode:e.countryCode,postalCode:e.postalCode}:{}}getAddress(e,t={}){return{email:e,first_name:t.firstName,last_name:t.lastName,phone_number:t.phoneNumber,address_line_1:t.streetAddress,address_line_2:t.extendedAddress,city:t.locality,state:t.region,country_code:t.countryCode,postal_code:t.postalCode}}createSignInButton(e,t){const n=document.querySelector(`#${e}`);if(!n)throw new Error("Unable to proceed because the provided container ID is not valid.");return this.insertVisaCheckoutButton(n,t)}insertVisaCheckoutButton(e,t){const n=document.createElement("div");return n.style.display="flex",n.style.flexDirection="column",n.style.visibility="hidden",n.style.width="max-content",n.className=t,n.innerHTML='\n <img\n alt="Visa Checkout"\n class="v-button"\n role="button"\n src="https://secure.checkout.visa.com/wallet-services-web/xo/button.png?acceptCanadianVisaDebit=false&cobrand=true&height=34&width=178"\n />\n <a class="v-learn v-learn-default" style="text-align: right; display: block; font-size: 10px; color: #003366;" href="#" data-locale="en_US">Tell Me More</a>',e.appendChild(n),n}handleError(e){if("function"!=typeof this.onError)throw e;this.onError(e)}}const Go=Rt(e=>{const t=window,n=new Ri(e),i=new Zi(new tr(a(),t,n));return new Vo(e,Ee(),i)},[{id:"braintreevisacheckout"}]);class Ho{constructor(e){if(!e)throw new Error("Currency settings missing");const{decimalPlaces:t,symbolLocation:n,symbol:i,thousandsSeparator:r,decimalSeparator:o}=e;if("string"!=typeof n||"string"!=typeof i||"string"!=typeof r||"string"!=typeof o||"string"!=typeof t)throw new ki("Invalid currency settings provided");this._decimalPlaces=parseInt(t,10),this._symbolLocation=n,this._symbol=i,this._thousandsSeparator=r,this._decimalSeparator=o}format(e){if("number"!=typeof e)throw new ki("Invalid amount provided");const t=this._formatNumber(e),n=this._formatCurrency(t);return e<0?`-${n}`:n}_formatNumber(e){const t=Math.abs(e),[n,i=""]=this._toFixed(t,this._decimalPlaces).split("."),r=n.replace(/\B(?=(\d{3})+(?!\d))/g,this._thousandsSeparator);return this._decimalPlaces<1?r:[r,i].join(this._decimalSeparator)}_formatCurrency(e){return"left"===this._symbolLocation.toLowerCase()?`${this._symbol}${e}`:`${e}${this._symbol}`}_toFixed(e,t){return(+`${Math.round(+`${e}e${t}`)}e${-t}`).toFixed(t)}}let $o=class{constructor(e){this._storeConfig=e,this._customerFormatter=new Ho(this._storeConfig.shopperCurrency),this._storeFormatter=new Ho(this._storeConfig.currency)}toCustomerCurrency(e){const t=this._storeConfig.shopperCurrency.exchangeRate;return this._customerFormatter.format(e*t)}toStoreCurrency(e){return this._storeFormatter.format(e)}};$o=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([Kn],$o);const Wo=$o,Yo=(e,t)=>!!e&&(!!e.lineItems.physicalItems.some(e=>e.isShippingRequired)||!(!t||!e.lineItems.customItems)&&e.lineItems.customItems.length>0);var Ko,Jo,Zo,Qo,Xo,ea,ta,na,ia;function ra(e){return e in ea}!function(e){e.AUTHORIZE="authorize",e.CAPTURE="capture"}(Ko||(Ko={})),function(e){e.paypal="paypal",e.checkout="checkout",e.buynow="buynow",e.pay="pay",e.installment="installment"}(Jo||(Jo={})),function(e){e.gold="gold",e.blue="blue",e.silver="silver",e.black="black",e.white="white"}(Zo||(Zo={})),function(e){e.pill="pill",e.rect="rect"}(Qo||(Qo={})),function(e){e.ESTIMATED="ESTIMATED",e.FINAL="FINAL",e.NOT_CURRENTLY_KNOWN="NOT_CURRENTLY_KNOWN"}(Xo||(Xo={})),function(e){e.AMEX="AMEX",e.DISCOVER="DISCOVER",e.INTERAC="INTERAC",e.JCB="JCB",e.MC="MASTERCARD",e.VISA="VISA"}(ea||(ea={})),function(e){e.OFFER="OFFER",e.PAYMENT_AUTHORIZATION="PAYMENT_AUTHORIZATION",e.SHIPPING_ADDRESS="SHIPPING_ADDRESS",e.SHIPPING_OPTION="SHIPPING_OPTION"}(ta||(ta={})),function(e){e.OFFER_INVALID="OFFER_INVALID",e.PAYMENT_DATA_INVALID="PAYMENT_DATA_INVALID",e.SHIPPING_ADDRESS_INVALID="SHIPPING_ADDRESS_INVALID",e.SHIPPING_ADDRESS_UNSERVICEABLE="SHIPPING_ADDRESS_UNSERVICEABLE",e.SHIPPING_OPTION_INVALID="SHIPPING_OPTION_INVALID",e.OTHER_ERROR="OTHER_ERROR"}(na||(na={})),function(e){e.INITIALIZE="INITIALIZE",e.SHIPPING_OPTION="SHIPPING_OPTION",e.SHIPPING_ADDRESS="SHIPPING_ADDRESS",e.OFFER="OFFER"}(ia||(ia={}));var oa,aa=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class sa{constructor(e,t){this._gatewayIdentifier=e,this._paymentIntegrationService=t,this._isBuyNowFlow=!1}mapToShippingAddressRequestBody({shippingAddress:e}){if(!e)return;const{company:t="",phone:n=""}=this._paymentIntegrationService.getState().getShippingAddress()||{};return this._mapToAddressRequestBody(e,t,n)}mapToBillingAddressRequestBody(e){const{billingAddress:t}=e.paymentMethodData.info;if(!t)return;const{company:n="",phone:i="",email:r,customFields:o=[]}=this._paymentIntegrationService.getState().getBillingAddress()||{};return Object.assign(Object.assign({},this._mapToAddressRequestBody(t,n,i,o)),{email:r||e.email})}mapToExternalCheckoutData(e){var t;const{paymentMethodData:{tokenizationData:{token:n},info:{cardNetwork:i,cardDetails:r}}}=e;if(!n)throw new pi(ui.MissingPaymentToken);return Promise.resolve(Object.assign({nonce:n,card_information:{type:i,number:r}},this._isBuyNowFlow&&{cart_id:null===(t=this._paymentIntegrationService.getState().getCart())||void 0===t?void 0:t.id}))}getRequiredData(){var e;return aa(this,void 0,void 0,function*(){const t={emailRequired:!0};if(!this._isShippingAddressRequired())return t;const n=yield this._paymentIntegrationService.loadShippingCountries(),i=null===(e=n.getShippingCountries())||void 0===e?void 0:e.map(e=>e.code);return Object.assign(Object.assign({},t),{shippingAddressRequired:!0,shippingAddressParameters:Object.assign({phoneNumberRequired:!0},i&&{allowedCountryCodes:i}),shippingOptionRequired:!0})})}getCallbackIntents(){return this._isShippingAddressRequired()?[ta.OFFER,ta.SHIPPING_ADDRESS,ta.SHIPPING_OPTION]:[ta.OFFER]}getCallbackTriggers(){const e=this._paymentIntegrationService.getState().getStoreConfigOrThrow().checkoutSettings.features["PI-2875.googlepay_coupons_handling"]||!1;return{availableTriggers:[ia.INITIALIZE,ia.SHIPPING_ADDRESS,ia.SHIPPING_OPTION,...e?[ia.OFFER]:[]],initializationTrigger:[ia.INITIALIZE],addressChangeTriggers:[ia.INITIALIZE,ia.SHIPPING_ADDRESS],shippingOptionsChangeTriggers:[ia.SHIPPING_OPTION],offerChangeTriggers:e?[ia.OFFER]:[]}}getNonce(e){var t;const n=null===(t=this._paymentIntegrationService.getState().getPaymentMethodOrThrow(e).initializationData)||void 0===t?void 0:t.nonce;if(!n)throw new pi(ui.MissingPaymentToken);return Promise.resolve(n)}extraPaymentData(){return Promise.resolve(void 0)}getMerchantInfo(){const{googleMerchantName:e,googleMerchantId:t,platformToken:n}=this.getGooglePayInitializationData();return{merchantName:e,merchantId:t,authJwt:n}}getTransactionInfo(){let e;if(this._isBuyNowFlow)e=this._getCurrencyCodeOrThrow();else{const{getCartOrThrow:t}=this._paymentIntegrationService.getState();e=t().currency.code}const t=this.getGooglePayInitializationData().storeCountry;return Object.assign(Object.assign({},t&&{countryCode:t}),{currencyCode:e,totalPriceStatus:Xo.ESTIMATED,totalPrice:"0"})}getPaymentGatewayParameters(){const e=this.getGooglePayInitializationData().gatewayMerchantId;if(!e)throw new ki("Unable to proceed, gatewayMerchantId is missing.");return{gateway:this._gatewayIdentifier,gatewayMerchantId:e}}getCardParameters(){return{allowedAuthMethods:["PAN_ONLY","CRYPTOGRAM_3DS"],allowedCardNetworks:this.getPaymentMethod().supportedCards.filter(ra).map(e=>ea[e]),billingAddressRequired:!0,billingAddressParameters:{format:"FULL",phoneNumberRequired:!0}}}initialize(e,t,n){return this._getPaymentMethodFn=e,this._isBuyNowFlow=Boolean(t),this._currencyCode=n,this._isBuyNowFlow&&this._getCurrencyCodeOrThrow(),Promise.resolve()}handleShippingAddressChange(e){var t,n,i,r;return aa(this,void 0,void 0,function*(){e&&(e.name=e.name||"",e.address1=e.address1||"");const o=this.mapToShippingAddressRequestBody({shippingAddress:e});o&&(yield this._paymentIntegrationService.updateShippingAddress(o));const a=this._paymentIntegrationService.getState(),s=a.getConsignments();if(!(null==s?void 0:s[0]))return;const d=s[0],c=a.getStoreConfigOrThrow();this._currencyService||(this._currencyService=new Wo(c));const l=(d.availableShippingOptions||[]).map(this._getGooglePayShippingOption.bind(this)),u=null===(t=d.availableShippingOptions)||void 0===t?void 0:t.find(e=>e.isRecommended);if(l.length){const e=(null===(n=d.selectedShippingOption)||void 0===n?void 0:n.id)||(null==u?void 0:u.id)||(null===(i=l[0])||void 0===i?void 0:i.id);return!(null===(r=d.selectedShippingOption)||void 0===r?void 0:r.id)&&l[0]&&(yield this.handleShippingOptionChange((null==u?void 0:u.id)||l[0].id)),{defaultSelectedOptionId:e,shippingOptions:l}}})}handleShippingOptionChange(e){return aa(this,void 0,void 0,function*(){if("shipping_option_unselected"!==e)return this._paymentIntegrationService.selectShippingOption(e)})}getTotalPrice(){const{getCheckoutOrThrow:e,getCartOrThrow:t}=this._paymentIntegrationService.getState(),{decimalPlaces:n}=t().currency;return J(e().outstandingBalance,n).toFixed(n)}handleCoupons(e){return aa(this,void 0,void 0,function*(){const{redemptionCodes:t=[]}=e,{offers:n}=this.getAppliedCoupons();let i;return yield t.reduce((e,t)=>aa(this,void 0,void 0,function*(){if(yield e,n.some(({redemptionCode:e})=>e===t))return;const r=yield this.applyCoupon(t);r&&(i=r)}),Promise.resolve()),yield n.reduce((e,n)=>aa(this,void 0,void 0,function*(){yield e,t.includes(n.redemptionCode)||(yield this._paymentIntegrationService.removeCoupon(n.redemptionCode))}),Promise.resolve()),{newOfferInfo:this.getAppliedCoupons(),error:i}})}getAppliedCoupons(){const e=this._paymentIntegrationService.getState(),{coupons:t}=e.getCheckout()||{};return{offers:(t||[]).map(e=>{const{displayName:t,code:n}=e;return{redemptionCode:n,description:t}})}}applyCoupon(e){return aa(this,void 0,void 0,function*(){let t;try{yield this._paymentIntegrationService.applyCoupon(e)}catch(e){return e instanceof Error&&(t={reason:na.OFFER_INVALID,message:e.message,intent:ia.OFFER}),t}})}getGooglePayInitializationData(){return yi(this.getPaymentMethod().initializationData,()=>new ki("Missing initialization data."))}getPaymentMethod(){return yi(this._getPaymentMethodFn,()=>new gi(hi.PaymentNotInitialized))()}getGatewayIdentifier(){return this._gatewayIdentifier}setGatewayIdentifier(e){this._gatewayIdentifier=e||this.getGatewayIdentifier()}_isShippingAddressRequired(){const{getCartOrThrow:e,getStoreConfig:t,getShippingAddress:n}=this._paymentIntegrationService.getState();return void 0===n()&&Yo(e(),t())}_mapToAddressRequestBody(e,t,n,i){const{name:r,address1:o,address2:a,address3:s,locality:d,administrativeArea:c,countryCode:l,postalCode:u,phoneNumber:h}=e,[p,m]=this._getFirstAndLastName(r);return{firstName:p,lastName:m,company:t,address1:o,address2:`${a} ${s}`.trim(),city:d||c,stateOrProvince:c,stateOrProvinceCode:c,countryCode:l,postalCode:u,phone:h||n,customFields:i||[]}}_getFirstAndLastName(e){const t=e.split(" ");return 1===t.length?[e,""]:[t.slice(0,-1).join(" "),t[t.length-1]]}_getCurrencyCodeOrThrow(){return yi(this._currencyCode,()=>new ki('Unable to initialize payment because "options.currencyCode" argument is not provided.'))}_getGooglePayShippingOption({id:e,cost:t,description:n,additionalDescription:i}){var r;const o=null===(r=this._currencyService)||void 0===r?void 0:r.toCustomerCurrency(t);return this._paymentIntegrationService.getState().getStoreConfigOrThrow().checkoutSettings.features["PI-3540.googlepay_new_shipping_options_description"]?{id:e,label:`${o||t} ${n}`,description:i}:{id:e,label:n,description:o||t}}}function da(e){return"object"==typeof e&&null!==e&&"statusCode"in e}function ca(e){return Object.values(oa).includes(e)}!function(e){e.ADYEN_V2="googlepayadyenv2",e.ADYEN_V3="googlepayadyenv3",e.AUTHORIZE_NET="googlepayauthorizenet",e.BNZ="googlepaybnz",e.BRAINTREE="googlepaybraintree",e.PAYPAL_COMMERCE="googlepaypaypalcommerce",e.BIGCOMMERCE_PAYMENTS="googlepay_bigcommerce_payments",e.CHECKOUT_COM="googlepaycheckoutcom",e.CYBERSOURCE_V2="googlepaycybersourcev2",e.ORBITAL="googlepayorbital",e.STRIPE="googlepaystripe",e.STRIPE_UPE="googlepaystripeupe",e.STRIPE_OCS="googlepaystripeocs",e.WORLDPAY_ACCESS="googlepayworldpayaccess",e.TD_ONLINE_MART="googlepaytdonlinemart"}(oa||(oa={}));var la=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class ua{constructor(e,t){this._paymentIntegrationService=e,this._googlePayPaymentProcessor=t}initialize(e){var t;return la(this,void 0,void 0,function*(){if(!(null==e?void 0:e.methodId)||!ca(e.methodId))throw new ki('Unable to proceed because "methodId" is not a valid key.');this._methodId=e.methodId;const n=e[this._getMethodId()];if(!n)throw new ki("Unable to proceed without valid options.");let i,r=this._paymentIntegrationService.getState();try{i=r.getPaymentMethodOrThrow(this._getMethodId())}catch(e){r=yield this._paymentIntegrationService.loadPaymentMethod(this._getMethodId()),i=r.getPaymentMethodOrThrow(this._getMethodId())}try{yield this._googlePayPaymentProcessor.initialize(()=>i,this._getGooglePayClientOptions(null===(t=i.initializationData)||void 0===t?void 0:t.storeCountry))}catch(e){return}this._addPaymentButton(n)})}signIn(){return Promise.reject(new Ti('In order to sign in via Google Pay, the shopper must click on "Google Pay" button.'))}signOut(){var e;return la(this,void 0,void 0,function*(){const t=null===(e=this._paymentIntegrationService.getState().getPaymentId())||void 0===e?void 0:e.providerId;t&&(yield this._googlePayPaymentProcessor.signOut(t))})}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}deinitialize(){var e;return null===(e=this._paymentButton)||void 0===e||e.remove(),this._paymentButton=void 0,this._methodId=void 0,Promise.resolve()}_getGooglePayClientOptions(e){return{paymentDataCallbacks:{onPaymentDataChanged:({callbackTrigger:t,shippingAddress:n,shippingOptionData:i,offerData:r})=>la(this,void 0,void 0,function*(){const{availableTriggers:o,addressChangeTriggers:a,shippingOptionsChangeTriggers:s,offerChangeTriggers:d}=this._googlePayPaymentProcessor.getCallbackTriggers();if(!o.includes(t))return;const c=a.includes(t)?yield this._googlePayPaymentProcessor.handleShippingAddressChange(n):void 0;s.includes(t)&&(yield this._googlePayPaymentProcessor.handleShippingOptionChange(i.id));const{newOfferInfo:l,error:u}=d.includes(t)?yield this._googlePayPaymentProcessor.handleCoupons(r):{},h=u;yield this._paymentIntegrationService.loadCheckout();const p=this._googlePayPaymentProcessor.getTotalPrice(),{code:m}=this._paymentIntegrationService.getState().getCartOrThrow().currency;return Object.assign(Object.assign(Object.assign({newTransactionInfo:Object.assign(Object.assign({},e&&{countryCode:e}),{currencyCode:m,totalPriceStatus:Xo.FINAL,totalPrice:p})},c&&{newShippingOptionParameters:c}),l&&{newOfferInfo:l}),h&&{error:h})})}}}_addPaymentButton({container:e,buttonColor:t,buttonType:n,onClick:i,onError:r}){var o;this._paymentButton=null!==(o=this._paymentButton)&&void 0!==o?o:this._googlePayPaymentProcessor.addPaymentButton(e,{buttonColor:null!=t?t:"default",buttonType:null!=n?n:"plain",onClick:this._handleClick(r,i)})}_handleClick(e,t){return n=>la(this,void 0,void 0,function*(){n.preventDefault(),t&&"function"==typeof t&&t();try{yield this._googlePayPaymentProcessor.initializeWidget(),yield this._interactWithPaymentSheet()}catch(t){let n=t;if(da(t)){if("CANCELED"===t.statusCode)throw new nr;n=new so(JSON.stringify(t))}throw null==e||e(new so("An error occurred while requesting your Google Pay payment details.")),n}})}_interactWithPaymentSheet(){return la(this,void 0,void 0,function*(){const e=yield this._googlePayPaymentProcessor.showPaymentSheet(),t=this._googlePayPaymentProcessor.mapToBillingAddressRequestBody(e),n=this._googlePayPaymentProcessor.mapToShippingAddressRequestBody(e),i="/embedded-checkout"===window.location.pathname?this._paymentIntegrationService.getState().getStoreConfigOrThrow().links.siteLink:void 0;t&&(yield this._paymentIntegrationService.updateBillingAddress(t)),n&&(yield this._paymentIntegrationService.updateShippingAddress(n)),yield this._googlePayPaymentProcessor.setExternalCheckoutForm(this._getMethodId(),e,i)})}_getMethodId(){return yi(this._methodId,()=>new gi(hi.PaymentNotInitialized))}}var ha=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class pa{constructor(e,t,n,i){this._scriptLoader=e,this._gateway=t,this._requestSender=n,this._formPoster=i,this._baseRequest={apiVersion:2,apiVersionMinor:0}}initialize(e,t,n,i){return ha(this,void 0,void 0,function*(){this._paymentsClient=yield this._scriptLoader.getGooglePaymentsClient(e().config.testMode,t),yield this._gateway.initialize(e,n,i),this._buildButtonPayloads()})}initializeWidget(){return ha(this,void 0,void 0,function*(){yield this._buildWidgetPayloads(),yield this._determineReadinessToPay(),this._prefetchGooglePaymentData()})}getNonce(e){return this._gateway.getNonce(e)}extraPaymentData(){return ha(this,void 0,void 0,function*(){return this._gateway.extraPaymentData()})}addPaymentButton(e,t){const n=document.querySelector(`#${e}`);if(!n)return;const i=this._getPaymentsClient().createButton(Object.assign(Object.assign({},t),{allowedPaymentMethods:[this._getBaseCardPaymentMethod()]}));return n.appendChild(i)}showPaymentSheet(){return ha(this,void 0,void 0,function*(){const e=this._getPaymentDataRequest();return this._getPaymentsClient().loadPaymentData(e)})}setExternalCheckoutXhr(e,t){return ha(this,void 0,void 0,function*(){return this._setExternalCheckout(e,t)})}setExternalCheckoutForm(e,t,n){return ha(this,void 0,void 0,function*(){return this._setExternalCheckout(e,t,!0,n)})}mapToBillingAddressRequestBody(e){return this._gateway.mapToBillingAddressRequestBody(e)}mapToShippingAddressRequestBody(e){return this._gateway.mapToShippingAddressRequestBody(e)}processAdditionalAction(e,t){return"processAdditionalAction"in this._gateway?this._gateway.processAdditionalAction(e,t):Promise.reject(e)}signOut(e){return ha(this,void 0,void 0,function*(){yield this._requestSender.get(`/remote-checkout/${e}/signout`)})}getCallbackTriggers(){return this._gateway.getCallbackTriggers()}handleShippingAddressChange(e){return ha(this,void 0,void 0,function*(){return this._gateway.handleShippingAddressChange(e)})}handleShippingOptionChange(e){return ha(this,void 0,void 0,function*(){yield this._gateway.handleShippingOptionChange(e)})}handleCoupons(e){return ha(this,void 0,void 0,function*(){return this._gateway.handleCoupons(e)})}getTotalPrice(){return this._gateway.getTotalPrice()}_setExternalCheckout(e,t,n=!1,i){return ha(this,void 0,void 0,function*(){const r="/checkout.php",o=Object.assign({action:"set_external_checkout",provider:e},yield this._gateway.mapToExternalCheckoutData(t));if(n)return new Promise(e=>{this._formPoster.postForm(i?`${i}/checkout`:r,Object.assign(Object.assign({},o),{card_information:JSON.stringify(o.card_information)}),e)});yield this._requestSender.post(r,{headers:Object.assign({Accept:"text/html","Content-Type":"application/x-www-form-urlencoded"},Pr),body:o})})}_prefetchGooglePaymentData(){const e=this._getPaymentDataRequest();e.transactionInfo=this._gateway.getTransactionInfo(),this._getPaymentsClient().prefetchPaymentData(e)}_determineReadinessToPay(){return ha(this,void 0,void 0,function*(){try{const{result:e}=yield this._getPaymentsClient().isReadyToPay(this._getIsReadyToPayRequest());if(!1===e)throw new so("Google Pay is not supported by the current device and browser, please try another payment method.")}catch(e){if(e instanceof so)throw e;throw new so}})}_buildButtonPayloads(){this._baseCardPaymentMethod={type:"CARD",parameters:this._gateway.getCardParameters()}}_buildWidgetPayloads(){return ha(this,void 0,void 0,function*(){const e=this._getBaseCardPaymentMethod();this._cardPaymentMethod=Object.assign(Object.assign({},e),{tokenizationSpecification:{type:"PAYMENT_GATEWAY",parameters:yield this._gateway.getPaymentGatewayParameters()}}),this._paymentDataRequest=Object.assign(Object.assign(Object.assign(Object.assign({},this._baseRequest),{allowedPaymentMethods:[this._cardPaymentMethod],transactionInfo:this._gateway.getTransactionInfo(),merchantInfo:this._gateway.getMerchantInfo()}),yield this._gateway.getRequiredData()),{callbackIntents:this._gateway.getCallbackIntents(),offerInfo:this._gateway.getAppliedCoupons()}),this._isReadyToPayRequest=Object.assign(Object.assign({},this._baseRequest),{allowedPaymentMethods:[e]})})}_getBaseCardPaymentMethod(){return this._getOrThrow(this._baseCardPaymentMethod)}_getPaymentDataRequest(){return this._getOrThrow(this._paymentDataRequest)}_getIsReadyToPayRequest(){return this._getOrThrow(this._isReadyToPayRequest)}_getPaymentsClient(){return this._getOrThrow(this._paymentsClient)}_getOrThrow(e){return yi(e,()=>new gi(hi.PaymentNotInitialized))}}class ma{constructor(e){this._scriptLoader=e,this._window=window}getGooglePaymentsClient(e=!1,t){return n=this,i=void 0,o=function*(){if(yield this._scriptLoader.loadScript("https://pay.google.com/gp/p/js/pay.js"),!this._window.google)throw new Oi;return void 0===this._paymentsClient&&(this._paymentsClient=new this._window.google.payments.api.PaymentsClient(Object.assign({environment:e?"TEST":"PRODUCTION"},null!=t?t:{}))),this._paymentsClient},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}}function ya(){return new ma(a())}const ga=Rt(e=>{const t=n();return new ua(e,new pa(ya(),new sa("adyen",e),t,Ee()))},[{id:"googlepayadyenv2"}]),va=Rt(e=>{const t=n();return new ua(e,new pa(ya(),new sa("adyen",e),t,Ee()))},[{id:"googlepayadyenv3"}]);class fa extends sa{constructor(e){super("authorizenet",e)}mapToExternalCheckoutData(e){const t=Object.create(null,{mapToExternalCheckoutData:{get:()=>super.mapToExternalCheckoutData}});return n=this,i=void 0,o=function*(){const n=yield t.mapToExternalCheckoutData.call(this,e);return n.nonce=btoa(n.nonce),n},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}getPaymentGatewayParameters(){const e=this.getGooglePayInitializationData();return function(e){if(!function(e){return"paymentGatewayId"in e}(e))throw new pi(ui.MissingPaymentMethod)}(e),{gateway:this.getGatewayIdentifier(),gatewayMerchantId:e.paymentGatewayId}}}const Sa=Rt(e=>new ua(e,new pa(ya(),new fa(e),n(),Ee())),[{id:"googlepayauthorizenet"}]),wa=e=>"object"==typeof e&&null!==e&&"body"in e;function _a(e){if(!function(e){return"checkoutcomkey"in e}(e))throw new pi(ui.MissingPaymentMethod)}var Ca=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Ia extends sa{constructor(e,t){super("checkoutltd",e),this._requestSender=t}processAdditionalAction(e){return new Promise((t,n)=>{if(wa(e)&&function(e){var t;if("object"!=typeof e||null===e)return!1;const n=e;return"string"==typeof(null===(t=n.three_ds_result)||void 0===t?void 0:t.acs_url)&&"string"==typeof n.three_ds_result.code}(e.body)&&"three_d_secure_required"===e.body.three_ds_result.code)return window.location.assign(e.body.three_ds_result.acs_url);n(e)})}mapToExternalCheckoutData(e){const t=Object.create(null,{mapToExternalCheckoutData:{get:()=>super.mapToExternalCheckoutData}});return Ca(this,void 0,void 0,function*(){const n=yield t.mapToExternalCheckoutData.call(this,e);let i;try{i=JSON.parse(n.nonce)}catch(e){throw new ki("Unable to parse response from Google Pay.")}return function(e){if(!function(e){return"object"==typeof e&&null!==e&&"protocolVersion"in e&&"signature"in e&&"signedMessage"in e}(e))throw new pi(ui.MissingPaymentToken)}(i),n.nonce=yield this._tokenize(i),n})}getPaymentGatewayParameters(){const e=this.getGooglePayInitializationData();return _a(e),{gateway:this.getGatewayIdentifier(),gatewayMerchantId:e.checkoutcomkey}}_tokenize(e){return Ca(this,void 0,void 0,function*(){const t=this.getPaymentMethod().config.testMode?"https://api.sandbox.checkout.com/tokens":"https://api.checkout.com/tokens",n=this.getGooglePayInitializationData();_a(n);const{body:i}=yield this._requestSender.post(t,{credentials:!1,body:{type:"googlepay",token_data:e},headers:{Authorization:n.checkoutcomkey,"Content-Type":br.Json,"X-XSRF-TOKEN":null}});return i.token})}}const ba=Rt(e=>{const t=n();return new ua(e,new pa(ya(),new Ia(e,t),t,Ee()))},[{id:"googlepaycheckoutcom"}]);class Pa extends sa{constructor(e){super("cybersource",e)}mapToExternalCheckoutData(e){const t=Object.create(null,{mapToExternalCheckoutData:{get:()=>super.mapToExternalCheckoutData}});return n=this,i=void 0,o=function*(){const n=yield t.mapToExternalCheckoutData.call(this,e);return n.nonce=btoa(n.nonce),n},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}}const Oa=Rt(e=>new ua(e,new pa(ya(),new Pa(e),n(),Ee())),[{id:"googlepaycybersourcev2"}]),Ea=Rt(e=>new ua(e,new pa(ya(),new Pa(e),n(),Ee())),[{id:"googlepaybnz"}]);class Aa extends sa{constructor(e){super("chase",e)}mapToExternalCheckoutData(e){const t=Object.create(null,{mapToExternalCheckoutData:{get:()=>super.mapToExternalCheckoutData}});return n=this,i=void 0,o=function*(){const n=yield t.mapToExternalCheckoutData.call(this,e);return n.nonce=btoa(n.nonce),n},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}}const ka=Rt(e=>new ua(e,new pa(ya(),new Aa(e),n(),Ee())),[{id:"googlepayorbital"}]);function Ta(e){if(!function(e){return"stripeConnectedAccount"in e&&"stripePublishableKey"in e&&"stripeVersion"in e}(e))throw new pi(ui.MissingPaymentMethod)}var Da=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Ma extends sa{constructor(e,t){super("stripe",e),this.paymentIntegrationService=e,this.scriptLoader=t}mapToExternalCheckoutData(e){const t=Object.create(null,{mapToExternalCheckoutData:{get:()=>super.mapToExternalCheckoutData}});return Da(this,void 0,void 0,function*(){const n=yield t.mapToExternalCheckoutData.call(this,e);let i;try{i=JSON.parse(n.nonce)}catch(e){throw new ki("Unable to parse response from Google Pay.")}return function(e){if(!function(e){return"object"==typeof e&&null!==e&&"id"in e}(e))throw new pi(ui.MissingPaymentToken)}(i),n.nonce=i.id,n})}getPaymentGatewayParameters(){const e=this.getGooglePayInitializationData();Ta(e);const{stripeVersion:t,stripePublishableKey:n,stripeConnectedAccount:i}=e;return{gateway:this.getGatewayIdentifier(),"stripe:version":t,"stripe:publishableKey":`${n}/${i}`}}processAdditionalAction(e,t){var n,i;return Da(this,void 0,void 0,function*(){if(!t)throw new fo(["payment"]);if(!wa(e)||("object"!=typeof(r=e.body)||null===r||!("three_ds_result"in r)||!("errors"in r)))throw e;var r;const o=this.paymentIntegrationService.getState(),a=null===(n=o.getStoreConfig())||void 0===n?void 0:n.checkoutSettings.features["STRIPE-476.enable_stripe_googlepay_3ds"];if(Z(e.body.errors,{code:"three_d_secure_required"})&&a){const n=this.getGooglePayInitializationData();Ta(n);const{stripePublishableKey:r,stripeConnectedAccount:o}=n;this.stripeUPEClient=yield this.loadStripeJs(r,o);const a=e.body.three_ds_result.token;let s,d=!1;try{s=yield this.stripeUPEClient.confirmCardPayment(a)}catch(e){try{s=yield this.stripeUPEClient.retrievePaymentIntent(a)}catch(e){d=!0}}if(null==s?void 0:s.error){if(this._throwDisplayableStripeError(s.error),this._isCancellationError(s.error))throw new nr;throw new so}if(!(null==s?void 0:s.paymentIntent)&&!d)throw new hr;return this.paymentIntegrationService.submitPayment({methodId:t,paymentData:{nonce:(null===(i=null==s?void 0:s.paymentIntent)||void 0===i?void 0:i.id)||a}})}throw e})}loadStripeJs(e,t){return Da(this,void 0,void 0,function*(){return this.stripeUPEClient?this.stripeUPEClient:this.scriptLoader.getStripeClient(e,t)})}_isCancellationError(e){var t,n;return e&&-1!==(null===(n=null===(t=e.payment_intent.last_payment_error)||void 0===t?void 0:t.message)||void 0===n?void 0:n.indexOf("canceled"))}_throwDisplayableStripeError(e){if(P(["card_error","invalid_request_error","validation_error"],e.type))throw new Error(e.message)}}var za=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Na{constructor(e,t=window){this.scriptLoader=e,this.stripeWindow=t}getStripeClient(e,t,n){return za(this,void 0,void 0,function*(){let i=this.stripeWindow.bcStripeClient;return i||(i=(yield this.load())(e,{stripeAccount:t,locale:n,betas:["payment_element_beta_2","alipay_pm_beta_1","link_default_integration_beta_1","shipping_address_element_beta_1","address_element_beta_1"],apiVersion:"2020-03-02;alipay_beta=v1;link_beta=v1"}),Object.assign(this.stripeWindow,{bcStripeClient:i})),i})}load(){return za(this,void 0,void 0,function*(){if(this.stripeWindow.Stripe||(yield this.scriptLoader.loadScript("https://js.stripe.com/v3/")),!this.stripeWindow.Stripe)throw new Oi;return this.stripeWindow.Stripe})}}const xa=Rt(e=>new ua(e,new pa(ya(),new Ma(e,new Na(a())),n(),Ee())),[{id:"googlepaystripe"},{id:"googlepaystripeocs"}]),Fa=Rt(e=>new ua(e,new pa(ya(),new Ma(e,new Na(a())),n(),Ee())),[{id:"googlepaystripeupe"}]);class Ra extends sa{constructor(e){super("worldpay",e)}mapToExternalCheckoutData(e){const t=Object.create(null,{mapToExternalCheckoutData:{get:()=>super.mapToExternalCheckoutData}});return n=this,i=void 0,o=function*(){const n=yield t.mapToExternalCheckoutData.call(this,e);return n.nonce=btoa(n.nonce),n},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}}const La=Rt(e=>new ua(e,new pa(ya(),new Ra(e),n(),Ee())),[{id:"googlepayworldpayaccess"}]);var Ba=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class ja extends sa{constructor(e,t){super("braintree",e),this._braintreeSdk=t,this._methodId=oa.BRAINTREE,this._service=e}initialize(e,t,n){const i=Object.create(null,{initialize:{get:()=>super.initialize},getPaymentMethod:{get:()=>super.getPaymentMethod}});return Ba(this,void 0,void 0,function*(){yield i.initialize.call(this,e,t,n);let r=i.getPaymentMethod.call(this);if(r.clientToken||(r=(yield this._service.loadPaymentMethod(this._methodId)).getPaymentMethodOrThrow(this._methodId)),!r.clientToken||!r.initializationData)throw new pi(ui.MissingPaymentMethod);return this._braintreeSdk.initialize(r.clientToken),this._braintreeGooglePayment=yield this._braintreeSdk.getBraintreeGooglePayment(),Promise.resolve()})}getNonce(e){const t=Object.create(null,{getNonce:{get:()=>super.getNonce},getPaymentMethod:{get:()=>super.getPaymentMethod}});var n;return Ba(this,void 0,void 0,function*(){const i=yield t.getNonce.call(this,e),{clientToken:r,initializationData:o}=t.getPaymentMethod.call(this);if(!r||!o||!(null===(n=o.card_information)||void 0===n?void 0:n.bin))throw new pi(ui.MissingPaymentMethod);const{isThreeDSecureEnabled:a,card_information:{bin:s,isNetworkTokenized:d}}=o;if(a&&!d){const e=yield this._braintreeSdk.getBraintreeThreeDS(),{orderAmount:t}=this._service.getState().getOrderOrThrow();return(yield this._braintreePresent3DSChallenge(e,t,i,s)).nonce}return i})}extraPaymentData(){return Ba(this,void 0,void 0,function*(){return{deviceSessionId:yield this._getBraintreeDeviceData()}})}mapToExternalCheckoutData(e){const t=Object.create(null,{mapToExternalCheckoutData:{get:()=>super.mapToExternalCheckoutData}});return Ba(this,void 0,void 0,function*(){const n=yield t.mapToExternalCheckoutData.call(this,e);let i;try{i=JSON.parse(n.nonce)}catch(e){throw new ki("Unable to parse response from Google Pay.")}return function(e){if(!function(e){return"object"==typeof e&&null!==e&&"androidPayCards"in e}(e))throw new pi(ui.MissingPaymentToken)}(i),n.nonce=i.androidPayCards[0].nonce,n.card_information.bin=i.androidPayCards[0].details.bin,n.card_information.isNetworkTokenized=i.androidPayCards[0].details.isNetworkTokenized,n})}getCardParameters(){return super.getCardParameters()}getPaymentGatewayParameters(){const e=Object.create(null,{getMerchantInfo:{get:()=>super.getMerchantInfo},getTransactionInfo:{get:()=>super.getTransactionInfo},getRequiredData:{get:()=>super.getRequiredData}});return Ba(this,void 0,void 0,function*(){return this.getBraintreeGooglePayment().createPaymentDataRequest(Object.assign({merchantInfo:e.getMerchantInfo.call(this),transactionInfo:e.getTransactionInfo.call(this),cardRequirements:{billingAddressRequired:!0,billingAddressFormat:"FULL"}},yield e.getRequiredData.call(this))).paymentMethodTokenizationParameters.parameters})}getBraintreeGooglePayment(){if(!this._braintreeGooglePayment)throw new pi(ui.MissingPaymentMethod);return this._braintreeGooglePayment}_getBraintreeDeviceData(){return Ba(this,void 0,void 0,function*(){const{deviceData:e}=yield this._braintreeSdk.getDataCollectorOrThrow();return e})}_braintreePresent3DSChallenge(e,t,n,i){return new Bn(e.verifyCard({amount:t,bin:i,nonce:n,onLookupComplete:(e,t)=>{t()}})).promise}}const Ua=Rt(e=>{const t=n(),i=window,r=new Ri(e),o=new Zi(new tr(a(),i,r));return new ua(e,new pa(ya(),new ja(e,o),t,Ee()))},[{id:"googlepaybraintree"}]);var qa=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Va{constructor(e){this.scriptLoader=e,this.window=window}getPayPalFastlaneSdk(e,t,n){return qa(this,void 0,void 0,function*(){if(!this.window.paypalFastlaneSdk){const i=this.getPayPalFastlaneSdkConfiguration(e,t,n);if(yield this.loadPayPalSdk(i),!this.window.paypalFastlaneSdk)throw new Oi}return this.window.paypalFastlaneSdk})}getPayPalGooglePaySdk(e,t,n,i){return qa(this,void 0,void 0,function*(){if(!this.window.paypalGooglePay||i){const i=this.getPayPalGooglePaySdkScriptConfigOrThrow(e,t,n);yield this.loadPayPalSdk(i)}if(!this.window.paypalGooglePay)throw new Oi;return this.window.paypalGooglePay})}getPayPalApmsSdk(e,t){return qa(this,void 0,void 0,function*(){if(!this.window.paypalApms){const n=this.getPayPalApmSdkConfiguration(e,t);if(yield this.loadPayPalSdk(n),!this.window.paypalApms)throw new Oi}return this.window.paypalApms})}getPayPalMessages(e,t){return qa(this,void 0,void 0,function*(){if(!this.window.paypalMessages){const n=this.getPayPalSdkMessagesConfiguration(e,t);yield this.loadPayPalSdk(n)}if(!this.window.paypalMessages)throw new Oi;return this.window.paypalMessages})}loadPayPalSdk({options:e,attributes:t}){return qa(this,void 0,void 0,function*(){const n=this.transformConfig(e),i=this.transformConfig(t),r=`https://www.paypal.com/sdk/js?${new URLSearchParams(n).toString()}`;yield this.scriptLoader.loadScript(r,{async:!0,attributes:i})})}getPayPalFastlaneSdkConfiguration(e,t,n){const{clientToken:i,initializationData:r}=e;if(!r||!r.clientId)throw new pi(ui.MissingPaymentMethod);const{intent:o,clientId:a,merchantId:s,attributionId:d}=r;return{options:{"client-id":a,"merchant-id":s,commit:!0,components:["fastlane","buttons","payment-fields","hosted-fields","three-domain-secure"],currency:t,intent:o},attributes:{"data-client-metadata-id":n.replace(/-/g,""),"data-namespace":"paypalFastlaneSdk","data-partner-attribution-id":d,"data-sdk-client-token":i}}}getPayPalGooglePaySdkScriptConfigOrThrow(e,t,n=!0){const{clientToken:i,initializationData:r}=e;if(!r||!r.clientId)throw new pi(ui.MissingPaymentMethod);const{intent:o,clientId:a,merchantId:s,buyerCountry:d,attributionId:c,isHostedCheckoutEnabled:l,isDeveloperModeApplicable:u}=r,h=l||n;return{options:Object.assign({"client-id":a,"merchant-id":s,commit:h,components:["googlepay"],currency:t,intent:o},u&&{"buyer-country":d}),attributes:{"data-partner-attribution-id":c,"data-client-token":i,"data-namespace":"paypalGooglePay"}}}getPayPalApmSdkConfiguration(e,t){const{initializationData:n}=e;if(!n||!n.clientId)throw new pi(ui.MissingPaymentMethod);const{intent:i,clientId:r,merchantId:o,buyerCountry:a,attributionId:s,isDeveloperModeApplicable:d,availableAlternativePaymentMethods:c=[],enabledAlternativePaymentMethods:l=[]}=n,u=l,h=c.filter(e=>!l.includes(e));return{options:Object.assign({"client-id":r,"merchant-id":o,"enable-funding":u.length>0?u:void 0,"disable-funding":h.length>0?h:void 0,commit:!0,components:["buttons","payment-fields"],currency:t,intent:i},d&&{"buyer-country":a}),attributes:{"data-partner-attribution-id":s,"data-namespace":"paypalApms"}}}getPayPalSdkMessagesConfiguration(e,t){const{initializationData:n}=e;if(!n||!n.clientId)throw new pi(ui.MissingPaymentMethod);const{clientId:i,merchantId:r,attributionId:o,isDeveloperModeApplicable:a,buyerCountry:s}=n;return{options:Object.assign({"client-id":i,"merchant-id":r,components:["messages"],currency:t},a&&{"buyer-country":s}),attributes:{"data-namespace":"paypalMessages","data-partner-attribution-id":o}}}transformConfig(e){let t={};return Object.keys(e).forEach(n=>{const i=e[n];null==i||""===i||Array.isArray(i)&&0===i.length||(t=Object.assign(Object.assign({},t),{[n]:Array.isArray(i)?i.join(","):i}))}),t}}function Ga(e){if(!function(e){return!!e.initializationData&&"attributionId"in e.initializationData&&"isVenmoEnabled"in e.initializationData&&"isGooglePayEnabled"in e.initializationData&&"isPayPalCreditAvailable"in e.initializationData}(e))throw new pi(ui.MissingPaymentMethod)}var Ha=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class $a extends sa{constructor(e,t){super("paypalsb",e),this.payPalCommerceSdk=t,this.service=e}initialize(e,t,n){const i=Object.create(null,{initialize:{get:()=>super.initialize},getPaymentMethod:{get:()=>super.getPaymentMethod}});var r,o,a,s,d;return Ha(this,void 0,void 0,function*(){const c=null!==(o=null===(r=this.service.getState().getStoreConfig())||void 0===r?void 0:r.currency.code)&&void 0!==o?o:n;if(!c)throw new pi(ui.MissingPaymentMethod);yield i.initialize.call(this,e,t,c);const l=i.getPaymentMethod.call(this);if(!l.initializationData)throw new pi(ui.MissingPaymentMethod);Ga(l);const u=yield this.payPalCommerceSdk.getPayPalGooglePaySdk(l,c);this.googlepayConfig=yield u.Googlepay().config();const{allowedPaymentMethods:h}=this.googlepayConfig;this.setGatewayIdentifier(null===(d=null===(s=null===(a=h[0])||void 0===a?void 0:a.tokenizationSpecification)||void 0===s?void 0:s.parameters)||void 0===d?void 0:d.gateway)})}getPaymentGatewayParameters(){if(this.googlepayConfig){const{allowedPaymentMethods:e}=this.googlepayConfig,{gatewayMerchantId:t}=e[0].tokenizationSpecification.parameters;return{gateway:this.getGatewayIdentifier(),gatewayMerchantId:t}}return{gateway:this.getGatewayIdentifier()}}mapToExternalCheckoutData(e){const t=Object.create(null,{mapToExternalCheckoutData:{get:()=>super.mapToExternalCheckoutData}});return Ha(this,void 0,void 0,function*(){const n=yield t.mapToExternalCheckoutData.call(this,e);return n.nonce=btoa(n.nonce),n})}}const Wa=Rt(e=>new ua(e,new pa(ya(),new $a(e,new Va(a())),n(),Ee())),[{id:"googlepaypaypalcommerce"}]);var Ya=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Ka extends sa{constructor(e,t){super("googlepay_bigcommerce_payments",e),this.payPalSdkHelper=t,this.service=e}initialize(e,t,n){const i=Object.create(null,{initialize:{get:()=>super.initialize},getPaymentMethod:{get:()=>super.getPaymentMethod}});var r,o,a,s,d;return Ya(this,void 0,void 0,function*(){const c=null!==(o=null===(r=this.service.getState().getStoreConfig())||void 0===r?void 0:r.currency.code)&&void 0!==o?o:n;if(!c)throw new pi(ui.MissingPaymentMethod);yield i.initialize.call(this,e,t,c);const l=i.getPaymentMethod.call(this);if(!l.initializationData)throw new pi(ui.MissingPaymentMethod);Ga(l);const u=yield this.payPalSdkHelper.getPayPalGooglePaySdk(l,c);this.googlepayConfig=yield u.Googlepay().config();const{allowedPaymentMethods:h}=this.googlepayConfig;this.setGatewayIdentifier(null===(d=null===(s=null===(a=h[0])||void 0===a?void 0:a.tokenizationSpecification)||void 0===s?void 0:s.parameters)||void 0===d?void 0:d.gateway)})}getPaymentGatewayParameters(){if(this.googlepayConfig){const{allowedPaymentMethods:e}=this.googlepayConfig,{gatewayMerchantId:t}=e[0].tokenizationSpecification.parameters;return{gateway:this.getGatewayIdentifier(),gatewayMerchantId:t}}return{gateway:this.getGatewayIdentifier()}}mapToExternalCheckoutData(e){const t=Object.create(null,{mapToExternalCheckoutData:{get:()=>super.mapToExternalCheckoutData}});return Ya(this,void 0,void 0,function*(){const n=yield t.mapToExternalCheckoutData.call(this,e);return n.nonce=btoa(n.nonce),n})}}const Ja=Rt(e=>new ua(e,new pa(ya(),new Ka(e,new Gr(a())),n(),Ee())),[{id:"googlepay_bigcommerce_payments"}]);function Za(){const{navigator:e}=window;let t;return t=e.language?e.language:e.userLanguage,{color_depth:window.screen.colorDepth||24,java_enabled:"function"==typeof e.javaEnabled&&e.javaEnabled(),language:t,screen_height:window.screen.height,screen_width:window.screen.width,time_zone_offset:(new Date).getTimezoneOffset().toString()}}var Qa=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Xa extends sa{constructor(e,t){super("worldlinena",e),this.formPoster=t}extraPaymentData(){return Qa(this,void 0,void 0,function*(){return Promise.resolve({browser_info:Za()})})}processAdditionalAction(e){return Qa(this,void 0,void 0,function*(){if(!function(e){return wa(e)&&(t=e.body,D(t)&&"object"==typeof t&&"errors"in t&&"three_ds_result"in t&&O(t.errors)&&Z(t.errors,{code:"three_d_secure_required"}));var t}(e))throw e;const{three_ds_result:t}=e.body,{acs_url:n,payer_auth_request:i,merchant_data:r}=t||{};if(!n||!i||!r)throw new fo(["formUrl","threeDSSessionData","creq"]);return new Promise(e=>{this.formPoster.postForm(n,{threeDSSessionData:i,creq:r},e,"_top")})})}}const es=Rt(e=>new ua(e,new pa(ya(),new Xa(e,Ee()),n(),Ee())),[{id:"googlepaytdonlinemart"}]);var ts,ns,is,rs,os,as,ss;!function(e){e.Possible="POSSIBLE",e.No="NO",e.Unknown="UNKNOWN",e.Yes="YES"}(ts||(ts={})),function(e){e.AUTHORIZE="authorize",e.CAPTURE="capture"}(ns||(ns={})),function(e){e.paypal="paypal",e.checkout="checkout",e.buynow="buynow",e.pay="pay",e.installment="installment"}(is||(is={})),function(e){e.gold="gold",e.blue="blue",e.silver="silver",e.black="black",e.white="white"}(rs||(rs={})),function(e){e.pill="pill",e.rect="rect"}(os||(os={})),(as||(as={})).OXXO="oxxo",function(e){e.Approved="APPROVED",e.Created="CREATED",e.PayerActionRequired="PAYER_ACTION_REQUIRED",e.PollingStop="POLLING_STOP",e.PollingError="POLLING_ERROR"}(ss||(ss={}));var ds=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class cs{constructor(e,t,n,i){this.formPoster=e,this.paymentIntegrationService=t,this.paypalCommerceRequestSender=n,this.paypalCommerceScriptLoader=i}loadPayPalSdk(e,t,n,i){return ds(this,void 0,void 0,function*(){const r=this.paymentIntegrationService.getState(),o=t||r.getCartOrThrow().currency.code,a=r.getPaymentMethodOrThrow(e);return this.paypalSdk=yield this.paypalCommerceScriptLoader.getPayPalSDK(a,o,n,i),this.paypalSdk})}getPayPalSdkOrThrow(){if(!this.paypalSdk)throw new Oi;return this.paypalSdk}createBuyNowCartOrThrow(e){return ds(this,void 0,void 0,function*(){const t=e.getBuyNowCartRequestBody();if(!t)throw new pi(ui.MissingCart);try{return yield this.paymentIntegrationService.createBuyNowCart(t)}catch(e){throw new lr}})}createOrder(e,t){return ds(this,void 0,void 0,function*(){const n=this.paymentIntegrationService.getState().getCartOrThrow().id,{orderId:i}=yield this.paypalCommerceRequestSender.createOrder(e,Object.assign({cartId:n},t));return i})}createOrderCardFields(e,t){return ds(this,void 0,void 0,function*(){const n=this.paymentIntegrationService.getState().getCartOrThrow().id,{orderId:i,setupToken:r}=yield this.paypalCommerceRequestSender.createOrder(e,Object.assign({cartId:n},t));return Object.assign({orderId:i},r?{setupToken:r}:{})})}updateOrder(){return ds(this,void 0,void 0,function*(){const e=this.paymentIntegrationService.getState(),t=e.getCartOrThrow(),n=e.getConsignmentsOrThrow()[0];try{yield this.paypalCommerceRequestSender.updateOrder({availableShippingOptions:n.availableShippingOptions,cartId:t.id,selectedShippingOption:n.selectedShippingOption})}catch(e){throw new hr}})}getOrderStatus(e,t){return ds(this,void 0,void 0,function*(){try{const{status:n}=yield this.paypalCommerceRequestSender.getOrderStatus(e,t);return n}catch(e){throw new hr}})}tokenizePayment(e,t){const n=this.paymentIntegrationService.getState().getCartOrThrow();if(!t)throw new pi(ui.MissingOrderId);return this.formPoster.postForm("/checkout.php",Object.assign({payment_type:"paypal",action:"set_external_checkout",provider:e,order_id:t},n.source===Tt.BuyNow&&{cart_id:n.id}))}submitPayment(e,t,n){return ds(this,void 0,void 0,function*(){const i={formattedPayload:{vault_payment_instrument:null,set_as_default_stored_instrument:null,device_info:null,method_id:e,paypal_account:{order_id:t}}};yield this.paymentIntegrationService.submitPayment(Object.assign({methodId:e,paymentData:i},n?{gatewayId:n}:{}))})}getShippingOptionOrThrow(e){const t=this.paymentIntegrationService.getState().getConsignmentsOrThrow()[0],n=t.availableShippingOptions||[],i=n.find(e=>e.isRecommended),r=(e?n.find(t=>t.id===e):n.find(e=>{var n;return e.id===(null===(n=t.selectedShippingOption)||void 0===n?void 0:n.id)}))||i||n[0];if(!r)throw new Error("Your order can't be shipped to this address");return r}getAddress(e){return{firstName:(null==e?void 0:e.firstName)||"",lastName:(null==e?void 0:e.lastName)||"",email:(null==e?void 0:e.email)||"",phone:(null==e?void 0:e.phone)||"",company:"",address1:(null==e?void 0:e.address1)||"",address2:(null==e?void 0:e.address2)||"",city:(null==e?void 0:e.city)||"",countryCode:(null==e?void 0:e.countryCode)||"",postalCode:(null==e?void 0:e.postalCode)||"",stateOrProvince:"",stateOrProvinceCode:(null==e?void 0:e.stateOrProvinceCode)||"",customFields:[]}}getBillingAddressFromOrderDetails({payer:e}){var t,n;return this.getAddress({firstName:e.name.given_name,lastName:e.name.surname,email:e.email_address,address1:e.address.address_line_1,address2:e.address.address_line_2,city:e.address.admin_area_2,countryCode:e.address.country_code,postalCode:e.address.postal_code,stateOrProvinceCode:e.address.admin_area_1,phone:null===(n=null===(t=e.phone)||void 0===t?void 0:t.phone_number)||void 0===n?void 0:n.national_number})}getShippingAddressFromOrderDetails(e){const{payer:t,purchase_units:n}=e,{address:i,name:{full_name:r}}=n[0].shipping,[o,...a]=r.split(" ");return this.getAddress({firstName:o,lastName:a.join(" "),email:t.email_address,address1:i.address_line_1,address2:i.address_line_2,city:i.admin_area_2,countryCode:i.country_code,postalCode:i.postal_code,stateOrProvinceCode:i.admin_area_1})}getValidButtonStyle(e){const{color:t,height:n,label:i,shape:r}=e||{},o={color:t&&rs[t]?t:void 0,height:this.getValidHeight(n),label:i&&is[i]?i:void 0,shape:r&&os[r]?r:void 0};return H(o,T)}getValidHeight(e){return e&&"number"==typeof e?e>55?55:e<25?25:e:40}removeElement(e){const t=e&&document.getElementById(e);t&&(t.style.display="none")}}var ls=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class us{constructor(e){this.requestSender=e}createOrder(e,t){return ls(this,void 0,void 0,function*(){const n=`/api/storefront/payment/${e}`,i=t,r=Object.assign({"X-API-INTERNAL":Cr,"Content-Type":br.Json},Pr);return(yield this.requestSender.post(n,{headers:r,body:i})).body})}updateOrder(e){return ls(this,void 0,void 0,function*(){const t=e,n=Object.assign({"X-API-INTERNAL":Cr,"Content-Type":br.Json},Pr);return(yield this.requestSender.put("/api/storefront/initialization/paypalcommerce",{headers:n,body:t})).body})}getOrderStatus(e="paypalcommerce",t){return ls(this,void 0,void 0,function*(){const n=`/api/storefront/initialization/${e}`,i=Object.assign({"X-API-INTERNAL":Cr,"Content-Type":br.Json},Pr);return(yield this.requestSender.get(n,Object.assign({headers:i},t))).body})}}var hs=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class ps{constructor(e){this.scriptLoader=e,this.window=window}getPayPalSDK(e,t,n,i){return hs(this,void 0,void 0,function*(){const r=this.getPayPalSdkScriptConfigOrThrow(e,t,n);return this.loadPayPalSDK(r,i)})}loadPayPalSDK(e,t=!1){return hs(this,void 0,void 0,function*(){if(!this.window.paypal||t){const t=this.transformConfig(e.options),n=this.transformConfig(e.attributes),i=`https://www.paypal.com/sdk/js?${new URLSearchParams(t).toString()}`;yield this.scriptLoader.loadScript(i,{async:!0,attributes:n})}if(!this.window.paypal)throw new Oi;return this.window.paypal})}getPayPalSdkScriptConfigOrThrow(e,t,n=!0){const{id:i,clientToken:r,initializationData:o}=e;if(!(null==o?void 0:o.clientId))throw new pi(ui.MissingPaymentMethod);const{intent:a,clientId:s,merchantId:d,buyerCountry:c,attributionId:l,isVenmoEnabled:u,isHostedCheckoutEnabled:h,isPayPalCreditAvailable:p,isDeveloperModeApplicable:m,availableAlternativePaymentMethods:y=[],enabledAlternativePaymentMethods:g=[],isGooglePayEnabled:v}=o,f=h||n,S="paypalcommercecreditcards"===i,w=S?["card"]:[],_=p?["credit","paylater"]:[],C=n||!f,I=u?["venmo"]:[],b=C?g:[],P=v?["googlepay"]:[],O=n?["card-fields"]:[],E=[...S?[]:["card"],...p?[]:["credit","paylater"],...u?[]:["venmo"],...C?y.filter(e=>!g.includes(e)):y],A=[...w,..._,...I,...b];return{options:Object.assign({"client-id":s,"merchant-id":d,"enable-funding":A.length>0?A:void 0,"disable-funding":E.length>0?E:void 0,commit:f,components:["buttons","hosted-fields","payment-fields","legal",...P,...O],currency:t,intent:a},m&&{"buyer-country":c}),attributes:{"data-partner-attribution-id":l,"data-client-token":r}}}transformConfig(e){let t={};return Object.keys(e).forEach(n=>{const i=e[n];null==i||""===i||Array.isArray(i)&&0===i.length||(t=Object.assign(Object.assign({},t),{[n]:Array.isArray(i)?i.join(","):i}))}),t}}const ms=e=>{const{getHost:t}=e.getState();return new cs(Ee(),e,new us(n({host:t()})),new ps(a()))};var ys=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class gs{constructor(e,t){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t,this.onError=V}initialize(e){return ys(this,void 0,void 0,function*(){const{paypalcommerce:t,methodId:n}=e;if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.paypalcommerce" argument is not provided.');if(!t.container)throw new ki('Unable to initialize payment because "options.paypalcommerce.container" argument is not provided.');if(t.onClick&&"function"!=typeof t.onClick)throw new ki('Unable to initialize payment because "options.paypalcommerce.onClick" argument is not a function.');this.onError=t.onError||V,this.paymentIntegrationService.getState().getPaymentMethod(n)||(yield this.paymentIntegrationService.loadPaymentMethod(n));const i=yield this.paypalCommerceIntegrationService.loadPayPalSdk(n);i&&i.Buttons&&"function"==typeof i.Buttons?this.renderButton(n,t):console.error("[BC PayPal]: PayPal Button could not be rendered, due to issues with loading PayPal SDK")})}deinitialize(){return Promise.resolve()}signIn(e,t){return ys(this,void 0,void 0,function*(){return yield this.paymentIntegrationService.signInCustomer(e,t),Promise.resolve()})}signOut(e){return ys(this,void 0,void 0,function*(){return yield this.paymentIntegrationService.signOutCustomer(e),Promise.resolve()})}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}renderButton(e,t){var n,i;const{container:r,onClick:o,onComplete:a}=t,s=this.paypalCommerceIntegrationService.getPayPalSdkOrThrow(),d=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{isHostedCheckoutEnabled:c,paymentButtonStyles:l,isAppSwitchEnabled:u}=d.initializationData||{},{checkoutTopButtonStyles:h}=l||{},p=Object.assign(Object.assign(Object.assign({},this.isPaypalCommerceAppSwitchEnabled(e)&&{appSwitchWhenAvailable:!0}),{createOrder:()=>this.paypalCommerceIntegrationService.createOrder("paypalcommerce"),onApprove:({orderID:t})=>this.paypalCommerceIntegrationService.tokenizePayment(e,t)}),o&&{onClick:()=>o()}),m=Object.assign(Object.assign({},!u&&{onShippingAddressChange:e=>this.onShippingAddressChange(e),onShippingOptionsChange:e=>this.onShippingOptionsChange(e)}),{onApprove:(t,n)=>this.onHostedCheckoutApprove(t,n,e,a)}),y=Object.assign(Object.assign({fundingSource:s.FUNDING.PAYPAL,style:this.paypalCommerceIntegrationService.getValidButtonStyle(Object.assign(Object.assign({},h),{height:Dr}))},p),c&&m),g=s.Buttons(y);g.isEligible()?(null===(n=g.hasReturned)||void 0===n?void 0:n.call(g))&&this.isPaypalCommerceAppSwitchEnabled(e)?null===(i=g.resume)||void 0===i||i.call(g):g.render(`#${r}`):this.paypalCommerceIntegrationService.removeElement(r)}onHostedCheckoutApprove(e,t,n,i){return ys(this,void 0,void 0,function*(){if(!e.orderID)throw new pi(ui.MissingOrderId);const r=this.paymentIntegrationService.getState().getCartOrThrow(),o=yield t.order.get();try{const t=this.paypalCommerceIntegrationService.getBillingAddressFromOrderDetails(o);if(yield this.paymentIntegrationService.updateBillingAddress(t),r.lineItems.physicalItems.length>0){const e=this.paypalCommerceIntegrationService.getShippingAddressFromOrderDetails(o);yield this.paymentIntegrationService.updateShippingAddress(e),yield this.paypalCommerceIntegrationService.updateOrder()}yield this.paymentIntegrationService.submitOrder({},{params:{methodId:n}}),yield this.paypalCommerceIntegrationService.submitPayment(n,e.orderID),i&&"function"==typeof i&&i()}catch(e){this.handleError(e)}})}onShippingAddressChange(e){return ys(this,void 0,void 0,function*(){const t=this.paypalCommerceIntegrationService.getAddress({city:e.shippingAddress.city,countryCode:e.shippingAddress.countryCode,postalCode:e.shippingAddress.postalCode,stateOrProvinceCode:e.shippingAddress.state});try{yield this.paymentIntegrationService.updateBillingAddress(t),yield this.paymentIntegrationService.updateShippingAddress(t);const e=this.paypalCommerceIntegrationService.getShippingOptionOrThrow();yield this.paymentIntegrationService.selectShippingOption(e.id),yield this.paypalCommerceIntegrationService.updateOrder()}catch(e){this.handleError(e)}})}onShippingOptionsChange(e){return ys(this,void 0,void 0,function*(){const t=this.paypalCommerceIntegrationService.getShippingOptionOrThrow(e.selectedShippingOption.id);try{yield this.paymentIntegrationService.selectShippingOption(t.id),yield this.paypalCommerceIntegrationService.updateOrder()}catch(e){this.handleError(e)}})}handleError(e){if("function"!=typeof this.onError)throw e;this.onError(e)}isPaypalCommerceAppSwitchEnabled(e){var t;return(null===(t=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e).initializationData)||void 0===t?void 0:t.isAppSwitchEnabled)||!1}}const vs=Rt(e=>new gs(e,ms(e)),[{id:"paypalcommerce"}]);var fs=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Ss{constructor(e,t){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t,this.onError=V}initialize(e){return fs(this,void 0,void 0,function*(){const{paypalcommercecredit:t,methodId:n}=e;if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.paypalcommercecredit" argument is not provided.');if(!t.container)throw new ki('Unable to initialize payment because "options.paypalcommercecredit.container" argument is not provided.');if(t.onClick&&"function"!=typeof t.onClick)throw new ki('Unable to initialize payment because "options.paypalcommercecredit.onClick" argument is not a function.');this.onError=t.onError||V,this.paymentIntegrationService.getState().getPaymentMethod(n)||(yield this.paymentIntegrationService.loadPaymentMethod(n));const i=yield this.paypalCommerceIntegrationService.loadPayPalSdk(n);i&&i.Buttons&&"function"==typeof i.Buttons?this.renderButton(n,t):console.error("[BC PayPal]: PayPal Button could not be rendered, due to issues with loading PayPal SDK")})}deinitialize(){return Promise.resolve()}signIn(e,t){return fs(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signInCustomer(e,t)})}signOut(e){return fs(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signOutCustomer(e)})}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}renderButton(e,t){const{container:n,onComplete:i,onClick:r}=t,o=this.paypalCommerceIntegrationService.getPayPalSdkOrThrow(),a=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{isHostedCheckoutEnabled:s,paymentButtonStyles:d,isAppSwitchEnabled:c}=a.initializationData||{},{checkoutTopButtonStyles:l}=d||{},u=Object.assign({createOrder:()=>this.paypalCommerceIntegrationService.createOrder("paypalcommercecredit"),onApprove:({orderID:t})=>this.paypalCommerceIntegrationService.tokenizePayment(e,t)},r&&{onClick:()=>r()}),h=Object.assign(Object.assign({},!c&&{onShippingAddressChange:e=>this.onShippingAddressChange(e),onShippingOptionsChange:e=>this.onShippingOptionsChange(e)}),{onApprove:(t,n)=>this.onHostedCheckoutApprove(t,n,e,i)}),p=[o.FUNDING.PAYLATER,o.FUNDING.CREDIT];let m=!1;p.forEach(e=>{if(!m){const t=Object.assign(Object.assign({fundingSource:e,style:this.paypalCommerceIntegrationService.getValidButtonStyle(Object.assign(Object.assign({},l),{height:Dr}))},u),s&&h),i=o.Buttons(t);i.isEligible()&&(i.render(`#${n}`),m=!0)}}),m||this.paypalCommerceIntegrationService.removeElement(n)}onHostedCheckoutApprove(e,t,n,i){return fs(this,void 0,void 0,function*(){if(!e.orderID)throw new pi(ui.MissingOrderId);const r=this.paymentIntegrationService.getState().getCartOrThrow(),o=yield t.order.get();try{const t=this.paypalCommerceIntegrationService.getBillingAddressFromOrderDetails(o);if(yield this.paymentIntegrationService.updateBillingAddress(t),r.lineItems.physicalItems.length>0){const e=this.paypalCommerceIntegrationService.getShippingAddressFromOrderDetails(o);yield this.paymentIntegrationService.updateShippingAddress(e),yield this.paypalCommerceIntegrationService.updateOrder()}yield this.paymentIntegrationService.submitOrder({},{params:{methodId:n}}),yield this.paypalCommerceIntegrationService.submitPayment(n,e.orderID),i&&"function"==typeof i&&i()}catch(e){this.handleError(e)}})}onShippingAddressChange(e){return fs(this,void 0,void 0,function*(){const t=this.paypalCommerceIntegrationService.getAddress({city:e.shippingAddress.city,countryCode:e.shippingAddress.countryCode,postalCode:e.shippingAddress.postalCode,stateOrProvinceCode:e.shippingAddress.state});try{yield this.paymentIntegrationService.updateBillingAddress(t),yield this.paymentIntegrationService.updateShippingAddress(t);const e=this.paypalCommerceIntegrationService.getShippingOptionOrThrow();yield this.paymentIntegrationService.selectShippingOption(e.id),yield this.paypalCommerceIntegrationService.updateOrder()}catch(e){this.handleError(e)}})}onShippingOptionsChange(e){return fs(this,void 0,void 0,function*(){const t=this.paypalCommerceIntegrationService.getShippingOptionOrThrow(e.selectedShippingOption.id);try{yield this.paymentIntegrationService.selectShippingOption(t.id),yield this.paypalCommerceIntegrationService.updateOrder()}catch(e){this.handleError(e)}})}handleError(e){if("function"!=typeof this.onError)throw e;this.onError(e)}}const ws=Rt(e=>new Ss(e,ms(e)),[{id:"paypalcommercecredit"}]);var _s=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Cs{constructor(e,t){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t}initialize(e){return _s(this,void 0,void 0,function*(){const{paypalcommercevenmo:t,methodId:n}=e;if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.paypalcommercevenmo" argument is not provided.');if(!t.container)throw new ki('Unable to initialize payment because "options.paypalcommercevenmo.container" argument is not provided.');if(t.onClick&&"function"!=typeof t.onClick)throw new ki('Unable to initialize payment because "options.paypalcommercevenmo.onClick" argument is not a function.');this.paymentIntegrationService.getState().getPaymentMethod(n)||(yield this.paymentIntegrationService.loadPaymentMethod(n));const i=yield this.paypalCommerceIntegrationService.loadPayPalSdk(n);i&&i.Buttons&&"function"==typeof i.Buttons?this.renderButton(n,t):console.error("[BC PayPal]: PayPal Button could not be rendered, due to issues with loading PayPal SDK")})}deinitialize(){return Promise.resolve()}signIn(e,t){return _s(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signInCustomer(e,t)})}signOut(e){return _s(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signOutCustomer(e)})}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}renderButton(e,t){const{container:n,onClick:i}=t,r=this.paypalCommerceIntegrationService.getPayPalSdkOrThrow(),o=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{paymentButtonStyles:a}=o.initializationData||{},{checkoutTopButtonStyles:s}=a||{},d=Object.assign({fundingSource:r.FUNDING.VENMO,style:this.paypalCommerceIntegrationService.getValidButtonStyle(Object.assign(Object.assign({},s),{height:Dr})),createOrder:()=>this.paypalCommerceIntegrationService.createOrder("paypalcommercevenmo"),onApprove:({orderID:t})=>this.paypalCommerceIntegrationService.tokenizePayment(e,t)},i&&{onClick:()=>i()}),c=r.Buttons(d);c.isEligible()?c.render(`#${n}`):this.paypalCommerceIntegrationService.removeElement(n)}}const Is=Rt(e=>new Cs(e,ms(e)),[{id:"paypalcommercevenmo"}]);function bs(){return new Va(o())}var Ps,Os,Es,As,ks,Ts,Ds;!function(e){e.AUTHORIZE="authorize",e.CAPTURE="capture"}(Ps||(Ps={})),function(e){e.Succeeded="succeeded",e.Cancelled="cancelled",e.Errored="errored"}(Os||(Os={})),function(e){e.Possible="POSSIBLE",e.No="NO",e.Unknown="UNKNOWN",e.Yes="YES"}(Es||(Es={})),function(e){e.paypal="paypal",e.checkout="checkout",e.buynow="buynow",e.pay="pay",e.installment="installment"}(As||(As={})),function(e){e.gold="gold",e.blue="blue",e.silver="silver",e.black="black",e.white="white"}(ks||(ks={})),function(e){e.pill="pill",e.rect="rect"}(Ts||(Ts={})),function(e){e.SUCCEEDED="succeeded",e.FAILED="failed",e.CANCELED="canceled",e.UNRECOGNIZED="unrecognized"}(Ds||(Ds={}));var Ms=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class zs{constructor(){this.window=window}initializePayPalFastlane(e,t,n){return Ms(this,void 0,void 0,function*(){if(t&&(window.localStorage.setItem("fastlaneEnv","sandbox"),window.localStorage.setItem("axoEnv","sandbox")),!this.window.paypalFastlane){const t={root:{backgroundColorPrimary:"transparent"}};this.window.paypalFastlane=yield e.Fastlane({styles:n||t})}return this.window.paypalFastlane})}getPayPalFastlaneOrThrow(){if(!this.window.paypalFastlane)throw new Oi;return this.window.paypalFastlane}lookupCustomerOrThrow(e){return Ms(this,void 0,void 0,function*(){return this.getPayPalFastlaneOrThrow().identity.lookupCustomerByEmail(e)})}triggerAuthenticationFlowOrThrow(e){return Ms(this,void 0,void 0,function*(){return e?this.getPayPalFastlaneOrThrow().identity.triggerAuthenticationFlow(e):{}})}updateStorageSessionId(e){const t=new Date;t.setDate(t.getDate()+14);const n={expires:t,secure:!0};$r.set("bc-fastlane-sessionId",e,n)}removeStorageSessionId(){$r.remove("bc-fastlane-sessionId")}getStorageSessionId(){return $r.get("bc-fastlane-sessionId")||""}mapPayPalFastlaneProfileToBcCustomerData(e,t){var n,i,r;const{authenticationState:o,profileData:a}=t,s=null===(r=null===(i=null===(n=null==a?void 0:a.card)||void 0===n?void 0:n.paymentSource)||void 0===i?void 0:i.card)||void 0===r?void 0:r.billingAddress,d=null==a?void 0:a.shippingAddress,c=null==a?void 0:a.name,l=null==a?void 0:a.card,u=d?this.mapPayPalToBcAddress(d.address,d.name,d.phoneNumber):void 0,h=s&&c?this.mapPayPalToBcAddress(s,c,null==d?void 0:d.phoneNumber):void 0,p=l?this.mapPayPalToBcInstrument(e,l):[],m=this.filterAddresses([u,h]);return{authenticationState:o||Ds.UNRECOGNIZED,addresses:m,billingAddress:h,shippingAddress:u,instruments:p}}mapPayPalToBcInstrument(e,t){const{id:n,paymentSource:i}=t,{brand:r,expiry:o,lastDigits:a}=i.card,[s,d]=o.split("-");return[{bigpayToken:n,brand:r,defaultInstrument:!1,expiryMonth:d,expiryYear:s,iin:"",last4:a,method:e,provider:e,trustedShippingAddress:!1,untrustedShippingCardVerificationMode:xr.PAN,type:"card"}]}mapBcToPayPalAddress(e){return{company:(null==e?void 0:e.company)||"",addressLine1:(null==e?void 0:e.address1)||"",addressLine2:(null==e?void 0:e.address2)||"",adminArea1:(null==e?void 0:e.stateOrProvinceCode)||(null==e?void 0:e.stateOrProvince)||"",adminArea2:(null==e?void 0:e.city)||"",postalCode:(null==e?void 0:e.postalCode)||"",countryCode:(null==e?void 0:e.countryCode)||""}}mapPayPalToBcAddress(e,t,n,i){const[r,o]=t.fullName.split(" "),a=(null==n?void 0:n.nationalNumber)||"",s=(null==n?void 0:n.countryCode)||"";return{id:Date.now(),type:"paypal-address",firstName:t.firstName||r||"",lastName:t.lastName||o||"",company:e.company||"",address1:e.addressLine1,address2:e.addressLine2||"",city:e.adminArea2,stateOrProvince:e.adminArea1,stateOrProvinceCode:e.adminArea1,country:e.countryCode||"",countryCode:e.countryCode||"",postalCode:e.postalCode,phone:s+a,customFields:i||[]}}filterAddresses(e){return e.reduce((e,t)=>t?e.some(e=>this.isEqualAddresses(e,t))?e:[...e,t]:e,[])}isEqualAddresses(e,t){return A(this.normalizeAddress(e),this.normalizeAddress(t))}normalizeAddress(e){return G(e,["id","phone"])}}function Ns(){return new zs}function xs(e){return"string"!=typeof e}function Fs(e,t){if(t||e)return function(e){var t,n;const i={},r=H(e.root,xs),o=H(e.input,xs),a=H(e.toggle,xs),s=H(null===(t=e.text)||void 0===t?void 0:t.body,xs),d=H(null===(n=e.text)||void 0===n?void 0:n.caption,xs),c=e.branding;return Object.keys(r).length&&(i.root=r),Object.keys(o).length&&(i.input=o),Object.keys(a).length&&(i.toggle=a),Object.keys(s).length&&(i.text={},i.text.body=s),Object.keys(d).length&&(i.text=Object.assign({},i.text),i.text.caption=d),c&&(i.branding=c),i}(function(e,t){var n,i,r,o,a,s,d,c,l,u,h,p,m,y,g,v,f,S,w,_,C,I;return{root:{backgroundColorPrimary:(null==e?void 0:e.fastlaneRootSettingsBackgroundColor)||(null===(n=null==t?void 0:t.root)||void 0===n?void 0:n.backgroundColorPrimary),errorColor:(null==e?void 0:e.fastlaneRootSettingsErrorColor)||(null===(i=null==t?void 0:t.root)||void 0===i?void 0:i.errorColor),fontFamily:(null==e?void 0:e.fastlaneRootSettingsFontFamily)||(null===(r=null==t?void 0:t.root)||void 0===r?void 0:r.fontFamily),fontSizeBase:(null==e?void 0:e.fastlaneRootSettingsFontSize)||(null===(o=null==t?void 0:t.root)||void 0===o?void 0:o.fontSizeBase),padding:(null==e?void 0:e.fastlaneRootSettingsPadding)||(null===(a=null==t?void 0:t.root)||void 0===a?void 0:a.padding),primaryColor:(null==e?void 0:e.fastlaneRootSettingsPrimaryColor)||(null===(s=null==t?void 0:t.root)||void 0===s?void 0:s.primaryColor)},input:{borderRadius:(null==e?void 0:e.fastlaneInputSettingsBorderRadius)||(null===(d=null==t?void 0:t.input)||void 0===d?void 0:d.borderRadius),borderColor:(null==e?void 0:e.fastlaneInputSettingsBorderColor)||(null===(c=null==t?void 0:t.input)||void 0===c?void 0:c.borderColor),focusBorderColor:(null==e?void 0:e.fastlaneInputSettingsFocusBorderBase)||(null===(l=null==t?void 0:t.input)||void 0===l?void 0:l.focusBorderColor),backgroundColor:(null==e?void 0:e.fastlaneInputSettingsBackgroundColor)||(null===(u=null==t?void 0:t.input)||void 0===u?void 0:u.backgroundColor),borderWidth:(null==e?void 0:e.fastlaneInputSettingsBorderWidth)||(null===(h=null==t?void 0:t.input)||void 0===h?void 0:h.borderWidth),textColorBase:(null==e?void 0:e.fastlaneInputSettingsTextColorBase)||(null===(p=null==t?void 0:t.input)||void 0===p?void 0:p.textColorBase)},toggle:{colorPrimary:(null==e?void 0:e.fastlaneToggleSettingsColorPrimary)||(null===(m=null==t?void 0:t.toggle)||void 0===m?void 0:m.colorPrimary),colorSecondary:(null==e?void 0:e.fastlaneToggleSettingsColorSecondary)||(null===(y=null==t?void 0:t.toggle)||void 0===y?void 0:y.colorSecondary)},text:{body:{color:(null==e?void 0:e.fastlaneTextBodySettingsColor)||(null===(v=null===(g=null==t?void 0:t.text)||void 0===g?void 0:g.body)||void 0===v?void 0:v.color),fontSize:(null==e?void 0:e.fastlaneTextBodySettingsFontSize)||(null===(S=null===(f=null==t?void 0:t.text)||void 0===f?void 0:f.body)||void 0===S?void 0:S.fontSize)},caption:{color:(null==e?void 0:e.fastlaneTextCaptionSettingsColor)||(null===(_=null===(w=null==t?void 0:t.text)||void 0===w?void 0:w.caption)||void 0===_?void 0:_.color),fontSize:(null==e?void 0:e.fastlaneTextCaptionSettingsFontSize)||(null===(I=null===(C=null==t?void 0:t.text)||void 0===C?void 0:C.caption)||void 0===I?void 0:I.fontSize)}},branding:(null==e?void 0:e.fastlaneBrandingSettings)||(null==t?void 0:t.branding)}}(e,t))}var Rs=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Ls{constructor(e,t,n){this.paymentIntegrationService=e,this.paypalCommerceSdk=t,this.paypalCommerceFastlaneUtils=n}initialize(e){var t;return Rs(this,void 0,void 0,function*(){const{methodId:n,paypalcommercefastlane:i}=e;if(!n)throw new ki('Unable to proceed because "methodId" argument is not provided.');try{yield this.paymentIntegrationService.loadPaymentMethod(n);const e=this.paymentIntegrationService.getState(),r=e.getCartOrThrow(),o=e.getPaymentMethodOrThrow(n),a=!!(null===(t=o.initializationData)||void 0===t?void 0:t.isDeveloperModeApplicable),s=yield this.paypalCommerceSdk.getPayPalFastlaneSdk(o,r.currency.code,r.id);yield this.paypalCommerceFastlaneUtils.initializePayPalFastlane(s,a,this.getFastlaneStyles(n,i))}catch(e){}return Promise.resolve()})}deinitialize(){return Rs(this,void 0,void 0,function*(){return Promise.resolve()})}signIn(e,t){return Rs(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signInCustomer(e,t)})}signOut(e){return Rs(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signOutCustomer(e)})}executePaymentMethodCheckout(e){return Rs(this,void 0,void 0,function*(){const{checkoutPaymentMethodExecuted:t,continueWithCheckoutCallback:n,methodId:i}=e||{};if(!i)throw new ki('Unable to proceed because "methodId" argument is not provided.');if("function"!=typeof n)throw new ki('Unable to proceed because "continueWithCheckoutCallback" argument is not provided and it must be a function.');if(this.paymentIntegrationService.getState().getCustomerOrThrow().isGuest){t&&"function"==typeof t&&t();try{yield this.runPayPalAuthenticationFlowOrThrow(i)}catch(e){}}n()})}runPayPalAuthenticationFlowOrThrow(e){return Rs(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState(),n=t.getCartOrThrow().id,i=t.getCustomer(),r=t.getBillingAddress(),o=(null==i?void 0:i.email)||(null==r?void 0:r.email)||"",{customerContextId:a}=yield this.paypalCommerceFastlaneUtils.lookupCustomerOrThrow(o),s=yield this.paypalCommerceFastlaneUtils.triggerAuthenticationFlowOrThrow(a),d=s.authenticationState===Ds.CANCELED;yield this.updateCustomerDataState(e,s),d?this.paypalCommerceFastlaneUtils.removeStorageSessionId():this.paypalCommerceFastlaneUtils.updateStorageSessionId(n)})}updateCustomerDataState(e,t){var n;return Rs(this,void 0,void 0,function*(){const i=this.paymentIntegrationService.getState().getCartOrThrow(),{authenticationState:r,addresses:o,billingAddress:a,shippingAddress:s,instruments:d}=this.paypalCommerceFastlaneUtils.mapPayPalFastlaneProfileToBcCustomerData(e,t);if(yield this.paymentIntegrationService.updatePaymentProviderCustomer({authenticationState:r,addresses:o,instruments:d}),a&&(yield this.paymentIntegrationService.updateBillingAddress(a)),s&&i.lineItems.physicalItems.length>0){const t=yield this.paymentIntegrationService.updateShippingAddress(s),i=t.getPaymentMethodOrThrow(e),{isFastlaneShippingOptionAutoSelectEnabled:r}=i.initializationData||{},o=t.getConsignments()||[],a=(null===(n=o[0])||void 0===n?void 0:n.availableShippingOptions)||[],d=a[0],c=a.find(e=>e.isRecommended);if((c||d)&&r){const e=(null==c?void 0:c.id)||d.id;yield this.paymentIntegrationService.selectShippingOption(e)}}})}getFastlaneStyles(e,t){const n=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{fastlaneStyles:i,isFastlaneStylingEnabled:r}=n.initializationData||{};return Fs(r?i:{},null==t?void 0:t.styles)}}const Bs=Rt(e=>new Ls(e,bs(),Ns()),[{id:"paypalcommerceacceleratedcheckout"},{id:"paypalcommercecreditcards"}]);var js=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Us{constructor(e,t=window){this.scriptLoader=e,this.stripeWindow=t}getStripeClient(e,t,n){return js(this,void 0,void 0,function*(){if(this.stripeWindow.bcStripeClient)return this.stripeWindow.bcStripeClient;const i=yield this.load(),{stripePublishableKey:r,stripeConnectedAccount:o}=e,a=i(r,Object.assign(Object.assign(Object.assign({},o?{stripeAccount:o}:{}),t?{betas:t}:{}),n?{apiVersion:n}:{}));return Object.assign(this.stripeWindow,{bcStripeClient:a}),a})}getElements(e,t){return js(this,void 0,void 0,function*(){let n=this.stripeWindow.bcStripeElements;return n?yield this.updateStripeElements(t):(n=e.elements(t),Object.assign(this.stripeWindow,{bcStripeElements:n})),n})}updateStripeElements(e){return js(this,void 0,void 0,function*(){const t=this.stripeWindow.bcStripeElements;t&&(t.update(e),yield t.fetchUpdates())})}load(){return js(this,void 0,void 0,function*(){if(!this.stripeWindow.Stripe&&(yield this.scriptLoader.loadScript("https://js.stripe.com/v3/"),!this.stripeWindow.Stripe))throw new Oi;return this.stripeWindow.Stripe})}}function qs(e){return"object"==typeof e&&null!==e&&"initializationData"in e&&void 0!==e.initializationData&&null!==e.initializationData&&"object"==typeof e.initializationData&&"stripePublishableKey"in e.initializationData&&"stripeConnectedAccount"in e.initializationData&&"shopperLanguage"in e.initializationData&&void 0!==e.initializationData.stripePublishableKey&&void 0!==e.initializationData.stripeConnectedAccount&&void 0!==e.initializationData.shopperLanguage}const Vs=["payment_element_beta_2","alipay_pm_beta_1","link_default_integration_beta_1","shipping_address_element_beta_1","address_element_beta_1"],Gs="2020-03-02;alipay_beta=v1;link_beta=v1";var Hs,$s,Ws,Ys,Ks,Js,Zs,Qs;function Xs(e){return"stripeLinkAuthenticationState"in e}!function(e){e.SHIPPING="shipping",e.BILLING="billing"}(Hs||(Hs={})),function(e){e.SPLIT="split",e.FULL="full",e.ORGANIZATION="organization"}($s||($s={})),function(e){e.CreditCard="card",e.Link="link",e.EPS="eps",e.GRABPAY="grabpay",e.BANCONTACT="bancontact",e.IDEAL="ideal",e.ALIPAY="alipay",e.KLARNA="klarna",e.OCS="optimized_checkout"}(Ws||(Ws={})),function(e){e.NEVER="never",e.AUTO="auto",e.ALWAYS="always",e.PAYMENT="payment",e.IF_REQUIRED="if_required"}(Ys||(Ys={})),function(e){e.PAYMENT="payment",e.AUTHENTICATION="linkAuthentication",e.SHIPPING="address",e.EXPRESS_CHECKOUT="expressCheckout"}(Ks||(Ks={})),function(e){e.REQUIRES_PAYMENT_METHOD="requires_payment_method",e.REQUIRES_CONFIRMATION="requires_confirmation",e.REQUIRES_ACTION="requires_action",e.PROCESSING="processing",e.SUCCEEDED="succeeded",e.CANCELED="canceled"}(Js||(Js={})),function(e){e.CLICK="click",e.CHANGE="change",e.READY="ready",e.SHIPPING_ADDRESS_CHANGE="shippingaddresschange",e.SHIPPING_RATE_CHANGE="shippingratechange",e.CONFIRM="confirm",e.CANCEL="cancel",e.LOADER_START="loaderstart"}(Zs||(Zs={})),function(e){e.ON_SESSION="on_session",e.OFF_SESSION="off_session"}(Qs||(Qs={}));class ed{constructor(e,t){this.paymentIntegrationService=e,this.scriptLoader=t}initialize(e){var t,n,i,r,o;return n=this,i=void 0,o=function*(){let n;if(!e.stripeupe)throw new ki('Unable to proceed because "options" argument is not provided.');const{container:i,gatewayId:r,methodId:o,onEmailChange:a,getStyles:s,isLoading:d}=e.stripeupe;Object.entries(e.stripeupe).forEach(([e,t])=>{if(!t)throw new ki(`Unable to proceed because "${e}" argument is not provided.`)}),yield this.paymentIntegrationService.loadPaymentMethod(r,{params:{method:o}});const c=this.paymentIntegrationService.getState(),l=c.getPaymentMethodOrThrow(o,r),{clientToken:u}=l;if(!qs(l)||!u)throw new pi(ui.MissingPaymentToken);const{email:h}=c.getCustomerOrThrow(),p=c.getPaymentProviderCustomerOrThrow(),m=(Xs(p)?p:{}).stripeLinkAuthenticationState;if(!h){let e;const r="function"==typeof s&&s();e=r?{variables:{colorPrimary:r.fieldInnerShadow,colorBackground:r.fieldBackground,colorText:r.labelText,colorDanger:r.fieldErrorText,colorTextSecondary:r.labelText,colorTextPlaceholder:r.fieldPlaceholderText},rules:{".Input":{borderColor:r.fieldBorder,color:r.fieldText,boxShadow:r.fieldInnerShadow}}}:{},n=yield this.scriptLoader.getStripeClient(l.initializationData,Vs,Gs),this._stripeElements=yield this.scriptLoader.getElements(n,{clientSecret:u,appearance:e});const{getBillingAddress:o,getConsignments:c}=this.paymentIntegrationService.getState(),h=c(),p=null===(t=null==h?void 0:h[0])||void 0===t?void 0:t.id,{email:y}=o()||{},g=y?{defaultValues:{mode:Hs.SHIPPING,email:y}}:{},v=this._stripeElements.getElement(Ks.AUTHENTICATION)||this._stripeElements.create(Ks.AUTHENTICATION,g);v.on(Zs.CHANGE,e=>{if(!("authenticated"in e))throw new pi(ui.MissingCustomer);this.paymentIntegrationService.updatePaymentProviderCustomer({stripeLinkAuthenticationState:e.authenticated}),e.complete?a(e.authenticated,e.value.email):a(!1,""),d&&d(!1),void 0===m&&e.authenticated&&p&&this.paymentIntegrationService.deleteConsignment(p)}),v.mount(`#${i}`)}},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())})}deinitialize(){var e,t;return null===(t=null===(e=this._stripeElements)||void 0===e?void 0:e.getElement(Ks.AUTHENTICATION))||void 0===t||t.unmount(),Promise.resolve()}signIn(e,t){return this.paymentIntegrationService.signInCustomer(e,t),Promise.resolve()}signOut(e){return this.paymentIntegrationService.signOutCustomer(e),Promise.resolve()}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}}const td=Rt(e=>new ed(e,new Us(a())),[{id:"stripeupe"}]);var nd=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class id{constructor(e,t){this.paymentIntegrationService=e,this.scriptLoader=t,this.isMounted=!1}deinitialize(){var e;null===(e=this.checkoutEventsUnsubscribe)||void 0===e||e.call(this),this.isMounted=!1}initCheckoutEventsSubscription(e,t,n,i){this.checkoutEventsUnsubscribe=this.paymentIntegrationService.subscribe(()=>nd(this,void 0,void 0,function*(){var r;const o=null==i?void 0:i.getElement(Ks.PAYMENT);if(o){try{yield this.updateStripePaymentIntent(e,t)}catch(e){return this.isMounted&&(o.unmount(),this.isMounted=!1),void(e instanceof Error&&(null===(r=n.onError)||void 0===r||r.call(n,e)))}this.isMounted||(yield null==i?void 0:i.fetchUpdates(),this.mountElement(o,n.containerId))}}),e=>{var t;return null===(t=e.getCheckout())||void 0===t?void 0:t.outstandingBalance},e=>{var t;return null===(t=e.getCheckout())||void 0===t?void 0:t.coupons})}mountElement(e,t){document.getElementById(t)&&(e.mount(`#${t}`),this.isMounted=!0)}mapAppearanceVariables(e){return{colorPrimary:e.fieldInnerShadow,colorBackground:e.fieldBackground,colorText:e.labelText,colorDanger:e.fieldErrorText,colorTextSecondary:e.labelText,colorTextPlaceholder:e.fieldPlaceholderText,colorIcon:e.fieldPlaceholderText}}mapInputAppearanceRules(e){return{borderColor:e.fieldBorder,color:e.fieldText,boxShadow:e.fieldInnerShadow}}throwStripeError(e){if("object"==typeof(t=e)&&null!==t&&"type"in t&&(this.throwDisplayableStripeError(e),this.isCancellationError(e)))throw new nr;var t;throw new so}throwDisplayableStripeError(e){if(P(["card_error","invalid_request_error","validation_error"],e.type))throw new Error(e.message)}isCancellationError(e){var t;const n=null===(t=null==e?void 0:e.payment_intent.last_payment_error)||void 0===t?void 0:t.message;return!!n&&-1!==n.indexOf("canceled")}throwPaymentConfirmationProceedMessage(){throw new so("We've received your order and are processing your payment. Once the payment is verified, your order will be completed. We will send you an email when it's completed. Please note, this process may take a few minutes depending on the processing times of your chosen method.")}isPaymentCompleted(e,t){return nd(this,void 0,void 0,function*(){const n=this.paymentIntegrationService.getState(),i=n.getPaymentMethodOrThrow(e),{features:r}=n.getStoreConfigOrThrow().checkoutSettings;if(!i.clientToken||!t||!r["PI-626.Block_unnecessary_payment_confirmation_for_StripeUPE"])return!1;const{paymentIntent:o}=yield t.retrievePaymentIntent(i.clientToken);return(null==o?void 0:o.status)===Js.SUCCEEDED})}mapStripePaymentData(e,t,n=!1){const i=this.paymentIntegrationService.getState().getBillingAddress(),{firstName:r="",lastName:o="",email:a=""}=i||{},s=this._mapStripeAddress(i);if(!e)throw new gi(hi.PaymentNotInitialized);if(!(a&&s&&s.city&&s.country&&r&&o))throw new pi(ui.MissingBillingAddress);return{elements:e,redirect:Ys.IF_REQUIRED,confirmParams:Object.assign({payment_method_data:Object.assign(Object.assign({},n?{allow_redisplay:"always"}:{}),{billing_details:{email:a,address:s,name:`${r} ${o}`}})},t&&{return_url:t})}}isAdditionalActionError(e){return Z(e,{code:"additional_action_required"})}isRedirectAction(e){const{type:t,data:{redirect_url:n}}=e;return"redirect_to_url"===t&&!!n}isOnPageAdditionalAction(e){const{type:t,data:{token:n}}=e;return"additional_action_requires_payment_method"===t&&!!n}updateStripePaymentIntent(e,t){return nd(this,void 0,void 0,function*(){const n=yield this.paymentIntegrationService.loadPaymentMethod(e,{params:{method:t}}),{clientToken:i}=n.getPaymentMethodOrThrow(t);if(!i)throw new pi(ui.MissingPaymentMethod);this.scriptLoader.updateStripeElements({clientSecret:i})})}_mapStripeAddress(e){if(e){const{city:t,address1:n,address2:i,countryCode:r,postalCode:o,stateOrProvinceCode:a}=e;return Object.assign({city:t,country:r,postal_code:o,line1:n,line2:i},a?{state:a}:{})}throw new pi(ui.MissingBillingAddress)}}const rd={size:70,color:"#d9d9d9",backgroundColor:"#ffffff"},od={position:"fixed","background-color":"rgba(0, 0, 0, 0.4)","z-index":"1000"},ad="embedded-checkout-loading-indicator-rotation";class sd{constructor(e){this.styles=Object.assign(Object.assign({},rd),e&&e.styles),this.containerStyles=Object.assign({},e&&e.containerStyles),this.defineAnimation(),this.container=this.buildContainer(),this.indicator=this.buildIndicator(),this.container.appendChild(this.indicator)}show(e){if(e){const t=document.getElementById(e);if(!t)throw new Error("Unable to attach the loading indicator because the parent ID is not valid.");t.appendChild(this.container)}this.container.style.visibility="visible",this.container.style.opacity="1"}hide(){const e=()=>{this.container.style.visibility="hidden",this.container.removeEventListener("transitionend",e)};this.container.addEventListener("transitionend",e),this.container.style.opacity="0"}buildContainer(){const e=document.createElement("div");return e.style.display="block",e.style.bottom="0",e.style.left="0",e.style.height="100%",e.style.width="100%",e.style.position="absolute",e.style.right="0",e.style.top="0",e.style.transition="all 250ms ease-out",e.style.opacity="0",this.setStyleAttribute(e,this.containerStyles),e}buildIndicator(){const e=document.createElement("div");return e.style.display="block",e.style.width=`${this.styles.size}px`,e.style.height=`${this.styles.size}px`,e.style.borderRadius=`${this.styles.size}px`,e.style.border="solid 1px",e.style.borderColor=`${this.styles.backgroundColor} ${this.styles.backgroundColor} ${this.styles.color} ${this.styles.color}`,e.style.margin="0 auto",e.style.position="absolute",e.style.left="0",e.style.right="0",e.style.top="50%",e.style.transform="translateY(-50%) rotate(0deg)",e.style.transformStyle="preserve-3d",e.style.animation=`${ad} 500ms infinite cubic-bezier(0.69, 0.31, 0.56, 0.83)`,e}setStyleAttribute(e,t){Object.keys(t).forEach(n=>{e.style.setProperty(n,t[n])})}defineAnimation(){var e;if(document.getElementById(ad))return;const t=document.createElement("style");t.id=ad,null===(e=document.head)||void 0===e||e.appendChild(t),t.sheet instanceof CSSStyleSheet&&t.sheet.insertRule(`\n @keyframes ${ad} {\n 0% { transform: translateY(-50%) rotate(0deg); }\n 100% { transform: translateY(-50%) rotate(360deg); }\n }\n `,0)}}class dd{constructor(e){this._decimalPlaces=e}toInteger(e){return Math.round(e*Math.pow(10,this._decimalPlaces))}}const cd=["AC","AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CV","CW","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MK","ML","MM","MN","MO","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VG","VN","VU","WF","WS","XK","YE","YT","ZA","ZM","ZW","ZZ"];var ld=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class ud{constructor(e,t,n,i){this.paymentIntegrationService=e,this.scriptLoader=t,this.stripeIntegrationService=n,this.loadingIndicator=i}initialize(e){return ld(this,void 0,void 0,function*(){const{stripeocs:t}=e||{};if(!t)throw new ki('Unable to proceed because "options" argument is not provided.');const{methodId:n,gatewayId:i,container:r}=t;if(!r||!n||!i)throw new gi(hi.PaymentNotInitialized);const o=(yield this.paymentIntegrationService.loadPaymentMethod(i,{params:{method:n}})).getPaymentMethodOrThrow(n,i),{loadingContainerId:a,buttonHeight:s,onComplete:d}=t;if(this._loadingIndicatorContainer=a,this._onComplete=d,!qs(o))throw new pi(ui.MissingPaymentMethod);const{initializationData:c}=o,{captureMethod:l}=c;return this._captureMethod=l,this._stripeClient=yield this.scriptLoader.getStripeClient(c),yield this._mountExpressCheckoutElement(n,r,this._stripeClient,s),Promise.resolve()})}signIn(){return Promise.resolve()}signOut(){return Promise.resolve()}executePaymentMethodCheckout(){return Promise.resolve()}deinitialize(){return Promise.resolve()}_mountExpressCheckoutElement(e,t,n,i=40){return ld(this,void 0,void 0,function*(){const r=this._shouldRequireShippingAddress(),o=Object.assign(Object.assign(Object.assign({shippingAddressRequired:r},r?{allowedShippingCountries:yield this._getAvailableCountries()}:{}),r?{shippingRates:[{id:"_",amount:0,displayName:"Pending rates"}]}:{}),{billingAddressRequired:!0,emailRequired:!0,phoneNumberRequired:!0,paymentMethods:{link:Ys.AUTO,applePay:Ys.NEVER,googlePay:Ys.NEVER,amazonPay:Ys.NEVER,paypal:Ys.NEVER,klarna:Ys.NEVER},buttonHeight:i}),{cartAmount:a}=this.paymentIntegrationService.getState().getCartOrThrow(),s=Object.assign({mode:"payment",amount:this._toCents(a),currency:this._getCurrency()},this._captureMethod?{captureMethod:this._captureMethod}:{});this._stripeElements=n.elements(s),this._linkV2Element=this._stripeElements.create(Ks.EXPRESS_CHECKOUT,o),this._linkV2Element.mount(`#${t}`),this._initializeEvents(this._linkV2Element,e)})}_initializeEvents(e,t){this._shouldRequireShippingAddress()&&(e.on(Zs.SHIPPING_ADDRESS_CHANGE,e=>ld(this,void 0,void 0,function*(){return this._onShippingAddressChange(e)})),e.on(Zs.SHIPPING_RATE_CHANGE,e=>ld(this,void 0,void 0,function*(){return this._onShippingRateChange(e)}))),e.on(Zs.CONFIRM,e=>ld(this,void 0,void 0,function*(){return this._onConfirm(e,t)})),e.on(Zs.CANCEL,this._onCancel)}_onShippingAddressChange(e){return ld(this,void 0,void 0,function*(){if("address"in e){const t=e.address,n={firstName:"",lastName:"",phone:"",company:"",address1:"",address2:"",city:(null==t?void 0:t.city)||"",countryCode:(null==t?void 0:t.country)||"",postalCode:(null==t?void 0:t.postal_code)||"",stateOrProvince:(null==t?void 0:t.state)||"",stateOrProvinceCode:"",customFields:[]};yield this.paymentIntegrationService.updateShippingAddress(n);const i=yield this._getAvailableShippingOptions();yield this._updateDisplayedPrice(),e.resolve({shippingRates:i})}})}_onCancel(){throw new nr}_onShippingRateChange(e){return ld(this,void 0,void 0,function*(){if("shippingRate"in e){const{shippingRate:t}=e;yield this._handleShippingOptionChange(null==t?void 0:t.id),yield this._updateDisplayedPrice(),e.resolve({})}})}_onConfirm(e,t){return ld(this,void 0,void 0,function*(){if("billingDetails"in e&&"shippingAddress"in e&&this._stripeClient&&this._stripeElements){yield this._updateShippingAndBillingAddress(e),yield this.paymentIntegrationService.submitOrder();const n=this._getPaymentPayload(t);try{yield this.paymentIntegrationService.submitPayment(n)}catch(e){yield this._processAdditionalAction(e,t)}}return Promise.resolve()})}_updateShippingAndBillingAddress(e){var t,n,i,r,o,a,s,d;return ld(this,void 0,void 0,function*(){const c=this._shouldRequireShippingAddress(),l=(null===(n=null===(t=e.shippingAddress)||void 0===t?void 0:t.name)||void 0===n?void 0:n.split(" ")[0])||(null===(r=null===(i=e.billingDetails)||void 0===i?void 0:i.name)||void 0===r?void 0:r.split(" ")[0])||"",u=(null===(a=null===(o=e.shippingAddress)||void 0===o?void 0:o.name)||void 0===a?void 0:a.split(" ")[1])||(null===(d=null===(s=e.billingDetails)||void 0===s?void 0:s.name)||void 0===d?void 0:d.split(" ")[1])||"";if(c){const t=this._mapShippingAddress(e.shippingAddress,e.billingDetails,l,u);yield this.paymentIntegrationService.updateShippingAddress(t)}const h=this._mapBillingAddress(e.shippingAddress,e.billingDetails,l,u);yield this.paymentIntegrationService.updateBillingAddress(h)})}_mapShippingAddress(e,t,n,i){var r,o,a,s,d,c,l;return{firstName:n,lastName:i,phone:(null==t?void 0:t.phone)||"",company:"",address1:(null===(r=null==e?void 0:e.address)||void 0===r?void 0:r.line1)||"",address2:(null===(o=null==e?void 0:e.address)||void 0===o?void 0:o.line2)||"",city:(null===(a=null==e?void 0:e.address)||void 0===a?void 0:a.city)||"",countryCode:(null===(s=null==e?void 0:e.address)||void 0===s?void 0:s.country)||"",postalCode:(null===(d=null==e?void 0:e.address)||void 0===d?void 0:d.postal_code)||"",stateOrProvince:(null===(c=null==e?void 0:e.address)||void 0===c?void 0:c.state)||"",stateOrProvinceCode:(null===(l=null==e?void 0:e.address)||void 0===l?void 0:l.state)||"",customFields:[]}}_mapBillingAddress(e,t,n,i){var r,o,a,s,d,c;return{email:(null==t?void 0:t.email)||"",firstName:n,lastName:i,phone:(null==t?void 0:t.phone)||"",company:"",address1:(null===(r=null==t?void 0:t.address)||void 0===r?void 0:r.line1)||"",address2:"",city:(null===(o=null==t?void 0:t.address)||void 0===o?void 0:o.city)||"",countryCode:(null===(a=null==t?void 0:t.address)||void 0===a?void 0:a.country)||"",postalCode:(null===(s=null==t?void 0:t.address)||void 0===s?void 0:s.postal_code)||"",stateOrProvince:(null===(d=null==t?void 0:t.address)||void 0===d?void 0:d.state)||"",stateOrProvinceCode:(null===(c=null==e?void 0:e.address)||void 0===c?void 0:c.state)||"",customFields:[]}}_processAdditionalAction(e,t){return ld(this,void 0,void 0,function*(){if(!wa(e)||!this.stripeIntegrationService.isAdditionalActionError(e.body.errors))throw e;if(!this._stripeClient||!this._stripeElements)throw new gi(hi.PaymentNotInitialized);const{data:n}=e.body.additional_action_required,{token:i}=n,{paymentIntent:r}=yield this._confirmStripePaymentOrThrow(n,t),o=this._getPaymentPayload(t,(null==r?void 0:r.id)||i);try{this._toggleLoadingIndicator(!0),yield this.paymentIntegrationService.submitPayment(o),yield this._completeCheckoutFlow()}catch(e){this.stripeIntegrationService.throwPaymentConfirmationProceedMessage()}finally{this._toggleLoadingIndicator(!1)}})}_confirmStripePaymentOrThrow(e,t){var n,i,r;return ld(this,void 0,void 0,function*(){const{token:o,redirect_url:a}=e,s=this.stripeIntegrationService.mapStripePaymentData(this._stripeElements,a);let d;try{const e=(yield this.stripeIntegrationService.isPaymentCompleted(t,this._stripeClient))?yield null===(r=this._stripeClient)||void 0===r?void 0:r.retrievePaymentIntent(o||""):yield null===(n=this._stripeClient)||void 0===n?void 0:n.confirmPayment({elements:s.elements,clientSecret:o,redirect:Ys.IF_REQUIRED,confirmParams:{return_url:null===(i=s.confirmParams)||void 0===i?void 0:i.return_url}});if(d=null==e?void 0:e.error,d||!(null==e?void 0:e.paymentIntent))throw new so;return e}catch(e){return this.stripeIntegrationService.throwStripeError(d)}})}_completeCheckoutFlow(){return ld(this,void 0,void 0,function*(){return"function"==typeof this._onComplete?this._onComplete():(window.location.replace("/order-confirmation"),Promise.resolve())})}_getPaymentPayload(e,t){var n;const i=(null===(n=this.paymentIntegrationService.getState().getCart())||void 0===n?void 0:n.id)||"";return{methodId:e,paymentData:{formattedPayload:Object.assign(Object.assign({cart_id:i},t?{credit_card_token:{token:t}}:{}),{confirm:!1,payment_method_id:Ws.Link})}}}_shouldRequireShippingAddress(){const{getCartOrThrow:e}=this.paymentIntegrationService.getState(),{lineItems:t}=e();return!!t.physicalItems.length}_updateDisplayedPrice(){return ld(this,void 0,void 0,function*(){this._stripeElements&&this._stripeElements.update({currency:this._getCurrency(),mode:"payment",amount:yield this._getTotalPrice()})})}_getCurrency(){if(!this._currencyCode){const{code:e}=this.paymentIntegrationService.getState().getCartOrThrow().currency;this._currencyCode=e.toLowerCase()}return this._currencyCode}_getTotalPrice(){return ld(this,void 0,void 0,function*(){yield this.paymentIntegrationService.loadCheckout();const{getCheckoutOrThrow:e,getCartOrThrow:t}=this.paymentIntegrationService.getState(),{decimalPlaces:n}=t().currency,i=J(e().outstandingBalance,n).toFixed(n);return this._toCents(+i)})}_getAvailableCountries(){var e;return ld(this,void 0,void 0,function*(){const t=yield this.paymentIntegrationService.loadShippingCountries();return((null===(e=t.getShippingCountries())||void 0===e?void 0:e.map(e=>e.code))||[]).filter(e=>cd.includes(e))})}_getAvailableShippingOptions(){var e,t;return ld(this,void 0,void 0,function*(){const n=this.paymentIntegrationService.getState().getConsignments();if(!(null==n?void 0:n[0]))return;const i=n[0],r=(i.availableShippingOptions||[]).map(this._getStripeShippingOption.bind(this)),o=null===(e=i.selectedShippingOption)||void 0===e?void 0:e.id;return o?r.sort(e=>e.id===o?-1:0):yield this._handleShippingOptionChange(null===(t=r[0])||void 0===t?void 0:t.id),r})}_getStripeShippingOption({id:e,cost:t,description:n}){return{id:e,displayName:n,amount:this._toCents(t)}}_handleShippingOptionChange(e){return ld(this,void 0,void 0,function*(){if(e&&"shipping_option_unselected"!==e)return this.paymentIntegrationService.selectShippingOption(e)})}_getAmountTransformer(){if(this._amountTransformer)return this._amountTransformer;const{getCart:e}=this.paymentIntegrationService.getState(),{currency:t}=e()||{};return t?new dd(t.decimalPlaces):void 0}_toCents(e){const t=Math.round(100*e),n=this._getAmountTransformer();return n?n.toInteger(e):t}_toggleLoadingIndicator(e){e&&this._loadingIndicatorContainer?this.loadingIndicator.show(this._loadingIndicatorContainer):this.loadingIndicator.hide()}}const hd=Rt(e=>{const t=new Us(a()),n=new sd({containerStyles:od});return new ud(e,t,new id(e,t),n)},[{id:"stripeocs"}]);var pd,md,yd,gd,vd,fd,Sd;class wd{constructor(e,t,n=window){this._scriptLoader=e,this._stylesheetLoader=t,this._window=n}load(e){var t,n,i,r,o,a;return i=this,r=void 0,a=function*(){if(yield Promise.all([this._stylesheetLoader.loadStylesheet(`https://checkoutshopper-${null!==(t=e.environment)&&void 0!==t?t:""}.adyen.com/checkoutshopper/sdk/3.10.1/adyen.css`,{prepend:!1,attributes:{integrity:"sha384-8ofgICZZ/k5cC5N7xegqFZOA73H9RQ7H13439JfAZW8Gj3qjuKL2isaTD3GMIhDE",crossorigin:"anonymous"}}),this._scriptLoader.loadScript(`https://checkoutshopper-${null!==(n=e.environment)&&void 0!==n?n:""}.adyen.com/checkoutshopper/sdk/3.10.1/adyen.js`,{async:!0,attributes:{integrity:"sha384-wG2z9zSQo61EIvyXmiFCo+zB3y0ZB4hsrXVcANmpP8HLthjoQJQPBh7tZKJSV8jA",crossorigin:"anonymous"}})]),!this._window.AdyenCheckout)throw new Oi;return new this._window.AdyenCheckout(e)},new((o=void 0)||(o=Promise))(function(e,t){function n(e){try{d(a.next(e))}catch(e){t(e)}}function s(e){try{d(a.throw(e))}catch(e){t(e)}}function d(t){var i;t.done?e(t.value):(i=t.value,i instanceof o?i:new o(function(e){e(i)})).then(n,s)}d((a=a.apply(i,r||[])).next())})}}function _d(e){return"object"==typeof e&&"string"==typeof e.data.paymentMethod.encryptedSecurityCode||"string"==typeof e.data.paymentMethod.encryptedExpiryMonth}function Cd(e){return Boolean(e.instrumentId)}!function(e){e.ThreeDS2Fingerprint="threeDS2Fingerprint",e.ThreeDS2="threeDS2",e.Redirect="redirect",e.QRCode="qrCode",e.Voucher="voucher",e.Sdk="sdk"}(pd||(pd={})),function(e){e.ThreeDS2Fingerprint="threeDS2Fingerprint",e.ThreeDS2Challenge="threeDS2Challenge",e.Redirect="redirect",e.QRCode="qrCode",e.Voucher="voucher"}(md||(md={})),function(e){e.SecuredFields="securedfields"}(yd||(yd={})),function(e){e.ACH="ach",e.AliPay="alipay",e.Bancontact="bcmc",e.CreditCard="scheme",e.Klarna="klarna",e.KlarnaPayNow="klarna_paynow",e.KlarnaAccount="klarna_account",e.IDEAL="ideal",e.GiroPay="giropay",e.GooglePay="paywithgoogle",e.SEPA="sepadirectdebit",e.Sofort="directEbanking",e.Vipps="vipps",e.WeChatPayQR="wechatpayQR"}(gd||(gd={})),function(e){e.POST="POST"}(vd||(vd={})),function(e){e.ChallengeShopper="ChallengeShopper",e.Error="Error",e.IdentifyShopper="IdentifyShopper"}(fd||(fd={})),function(e){e.CardNumber="encryptedCardNumber",e.SecurityCode="encryptedSecurityCode",e.ExpiryDate="encryptedExpiryDate"}(Sd||(Sd={}));class Id extends li{constructor(){super("The current order does not need to be finalized at this stage."),this.name="OrderFinalizationNotRequiredError",this.type="order_finalization_not_required"}}var bd=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Pd{constructor(e,t){this._paymentIntegrationService=e,this._scriptLoader=t}initialize(e){return bd(this,void 0,void 0,function*(){const{adyenv2:t}=e;if(!t)throw new ki('Unable to initialize payment because "options.adyenv2" argument is not provided.');this._paymentInitializeOptions=t;const n=this._paymentIntegrationService.getState().getPaymentMethodOrThrow(e.methodId),{originKey:i,clientKey:r,environment:o,paymentMethodsResponse:a}=n.initializationData||{},s={key:"",value:""};return i?(s.key="originKey",s.value=i):(s.key="clientKey",s.value=r||""),this._adyenClient=yield this._scriptLoader.load({environment:o,locale:this._paymentIntegrationService.getState().getLocale(),[s.key]:s.value,paymentMethodsResponse:a,translations:{es:{"creditCard.expiryDateField.title":"Fecha de caducidad"},"es-AR":{"creditCard.expiryDateField.title":"Fecha de caducidad"},"es-ES":{"creditCard.expiryDateField.title":"Fecha de caducidad"},"es-MX":{"creditCard.expiryDateField.title":"Fecha de caducidad"},"es-CL":{"creditCard.expiryDateField.title":"Fecha de caducidad"},"es-CO":{"creditCard.expiryDateField.title":"Fecha de caducidad"},"es-PE":{"creditCard.expiryDateField.title":"Fecha de caducidad"}}}),this._paymentComponent=yield this._mountPaymentComponent(n),n.method!==gd.CreditCard&&n.method!==gd.Bancontact||(this._cardVerificationComponent=yield this._mountCardVerificationComponent()),Promise.resolve()})}execute(e,t){return bd(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),r=n&&n.paymentData,o=r&&r.shouldSaveInstrument,a=r&&r.shouldSetAsDefaultInstrument;if(!n)return Promise.reject(new fo(["payment"]));this._validateCardData(),yield this._paymentIntegrationService.submitOrder(i,t);const s=this._componentState;if(!s)throw new gi(hi.PaymentNotInitialized);if(r&&Cd(r)){let e={};if(_d(s)){const{encryptedCardNumber:t,encryptedSecurityCode:n,encryptedExpiryMonth:i,encryptedExpiryYear:r}=s.data.paymentMethod;e={credit_card_number_confirmation:t,expiry_month:i,expiry_year:r,verification_value:n}}if(_d(s)||-1!==["ideal","sepadirectdebit","directEbanking","giropay"].indexOf(s.data.paymentMethod.type))try{return void(yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},n),{paymentData:{formattedPayload:{bigpay_token:Object.assign(Object.assign({},e),{token:r.instrumentId}),origin:window.location.origin,browser_info:Za(),set_as_default_stored_instrument:a||null}}})))}catch(e){return void(yield this._processAdditionalAction(e,o,a))}}try{yield this._paymentIntegrationService.submitPayment({methodId:n.methodId,paymentData:{formattedPayload:{credit_card_token:{token:JSON.stringify(Object.assign(Object.assign({},s.data.paymentMethod),{origin:window.location.origin}))},browser_info:Za(),vault_payment_instrument:o||null,set_as_default_stored_instrument:a||null}}})}catch(e){yield this._processAdditionalAction(e,o,a)}})}finalize(){return Promise.reject(new Id)}deinitialize(){return this._componentState=void 0,this._paymentComponent&&(this._paymentComponent.unmount(),this._paymentComponent=void 0),this._cardVerificationComponent&&(this._cardVerificationComponent.unmount(),this._cardVerificationComponent=void 0),Promise.resolve()}_getAdyenClient(){if(!this._adyenClient)throw new gi(hi.PaymentNotInitialized);return this._adyenClient}_getPaymentInitializeOptions(){if(!this._paymentInitializeOptions)throw new ki('"options.adyenv2" argument was not provided during initialization.');return this._paymentInitializeOptions}_getThreeDS2ChallengeWidgetSize(){const{additionalActionOptions:e,threeDS2Options:t}=this._getPaymentInitializeOptions();return e.widgetSize||(null==t?void 0:t.widgetSize)||"05"}_handleAction(e){return new Promise((t,n)=>{const{threeDS2ContainerId:i,additionalActionOptions:r}=this._getPaymentInitializeOptions(),{onBeforeLoad:o,containerId:a,onLoad:s,onComplete:d}=r,c=JSON.parse(e.action),l=this._getAdyenClient().createFromAction(c,{onAdditionalDetails:e=>{const n={methodId:c.paymentMethodType,paymentData:{nonce:JSON.stringify(e.data)}};d&&d(),t(n)},size:this._getThreeDS2ChallengeWidgetSize(),onError:e=>n(e)});o&&o(c.type===md.ThreeDS2Challenge||c.type===md.QRCode),l.mount(`#${a||i}`),s&&s(()=>{n(new nr),l.unmount()})})}_mapAdyenPlaceholderData(e,t){if(!e)return{};const{firstName:n,lastName:i,address1:r,address2:o,postalCode:a,city:s,stateOrProvinceCode:d,countryCode:c}=e;return{holderName:t?`${n} ${i}`:"",billingAddress:{street:r,houseNumberOrName:o,postalCode:a,city:s,stateOrProvince:d,country:c}}}_mountCardVerificationComponent(){const e=this._getPaymentInitializeOptions(),t=this._getAdyenClient();let n;return new Promise((i,r)=>{var o,a,s;if(e.cardVerificationContainerId){n=t.create(yd.SecuredFields,Object.assign(Object.assign({},e.options),{styles:Object.assign(Object.assign({},null===(o=e.options)||void 0===o?void 0:o.styles),{placeholder:Object.assign({color:"transparent",caretColor:"#000"},null===(s=null===(a=e.options)||void 0===a?void 0:a.styles)||void 0===s?void 0:s.placeholder)}),onChange:e=>this._updateComponentState(e),onError:t=>e.validateCardFields(t),onFieldValid:t=>e.validateCardFields(t)}));try{n.mount(`#${e.cardVerificationContainerId}`)}catch(e){r(new gi(hi.PaymentNotInitialized))}}i(n)})}_mountPaymentComponent(e){let t;const n=this._getPaymentInitializeOptions(),i=this._getAdyenClient();return new Promise((r,o)=>{switch(e.method){case gd.CreditCard:case gd.ACH:case gd.Bancontact:{const r=this._paymentIntegrationService.getState().getBillingAddress(),{prefillCardHolderName:a}=e.initializationData;t=i.create(e.method,Object.assign(Object.assign({},n.options),{onChange:e=>this._updateComponentState(e),data:this._mapAdyenPlaceholderData(r,a)}));try{t.mount(`#${n.containerId}`)}catch(e){o(new gi(hi.PaymentNotInitialized))}break}case gd.IDEAL:case gd.SEPA:if(n.hasVaultedInstruments)this._updateComponentState({data:{paymentMethod:{type:e.method}}});else{t=i.create(e.method,Object.assign(Object.assign({},n.options),{onChange:e=>this._updateComponentState(e)}));try{t.mount(`#${n.containerId}`)}catch(e){o(new gi(hi.PaymentNotInitialized))}}break;case gd.AliPay:case gd.GiroPay:case gd.Sofort:case gd.Klarna:case gd.KlarnaPayNow:case gd.KlarnaAccount:case gd.Vipps:case gd.WeChatPayQR:this._updateComponentState({data:{paymentMethod:{type:e.method}}})}r(t)})}_processAdditionalAction(e,t,n){return bd(this,void 0,void 0,function*(){if(!wa(e)||!Z(e.body.errors,{code:"additional_action_required"}))throw e;const i=yield this._handleAction(e.body.provider_data);try{yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},i),{paymentData:Object.assign(Object.assign({},i.paymentData),{shouldSaveInstrument:t,shouldSetAsDefaultInstrument:n})}))}catch(e){return this._processAdditionalAction(e,t,n)}})}_updateComponentState(e){this._componentState=e}_validateCardData(){var e,t;const n=this._getPaymentInitializeOptions().hasVaultedInstruments?this._cardVerificationComponent:this._paymentComponent;if((null===(e=null==n?void 0:n.componentRef)||void 0===e?void 0:e.showValidation)&&n.state&&(n.componentRef.showValidation(),0===Object.keys(n.state).length||!n.state.isValid&&!n.state.issuer||"sepadirectdebit"===(null===(t=n.props)||void 0===t?void 0:t.type)&&n.state.data&&Object.values(n.state.data).some(e=>0===e.toString().trim().length)))throw new So(this._mapCardErrors(n.state.errors))}_mapCardErrors(e={}){const t={};return Object.keys(e).forEach(n=>{t[n]=[{message:e[n],type:n}]}),t}}const Od=Rt(e=>new Pd(e,new wd(a(),s())),[{gateway:"adyenv2"}]);class Ed{constructor(e,t,n=window){this._scriptLoader=e,this._stylesheetLoader=t,this._window=n}load(e){var t,n,i,r,o,a;return i=this,r=void 0,a=function*(){if(yield Promise.all([this._stylesheetLoader.loadStylesheet(`https://checkoutshopper-${null!==(t=e.environment)&&void 0!==t?t:""}.adyen.com/checkoutshopper/sdk/5.71.1/adyen.css`,{prepend:!1,attributes:{integrity:"sha384-5MvB4RnzvviA3VBT4KYABZ4HXNZG5LRqREEgd41xt/pf/QvKmsj2O9GuNuywRXx9",crossorigin:"anonymous"}}),this._scriptLoader.loadScript(`https://checkoutshopper-${null!==(n=e.environment)&&void 0!==n?n:""}.adyen.com/checkoutshopper/sdk/5.71.1/adyen.js`,{async:!0,attributes:{integrity:"sha384-yvY2yFNR4WqIjPqP9MzjI+gJimmaJnAvj4rLHKvgJbgFD5fMuf8zIJrFJOW8Lhhf",crossorigin:"anonymous"}})]),!this._window.AdyenCheckout)throw new Oi;return yield this._window.AdyenCheckout(e)},new((o=void 0)||(o=Promise))(function(e,t){function n(e){try{d(a.next(e))}catch(e){t(e)}}function s(e){try{d(a.throw(e))}catch(e){t(e)}}function d(t){var i;t.done?e(t.value):(i=t.value,i instanceof o?i:new o(function(e){e(i)})).then(n,s)}d((a=a.apply(i,r||[])).next())})}}function Ad(e){return!("object"!=typeof e||null===e||void 0!==e.shouldSaveInstrument&&"boolean"!=typeof e.shouldSaveInstrument||void 0!==e.shouldSetAsDefaultInstrument&&"boolean"!=typeof e.shouldSetAsDefaultInstrument)}var kd=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Td{constructor(e,t){this._paymentIntegrationService=e,this._scriptLoader=t}initialize(e){return kd(this,void 0,void 0,function*(){const{adyenv3:t}=e;if(!t)throw new ki('Unable to initialize payment because "options.adyenv3" argument is not provided.');this._paymentInitializeOptions=t;const n=this._paymentIntegrationService.getState().getPaymentMethodOrThrow(e.methodId),{environment:i,clientKey:r,paymentMethodsResponse:o,installmentOptions:a}=n.initializationData||{};return this._adyenClient=yield this._scriptLoader.load({paymentMethodsConfiguration:Object.assign({klarna:{useKlarnaWidget:!0},klarna_account:{useKlarnaWidget:!0},klarna_paynow:{useKlarnaWidget:!0}},a?{card:{installmentOptions:Object.assign({showInstallmentAmounts:!0},a)}}:{}),environment:i,locale:this._getLocale(),clientKey:r,paymentMethodsResponse:o,showPayButton:!1,translations:{es:{"creditCard.expiryDateField.title":"Fecha de caducidad"},"es-AR":{"creditCard.expiryDateField.title":"Fecha de caducidad"},"es-ES":{"creditCard.expiryDateField.title":"Fecha de caducidad"},"es-MX":{"creditCard.expiryDateField.title":"Fecha de caducidad"},"es-CL":{"creditCard.expiryDateField.title":"Fecha de caducidad"},"es-CO":{"creditCard.expiryDateField.title":"Fecha de caducidad"},"es-PE":{"creditCard.expiryDateField.title":"Fecha de caducidad"}}}),this._paymentComponent=yield this._mountPaymentComponent(n),n.method!==gd.CreditCard&&n.method!==gd.Bancontact||(this._cardVerificationComponent=yield this._mountCardVerificationComponent()),Promise.resolve()})}execute(e,t){var n;return kd(this,void 0,void 0,function*(){const{payment:i}=e,r=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!i)throw new fo(["payment"]);const o=i.paymentData,{shouldSaveInstrument:a,shouldSetAsDefaultInstrument:s}=Ad(o)?o:{shouldSaveInstrument:!1,shouldSetAsDefaultInstrument:!1};this._validateCardData(),"klarna"!==i.methodId&&"klarna_account"!==i.methodId&&"klarna_paynow"!==i.methodId||null===(n=this._paymentComponent)||void 0===n||n.submit(),yield this._paymentIntegrationService.submitOrder(r,t);const d=this._componentState||{data:{paymentMethod:{type:i.methodId}}};if(o&&Cd(o)){let e={};if(_d(d)){const{encryptedCardNumber:t,encryptedSecurityCode:n,encryptedExpiryMonth:i,encryptedExpiryYear:r}=d.data.paymentMethod;e={credit_card_number_confirmation:t,expiry_month:i,expiry_year:r,verification_value:n}}try{return void(yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},i),{paymentData:{formattedPayload:{bigpay_token:Object.assign(Object.assign({},e),{token:o.instrumentId}),origin:window.location.origin,browser_info:Za(),set_as_default_stored_instrument:s||null}}})))}catch(e){return void(yield this._processAdditionalAction(e,a,s))}}let c=JSON.stringify(Object.assign(Object.assign({},d.data.paymentMethod),{type:i.methodId,origin:window.location.origin}));"boletobancario"===i.methodId&&function(e){var t,n;return"string"===("object"==typeof e&&typeof e.data.socialSecurityNumber)&&"string"==typeof(null===(t=e.data.shopperName)||void 0===t?void 0:t.firstName)&&"string"==typeof(null===(n=e.data.shopperName)||void 0===n?void 0:n.lastName)}(d)&&(c=JSON.stringify(Object.assign(Object.assign({socialSecurityNumber:d.data.socialSecurityNumber},d.data.shopperName),{type:i.methodId,origin:window.location.origin})));try{yield this._paymentIntegrationService.submitPayment({methodId:i.methodId,paymentData:{formattedPayload:Object.assign(Object.assign({credit_card_token:{token:c}},_d(d)&&d.data.installments?{installments:{value:d.data.installments.value,plan:d.data.installments.plan||"regular"}}:{}),{browser_info:Za(),vault_payment_instrument:a||null,set_as_default_stored_instrument:s||null})}})}catch(e){yield this._processAdditionalAction(e,a,s)}})}finalize(){return Promise.reject(new Id)}deinitialize(){return this._componentState=void 0,this._paymentComponent&&(this._paymentComponent.unmount(),this._paymentComponent=void 0),this._cardVerificationComponent&&(this._cardVerificationComponent.unmount(),this._cardVerificationComponent=void 0),Promise.resolve()}_updateComponentState(e){this._componentState=e}_getLocale(){const e=this._paymentIntegrationService.getState().getLocale();return e&&"es"===e.substring(0,2)?"es":e}_getAdyenClient(){if(!this._adyenClient)throw new gi(hi.PaymentNotInitialized);return this._adyenClient}_getPaymentInitializeOptions(){if(!this._paymentInitializeOptions)throw new ki('"options.adyenv3" argument was not provided during initialization.');return this._paymentInitializeOptions}_handleAction(e){return new Promise((t,n)=>{const{additionalActionOptions:i}=this._getPaymentInitializeOptions(),{onBeforeLoad:r,containerId:o,onLoad:a,onComplete:s,widgetSize:d,onActionHandled:c}=i,l=JSON.parse(e.action),u=this._getAdyenClient().createFromAction(l,{onActionHandled:e=>{c&&"function"==typeof c&&"3DS2Fingerprint"!==e.componentType&&c()},onAdditionalDetails:e=>{const n={methodId:l.paymentMethodType,paymentData:{nonce:JSON.stringify(e.data)}};s&&"function"==typeof s&&s(),t(n)},challengeWindowSize:d||"05",onError:e=>n(e)});r&&"function"==typeof r&&r(l.type===pd.ThreeDS2||l.type===pd.QRCode||l.type===pd.Sdk),this._mountElement(u,o),a&&"function"==typeof a&&a(()=>{n(new nr),u.unmount()})})}_mapAdyenPlaceholderData(e,t){if(!e)return{};const{firstName:n,lastName:i,address1:r,address2:o,postalCode:a,city:s,stateOrProvinceCode:d,countryCode:c}=e;return{holderName:t?`${n} ${i}`:"",firstName:t?n:"",lastName:t?i:"",billingAddress:{street:r,houseNumberOrName:o,postalCode:a,city:s,stateOrProvince:d,country:c}}}_mountCardVerificationComponent(){const e=this._getPaymentInitializeOptions(),t=this._getAdyenClient();let n;return new Promise((i,r)=>{var o,a,s;if(e.cardVerificationContainerId){n=t.create(yd.SecuredFields,Object.assign(Object.assign({},e.options),{styles:Object.assign(Object.assign({},null===(o=e.options)||void 0===o?void 0:o.styles),{placeholder:Object.assign({color:"transparent",caretColor:"#000"},null===(s=null===(a=e.options)||void 0===a?void 0:a.styles)||void 0===s?void 0:s.placeholder)}),onChange:e=>this._updateComponentState(e),onError:t=>e.validateCardFields(t),onFieldValid:t=>e.validateCardFields(t)}));try{this._mountElement(n,e.cardVerificationContainerId)}catch(e){r(new gi(hi.PaymentNotInitialized))}}i(n)})}_mountPaymentComponent(e){let t;const n=this._getPaymentInitializeOptions(),i=this._getAdyenClient();return new Promise((r,o)=>{const a=this._paymentIntegrationService.getState().getBillingAddress(),{prefillCardHolderName:s}=e.initializationData;t=i.create(e.method,Object.assign(Object.assign(Object.assign({},n.options),{showBrandsUnderCardNumber:!1,billingAddressRequired:!1,showEmailAddress:!1,onChange:e=>this._updateComponentState(e),onSubmit:e=>this._updateComponentState(e)}),a?{data:this._mapAdyenPlaceholderData(a,s)}:{}));try{this._mountElement(t,n.containerId)}catch(e){o(new gi(hi.PaymentNotInitialized))}r(t)})}_processAdditionalAction(e,t,n){return kd(this,void 0,void 0,function*(){if(!wa(e)||!Z(e.body.errors,{code:"additional_action_required"}))throw e;const i=yield this._handleAction(e.body.provider_data);try{yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},i),{paymentData:Object.assign(Object.assign({},i.paymentData),{shouldSaveInstrument:t,shouldSetAsDefaultInstrument:n})}))}catch(e){return this._processAdditionalAction(e,t,n)}})}_validateCardData(){var e;const t=this._getPaymentInitializeOptions().hasVaultedInstruments?this._cardVerificationComponent:this._paymentComponent;if((null===(e=null==t?void 0:t.componentRef)||void 0===e?void 0:e.showValidation)&&t.state&&(t.componentRef.showValidation(),0===Object.keys(t.state).length||!t.state.isValid))throw new So(this._mapCardErrors(t.state.errors))}_mapCardErrors(e={}){const t={};return Object.keys(e).forEach(n=>{t[n]=[{message:e[n],type:n}]}),t}_mountElement(e,t){document.getElementById(t)&&e.mount(`#${t}`)}}const Dd=Rt(e=>new Td(e,new Ed(a(),s())),[{gateway:"adyenv3"}]);var Md,zd=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Nd{constructor(e,t){this.paymentIntegrationService=e,this.affirmScriptLoader=t}initialize(e){return zd(this,void 0,void 0,function*(){yield this.paymentIntegrationService.loadPaymentMethod(e.methodId);const t=this.paymentIntegrationService.getState(),{clientToken:n,config:{testMode:i}}=t.getPaymentMethodOrThrow(e.methodId);if(!n)throw new pi(ui.MissingPaymentMethod);this.affirm=yield this.affirmScriptLoader.load(n,i)})}execute(e,t){var n;return zd(this,void 0,void 0,function*(){const i=null===(n=e.payment)||void 0===n?void 0:n.methodId,{useStoreCredit:r}=e;if(!this.affirm)throw new gi(hi.PaymentNotInitialized);if(!i)throw new fo(["payment.methodId"]);yield this.paymentIntegrationService.submitOrder({useStoreCredit:r},t);const o={methodId:i,paymentData:{nonce:(yield this.initializeAffirmCheckout()).checkout_token}};yield this.paymentIntegrationService.submitPayment(o)})}deinitialize(){return this.affirm&&(this.affirm=void 0),Promise.resolve()}finalize(){return Promise.reject(new Id)}initializeAffirmCheckout(){var e;return null===(e=this.affirm)||void 0===e||e.checkout(this.getCheckoutInformation()),new Promise((e,t)=>{var n,i;null===(n=this.affirm)||void 0===n||n.checkout.open({onFail:e=>{"canceled"===e.reason?t(new nr):t(new co)},onSuccess:t=>{e(t)}}),null===(i=this.affirm)||void 0===i||i.ui.error.on("close",()=>{t(new nr)})})}getCheckoutInformation(){const e=this.paymentIntegrationService.getState(),t=e.getStoreConfig(),n=e.getConsignments(),i=e.getOrder(),r=e.getCart();if(!t)throw new pi(ui.MissingCheckoutConfig);if(!i)throw new pi(ui.MissingCheckout);const o=new dd(i.currency.decimalPlaces),a=this.getBillingAddress(),s=this.getShippingAddress(),d=Yo(r,t)&&s?s:a;return{merchant:{user_confirmation_url:t.links.checkoutLink,user_cancel_url:t.links.checkoutLink,user_confirmation_url_action:"POST"},shipping:d,billing:a,items:this.getItems(o,i),metadata:{shipping_type:this.getShippingType(n),mode:"modal",platform_type:"BigCommerce",platform_version:"",platform_affirm:""},discounts:this.getDiscounts(o,i),order_id:i.orderId?i.orderId.toString():"",shipping_amount:o.toInteger(i.shippingCostTotal),tax_amount:o.toInteger(i.taxTotal),total:o.toInteger(i.orderAmount)}}getShippingType(e){if(!e)return"";const t=e[0];return(null==t?void 0:t.selectedShippingOption)?t.selectedShippingOption.type:""}getBillingAddress(){const e=this.paymentIntegrationService.getState().getBillingAddress();if(!e)throw new pi(ui.MissingBillingAddress);return{name:{first:e.firstName,last:e.lastName,full:`${e.firstName} ${e.lastName}`},address:{line1:e.address1,line2:e.address2,city:e.city,state:e.stateOrProvinceCode,zipcode:e.postalCode,country:e.countryCode},phone_number:e.phone,email:e.email}}getShippingAddress(){const e=this.paymentIntegrationService.getState().getShippingAddress();if(e)return{name:{first:e.firstName,last:e.lastName,full:`${e.firstName} ${e.lastName}`},address:{line1:e.address1,line2:e.address2,city:e.city,state:e.stateOrProvinceCode,zipcode:e.postalCode,country:e.countryCode},phone_number:e.phone}}getItems(e,t){const n=[];return t.lineItems.physicalItems.forEach(t=>{n.push({display_name:t.name,sku:t.sku,unit_price:e.toInteger(t.salePrice),qty:t.quantity,item_image_url:t.imageUrl,item_url:t.url,categories:this.getCategories(t.categories)})}),t.lineItems.digitalItems.forEach(t=>{n.push({display_name:t.name,sku:t.sku,unit_price:e.toInteger(t.salePrice),qty:t.quantity,item_image_url:t.imageUrl,item_url:t.url,categories:this.getCategories(t.categories)})}),t.lineItems.giftCertificates.forEach(t=>{n.push({display_name:t.name,sku:"",unit_price:e.toInteger(t.amount),qty:1,item_image_url:"",item_url:""})}),t.lineItems.customItems&&t.lineItems.customItems.forEach(t=>{n.push({display_name:t.name,sku:t.sku,unit_price:e.toInteger(t.listPrice),qty:t.quantity,item_image_url:"",item_url:""})}),n}getDiscounts(e,t){const n={};return t.coupons.forEach(t=>{t.discountedAmount>0&&(n[t.code]={discount_amount:e.toInteger(t.discountedAmount),discount_display_name:t.displayName})}),t.discountAmount>0&&(n.DISCOUNTED_AMOUNT={discount_amount:e.toInteger(t.discountAmount),discount_display_name:"discount"}),n}getCategories(e){return e?e.map(e=>e.map(e=>e.name)):[[]]}}!function(e){e.PROD="//cdn1.affirm.com/js/v2/affirm.js",e.SANDBOX="//cdn1-sandbox.affirm.com/js/v2/affirm.js"}(Md||(Md={}));class xd{constructor(e=window){this.affirmWindow=e}load(e="",t){const n=t?Md.SANDBOX:Md.PROD;if(function(e,t,n,i,r,o,a){const s=e[n]||{},d=document.createElement(o),c=document.getElementsByTagName(o)[0],l=function(e,t,n){return function(){e[t]._.push([n,arguments])}};s[i]=l(s,i,"set");const u=s[i];s[r]={},s[r]._=[],u._=[],s._=[],s[r][a]=l(s,r,a),s.jsReady=function(){s._.push([a,arguments])};let h=0;for(const e="set add save post open empty reset on off trigger ready setProduct".split(" ");h<e.length;h++)u[e[h]]=l(s,i,e[h]);let p=0;for(const e=["get","token","url","items"];p<e.length;p++)u[e[p]]=function(){};d.async=!0,d.src=t[o],c.parentNode&&c.parentNode.insertBefore(d,c),delete t[o],u(t),e[n]=s}(window,{public_api_key:e,script:n},"affirm","checkout","ui","script","ready"),!this.affirmWindow.affirm)throw new Oi;return Promise.resolve(this.affirmWindow.affirm)}}const Fd=Rt(e=>new Nd(e,new xd),[{id:"affirm"}]);class Rd extends li{constructor(e){super(e||"The current order could not be finalized successfully"),this.name="OrderFinalizationNotCompletedError",this.type="order_finalization_not_completed"}}var Ld=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Bd{constructor(e,t){this._paymentIntegrationService=e,this._afterpayScriptLoader=t}initialize(e){var t;return Ld(this,void 0,void 0,function*(){const n=this._paymentIntegrationService.getState(),i=n.getPaymentMethod(e.methodId,e.gatewayId),r=(null===(t=n.getCart())||void 0===t?void 0:t.currency.code)||"",o=this._mapCurrencyToISO2(r);if(!i)throw new pi(ui.MissingPaymentMethod);this._afterpaySdk=yield this._afterpayScriptLoader.load(i,o)})}deinitialize(){return this._afterpaySdk&&(this._afterpaySdk=void 0),Promise.resolve()}execute(e,t){var n;return Ld(this,void 0,void 0,function*(){if(!e.payment)throw new fo(["payment.gatewayId","payment.methodId"]);const{gatewayId:i,methodId:r}=e.payment;if(!i||!r)throw new fo(["payment.gatewayId","payment.methodId"]);const{useStoreCredit:o}=e;void 0!==o&&(yield this._paymentIntegrationService.applyStoreCredit(o)),yield this._loadPaymentMethod(i,r,t);const a=this._paymentIntegrationService.getState();yield this._paymentIntegrationService.validateCheckout(a.getCheckout(),t);const s=(null===(n=a.getCart())||void 0===n?void 0:n.currency.code)||"",d=this._mapCurrencyToISO2(s);return this._redirectToAfterpay(d,a.getPaymentMethod(r,i)),new Promise(()=>{})})}finalize(e){var t,n,i;return Ld(this,void 0,void 0,function*(){const r=this._paymentIntegrationService.getState(),o=r.getPaymentId(),a=r.getContextConfig();if(!o)throw new pi(ui.MissingCheckout);if(!(null==a?void 0:a.payment.token))throw new pi(ui.MissingCheckoutConfig);const s={methodId:o.providerId,paymentData:{nonce:a.payment.token}};yield this._paymentIntegrationService.submitOrder({},e);try{yield this._paymentIntegrationService.submitPayment(s)}catch(e){if(yield this._paymentIntegrationService.forgetCheckout(o.providerId),yield this._paymentIntegrationService.loadPaymentMethods(),wa(e))throw new Rd(null===(i=null===(n=null===(t=e.body)||void 0===t?void 0:t.errors)||void 0===n?void 0:n[0])||void 0===i?void 0:i.message)}})}_redirectToAfterpay(e,t){if(!this._afterpaySdk||!(null==t?void 0:t.clientToken))throw new gi(hi.PaymentNotInitialized);this._afterpaySdk.initialize({countryCode:e}),this._afterpaySdk.redirect({token:t.clientToken})}_mapCurrencyToISO2(e){return{AUD:"AU",NZD:"NZ",CAD:"CA",USD:"US"}[e]||"AU"}_loadPaymentMethod(e,t,n){var i;return Ld(this,void 0,void 0,function*(){try{return yield this._paymentIntegrationService.loadPaymentMethod(e,Object.assign(Object.assign({},n),{params:Object.assign(Object.assign({},null==n?void 0:n.params),{method:t})}))}catch(e){if(e instanceof hr&&422===(null===(i=e.body)||void 0===i?void 0:i.status))throw new ki("Afterpay can't process your payment for this order, please try another payment method");throw e}})}}var jd,Ud;!function(e){e.PROD="//portal.afterpay.com/afterpay-async.js",e.SANDBOX="//portal-sandbox.afterpay.com/afterpay-async.js"}(jd||(jd={})),function(e){e.PROD="//portal.afterpay.com/afterpay-async.js",e.SANDBOX="//portal.sandbox.afterpay.com/afterpay-async.js"}(Ud||(Ud={}));class qd{constructor(e){this._scriptLoader=e}load(e,t){return n=this,i=void 0,o=function*(){const n=e.config.testMode||!1,i=this._getScriptURI(t,n);return this._scriptLoader.loadScript(i).then(()=>{if(!function(e){return"AfterPay"in e}(window))throw new Oi;return window.AfterPay})},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}_getScriptURI(e,t){return"US"===e?t?Ud.SANDBOX:Ud.PROD:t?jd.SANDBOX:jd.PROD}}const Vd=Rt(e=>new Bd(e,new qd(o())),[{gateway:"afterpay"},{id:"afterpay"}]);var Gd=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Hd{constructor(e,t){this.paymentIntegrationService=e,this.amazonPayV2PaymentProcessor=t}initialize(e){return Gd(this,void 0,void 0,function*(){const{methodId:t,amazonpay:n}=e;if(!t)throw new ki('Unable to proceed because "methodId" argument is not provided.');const i=this.paymentIntegrationService.getState(),{features:r}=i.getStoreConfigOrThrow().checkoutSettings,o=i.getPaymentMethodOrThrow(t),a=o.initializationData||{},{paymentToken:s="",region:d="",isButtonMicroTextDisabled:c}=a;if(yield this.amazonPayV2PaymentProcessor.initialize(o),this._isReadyToPay(s))(null==n?void 0:n.editButtonId)&&this._bindEditButton(n.editButtonId,s,"changePayment",this._isModalFlow(d));else{const{id:e}=this._createContainer();if(this._amazonPayButton=this.amazonPayV2PaymentProcessor.renderAmazonPayButton({checkoutState:i,containerId:e,decoupleCheckoutInitiation:this._isOneTimeTransaction(r,d.toUpperCase()),methodId:t,placement:Si.Checkout,isButtonMicroTextDisabled:c}),!this._amazonPayButton)throw new ki("Unable to render the Amazon Pay button to an invalid HTML container element.")}})}execute(e,t){return Gd(this,void 0,void 0,function*(){const{payment:n}=e;if(!n)throw new fo(["payment"]);const{methodId:i}=n,r=this.paymentIntegrationService.getState(),{features:o}=r.getStoreConfigOrThrow().checkoutSettings,a=r.getPaymentMethodOrThrow(i).initializationData||{},{paymentToken:s="",region:d=""}=a;if(this._isReadyToPay(s)||this._isOneTimeTransaction(o,d.toUpperCase())){const n={methodId:i,paymentData:{nonce:s||"apb"}};yield this.paymentIntegrationService.submitOrder(e,t);try{return void(yield this.paymentIntegrationService.submitPayment(n))}catch(e){if(!(wa(e)&&(c=e.body,"object"==typeof c&&null!==c&&"status"in c&&"additional_action_required"in c&&"additional_action_required"===c.status&&"data"in c.additional_action_required&&"redirect_url"in c.additional_action_required.data&&"string"==typeof c.additional_action_required.data.redirect_url)))throw e;const{additional_action_required:t}=e.body,{redirect_url:n}=t.data;if(s)return new Promise(()=>window.location.assign(n));this.amazonPayV2PaymentProcessor.prepareCheckout(JSON.parse(n))}}var c;return this._getAmazonPayButton().click(),this._isModalFlow(d)?new Promise((e,t)=>{const n=()=>{window.removeEventListener("focus",n),t(new nr("Shopper needs to login to Amazonpay to continue"))};window.addEventListener("focus",n)}):new Promise(V)})}finalize(){return Promise.reject(new Id)}deinitialize(){return Gd(this,void 0,void 0,function*(){yield this.amazonPayV2PaymentProcessor.deinitialize(),this._amazonPayButton=void 0})}_bindEditButton(e,t,n,i){const r=document.getElementById(e);if(r&&r.parentNode){if(!i){const e=r.cloneNode(!0);r.parentNode.replaceChild(e,r),e.addEventListener("click",()=>{this._showLoadingSpinner()})}this.amazonPayV2PaymentProcessor.bindButton(e,t,n)}}_isModalFlow(e){return"us"===e}_showLoadingSpinner(){return Gd(this,void 0,void 0,function*(){yield this.paymentIntegrationService.widgetInteraction(()=>new Promise(V))})}_createContainer(){let e=document.getElementById("AmazonPayButton");return e||(e=document.createElement("div"),e.id="AmazonPayButton",e.style.display="none",document.body.appendChild(e))}_getAmazonPayButton(){return yi(this._amazonPayButton,()=>new gi(hi.PaymentNotInitialized))}_isOneTimeTransaction(e,t){return this.amazonPayV2PaymentProcessor.isPh4Enabled(e,t)&&e["INT-6399.amazon_pay_apb"]}_isReadyToPay(e){return!!e}}const $d=Rt(e=>new Hd(e,Ai()),[{id:"amazonpay"}]);var Wd,Yd=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};!function(e){e.Shipping="Shipping",e.Subtotal="Subtotal",e.StoreCredit="Store Credit"}(Wd||(Wd={}));class Kd{constructor(e,t,n,i,r){this._requestSender=e,this._paymentIntegrationService=t,this._sessionFactory=n,this._braintreeSdk=i,this._applePayScriptLoader=r,this._shippingLabel=Wd.Shipping,this._subTotalLabel=Wd.Subtotal,this._storeCreditLabel=Wd.StoreCredit}initialize(e){var t,n,i,r;return Yd(this,void 0,void 0,function*(){if(!(null==e?void 0:e.methodId))throw new ki('Unable to submit payment because "options.methodId" argument is not provided.');const{methodId:o}=e;yield this._applePayScriptLoader.loadSdk(),this._shippingLabel=(null===(t=e.applepay)||void 0===t?void 0:t.shippingLabel)||Wd.Shipping,this._subTotalLabel=(null===(n=e.applepay)||void 0===n?void 0:n.subtotalLabel)||Wd.Subtotal,this._storeCreditLabel=(null===(i=e.applepay)||void 0===i?void 0:i.storeCreditLabel)||Wd.StoreCredit;const a=(yield this._paymentIntegrationService.loadPaymentMethod(o)).getPaymentMethodOrThrow(o);(null===(r=a.initializationData)||void 0===r?void 0:r.gateway)===Xi.BRAINTREE&&(yield this._initializeBraintreeSdk())})}execute(e,t){return Yd(this,void 0,void 0,function*(){const{payment:n}=e,i=this._paymentIntegrationService.getState();if(!n)throw new fo(["payment"]);const{methodId:r}=n,o=i.getPaymentMethodOrThrow(r),a=this._getBaseRequest(i,o),s=this._sessionFactory.create(a);return yield this._paymentIntegrationService.submitOrder({useStoreCredit:e.useStoreCredit},t),s.begin(),new Promise((e,t)=>{this._handleApplePayEvents(s,o,{resolve:e,reject:t})})})}finalize(){return Promise.reject(new Id)}deinitialize(){return Promise.resolve()}_getBaseRequest(e,t){const n=e.getCheckoutOrThrow(),i=e.getCartOrThrow(),r=e.getStoreConfigOrThrow(),{storeProfile:{storeCountryCode:o,storeName:a}}=r,{currency:{code:s,decimalPlaces:d}}=i,{initializationData:{merchantCapabilities:c,supportedNetworks:l}}=t,{grandTotal:u,isStoreCreditApplied:h,outstandingBalance:p}=n,m=[{label:this._subTotalLabel,amount:`${n.subtotal.toFixed(d)}`}];if(n.taxes.forEach(e=>m.push({label:e.name,amount:`${e.amount.toFixed(d)}`})),m.push({label:this._shippingLabel,amount:`${n.shippingCostTotal.toFixed(d)}`}),h){const{storeCredit:t}=e.getCustomerOrThrow();m.push({label:this._storeCreditLabel,amount:`-${Math.min(u,t).toFixed(d)}`})}return{countryCode:o,currencyCode:s,merchantCapabilities:c,supportedNetworks:l,lineItems:m,total:{label:a,amount:`${p.toFixed(d)}`,type:"final"}}}_handleApplePayEvents(e,t,n){e.onvalidatemerchant=n=>Yd(this,void 0,void 0,function*(){try{const{body:i}=yield this._onValidateMerchant(t,n);e.completeMerchantValidation(i)}catch(e){throw new Error("Merchant validation failed")}}),e.oncancel=()=>Yd(this,void 0,void 0,function*(){return n.reject(new nr("Continue with applepay"))}),e.onpaymentauthorized=i=>this._onPaymentAuthorized(i,e,t,n)}_onValidateMerchant(e,t){return Yd(this,void 0,void 0,function*(){const n=[`validationUrl=${t.validationURL}`,`merchantIdentifier=${e.initializationData.merchantId}`,`displayName=${e.initializationData.storeName}`,`domainName=${window.location.hostname}`].join("&");return this._requestSender.post(`${e.initializationData.paymentsUrl}/api/public/v1/payments/applepay/validate_merchant`,{credentials:!1,headers:{Accept:"application/json","Content-Type":"application/x-www-form-urlencoded","X-XSRF-TOKEN":null},body:n})})}_onPaymentAuthorized(e,t,n,i){var r;return Yd(this,void 0,void 0,function*(){const{token:o}=e.payment;let a;(null===(r=n.initializationData)||void 0===r?void 0:r.gateway)===Xi.BRAINTREE&&(a=yield this._getBraintreeDeviceData());const s={methodId:n.id,paymentData:{deviceSessionId:a,formattedPayload:{apple_pay_token:{payment_data:o.paymentData,payment_method:o.paymentMethod,transaction_id:o.transactionIdentifier}}}};try{return yield this._paymentIntegrationService.submitPayment(s),t.completePayment(ApplePaySession.STATUS_SUCCESS),i.resolve()}catch(e){return t.completePayment(ApplePaySession.STATUS_FAILURE),i.reject(new gi(hi.PaymentNotInitialized))}})}_getBraintreeDeviceData(){return Yd(this,void 0,void 0,function*(){try{const{deviceData:e}=yield this._braintreeSdk.getDataCollectorOrThrow();return e}catch(e){}})}_initializeBraintreeSdk(){return Yd(this,void 0,void 0,function*(){const e=this._paymentIntegrationService.getState();let t=e.getPaymentMethod(Xi.BRAINTREE_FASTLANE)||e.getPaymentMethod(Xi.BRAINTREE);t||(yield this._paymentIntegrationService.loadPaymentMethod(Xi.BRAINTREE),t=e.getPaymentMethod(Xi.BRAINTREE)),t&&t.clientToken&&t.initializationData&&this._braintreeSdk.initialize(t.clientToken)})}}const Jd=Rt(e=>{const{getHost:t}=e.getState(),i=new Ri(e);return new Kd(n({host:t()}),e,new sr,new Zi(new tr(a(),window,i)),new dr(new r))},[{id:"applepay"}]),Zd={"background-color":"rgba(0, 0, 0, 0.4)","z-index":"1000"};function Qd(e){return"object"==typeof e&&null!==e&&"bigpayToken"in e&&"defaultInstrument"in e&&"provider"in e&&"trustedShippingAddress"in e&&"method"in e&&"type"in e}var Xd=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class ec{constructor(e,t,n){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t,this.loadingIndicator=n}initialize(e){var t,n;return Xd(this,void 0,void 0,function*(){const{methodId:i,bigcommerce_payments:r}=e||{};if(this.bigcommerce_payments=r,!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!r)throw new ki('Unable to initialize payment because "options.bigcommerce_payments" argument is not provided.');yield this.paymentIntegrationService.loadPaymentMethod(i);const o=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(i);this.loadingIndicatorContainer=r.container.split("#")[1],(null===(t=o.initializationData)||void 0===t?void 0:t.orderId)?this.orderId=null===(n=o.initializationData)||void 0===n?void 0:n.orderId:(yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(i),r.onInit&&"function"==typeof r.onInit&&r.onInit(()=>this.renderButton(i,r)),(void 0===r.shouldRenderPayPalButtonOnInitialization||r.shouldRenderPayPalButtonOnInitialization)&&this.renderButton(i,r))})}execute(e,t){return Xd(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),{onError:r}=this.bigcommerce_payments||{};if(!n)throw new fo(["payment"]);const{methodId:o,paymentData:a}=n;if(this.isPayPalVaultedInstrumentPaymentData(a)&&!this.orderId&&(this.orderId=yield this.createOrder()),!this.orderId)throw new co;const s=this.isPayPalVaultedInstrumentPaymentData(a)?this.prepareVaultedInstrumentPaymentPayload(o,this.orderId,a):this.preparePaymentPayload(o,this.orderId,a);try{yield this.paymentIntegrationService.submitOrder(i,t),yield this.paymentIntegrationService.submitPayment(s)}catch(e){return this.isProviderError(e)&&(yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(n.methodId),yield new Promise((e,t)=>{var i;this.bigcommerce_payments&&(null===(i=this.paypalButton)||void 0===i||i.close(),this.renderButton(n.methodId,this.bigcommerce_payments),this.handleError(new Error("INSTRUMENT_DECLINED"),r)),t()})),this.handleError(e,r),Promise.reject()}})}finalize(){return Promise.reject(new Id)}deinitialize(){var e;return this.orderId=void 0,null===(e=this.paypalButton)||void 0===e||e.close(),Promise.resolve()}prepareVaultedInstrumentPaymentPayload(e,t,n){const{instrumentId:i,shouldSetAsDefaultInstrument:r}=n,o=!this.isTrustedVaultingFlow(n);return o?{methodId:e,paymentData:{shouldSaveInstrument:o,shouldSetAsDefaultInstrument:r,formattedPayload:{paypal_account:{order_id:t}}}}:{methodId:e,paymentData:{instrumentId:i,shouldSetAsDefaultInstrument:r,formattedPayload:{paypal_account:{order_id:t},bigpay_token:{token:i}}}}}preparePaymentPayload(e,t,n){const{shouldSaveInstrument:i=!1,shouldSetAsDefaultInstrument:r=!1}=Ad(n)?n:{};return{methodId:e,paymentData:{shouldSaveInstrument:i,shouldSetAsDefaultInstrument:r,formattedPayload:{paypal_account:{order_id:t}}}}}renderButton(e,t){const n=this.bigCommercePaymentsIntegrationService.getPayPalSdkOrThrow(),i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{paymentButtonStyles:r}=i.initializationData||{},{checkoutPaymentButtonStyles:o}=r||{},{container:a,onError:s,onRenderButton:d,onValidate:c,submitForm:l}=t,u={fundingSource:n.FUNDING.PAYPAL,style:this.bigCommercePaymentsIntegrationService.getValidButtonStyle(o),createOrder:()=>this.createOrder(),onClick:(e,t)=>this.handleClick(t,c),onApprove:e=>this.handleApprove(e,l),onError:e=>this.handleError(e,s),onCancel:()=>this.toggleLoadingIndicator(!1)};this.paypalButton=n.Buttons(u),this.paypalButton.isEligible()&&(d&&"function"==typeof d&&d(),this.paypalButton.render(a))}handleClick(e,t){return Xd(this,void 0,void 0,function*(){const{resolve:n,reject:i}=e;yield t(()=>(this.toggleLoadingIndicator(!0),n()),i)})}handleApprove({orderID:e},t){this.orderId=e,t()}handleError(e,t){this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}createOrder(){return Xd(this,void 0,void 0,function*(){const e=this.getFieldsValues();return this.bigCommercePaymentsIntegrationService.createOrder("bigcommerce_paymentscheckout",{shouldSaveInstrument:(null==e?void 0:e.shouldSaveInstrument)||!1})})}getFieldsValues(){const{getFieldsValues:e}=this.bigcommerce_payments||{};return"function"==typeof e?e():void 0}isTrustedVaultingFlow(e){if(e&&Cd(e)){const t=this.paymentIntegrationService.getState().getInstruments(),n=null==t?void 0:t.find(t=>Qd(t)&&t.bigpayToken===e.instrumentId);return!(Qd(n)&&!n.trustedShippingAddress)}return!1}toggleLoadingIndicator(e){e&&this.loadingIndicatorContainer?this.loadingIndicator.show(this.loadingIndicatorContainer):this.loadingIndicator.hide()}isPayPalVaultedInstrumentPaymentData(e){return!!e&&Cd(e)&&Ad(e)}isProviderError(e){var t,n,i;return!!function(e){return"object"==typeof e&&null!==e&&"errors"in e}(e)&&"INSTRUMENT_DECLINED"===(null===(i=null===(n=((null===(t=null==e?void 0:e.errors)||void 0===t?void 0:t.filter(e=>e.provider_error))||[])[0])||void 0===n?void 0:n.provider_error)||void 0===i?void 0:i.code)}}const tc=Rt(e=>new ec(e,Tr(e),new sd({containerStyles:Zd})),[{id:"bigcommerce_payments"}]);function nc(e){return!!e&&("authenticationState"in e||"addresses"in e||"instruments"in e)}var ic=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class rc{constructor(e,t,n,i){this.paymentIntegrationService=e,this.bigCommercePaymentsRequestSender=t,this.bigCommercePaymentsSdk=n,this.bigCommercePaymentsFastlaneUtils=i}initialize(e){var t,n;return ic(this,void 0,void 0,function*(){const{methodId:i,bigcommerce_payments_fastlane:r}=e;if(!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(this.methodId=i,!r)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_fastlane" argument is not provided.');if(this.bigcommerce_payments_fastlane=r,!r.onInit||"function"!=typeof r.onInit)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_fastlane.onInit" argument is not provided or it is not a function.');if(!r.onChange||"function"!=typeof r.onChange)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_fastlane.onChange" argument is not provided or it is not a function.');yield this.paymentIntegrationService.loadPaymentMethod(i);const o=this.paymentIntegrationService.getState(),a=o.getCartOrThrow(),s=o.getPaymentMethodOrThrow(i),{isDeveloperModeApplicable:d,isFastlaneStylingEnabled:c}=s.initializationData||{};this.threeDSVerificationMethod=null===(t=s.initializationData)||void 0===t?void 0:t.threeDSVerificationMethod,this.paypalFastlaneSdk=yield this.bigCommercePaymentsSdk.getPayPalFastlaneSdk(s,a.currency.code,a.id);const l=Zr(c?null===(n=null==s?void 0:s.initializationData)||void 0===n?void 0:n.fastlaneStyles:{},null==r?void 0:r.styles);yield this.bigCommercePaymentsFastlaneUtils.initializePayPalFastlane(this.paypalFastlaneSdk,!!d,l),this.shouldRunAuthenticationFlow()&&(yield this.runPayPalAuthenticationFlowOrThrow(i)),yield this.initializePayPalPaymentComponent(),r.onInit(e=>this.renderPayPalPaymentComponent(e)),r.onChange(()=>this.handlePayPalStoredInstrumentChange(i))})}execute(e,t){return ic(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);const{paymentData:r,methodId:o}=n,a=r&&Cd(r);try{yield this.paymentIntegrationService.submitOrder(i,t);const e=a?yield this.prepareVaultedInstrumentPaymentPayload(o,r):yield this.preparePaymentPayload(o,r);yield this.paymentIntegrationService.submitPayment(e),this.bigCommercePaymentsFastlaneUtils.removeStorageSessionId()}catch(e){if(function(e){return"object"==typeof e&&null!==e&&"message"in e&&"response"in e&&"name"in e.response}(e)&&"INVALID_REQUEST"===e.response.name){const e={translationKey:"payment.errors.invalid_request_error"};return this.handleError(e),Promise.reject()}if(e instanceof Error&&"FastlaneError"!==e.name)throw e;return Promise.reject()}})}finalize(){return Promise.reject(new Id)}deinitialize(){return ic(this,void 0,void 0,function*(){return Promise.resolve()})}shouldRunAuthenticationFlow(){const e=this.paymentIntegrationService.getState(),t=e.getCartOrThrow(),n=e.getCustomerOrThrow(),i=e.getPaymentProviderCustomer(),r=nc(i)?i:{},o=this.bigCommercePaymentsFastlaneUtils.getStorageSessionId();return!(!n.isGuest||(null==r?void 0:r.authenticationState)===qr.CANCELED||(null==r?void 0:r.authenticationState)||o!==t.id)}runPayPalAuthenticationFlowOrThrow(e){return ic(this,void 0,void 0,function*(){try{const t=this.paymentIntegrationService.getState(),n=t.getCartOrThrow(),i=t.getCustomer(),r=t.getBillingAddress(),o=(null==i?void 0:i.email)||(null==r?void 0:r.email)||"",{customerContextId:a}=yield this.bigCommercePaymentsFastlaneUtils.lookupCustomerOrThrow(o),s=yield this.bigCommercePaymentsFastlaneUtils.triggerAuthenticationFlowOrThrow(a),{authenticationState:d,addresses:c,instruments:l}=this.bigCommercePaymentsFastlaneUtils.mapPayPalFastlaneProfileToBcCustomerData(e,s);yield this.paymentIntegrationService.updatePaymentProviderCustomer({authenticationState:d,addresses:c,instruments:l}),s.authenticationState===qr.CANCELED?this.bigCommercePaymentsFastlaneUtils.removeStorageSessionId():this.bigCommercePaymentsFastlaneUtils.updateStorageSessionId(n.id)}catch(e){}})}initializePayPalPaymentComponent(){return ic(this,void 0,void 0,function*(){const e=this.paymentIntegrationService.getState().getBillingAddressOrThrow(),t=e.phone,n=`${e.firstName} ${e.lastName}`.trim(),i=this.bigCommercePaymentsFastlaneUtils.getPayPalFastlaneOrThrow(),r={fields:Object.assign({cardholderName:{prefill:n,enabled:!0}},t&&{phoneNumber:{prefill:t}})};this.paypalComponentMethods=yield i.FastlaneCardComponent(r)})}renderPayPalPaymentComponent(e){const t=this.getPayPalComponentMethodsOrThrow();if(!e)throw new ki('Unable to render card component because "container" argument is not provided.');t.render(e)}getPayPalComponentMethodsOrThrow(){if(!this.paypalComponentMethods)throw new Oi;return this.paypalComponentMethods}prepareVaultedInstrumentPaymentPayload(e,t){return ic(this,void 0,void 0,function*(){const{instrumentId:n}=t,i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),r=this.isBigcommercePaymentsFastlaneThreeDSAvailable()&&i.config.is3dsEnabled;r||(yield this.createOrder(n));const o=r?yield this.get3DSNonce(n):n;return{methodId:e,paymentData:{formattedPayload:{paypal_fastlane_token:{order_id:this.orderId,token:o}}}}})}preparePaymentPayload(e,t){return ic(this,void 0,void 0,function*(){const n=this.paymentIntegrationService.getState(),i=n.getBillingAddressOrThrow(),r=n.getPaymentMethodOrThrow(e),o=`${i.firstName} ${i.lastName}`.trim(),{getPaymentToken:a}=this.getPayPalComponentMethodsOrThrow(),{id:s}=yield a({name:{fullName:o},billingAddress:this.bigCommercePaymentsFastlaneUtils.mapBcToPayPalAddress(i)}),d=this.isBigcommercePaymentsFastlaneThreeDSAvailable()&&r.config.is3dsEnabled;d||(yield this.createOrder(s));const{shouldSaveInstrument:c=!1,shouldSetAsDefaultInstrument:l=!1}=Ad(t)?t:{},u=d?yield this.get3DSNonce(s):s;return{methodId:e,paymentData:Object.assign(Object.assign({},t),{shouldSaveInstrument:c,shouldSetAsDefaultInstrument:l,formattedPayload:{paypal_fastlane_token:{order_id:this.orderId,token:u}}})}})}createOrder(e){return ic(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState().getCartOrThrow().id;if(this.methodId){const{orderId:n}=yield this.bigCommercePaymentsRequestSender.createOrder(this.methodId,{cartId:t,fastlaneToken:e});this.orderId=n}})}get3DSNonce(e){var t;return ic(this,void 0,void 0,function*(){const n=this.paymentIntegrationService.getState(),i=n.getCartOrThrow(),r=n.getOrderOrThrow(),o=n.getStoreConfigOrThrow().links.checkoutLink,a=null===(t=this.paypalFastlaneSdk)||void 0===t?void 0:t.ThreeDomainSecureClient;if(!a)throw new Oi;const s={amount:r.orderAmount.toFixed(2),currency:i.currency.code,nonce:e,threeDSRequested:"SCA_ALWAYS"===this.threeDSVerificationMethod,transactionContext:{experience_context:{locale:"en-US",return_url:o,cancel_url:o}}};if(yield a.isEligible(s)){const{liabilityShift:t,authenticationState:n,nonce:i}=yield a.show();if(t===pr.No||t===pr.Unknown)throw new co;if(yield this.createOrder(e),n===Lr.Succeeded)return i;if(n===Lr.Errored)throw new co;if(n===Lr.Cancelled)throw console.error("3DS check was canceled"),new co}return e})}handlePayPalStoredInstrumentChange(e){return ic(this,void 0,void 0,function*(){const t=this.bigCommercePaymentsFastlaneUtils.getPayPalFastlaneOrThrow(),{selectionChanged:n,selectedCard:i}=yield t.profile.showCardSelector();if(n){const t=this.paymentIntegrationService.getState().getPaymentProviderCustomer(),n=nc(t)?t:{},r=this.bigCommercePaymentsFastlaneUtils.mapPayPalToBcInstrument(e,i)[0];return yield this.paymentIntegrationService.updatePaymentProviderCustomer(Object.assign(Object.assign({},n),{instruments:[r]})),r}})}isBigcommercePaymentsFastlaneThreeDSAvailable(){return Wt(this.paymentIntegrationService.getState().getStoreConfigOrThrow().checkoutSettings.features,"PROJECT-7080.bcp_fastlane_three_ds")}handleError(e){var t;(null===(t=this.bigcommerce_payments_fastlane)||void 0===t?void 0:t.onError)&&"function"==typeof this.bigcommerce_payments_fastlane.onError&&this.bigcommerce_payments_fastlane.onError(e)}}const oc=Rt(e=>{const{getHost:t}=e.getState();return new rc(e,new Er(n({host:t()})),Hr(),Kr())},[{id:"bigcommerce_payments_fastlane"}]),ac=function({styles:e}){const t={};return e.color&&(t.color=e.color),e.layout&&(t.layout=e.layout),(e["logo-type"]||e["logo-position"])&&(t.logo={},e["logo-type"]&&(t.logo.type=e["logo-type"]),e["logo-position"]&&(t.logo.position=e["logo-position"])),e.ratio&&(t.ratio=e.ratio),(e["text-color"]||e["text-size"])&&(t.text={},e["text-color"]&&(t.text.color=e["text-color"]),e["text-size"]&&(t.text.size=+e["text-size"])),t};var sc=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class dc{constructor(e,t,n,i){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t,this.loadingIndicator=n,this.paypalSdkHelper=i}initialize(e){return sc(this,void 0,void 0,function*(){const{methodId:t,bigcommerce_payments_paylater:n}=e||{};if(!t)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!n)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_paylater" argument is not provided.');yield this.paymentIntegrationService.loadPaymentMethod(t);const i=this.paymentIntegrationService.getState(),r=i.getPaymentMethodOrThrow(t),{paypalBNPLConfiguration:o=[],orderId:a}=r.initializationData||{},{bannerContainerId:s,container:d}=n;if(void 0!==s){if(!document.getElementById(s))return void console.error("Unable to create banner without valid banner container ID.");const e=o&&o.find(({id:e})=>"checkout"===e);if(!(null==e?void 0:e.status))return;const t=yield this.paypalSdkHelper.getPayPalMessages(r,i.getCartOrThrow().currency.code);return this.renderMessages(t,s,e)}a?this.orderId=a:(yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(t),this.loadingIndicatorContainer=null==d?void 0:d.split("#")[1],this.renderButton(t,n))})}execute(e,t){return sc(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);if(!this.orderId)throw new co;yield this.paymentIntegrationService.submitOrder(i,t),yield this.bigCommercePaymentsIntegrationService.submitPayment(n.methodId,this.orderId)})}finalize(){return Promise.reject(new Id)}deinitialize(){var e;return this.orderId=void 0,null===(e=this.bigCommercePaymentsButtons)||void 0===e||e.close(),Promise.resolve()}renderButton(e,t){if(!(null==t?void 0:t.container))throw new ki('Unable to initialize payment because "container" argument is not provided.');const n=this.bigCommercePaymentsIntegrationService.getPayPalSdkOrThrow(),i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{paymentButtonStyles:r}=i.initializationData||{},{checkoutPaymentButtonStyles:o}=r||{},{container:a,onError:s,onRenderButton:d,onValidate:c,submitForm:l}=t,u=[n.FUNDING.PAYLATER,n.FUNDING.CREDIT];let h=!1;u.forEach(e=>{if(h)return;const t={fundingSource:e,style:this.bigCommercePaymentsIntegrationService.getValidButtonStyle(o),createOrder:()=>this.bigCommercePaymentsIntegrationService.createOrder("bigcommerce_payments_paylater"),onClick:(e,t)=>this.handleClick(t,c),onApprove:e=>this.handleApprove(e,l),onCancel:()=>this.toggleLoadingIndicator(!1),onError:e=>this.handleError(e,s)};if(this.bigCommercePaymentsButtons=n.Buttons(t),this.bigCommercePaymentsButtons.isEligible()||e!==n.FUNDING.PAYLATER){if(!this.bigCommercePaymentsButtons.isEligible()&&e===n.FUNDING.CREDIT)throw new Ti(`BigCommercePayments ${e} is not available for your region. Please use BigCommercePayments Checkout instead.`);d&&"function"==typeof d&&d(),this.bigCommercePaymentsButtons.render(a),h=!0}})}handleClick(e,t){return sc(this,void 0,void 0,function*(){const{resolve:n,reject:i}=e;t&&"function"==typeof t&&(yield t(()=>(this.toggleLoadingIndicator(!0),n()),i))})}handleApprove({orderID:e},t){this.orderId=e,t&&"function"==typeof t&&t()}handleError(e,t){this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}toggleLoadingIndicator(e){e&&this.loadingIndicatorContainer?this.loadingIndicator.show(this.loadingIndicatorContainer):this.loadingIndicator.hide()}renderMessages(e,t,n){const i={amount:this.paymentIntegrationService.getState().getCheckoutOrThrow().outstandingBalance,placement:"payment",style:ac(n)};e.Messages(i).render(`#${t}`)}}const cc=Rt(e=>new dc(e,Tr(e),new sd({containerStyles:Zd}),Hr()),[{id:"bigcommerce_payments_paylater"}]);class lc extends hr{constructor(e){super(e,{message:"The request has timed out or aborted."}),this.name="TimeoutError",this.type="timeout"}}var uc=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class hc{constructor(e,t,n,i=3e3,r=3e5){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t,this.loadingIndicator=n,this.pollingInterval=i,this.maxPollingIntervalTime=r,this.pollingTimer=0,this.stopPolling=V}initialize(e){return uc(this,void 0,void 0,function*(){const{gatewayId:t,methodId:n,bigcommerce_payments_ratepay:i}=e;if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.gatewayId" argument is not provided.');if(!i)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_ratepay" argument is not provided.');const{legalTextContainer:r,container:o,loadingContainerId:a}=i;if(!o)throw new ki('Unable to initialize payment because "options.container" argument is not provided.');if(!r)throw new ki('Unable to initialize payment because "options.legalTextContainer" argument is not provided.');if(!a)throw new ki('Unable to initialize payment because "options.loadingContainerId" argument is not provided.');this.loadingIndicatorContainer=a;const s=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(n,t),{merchantId:d}=s.initializationData||{};if(!d)throw new ki("Unable to initialize payment because merchantId argument is not provided.");this.bigcommerce_payments_ratepay=i,yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(n),this.createFraudNetScript(d,n,t),this.loadFraudnetConfig(),this.renderLegalText(r,o)})}execute(e,t){return uc(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),{getFieldsValues:r}=this.bigcommerce_payments_ratepay||{};if(!n)throw new fo(["payment"]);if(!r||"function"!=typeof r)throw new ki('Unable to initialize payment because "options.getFieldsValues" argument is not provided.');this.toggleLoadingIndicator(!0);try{const e=yield this.bigCommercePaymentsIntegrationService.createOrder("bigcommerce_payments_apmscheckout",{metadataId:this.guid}),{ratepayBirthDate:o,ratepayPhoneNumber:a,ratepayPhoneCountryCode:s}=r(),d={formattedPayload:{vault_payment_instrument:null,set_as_default_stored_instrument:null,device_info:null,method_id:n.methodId,rate_pay:{birth_date:this.normalizeDate(o),phone:{national_number:a,country_code:s.split("+")[1]}},paypal_account:{order_id:e}}};return yield this.paymentIntegrationService.submitOrder(i,t),yield this.paymentIntegrationService.submitPayment({methodId:n.methodId,paymentData:d}),yield new Promise((e,t)=>{this.initializePollingMechanism(n.methodId,e,t,n.gatewayId)})}catch(e){return this.handleError(e),new Promise((e,t)=>t())}})}finalize(){return Promise.reject(new Id)}deinitialize(){const{legalTextContainer:e}=this.bigcommerce_payments_ratepay||{},t=document.querySelectorAll('[data-id="fraudnetScript"]')[0],n=document.querySelectorAll('[data-id="fraudnetConfig"]')[0];if(this.deinitializePollingMechanism(),t.remove(),n.remove(),e){const t=document.getElementById(e);null==t||t.remove()}return Promise.resolve()}normalizeDate(e){const t=this.formatDate(e.getDate()),n=this.formatDate(e.getMonth()+1);return`${e.getFullYear()}-${n}-${t}`}formatDate(e){return`${e<10?0:""}${e}`}renderLegalText(e,t){const n=e,i=t.split("#")[1],r=document.getElementById(i),o=null==r?void 0:r.parentNode,a=document.createElement("div");a.style.marginBottom="20px",a.setAttribute("id",n),null==o||o.prepend(a);const s=this.bigCommercePaymentsIntegrationService.getPayPalSdkOrThrow(),d=s.Legal({fundingSource:s.Legal.FUNDING.PAY_UPON_INVOICE});if(!document.getElementById(n))throw new ki('Unable to initialize payment because "legalTextContainerElement" argument is not found.');d.render(`#${n}`)}handleError(e){const{onError:t}=this.bigcommerce_payments_ratepay||{};this.resetPollingMechanism(),this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}createFraudNetScript(e,t,n){const i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(t,n),{testMode:r}=i.config,o=document.createElement("script");o.setAttribute("type","application/json"),o.setAttribute("fncls","fnparams-dede7cc5-15fd-4c75-a9f4-36c430ee3a99"),o.setAttribute("data-id","fraudnetScript"),this.guid=this.generateGUID();const a={f:this.guid,s:`${e}_checkout-page`,sandbox:r};o.innerHTML=JSON.stringify(a),document.body.appendChild(o)}generateGUID(){let e="";for(let t=0;t<32;t+=1)e+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"[Math.floor(62*Math.random())];return e}loadFraudnetConfig(){const e=document.createElement("script");e.setAttribute("data-id","fraudnetConfig"),e.src="https://c.paypal.com/da/r/fb.js",document.body.appendChild(e)}reinitializeStrategy(e){return uc(this,void 0,void 0,function*(){yield this.deinitialize(),yield this.initialize(e)})}initializePollingMechanism(e,t,n,i){return uc(this,void 0,void 0,function*(){yield new Promise((e,t)=>{const n=setTimeout(e,this.pollingInterval);this.stopPolling=()=>(clearTimeout(n),this.toggleLoadingIndicator(!1),t())});try{this.pollingTimer+=this.pollingInterval;const r=yield this.bigCommercePaymentsIntegrationService.getOrderStatus("bigcommerce_payments_apms",{params:{useMetadata:!0}}),o=r===Sr.PollingStop,a=r===Sr.PollingError;if(o)return this.deinitializePollingMechanism(),t();if(a)return n();if(!o&&this.pollingTimer<this.maxPollingIntervalTime)return yield this.initializePollingMechanism(e,t,n,i);yield this.reinitializeStrategy({methodId:e,gatewayId:i,bigcommerce_payments_ratepay:this.bigcommerce_payments_ratepay}),this.handleError(new lc)}catch(e){this.handleError(e),n()}})}deinitializePollingMechanism(){this.stopPolling(),this.pollingTimer=0}resetPollingMechanism(){this.deinitializePollingMechanism()}toggleLoadingIndicator(e){e&&this.loadingIndicatorContainer?this.loadingIndicator.show(this.loadingIndicatorContainer):this.loadingIndicator.hide()}}const pc=Rt(e=>new hc(e,Tr(e),new sd({containerStyles:Object.assign(Object.assign({},Zd),{position:"fixed"})})),[{gateway:"bigcommerce_payments_apms",id:"ratepay"}]);var mc;!function(e){e.CardCode="cardCode",e.CardCodeVerification="cardCodeVerification",e.CardExpiry="cardExpiry",e.CardName="cardName",e.CardNumber="cardNumber",e.CardNumberVerification="cardNumberVerification",e.CardExpiryVerification="cardExpiryVerification"}(mc||(mc={}));const yc=mc;function gc(e){return yc.CardNumber in e&&yc.CardName in e&&yc.CardExpiry in e}function vc(e){return yc.CardNumberVerification in e&&yc.CardCodeVerification in e&&yc.CardExpiryVerification in e}var fc=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Sc{constructor(e,t,n,i){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t,this.bigCommercePaymentsSdk=n,this.bigCommercePaymentsFastlaneUtils=i}initialize(e){return fc(this,void 0,void 0,function*(){const{methodId:t,bigcommerce_payments_creditcards:n}=e,i=n,{form:r,onCreditCardFieldsRenderingError:o,onLoadComplete:a}=i||{};if(!t)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!r)throw new ki('Unable to proceed because "options.bigcommerce_payments_creditcards.form" argument is not provided.');this.hostedFormOptions=r,this.isCreditCardForm=gc(r.fields),this.isCreditCardVaultedForm=vc(r.fields)&&!this.hasUndefinedValues(),yield this.paymentIntegrationService.loadPaymentMethod(t),yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(t,void 0,!0,!0),null==a||a(),(this.isCreditCardForm||this.isCreditCardVaultedForm)&&(yield this.initializeFields(r,o)),this.shouldInitializePayPalFastlane(t)&&(yield this.initializePayPalFastlaneOrThrow(t))})}execute(e,t){return fc(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),{methodId:r,paymentData:o}=n||{};if(!n||!r)throw new fo(["payment"]);if(this.executionPaymentData=o,this.isCreditCardForm||this.isCreditCardVaultedForm)yield this.validateHostedFormOrThrow(),yield this.submitHostedForm();else{const{orderId:e}=yield this.bigCommercePaymentsIntegrationService.createOrderCardFields("bigcommerce_payments_creditcardscheckout",this.getInstrumentParams());this.returnedOrderId=e}const a=this.preparePaymentPayload(r,o,this.returnedOrderId,this.returnedVaultedToken);yield this.paymentIntegrationService.submitOrder(i,t),yield this.paymentIntegrationService.submitPayment(a)})}finalize(){return Promise.reject(new Id)}deinitialize(){var e,t,n,i;return fc(this,void 0,void 0,function*(){return yield null===(e=this.cvvField)||void 0===e?void 0:e.close(),yield null===(t=this.expiryField)||void 0===t?void 0:t.close(),yield null===(n=this.numberField)||void 0===n?void 0:n.close(),yield null===(i=this.nameField)||void 0===i?void 0:i.close(),Promise.resolve()})}preparePaymentPayload(e,t,n,i){const{shouldSaveInstrument:r=!1,shouldSetAsDefaultInstrument:o=!1}=Ad(t)?t:{},a=t&&Cd(t)?t.instrumentId:void 0,s=H({verification_nonce:i,token:a},T);return{methodId:e,paymentData:{shouldSaveInstrument:r,shouldSetAsDefaultInstrument:o,instrumentId:a,formattedPayload:Object.assign(Object.assign({},i||a?{bigpay_token:s}:{}),n?{card_with_order:{order_id:n}}:{})}}}initializeFields(e,t){return fc(this,void 0,void 0,function*(){const{fields:n,styles:i}=e,r=this.bigCommercePaymentsIntegrationService.getPayPalSdkOrThrow(),o=this.getExecuteCallback(n),a=Object.assign({style:this.getInputStyles(i),onApprove:({orderID:e,vaultSetupToken:t,liabilityShift:n})=>{if(n===pr.No||n===pr.Unknown)throw new Error;return this.handleApprove({orderID:e,vaultSetupToken:t})},onError:()=>{throw new so},inputEvents:{onChange:t=>this.onChangeHandler(e,t),onFocus:t=>this.onFocusHandler(e,t),onBlur:t=>this.onBlurHandler(e,t),onInputSubmitRequest:t=>this.onInputSubmitRequest(e,t)}},o);if(this.cardFields=yield r.CardFields(a),!this.cardFields.isEligible())throw new gi(hi.PaymentNotInitialized);try{this.stylizeInputContainers(n),gc(n)&&(yield this.renderFields(n)),vc(n)&&(yield this.renderVaultedFields(n))}catch(e){"function"==typeof t&&t(e)}})}getExecuteCallback(e){return vc(e)?this.createVaultSetupTokenCallback():this.createOrderCallback()}createVaultSetupTokenCallback(){return{createVaultSetupToken:()=>fc(this,void 0,void 0,function*(){const{setupToken:e}=(yield this.bigCommercePaymentsIntegrationService.createOrderCardFields("bigcommerce_payments_creditcardscheckout",Object.assign(Object.assign({},this.getInstrumentParams()),{setupToken:!0})))||{};return e})}}createOrderCallback(){return{createOrder:()=>fc(this,void 0,void 0,function*(){const{orderId:e}=(yield this.bigCommercePaymentsIntegrationService.createOrderCardFields("bigcommerce_payments_creditcardscheckout",this.getInstrumentParams()))||{};return e})}}handleApprove({orderID:e,vaultSetupToken:t}){e&&(this.returnedOrderId=e),t&&(this.returnedVaultedToken=t)}renderFields(e){var t,n,i,r;return fc(this,void 0,void 0,function*(){const o=this.getCardFieldsOrThrow();(null===(t=e.cardCode)||void 0===t?void 0:t.containerId)&&(this.cvvField=o.CVVField({placeholder:""}),yield this.cvvField.render(`#${e.cardCode.containerId}`)),(null===(n=e.cardExpiry)||void 0===n?void 0:n.containerId)&&(this.expiryField=o.ExpiryField(),yield this.expiryField.render(`#${e.cardExpiry.containerId}`)),(null===(i=e.cardName)||void 0===i?void 0:i.containerId)&&(this.nameField=o.NameField({placeholder:""}),yield this.nameField.render(`#${e.cardName.containerId}`)),(null===(r=e.cardNumber)||void 0===r?void 0:r.containerId)&&(this.numberField=o.NumberField({placeholder:""}),yield this.numberField.render(`#${e.cardNumber.containerId}`))})}renderVaultedFields(e){var t,n,i;return fc(this,void 0,void 0,function*(){const r=this.getCardFieldsOrThrow();(null===(t=e.cardCodeVerification)||void 0===t?void 0:t.containerId)&&(this.cvvField=r.CVVField({placeholder:""}),yield this.cvvField.render(`#${e.cardCodeVerification.containerId}`)),(null===(n=e.cardExpiryVerification)||void 0===n?void 0:n.containerId)&&(this.expiryField=r.ExpiryField(),yield this.expiryField.render(`#${e.cardExpiryVerification.containerId}`)),(null===(i=e.cardNumberVerification)||void 0===i?void 0:i.containerId)&&(this.numberField=r.NumberField({placeholder:""}),yield this.numberField.render(`#${e.cardNumberVerification.containerId}`))})}getInstrumentParams(){if(!this.executionPaymentData)return{};if(Ad(this.executionPaymentData)){const{shouldSaveInstrument:e,shouldSetAsDefaultInstrument:t}=this.executionPaymentData;return{shouldSaveInstrument:e,shouldSetAsDefaultInstrument:t}}if(Cd(this.executionPaymentData)){const{instrumentId:e}=this.executionPaymentData;return{instrumentId:e}}return{}}getFieldTypeByEmittedField({emittedBy:e}){return{fieldType:this.mapFieldType(e)}}submitHostedForm(){return fc(this,void 0,void 0,function*(){const e=this.getCardFieldsOrThrow(),t=this.paymentIntegrationService.getState().getBillingAddressOrThrow(),n={billingAddress:{company:t.company,addressLine1:t.address1,addressLine2:t.address2,adminArea1:t.stateOrProvinceCode,adminArea2:t.city,postalCode:t.postalCode,countryCode:t.countryCode}};try{this.isCreditCardVaultedForm?yield e.submit():yield e.submit(n)}catch(e){throw new so("Failed authentication. Please try to authorize again.")}})}validateHostedFormOrThrow(){var e,t;return fc(this,void 0,void 0,function*(){const n=this.getCardFieldsOrThrow(),i=yield n.getState().then(e=>e),r=this.getValidityData(i);if(!r.isValid)throw null===(t=null===(e=this.hostedFormOptions)||void 0===e?void 0:e.onValidate)||void 0===t||t.call(e,r),new So(this.mapValidationErrors(r.errors))})}getValidityData({fields:e}){const t=Object.assign({},e);delete t.cardNameField;const n=Object.keys(t);return{isValid:n.every(e=>{var n;return null===(n=t[e])||void 0===n?void 0:n.isValid}),errors:n.reduce((e,n)=>{var i;const r=this.mapFieldType(n);return Object.assign(Object.assign({},e),{[r]:(null===(i=t[n])||void 0===i?void 0:i.isValid)?void 0:[this.getInvalidErrorByFieldType(r)]})},{})}}getInvalidErrorByFieldType(e){switch(e){case yc.CardCode:case yc.CardCodeVerification:return{fieldType:e,message:"Invalid card code",type:"invalid_card_code"};case yc.CardNumber:case yc.CardNumberVerification:return{fieldType:e,message:"Invalid card number",type:"invalid_card_number"};case yc.CardExpiry:case yc.CardExpiryVerification:return{fieldType:e,message:"Invalid card expiry",type:"invalid_card_expiry"};default:return{fieldType:e,message:"Invalid field",type:"invalid"}}}mapValidationErrors(e={}){const t={};return Object.keys(e).forEach(n=>{var i,r;t[n]=[{message:(null===(r=null===(i=e[n])||void 0===i?void 0:i[0])||void 0===r?void 0:r.message)||"",type:n}]}),t}mapFieldType(e){switch(e){case"name":return yc.CardName;case"cardNumberField":case"number":return this.isCreditCardForm?yc.CardNumber:yc.CardNumberVerification;case"cardExpiryField":case"expiry":return this.isCreditCardForm?yc.CardExpiry:yc.CardExpiryVerification;case"cardCvvField":case"cvv":return this.isCreditCardForm?yc.CardCode:yc.CardCodeVerification;default:throw new Error("Unexpected field type")}}getCardFieldsOrThrow(){if(!this.cardFields)throw new gi(hi.PaymentNotInitialized);return this.cardFields}getInputStyles(e){var t,n,i;const r={"font-size":(null===(t=null==e?void 0:e.default)||void 0===t?void 0:t.fontSize)||"1rem","font-family":(null===(n=null==e?void 0:e.default)||void 0===n?void 0:n.fontFamily)||"Montserrat, Arial, Helvetica, sans-serif","font-weight":(null===(i=null==e?void 0:e.default)||void 0===i?void 0:i.fontWeight)||"400",outline:"none",padding:"9px 13px"},o=Object.assign(Object.assign({},r),{color:"#333333"});return{input:o,".invalid":Object.assign(Object.assign({},r),{color:"red"}),".valid":o,":focus":o}}stylizeInputContainers(e){Object.values(e||{}).forEach(e=>{const t=document.getElementById(`${(null==e?void 0:e.containerId)||""}`);t&&(t.style.padding="0px",t.style.boxShadow="none",t.style.border="none",t.style.background="transparent",t.style.marginBottom="10px",t.style.marginLeft="-5px")})}hasUndefinedValues(){return!this.hostedFormOptions||Object.values(this.hostedFormOptions.fields).some(e=>void 0===e)}onChangeHandler(e,t){var n;null===(n=null==e?void 0:e.onValidate)||void 0===n||n.call(e,this.getValidityData(t))}onFocusHandler(e,t){var n;null===(n=null==e?void 0:e.onFocus)||void 0===n||n.call(e,this.getFieldTypeByEmittedField(t))}onBlurHandler(e,t){var n;null===(n=null==e?void 0:e.onBlur)||void 0===n||n.call(e,this.getFieldTypeByEmittedField(t))}onInputSubmitRequest(e,t){var n;null===(n=null==e?void 0:e.onEnter)||void 0===n||n.call(e,this.getFieldTypeByEmittedField(t))}shouldInitializePayPalFastlane(e){var t,n;const i=this.paymentIntegrationService.getState(),r=i.getPaymentMethodOrThrow(e),o=i.getPaymentProviderCustomer(),a=(s=o)&&("authenticationState"in s||"addresses"in s||"instruments"in s)?o:{};var s;return(null===(t=null==r?void 0:r.initializationData)||void 0===t?void 0:t.isAcceleratedCheckoutEnabled)&&(null===(n=null==r?void 0:r.initializationData)||void 0===n?void 0:n.isBigCommercePaymentsAnalyticsV2Enabled)&&!(null==a?void 0:a.authenticationState)}initializePayPalFastlaneOrThrow(e){return fc(this,void 0,void 0,function*(){try{const t=this.paymentIntegrationService.getState(),n=t.getCartOrThrow(),i=t.getPaymentMethodOrThrow(e),{initializationData:r}=i;if(!(null==r?void 0:r.connectClientToken))return;const o=yield this.bigCommercePaymentsSdk.getPayPalFastlaneSdk(i,n.currency.code,n.id);yield this.bigCommercePaymentsFastlaneUtils.initializePayPalFastlane(o,!!(null==r?void 0:r.isDeveloperModeApplicable))}catch(e){}})}}const wc=Rt(e=>new Sc(e,Tr(e),Hr(),Kr()),[{id:"bigcommerce_payments_creditcards"}]);var _c=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Cc{constructor(e,t,n,i,r=3e3,o=3e5){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t,this.bigCommercePaymentsSdkHelper=n,this.loadingIndicator=i,this.pollingInterval=r,this.maxPollingIntervalTime=o,this.pollingTimer=0,this.stopPolling=V,this.isPollingEnabled=!1}initialize(e){return _c(this,void 0,void 0,function*(){const{gatewayId:t,methodId:n,bigcommerce_payments_apms:i}=e;if(this.bigCommercePaymentsAlternativeMethods=i,!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.gatewayId" argument is not provided.');if(!i)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_apms" argument is not provided.');const r=this.paymentIntegrationService.getState(),o=r.getPaymentMethodOrThrow(n,t),{orderId:a,shouldRenderFields:s}=o.initializationData||{},d=r.getStoreConfigOrThrow().checkoutSettings.features;this.isPollingEnabled=Wt(d,"PAYPAL-5624.bcp_ideal_polling"),a?this.orderId=a:(this.paypalApms=yield this.bigCommercePaymentsSdkHelper.getPayPalApmsSdk(o,r.getCartOrThrow().currency.code),this.loadingIndicatorContainer=i.container.split("#")[1],this.renderButton(n,t,i),s&&this.renderFields(n,i))})}execute(e,t){return _c(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);const{methodId:r,gatewayId:o}=n;if(!this.orderId)throw new co;this.isPollingEnabled&&"ideal"===r&&(yield new Promise((e,t)=>{this.initializePollingMechanism(r,e,t,o)})),this.isNonInstantPaymentMethod(r)||(yield this.paymentIntegrationService.submitOrder(i,t)),yield this.bigCommercePaymentsIntegrationService.submitPayment(r,this.orderId,o)})}finalize(){return Promise.reject(new Id)}deinitialize(){var e;return this.orderId=void 0,this.isPollingEnabled&&this.resetPollingMechanism(),null===(e=this.bigCommercePaymentsButton)||void 0===e||e.close(),Promise.resolve()}initializePollingMechanism(e,t,n,i){return _c(this,void 0,void 0,function*(){yield new Promise((e,t)=>{const n=setTimeout(e,this.pollingInterval);this.stopPolling=()=>(clearTimeout(n),this.toggleLoadingIndicator(!1),t())});try{this.pollingTimer+=this.pollingInterval;const r=yield this.bigCommercePaymentsIntegrationService.getOrderStatus(i),o=r===Sr.Approved,a=r===Sr.PollingError;if(o)return this.deInitializePollingMechanism(),t();if(a)return n();if(!o&&this.pollingTimer<this.maxPollingIntervalTime)return yield this.initializePollingMechanism(e,t,n,i);yield this.reinitializeStrategy({methodId:e,gatewayId:i,bigCommercePaymentsAlternativeMethods:this.bigCommercePaymentsAlternativeMethods}),this.handleError(new lc)}catch(e){n()}})}deInitializePollingMechanism(){this.stopPolling(),this.pollingTimer=0}resetPollingMechanism(){this.deInitializePollingMechanism()}reinitializeStrategy(e){return _c(this,void 0,void 0,function*(){yield this.deinitialize(),yield this.initialize(e)})}handleError(e){const{onError:t}=this.bigCommercePaymentsAlternativeMethods||{};this.isPollingEnabled&&this.resetPollingMechanism(),this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}renderButton(e,t,n){const i=this.getPaypalAmpsSdkOrThrow(),r=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e,t),{buttonStyle:o}=r.initializationData||{},{container:a,onError:s,onRenderButton:d,submitForm:c}=n,l={fundingSource:e,style:this.bigCommercePaymentsIntegrationService.getValidButtonStyle(o),onInit:(e,t)=>n.onInitButton(t),createOrder:()=>this.onCreateOrder(e,t,n),onApprove:e=>this.handleApprove(e,c),onCancel:()=>{this.toggleLoadingIndicator(!1),this.deInitializePollingMechanism()},onError:e=>{this.deInitializePollingMechanism(),this.handleFailure(e,s)},onClick:(e,t)=>_c(this,void 0,void 0,function*(){return n.onValidate(t.resolve,t.reject)})};this.bigCommercePaymentsButton=i.Buttons(l),this.bigCommercePaymentsButton.isEligible()&&(d&&"function"==typeof d&&d(),this.bigCommercePaymentsButton.render(a))}onCreateOrder(e,t,n){return _c(this,void 0,void 0,function*(){const{onValidate:i}=n;yield i(()=>(this.toggleLoadingIndicator(!0),()=>Promise.resolve()),V);const r=yield this.bigCommercePaymentsIntegrationService.createOrder("bigcommerce_payments_apms");if(this.isNonInstantPaymentMethod(e)){const n={useStoreCredit:!1},i={params:{methodId:e,gatewayId:t}};yield this.paymentIntegrationService.submitOrder(n,i),yield this.bigCommercePaymentsIntegrationService.submitPayment(e,r,t)}return r})}handleApprove({orderID:e},t){this.orderId=e,t()}handleFailure(e,t){this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}renderFields(e,t){const n=this.getPaypalAmpsSdkOrThrow(),i=this.paymentIntegrationService.getState(),{firstName:r,lastName:o,email:a}=i.getBillingAddressOrThrow(),{apmFieldsContainer:s,apmFieldsStyles:d}=t;if(!s)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_apms" argument should contain "apmFieldsContainer".');const c=document.querySelector(s);c&&(c.innerHTML="");const l={fundingSource:e,style:d||{},fields:{name:{value:`${r} ${o}`},email:{value:a}}};n.PaymentFields(l).render(s)}toggleLoadingIndicator(e){e&&this.loadingIndicatorContainer?this.loadingIndicator.show(this.loadingIndicatorContainer):this.loadingIndicator.hide()}isNonInstantPaymentMethod(e){return e.toUpperCase()in fr}getPaypalAmpsSdkOrThrow(){if(!this.paypalApms)throw new Oi;return this.paypalApms}}const Ic=Rt(e=>new Cc(e,Tr(e),Hr(),new sd({containerStyles:Zd})),[{gateway:"bigcommerce_payments_apms"}]);var bc=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Pc{constructor(e,t,n){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t,this.loadingIndicator=n}initialize(e){var t,n;return bc(this,void 0,void 0,function*(){const{methodId:i,bigcommerce_payments_venmo:r}=e||{};if(!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!r)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_venmo" argument is not provided.');yield this.paymentIntegrationService.loadPaymentMethod(i);const o=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(i);(null===(t=o.initializationData)||void 0===t?void 0:t.orderId)?this.orderId=null===(n=o.initializationData)||void 0===n?void 0:n.orderId:(yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(i),this.loadingIndicatorContainer=r.container.split("#")[1],this.renderButton(i,r))})}execute(e,t){return bc(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);if(!this.orderId)throw new co;yield this.paymentIntegrationService.submitOrder(i,t),yield this.bigCommercePaymentsIntegrationService.submitPayment(n.methodId,this.orderId)})}finalize(){return Promise.reject(new Id)}deinitialize(){var e;return this.orderId=void 0,null===(e=this.paypalButton)||void 0===e||e.close(),Promise.resolve()}renderButton(e,t){const n=this.bigCommercePaymentsIntegrationService.getPayPalSdkOrThrow(),i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{paymentButtonStyles:r}=i.initializationData||{},{checkoutPaymentButtonStyles:o}=r||{},{container:a,onError:s,onRenderButton:d,onValidate:c,submitForm:l}=t,u={fundingSource:n.FUNDING.VENMO,style:this.bigCommercePaymentsIntegrationService.getValidButtonStyle(o),createOrder:()=>this.bigCommercePaymentsIntegrationService.createOrder("bigcommerce_payments_venmo_checkout"),onClick:(e,t)=>this.handleClick(t,c),onApprove:e=>this.handleApprove(e,l),onCancel:()=>this.toggleLoadingIndicator(!1),onError:e=>this.handleError(e,s)};if(this.paypalButton=n.Buttons(u),!this.paypalButton.isEligible())throw new Ti("Venmo is not available for your region. Please another payment method instead.");d&&"function"==typeof d&&d(),this.paypalButton.render(a)}handleClick(e,t){return bc(this,void 0,void 0,function*(){const{resolve:n,reject:i}=e;yield t(()=>(this.toggleLoadingIndicator(!0),n()),i)})}handleApprove({orderID:e},t){this.orderId=e,t(),this.toggleLoadingIndicator(!1)}handleError(e,t){this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}toggleLoadingIndicator(e){e&&this.loadingIndicatorContainer?this.loadingIndicator.show(this.loadingIndicatorContainer):this.loadingIndicator.hide()}}const Oc=Rt(e=>new Pc(e,Tr(e),new sd({styles:{backgroundColor:"black"}})),[{id:"bigcommerce_payments_venmo"}]);class Ec{initialize(e){this._blueSnapSdk=e}initialize3ds(e,t){return n=this,i=void 0,o=function*(){const n=this._getBlueSnapSdk();return new Promise((i,r)=>{n.threeDsPaymentsSetup(e,e=>"1"===e.code?i(e.threeDSecure.threeDSecureReferenceId):r(new so)),n.threeDsPaymentsSubmitData(t)})},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}_getBlueSnapSdk(){return yi(this._blueSnapSdk,()=>new gi(hi.PaymentNotInitialized))}}function Ac(e){return yc.CardNumber in e}function kc(e){return yc.CardCodeVerification in e||yc.CardNumberVerification in e}var Tc,Dc,Mc,zc,Nc,xc=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Fc{constructor(e,t,n,i){this._scriptLoader=e,this._paymentIntegrationService=t,this._blueSnapDirectHostedForm=n,this._blueSnapDirect3ds=i}initialize(e){return xc(this,void 0,void 0,function*(){const{methodId:t,gatewayId:n,creditCard:i}=e;if(!n||!i)throw new ki;const r=yield this._paymentIntegrationService.loadPaymentMethod(n,{params:{method:t,bigpayToken:i.bigpayToken}}),{config:{testMode:o,is3dsEnabled:a},clientToken:s}=r.getPaymentMethodOrThrow(t,n);this._blueSnapSdk=yield this._scriptLoader.load(o),this._paymentFieldsToken=s,this._shouldUseHostedFields=Ac(i.form.fields)||kc(i.form.fields)&&!!i.form.fields.cardNumberVerification,this._shouldUseHostedFields&&(this._blueSnapDirectHostedForm.initialize(this._blueSnapSdk,i.form.fields),yield this._blueSnapDirectHostedForm.attach(this._getPaymentFieldsToken(),i,a))})}execute(e){return xc(this,void 0,void 0,function*(){if(!e.payment)throw new fo(["payment"]);if(!this._blueSnapSdk)throw new fo(["payment"]);const{paymentData:t}=e.payment,{shouldSaveInstrument:n,shouldSetAsDefaultInstrument:i}=Ad(t)?t:{shouldSaveInstrument:!1,shouldSetAsDefaultInstrument:!1},r=this._getPaymentFieldsToken();let o;const{is3dsEnabled:a}=this._paymentIntegrationService.getState().getPaymentMethodOrThrow(e.payment.methodId,e.payment.gatewayId).config,s=this._shouldUseHostedFields?yield this._blueSnapDirectHostedForm.validate().submit(a?this._getBlueSnapDirectThreeDSecureData():void 0,!(Ad(t)&&Cd(t))):void 0;if(yield this._paymentIntegrationService.submitOrder(),Ad(t)&&Cd(t)&&this._paymentFieldsToken&&t.instrumentId){if(a){this._blueSnapDirect3ds.initialize(this._blueSnapSdk);const{last4:e,brand:n}=this._paymentIntegrationService.getState().getCardInstrumentOrThrow(t.instrumentId),i=Object.assign({last4Digits:e,ccType:n.toUpperCase()},this._getBlueSnapDirectThreeDSecureData());o=yield this._blueSnapDirect3ds.initialize3ds(this._paymentFieldsToken,i)}yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},e.payment),{paymentData:Object.assign(Object.assign(Object.assign({instrumentId:t.instrumentId},this._shouldUseHostedFields?{nonce:r}:{}),o?{deviceSessionId:o}:{}),{shouldSetAsDefaultInstrument:!!i})}))}else yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},e.payment),{paymentData:{formattedPayload:{credit_card_token:{token:JSON.stringify({pfToken:r,cardHolderName:s&&s.cardHolderName})},vault_payment_instrument:n,set_as_default_stored_instrument:i}}}))})}finalize(){return Promise.reject(new Id)}deinitialize(){return this._shouldUseHostedFields&&this._blueSnapDirectHostedForm.detach(),Promise.resolve()}_getBlueSnapDirectThreeDSecureData(){var e;const{getBillingAddress:t,getShippingAddress:n,getCustomer:i,getCheckoutOrThrow:r,getCartOrThrow:o}=this._paymentIntegrationService.getState(),a=t(),s=n(),d=(null===(e=i())||void 0===e?void 0:e.email)||(null==a?void 0:a.email),c=(null==a?void 0:a.phone)||(null==s?void 0:s.phone);return Object.assign(Object.assign(Object.assign(Object.assign({amount:r().outstandingBalance,currency:o().currency.code},d&&{email:d}),c&&{phone:c}),a&&{billingFirstName:a.firstName,billingLastName:a.lastName,billingCountry:a.countryCode,billingCity:a.city,billingAddress:`${a.address1} ${a.address2}`.trim(),billingZip:a.postalCode}),s&&{shippingFirstName:s.firstName,shippingLastName:s.lastName,shippingCountry:s.countryCode,shippingCity:s.city,shippingAddress:`${s.address1} ${s.address2}`.trim(),shippingZip:s.postalCode})}_getPaymentFieldsToken(){return yi(this._paymentFieldsToken,()=>new pi(ui.MissingPaymentToken))}}!function(e){e.AMEX="american-express",e.CHINA_UNION_PAY="unionpay",e.DINERS="diners-club",e.DISCOVER="discover",e.JCB="jcb",e.MASTERCARD="mastercard",e.UNKNOWN="unknown",e.VISA="visa"}(Tc||(Tc={})),function(e){e.ON_BLUR="onBlur",e.ON_SUBMIT="onSubmit"}(Dc||(Dc={})),function(e){e.EMPTY="empty",e.INVALID="invalid",e.THREE_DS_NOT_ENABLED="3D Secure is not enabled"}(Mc||(Mc={})),function(e){e.CC_NOT_SUPORTED="22013",e.ERROR_403="403",e.ERROR_404="404",e.ERROR_500="500",e.INVALID_OR_EMPTY="10",e.SESSION_EXPIRED="400",e.THREE_DS_AUTH_FAILED="14101",e.THREE_DS_CLIENT_ERROR="14103",e.THREE_DS_MISSING_FIELDS="14102",e.THREE_DS_NOT_ENABLED="14100",e.TOKEN_EXPIRED="14040",e.TOKEN_NOT_ASSOCIATED="14042",e.TOKEN_NOT_FOUND="14041"}(zc||(zc={})),function(e){e.CardCode="cvv",e.CardExpiry="exp",e.CardName="noc",e.CardNumber="ccn"}(Nc||(Nc={}));const Rc={[Nc.CardNumber]:yc.CardNumber,[Nc.CardExpiry]:yc.CardExpiry,[Nc.CardName]:yc.CardName,[Nc.CardCode]:yc.CardCode},Lc={empty:{[yc.CardNumber]:{fieldType:"cardNumber",message:"Credit card number is required",type:"required"},[yc.CardNumberVerification]:{fieldType:"cardNumber",message:"Credit card number is required",type:"required"},[yc.CardExpiry]:{fieldType:"cardExpiry",message:"Expiration date is required",type:"required"},[yc.CardCode]:{fieldType:"cardCode",message:"CVV is required",type:"required"},[yc.CardName]:{fieldType:"cardName",message:"Full name is required",type:"required"}},invalid:{[yc.CardNumber]:{fieldType:"cardNumber",message:"Credit card number must be valid",type:"invalid_card_number"},[yc.CardNumberVerification]:{fieldType:"cardNumber",message:"Credit card number must be valid",type:"invalid_card_number"},[yc.CardExpiry]:{fieldType:"cardExpiry",message:"Expiration date must be a valid future date in MM / YY format",type:"invalid_card_expiry"},[yc.CardCode]:{fieldType:"cardCode",message:"CVV must be valid",type:"invalid_card_code"},[yc.CardName]:{fieldType:"cardName",message:"Full name is required",type:"required"}}};class Bc{constructor(e,t){this._nameOnCardInput=e,this._hostedInputValidator=t}initialize(e,t){this._blueSnapSdk=e,t&&(Ac(t)?this._hostedInputValidator.initialize():kc(t)&&t.cardNumberVerification&&this._hostedInputValidator.initializeValidationFields())}attach(e,t,n){var i,r,o,a,s=t.form,{fields:d}=s,c=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(s,["fields"]);return void 0===n&&(n=!1),i=this,r=void 0,a=function*(){const t=this._getBlueSnapSdk();if(!Ac(d)&&!kc(d))throw new ki("Field options must be of type HostedCardFieldOptionsMap");return this._onValidate=c.onValidate,Ac(d)&&this._setCustomBlueSnapAttributes(d),kc(d)&&this._setCustomStoredCardsBlueSnapAttributes(d),new Promise(i=>{const r=this._getHostedPaymentFieldsOptions(e,d,c,i,n);t.hostedPaymentFieldsCreate(r),Ac(d)&&this._nameOnCardInput.attach(r,d.cardName.accessibilityLabel,d.cardName.placeholder)})},new((o=void 0)||(o=Promise))(function(e,t){function n(e){try{d(a.next(e))}catch(e){t(e)}}function s(e){try{d(a.throw(e))}catch(e){t(e)}}function d(t){var i;t.done?e(t.value):(i=t.value,i instanceof o?i:new o(function(e){e(i)})).then(n,s)}d((a=a.apply(i,r||[])).next())})}validate(){var e;const t=this._hostedInputValidator.validate();if(null===(e=this._onValidate)||void 0===e||e.call(this,t),!t.isValid){const e=Object.entries(t.errors).reduce((e,[t,n])=>Object.assign(Object.assign({},e),{[t]:n.map(({message:e,type:t})=>({message:e,type:t}))}),{});throw new So(e)}return this}submit(e,t=!1){return new Promise((n,i)=>this._getBlueSnapSdk().hostedPaymentFieldsSubmitData(e=>this._isBlueSnapDirectCallbackError(e)?i(new so(e.statusCode===zc.THREE_DS_AUTH_FAILED?e.error[0].errorDescription:`Submission failed with status: ${e.statusCode} and errors: ${JSON.stringify(e.error)}`)):n(Object.assign(Object.assign({},e.cardData),t?{cardHolderName:this._nameOnCardInput.getValue()}:{})),e))}detach(){this._nameOnCardInput.detach()}_isBlueSnapDirectCallbackError(e){return"error"in e}_getHostedPaymentFieldsOptions(e,t,{onFocus:n,onBlur:i,onValidate:r,onCardTypeChange:o,onEnter:a,styles:s},d,c){var l;return Object.assign(Object.assign(Object.assign({token:e,onFieldEventHandler:{setupComplete:()=>d(),onFocus:this._usetUiEventCallback(n),onBlur:this._usetUiEventCallback(i),onError:this._handleError(r),onType:(e,t)=>null==o?void 0:o({cardType:Tc[t]}),onEnter:this._usetUiEventCallback(a),onValid:e=>null==r?void 0:r(this._hostedInputValidator.validate({tagId:e}))}},Ac(t)&&{ccnPlaceHolder:t.cardNumber.placeholder||"",cvvPlaceHolder:(null===(l=t.cardCode)||void 0===l?void 0:l.placeholder)||"",expPlaceHolder:t.cardExpiry.placeholder||"MM / YY"}),s&&{style:this._mapStyles(s)}),{"3DS":c})}_mapStyles({default:e,error:t,focus:n}){return Object.entries(Object.assign(Object.assign(Object.assign({},e&&{input:e}),t&&{".invalid":t}),n&&{":focus":n})).reduce((e,[t,n])=>Object.assign(Object.assign({},e),{[t]:Object.entries(n).reduce((e,[t,n])=>Object.assign(Object.assign({},e),{[x(t)]:n}),{})}),{})}_handleError(e){return(t,n,i,r)=>{if(n===zc.INVALID_OR_EMPTY&&t&&function(e){return void 0!==e&&[Mc.EMPTY,Mc.INVALID].includes(e)}(i))return null==e?void 0:e(this._hostedInputValidator.validate({tagId:t,errorDescription:i}));throw new so(`An unexpected error has occurred: ${JSON.stringify({tagId:t,errorCode:n,errorDescription:i,eventOrigin:r})}`)}}_usetUiEventCallback(e){return t=>{e&&e({fieldType:Rc[t]})}}_getBlueSnapSdk(){return yi(this._blueSnapSdk,()=>new gi(hi.PaymentNotInitialized))}_setCustomBlueSnapAttributes(e){const{cardNumber:t,cardExpiry:n,cardCode:i,cardName:r}=e,o=document.getElementById(t.containerId),a=document.getElementById(n.containerId),s=i&&document.getElementById(i.containerId),d=document.getElementById(r.containerId);if(!(o&&a&&s&&d))throw new ki("Unable to create hosted payment fields to invalid HTML container elements.");o.dataset.bluesnap=Nc.CardNumber,a.dataset.bluesnap=Nc.CardExpiry,s.dataset.bluesnap=Nc.CardCode,d.dataset.bluesnap=Nc.CardName}_setCustomStoredCardsBlueSnapAttributes(e){const{cardNumberVerification:t,cardCodeVerification:n}=e,i=t&&document.getElementById(t.containerId),r=n&&document.getElementById(n.containerId);(i||r)&&(i&&(i.dataset.bluesnap=Nc.CardNumber),r&&(r.dataset.bluesnap=Nc.CardCode))}}class jc{constructor(){this._errors={}}initialize(){this._errors={cardNumber:[Lc.empty.cardNumber],cardExpiry:[Lc.empty.cardExpiry],cardCode:[Lc.empty.cardCode],cardName:[Lc.empty.cardName]}}initializeValidationFields(){this._errors={cardNumberVerification:[Lc.empty.cardNumber]}}validate(e){return e&&this._updateErrors(e.tagId,e.errorDescription),{isValid:Object.values(this._errors).every(e=>0===e.length),errors:this._errors}}_updateErrors(e,t){const n=this._errors.cardNumberVerification?yc.CardNumberVerification:Rc[e];this._errors[n]=t?[Lc[t][n]]:[]}}class Uc{attach({style:e,onFieldEventHandler:{onFocus:t,onBlur:n,onValid:i,onError:r,onEnter:o}={}},a,s){var d;this._style=e,this._create(),this._getInput().addEventListener("focus",this._handleFocus(t)),this._getInput().addEventListener("blur",this._handleBlur(n,i,r)),this._getInput().addEventListener("enter",this._handleEnter(o)),a&&this._getInput().setAttribute("aria-label",a),s&&(this._getInput().placeholder=s),null===(d=document.querySelector('[data-bluesnap="noc"]'))||void 0===d||d.appendChild(this._getInput())}getValue(){return this._getInput().value}detach(){this._input&&(this._input.remove(),this._input=void 0)}_handleFocus(e){return()=>{var t;this._applyStyles(null===(t=this._style)||void 0===t?void 0:t[":focus"]),null==e||e(Nc.CardName)}}_handleBlur(e,t,n){return({target:i})=>{var r,o;null==e||e(Nc.CardName),i instanceof HTMLInputElement&&(/\w{1,200}/.test(i.value)?(this._applyStyles(null===(r=this._style)||void 0===r?void 0:r.input),null==t||t(Nc.CardName)):(this._applyStyles(null===(o=this._style)||void 0===o?void 0:o[".invalid"]),null==n||n(Nc.CardName,zc.INVALID_OR_EMPTY,Mc.EMPTY,Dc.ON_BLUR)))}}_handleEnter(e){return()=>null==e?void 0:e(Nc.CardName)}_applyStyles(e={}){const t={color:e.color,fontFamily:e["font-family"],fontSize:e["font-size"],fontWeight:e["font-weight"]},n=Object.keys(t);n.every(e=>["color","fontFamily","fontSize","fontWeight"].includes(e))&&n.forEach(e=>{t[e]&&(this._getInput().style[e]=t[e]||"")})}_configureInput(){this._getInput().autocomplete="cc-name",this._getInput().id=Nc.CardName,this._getInput().inputMode="text",this._getInput().maxLength=200,this._getInput().style.backgroundColor="transparent",this._getInput().style.border="0",this._getInput().style.height="100%",this._getInput().style.margin="0",this._getInput().style.outline="none",this._getInput().style.padding="0",this._getInput().style.width="100%",this._getInput().type="text"}_getInput(){return yi(this._input,()=>new gi(hi.PaymentNotInitialized))}_create(){var e;this._input=document.createElement("input"),this._configureInput(),this._applyStyles(null===(e=this._style)||void 0===e?void 0:e.input)}}var qc;!function(e){e.PRODUCTION="https://pay.bluesnap.com/web-sdk/5/bluesnap.js",e.SANDBOX="https://sandpay.bluesnap.com/web-sdk/5/bluesnap.js"}(qc||(qc={}));class Vc{constructor(e,t=window){this._scriptLoader=e,this._window=t}load(e=!1){return t=this,n=void 0,r=function*(){if(this._window.bluesnap)return this._window.bluesnap;if(yield this._scriptLoader.loadScript(e?qc.SANDBOX:qc.PRODUCTION),!this._window.bluesnap)throw new Oi;return this._window.bluesnap},new((i=void 0)||(i=Promise))(function(e,o){function a(e){try{d(r.next(e))}catch(e){o(e)}}function s(e){try{d(r.throw(e))}catch(e){o(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((r=r.apply(t,n||[])).next())});var t,n,i,r}}const Gc=Rt(e=>new Fc(new Vc(a()),e,new Bc(new Uc,new jc),new Ec),[{id:"credit_card",gateway:"bluesnapdirect"}]);class Hc{constructor(e){this._paymentIntegrationService=e}execute(e){return t=this,n=void 0,r=function*(){const t=this._formatePaymentPayload(e);yield this._paymentIntegrationService.submitOrder();try{yield this._paymentIntegrationService.submitPayment(t)}catch(e){if(this._isBlueSnapDirectRedirectResponse(e)){const t=e.body.provider_data&&JSON.parse(e.body.provider_data);let n=e.body.additional_action_required.data.redirect_url;if(function(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!t.merchantid&&"string"==typeof t.merchantid}(t)){const e=new URLSearchParams(t).toString();n=`${n}&${e}`}return new Promise(()=>window.location.replace(n))}return Promise.reject(e)}},new((i=void 0)||(i=Promise))(function(e,o){function a(e){try{d(r.next(e))}catch(e){o(e)}}function s(e){try{d(r.throw(e))}catch(e){o(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((r=r.apply(t,n||[])).next())});var t,n,i,r}initialize(){return Promise.resolve()}finalize(){return Promise.reject(new Id)}deinitialize(){return Promise.resolve()}_formatePaymentPayload({payment:e}){if(!e)throw new fo(["payment"]);return e.paymentData&&Cd(e.paymentData)&&Ad(e.paymentData)?Object.assign(Object.assign({},e),{paymentData:{instrumentId:e.paymentData.instrumentId,shouldSetAsDefaultInstrument:!!e.paymentData.shouldSetAsDefaultInstrument}}):(t=e.paymentData,Boolean("object"==typeof t&&null!==t&&"accountNumber"in t&&"accountType"in t&&"shopperPermission"in t&&"routingNumber"in t)?Object.assign(Object.assign({},e),{paymentData:{formattedPayload:{ecp:Object.assign({account_number:e.paymentData.accountNumber,account_type:e.paymentData.accountType,shopper_permission:e.paymentData.shopperPermission,routing_number:e.paymentData.routingNumber},e.paymentData.companyName?{company_name:e.paymentData.companyName}:{}),vault_payment_instrument:e.paymentData.shouldSaveInstrument,set_as_default_stored_instrument:e.paymentData.shouldSetAsDefaultInstrument}}}):(n=e.paymentData,Boolean("object"==typeof n&&null!==n&&"iban"in n&&"firstName"in n&&"lastName"in n&&"shopperPermission"in n)?Object.assign(Object.assign({},e),{paymentData:{formattedPayload:{sepa_direct_debit:{iban:e.paymentData.iban,first_name:e.paymentData.firstName,last_name:e.paymentData.lastName,shopper_permission:e.paymentData.shopperPermission},vault_payment_instrument:e.paymentData.shouldSaveInstrument,set_as_default_stored_instrument:e.paymentData.shouldSetAsDefaultInstrument}}}):function(e){return Boolean("object"==typeof e&&null!==e&&"bic"in e)}(e.paymentData)?Object.assign(Object.assign({},e),{paymentData:{formattedPayload:{ideal:{bic:e.paymentData.bic}}}}):function(e){return Boolean("object"==typeof e&&null!==e&&"iban"in e&&!("firstName"in e)&&!("lastName"in e)&&!("shopperPermission"in e))}(e.paymentData)?Object.assign(Object.assign({},e),{paymentData:{formattedPayload:{pay_by_bank:{iban:e.paymentData.iban}}}}):{methodId:e.methodId}));var t,n}_isBlueSnapDirectRedirectResponse(e){var t;if("object"!=typeof e||null===e)return!1;const n=e;if(!n.body)return!1;const i=n.body;return"additional_action_required"===i.status&&!!(null===(t=i.additional_action_required)||void 0===t?void 0:t.data.redirect_url)}}const $c=Rt(e=>new Hc(e),[{gateway:"bluesnapdirect"}]);var Wc;!function(e){e.ACKNOWLEDGE="ACKNOWLEDGE",e.FINALIZE="FINALIZE",e.INITIALIZE="INITIALIZE"}(Wc||(Wc={}));const Yc=Wc;var Kc=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Jc{constructor(e){this._paymentIntegrationService=e}execute(e,t){return Kc(this,void 0,void 0,function*(){const{payment:n}=e;if(!n)throw new fo(["payment"]);if(!this._initializeOptions)throw new gi(hi.PaymentNotInitialized);const{onLoad:i,style:r}=this._initializeOptions,o=this._createIframe("bluesnapv2_hosted_payment_page",r),a=new Bn(new Promise(V));i(o,()=>a.cancel(new nr)),yield this._paymentIntegrationService.submitOrder(e,t),yield this._paymentIntegrationService.initializeOffsitePayment({methodId:n.methodId,gatewayId:n.gatewayId,shouldSaveInstrument:!1,target:o.name,promise:a.promise})})}finalize(e){return Kc(this,void 0,void 0,function*(){const t=this._paymentIntegrationService.getState(),n=t.getOrder(),i=t.getPaymentStatus();if(!n||i!==Yc.ACKNOWLEDGE&&i!==Yc.FINALIZE)return Promise.reject(new Id);yield this._paymentIntegrationService.finalizeOrder(e)})}initialize(e){return Kc(this,void 0,void 0,function*(){this._initializeOptions=e&&e.bluesnapv2,yield Promise.resolve()})}deinitialize(){return Promise.resolve()}_createIframe(e,t){const n=document.createElement("iframe");if(n.setAttribute("sandbox","allow-top-navigation allow-scripts allow-forms allow-same-origin"),n.name=e,t){const{border:e,height:i,width:r}=t;n.style.border=null!=e?e:"",n.style.height=null!=i?i:"",n.style.width=null!=r?r:""}return n}}const Zc=Rt(e=>new Jc(e),[{gateway:"bluesnapv2"}]);class Qc{constructor(e){this.storage=e}saveExtraItemsData(e,t){const n=[...t.physicalItems,...t.digitalItems].reduce((e,t)=>(e[t.productId]={brand:t.brand?t.brand:"",category:t.categoryNames?t.categoryNames.join(", "):""},e),{});try{return this.storage.setItem(this.getStorageKey(e),JSON.stringify(n)),n}catch(e){return{}}}readExtraItemsData(e){try{const t=this.storage.getItem(this.getStorageKey(e));if(!t)return null;const n=JSON.parse(t);return function(e){if(!D(e))return!1;const t=Object.values(e).some(e=>!D(e)||!("brand"in e)||!("category"in e));return Boolean(!t)}(n)?n:null}catch(e){return null}}clearExtraItemData(e){try{this.storage.removeItem(this.getStorageKey(e))}catch(e){}}getStorageKey(e){return e?`ORDER_ITEMS_${e}`:""}}function Xc(e){return Boolean(e.hasOwnProperty("analytics"))}function el(e){return"object"==typeof e&&null!==e&&"shouldCreateAccount"in e}class tl extends li{constructor(e){super(),this.errorCode=e,this.name="BoltPaymentsFieldError",this.type="bolt_payments_field_error",this.body={errors:[tl.getError(e)]}}static getError(e){switch(e){case"1000":case"2000":case"3000":return{code:"invalid_number"};case"1001":case"2001":case"3001":return{code:"invalid_expiry_date"};case"1002":case"2002":return{code:"invalid_cvc"};case"1003":return{code:"invalid_zip"};case"2003":return{code:"incorrect_zip"};default:return{code:"general_error"}}}}var nl=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class il{constructor(e,t,n){this.paymentIntegrationService=e,this.boltScriptLoader=t,this.analyticsExtraItemsManager=n,this.useBoltClient=!1,this.useBoltEmbedded=!1}initialize(e){return nl(this,void 0,void 0,function*(){const{bolt:t,methodId:n}=e,{containerId:i,onPaymentSelect:r,useBigCommerceCheckout:o}=t||{};if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!o)return void(this.boltClient=yield this.boltScriptLoader.loadBoltClient());const a=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e.methodId),{initializationData:s,config:d}=a,{publishableKey:c,developerConfig:l,embeddedOneClickEnabled:u}=s||{},{testMode:h}=d;if(!c)throw new pi(ui.MissingPaymentMethod);if(this.boltClient=yield this.boltScriptLoader.loadBoltClient(c,h,l),this.useBoltClient=!u,this.useBoltEmbedded=!!u,this.useBoltEmbedded){if(!i)throw new ki('Unable to initialize payment because "options.bolt.containerId" argument is not provided.');if(!r)throw new ki('Unable to initialize payment because "options.bolt.onPaymentSelect" argument is not provided.');this.boltEmbedded=yield this.boltScriptLoader.loadBoltEmbedded(c,h,l),this.mountBoltEmbeddedField(i),r(yield this.hasBoltAccount())}})}deinitialize(){var e;return null===(e=this.embeddedField)||void 0===e||e.unmount(),this.boltClient=void 0,this.boltEmbedded=void 0,Promise.resolve()}finalize(){return Promise.reject(new Id)}execute(e,t){return nl(this,void 0,void 0,function*(){this.setExtraItemsForAnalytics();const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),{methodId:r,paymentData:o}=n||{};let a;if(!e.payment)throw new fo(["payment"]);if(!r)throw new pi(ui.MissingPaymentMethod);if(!o||!function(e){return Boolean(D(e)&&("shouldSaveInstrument"in e||"nonce"in e||el(e)))}(o))throw new pi(ui.MissingPayment);yield this.paymentIntegrationService.submitOrder(i,t),a=this.useBoltClient?yield this.getBoltClientPaymentPayload(r,o,t):this.useBoltEmbedded?yield this.getBoltEmbeddedPaymentPayload(r,o):yield this.getBoltFullCheckoutPaymentPayload(r,o),yield this.paymentIntegrationService.submitPayment(a)})}getBoltClientPaymentPayload(e,t,n){return nl(this,void 0,void 0,function*(){yield this.paymentIntegrationService.loadPaymentMethod(e,n);const i=this.paymentIntegrationService.getState(),r=i.getPaymentMethodOrThrow(e).clientToken,{isStoreCreditApplied:o}=i.getCheckoutOrThrow(),{shouldSaveInstrument:a}=t,s=this.getBoltClientOrThrow();if(yield this.paymentIntegrationService.applyStoreCredit(o),!r)throw new pi(ui.MissingPaymentMethod);const d=yield new Promise((e,t)=>{const n={success:(n,i)=>{n.reference?e(n):t(new so("Unable to proceed because transaction reference is unavailable. Please try again later.")),i()},close:()=>{t(new nr)}};s.configure({orderToken:r},{},n).open()});return{methodId:e,paymentData:{nonce:d.reference,shouldSaveInstrument:a}}})}getBoltEmbeddedPaymentPayload(e,t){var n;return nl(this,void 0,void 0,function*(){if(!el(t))throw new pi(ui.MissingPayment);const i=this.validateTokenizeResultOrThrow(yield null===(n=this.embeddedField)||void 0===n?void 0:n.tokenize());return{methodId:e,paymentData:{formattedPayload:{credit_card_token:{token:i.token,last_four_digits:i.last4,iin:i.bin,expiration_month:+i.expiration.split("-")[1],expiration_year:+i.expiration.split("-")[0]},provider_data:{create_account:!!t.shouldCreateAccount,embedded_checkout:!0}}}}})}getBoltFullCheckoutPaymentPayload(e,t){return nl(this,void 0,void 0,function*(){yield this.setBoltOrderId();const n=this.getBoltClientOrThrow(),i=yield n.getTransactionReference();if(!i)throw new co;return{methodId:e,paymentData:Object.assign(Object.assign({},t),{nonce:i})}})}getBoltClientOrThrow(){if(!this.boltClient)throw new gi(hi.PaymentNotInitialized);return this.boltClient}getBoltEmbeddedOrThrow(){if(!this.boltEmbedded)throw new gi(hi.PaymentNotInitialized);return this.boltEmbedded}hasBoltAccount(){return nl(this,void 0,void 0,function*(){const e=this.paymentIntegrationService.getState(),t=e.getCustomer(),n=e.getBillingAddress(),i=(null==t?void 0:t.email)||(null==n?void 0:n.email)||"",r=this.getBoltClientOrThrow();try{return yield r.hasBoltAccount(i)}catch(e){throw new co}})}setBoltOrderId(){return nl(this,void 0,void 0,function*(){const e=this.paymentIntegrationService.getState().getOrderOrThrow(),t=this.getBoltClientOrThrow();try{yield t.setOrderId(e.orderId)}catch(e){throw new co}})}mountBoltEmbeddedField(e){const t=this.getBoltEmbeddedOrThrow().create("payment_field",{styles:{backgroundColor:"#fff"},renderSeparateFields:!0});t.mount(`#${e}`),this.embeddedField=t}validateTokenizeResultOrThrow(e){if(!e)throw new co;if(e instanceof Error)throw new tl(e.message);const{token:t,last4:n,bin:i,expiration:r}=e,o=+n,a=+i,s=+`${r}`.split("-")[1],d=+`${r}`.split("-")[0];if(!t||Number.isNaN(o)||Number.isNaN(a)||Number.isNaN(s)||Number.isNaN(d))throw new fo;return e}setExtraItemsForAnalytics(){const e=this.paymentIntegrationService.getState(),t=e.getStoreConfigOrThrow(),n=e.getCartOrThrow();if(t.checkoutSettings.isAnalyticsEnabled&&Xc(window)){const{id:e,lineItems:t}=n;this.analyticsExtraItemsManager.saveExtraItemsData(e,t)}}}const rl=Rt(e=>new il(e,new go(a()),new Qc(ke)),[{id:"bolt"}]);function ol(e){return!!e&&"accountNumber"in e&&"routingNumber"in e&&"ownershipType"in e&&"accountType"in e}var al=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class sl{constructor(e,t){this.paymentIntegrationService=e,this.braintreeSdk=t}initialize(e){return al(this,void 0,void 0,function*(){const{methodId:t,braintreeach:n}=e||{};if(!t)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');this.getMandateText=null==n?void 0:n.getMandateText,yield this.paymentIntegrationService.loadPaymentMethod(t);const i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(t),{clientToken:r,initializationData:o}=i;if(!r||!o)throw new pi(ui.MissingPaymentMethod);this.braintreeSdk.initialize(r);try{this.usBankAccount=yield this.braintreeSdk.getUsBankAccount()}catch(e){this.handleBraintreeError(e)}})}execute(e,t){return al(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);const r=Cd(n.paymentData||{}),o=r?yield this.tokenizePaymentForVaultedInstrument(n):yield this.tokenizePayment(n),a=r?yield this.preparePaymentDataForVaultedInstrument(o,n):yield this.preparePaymentData(o,n);yield this.paymentIntegrationService.submitOrder(i,t),yield this.paymentIntegrationService.submitPayment(a)})}finalize(){return Promise.reject(new Id)}deinitialize(){return al(this,void 0,void 0,function*(){return yield this.braintreeSdk.deinitialize(),Promise.resolve()})}tokenizePayment({paymentData:e}){return al(this,void 0,void 0,function*(){const t=this.getUsBankAccountOrThrow();if(!ol(e))throw new fo(["payment.paymentData"]);const n=Cd(e)?"The data are used for stored instrument verification":"function"==typeof this.getMandateText&&this.getMandateText();if(!n)throw new ki("Unable to proceed because getMandateText is not provided or returned undefined value.");try{const{nonce:i}=yield t.tokenize({bankDetails:this.getBankDetails(e),mandateText:n});return i}catch(e){this.handleBraintreeError(e)}})}tokenizePaymentForVaultedInstrument(e){return al(this,void 0,void 0,function*(){const{methodId:t,paymentData:n={}}=e,i=this.paymentIntegrationService.getState(),{config:r}=i.getPaymentMethodOrThrow(t);if(!r.isVaultingEnabled)throw new ki("Vaulting is disabled but a vaulted instrument was being used for this transaction");return ol(n)?this.tokenizePayment(e):null})}preparePaymentData(e,t){return al(this,void 0,void 0,function*(){const{methodId:n,paymentData:i={}}=t;if(!ol(i))throw new fo(["payment.paymentData"]);const{deviceData:r}=yield this.braintreeSdk.getDataCollectorOrThrow(),{shouldSaveInstrument:o,shouldSetAsDefaultInstrument:a,routingNumber:s,accountNumber:d}=i;return{methodId:n,paymentData:{deviceSessionId:r,shouldSetAsDefaultInstrument:a,shouldSaveInstrument:o,formattedPayload:{tokenized_bank_account:{issuer:s,masked_account_number:d.substr(-4),token:e}}}}})}preparePaymentDataForVaultedInstrument(e,t){return al(this,void 0,void 0,function*(){const{methodId:n,paymentData:i={}}=t;if(!Cd(i)||!Ad(i))throw new fo(["payment.paymentData"]);const{deviceData:r}=yield this.braintreeSdk.getDataCollectorOrThrow(),{instrumentId:o,shouldSetAsDefaultInstrument:a}=i;return{methodId:n,paymentData:Object.assign({deviceSessionId:r,instrumentId:o,shouldSetAsDefaultInstrument:a},e&&{nonce:e})}})}getBankDetails(e){const t=this.paymentIntegrationService.getState().getBillingAddressOrThrow(),n=e.ownershipType.toLowerCase(),i=e.accountType.toLowerCase();return Object.assign(Object.assign({accountNumber:e.accountNumber,routingNumber:e.routingNumber,ownershipType:n},"personal"===n?{firstName:e.firstName,lastName:e.lastName}:{businessName:e.businessName}),{accountType:i,billingAddress:{streetAddress:t.address1,extendedAddress:t.address2,locality:t.city,region:t.stateOrProvinceCode,postalCode:t.postalCode}})}getUsBankAccountOrThrow(){if(!this.usBankAccount)throw new gi(hi.PaymentNotInitialized);return this.usBankAccount}handleBraintreeError(e){if(!$i(e))throw e;throw new so(e.message)}}const dl=Rt(e=>new sl(e,(e=>{const t=new Ri(e),n=new tr(a(),window,t);return new Zi(n)})(e)),[{id:"braintreeach"}]);class cl{constructor(e){this.paymentIntegrationService=e,this.braintreeHostWindow=window}render(e,t,n){const i=t&&document.getElementById(t);if(this.braintreeHostWindow.paypal&&i){const r=this.paymentIntegrationService.getState(),o=r.getCartOrThrow(),a=r.getBillingAddressOrThrow(),s=r.getPaymentMethodOrThrow(e);if(!s.initializationData)return;const{paypalBNPLConfiguration:d=[]}=s.initializationData,c=n===Oo.PAYMENT?"checkout":n,l=d&&d.find(({id:e})=>e===c);if(!l||!l.status)return;n===Oo.CART&&(i.removeAttribute("data-pp-style-logo-type"),i.removeAttribute("data-pp-style-logo-position"),i.removeAttribute("data-pp-style-text-color"),i.removeAttribute("data-pp-style-text-size")),this.braintreeHostWindow.paypal.Messages({amount:o.cartAmount,buyerCountry:a.countryCode,placement:n,style:this.getPaypalMessagesStylesFromBNPLConfig(l)}).render(`#${t}`)}}getPaypalMessagesStylesFromBNPLConfig({styles:e}){const t={};return e.color&&(t.color=e.color),e.layout&&(t.layout=e.layout),(e["logo-type"]||e["logo-position"])&&(t.logo={},e["logo-type"]&&(t.logo.type=e["logo-type"]),e["logo-position"]&&(t.logo.position=e["logo-position"])),e.ratio&&(t.ratio=e.ratio),(e["text-color"]||e["text-size"])&&(t.text={},e["text-color"]&&(t.text.color=e["text-color"]),e["text-size"]&&(t.text.size=+e["text-size"])),t}}class ll{constructor(e){const{element:t,closeElement:n,mainElement:i}=this._createElements(e);this._element=t,this._closeElement=n,this._mainElement=i}show(e){this._mainElement.parentElement||(this._registerClick(e),document.body.appendChild(this._mainElement),setTimeout(()=>this._element.style.opacity="1"))}remove(){this._mainElement.parentElement&&(this._unregisterClick&&this._unregisterClick(),this._removeAfterTransition(),setTimeout(()=>this._element.style.opacity="0"))}_createElements(e){const t=document.createElement("div"),{background:n="rgba(0, 0, 0, 0.8)",id:i="checkoutOverlay",transitionDuration:r=400,hasCloseButton:o=!1,innerHtml:a=null}=e||{};let s,d,c,l,u=t;if(i&&(t.id=i),a){const e=document.createElement("div");l=`${i}--overlayText`,e.className=l,e.appendChild(a),t.appendChild(e)}return o&&(c=`${i}--close`,s=document.createElement("div"),s.className=c,d=`${i}--layout`,u=document.createElement("div"),u.className=d,u.appendChild(t),u.appendChild(s)),u.appendChild(function(e){const{id:t,background:n,transitionDuration:i,classLayout:r,classOverlayText:o,classClose:a}=e,s=document.createElement("style"),d=r?`, .${r}`:"";return s.id=`${t}--styles`,s.type="text/css",s.innerText=`\n #${t}${d} {\n display: block;\n height: 100%;\n width: 100%;\n left: 0;\n top: 0;\n position: fixed;\n z-index: 2147483647;\n }\n #${t} {\n transition: opacity ${i}ms ease-out;\n background: ${n};\n opacity: 0;\n }\n `,o&&(s.innerText+=`\n #${t} {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n #${t} .${o} {\n color: white;\n max-width: 330px;\n font-size: 1.2em;\n text-align: center;\n }\n `),a&&(s.innerText+=`\n #${t} {\n opacity: 1;\n }\n .${r} .${a} {\n position: fixed;\n right: 16px;\n top: 16px;\n width: 16px;\n height: 16px;\n opacity: 0.6;\n cursor: pointer;\n z-index: 3147483647;\n }\n .${r} .${a}::after, .${r} .${a}::before {\n position: absolute;\n left: 8px;\n content: '';\n height: 16px;\n width: 2px;\n background-color: #fff;\n }\n .${r} .${a}::after {\n transform: rotate(-45deg);\n }\n .${r} .${a}::before {\n transform: rotate(45deg);\n }\n `),s}({id:i,background:n,transitionDuration:r,classLayout:d,classOverlayText:l,classClose:c})),{element:t,closeElement:s,mainElement:u}}_addEventListener(e,t){e&&t&&e.addEventListener("click",t)}_removeEventListener(e,t){e&&t&&e.removeEventListener("click",t)}_registerClick(e){if(this._unregisterClick&&this._unregisterClick(),e){const{onClick:t,onClickClose:n}=e;this._addEventListener(this._element,t),this._addEventListener(this._closeElement,n),this._unregisterClick=()=>{this._removeEventListener(this._element,t),this._removeEventListener(this._closeElement,n),this._unregisterClick=void 0}}}_removeAfterTransition(){const e=t=>{"opacity"===t.propertyName&&(this._mainElement.parentElement&&this._mainElement.remove(),this._element.removeEventListener("transitionend",e))};this._element.addEventListener("transitionend",e)}}const ul={"background-color":"rgba(0, 0, 0, 0.4)","z-index":"1000"};function hl(e){return"object"==typeof e&&null!==e&&"name"in e&&"BraintreeError"===e.name}function pl(e){return{recipientName:`${e.firstName} ${e.lastName}`,line1:e.address1,line2:e.address2,city:e.city,state:e.stateOrProvinceCode,postalCode:e.postalCode,countryCode:e.countryCode,phone:e.phone}}var ml=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class yl{constructor(e,t,n,i){this.paymentIntegrationService=e,this.braintreeIntegrationService=t,this.braintreeMessages=n,this.loadingIndicator=i,this.braintreeHostWindow=window}initialize(e){return ml(this,void 0,void 0,function*(){const{braintree:t,methodId:n}=e;if(this.braintree=t,this.paymentMethod&&this.paymentMethod.nonce||(this.paymentMethod=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(n)),this.paymentMethod.clientToken&&(null==t?void 0:t.bannerContainerId))return yield this.loadPaypal(),this.loadPaypalCheckoutInstance();if(this.paymentMethod.clientToken)return this.loadPaypal();const i=yield this.paymentIntegrationService.loadPaymentMethod(n);if(this.paymentMethod=i.getPaymentMethodOrThrow(n),null==t?void 0:t.bannerContainerId)return this.loadPaypalCheckoutInstance();if(!this.paymentMethod.clientToken)throw new pi(ui.MissingPaymentMethod);return this.loadPaypal()})}execute(e,t){var n;return ml(this,void 0,void 0,function*(){const{payment:i}=e,r=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),{onError:o}=this.braintree||{};if(!i)throw new fo(["payment"]);try{const e=yield this.preparePaymentData(i,r.useStoreCredit);yield this.paymentIntegrationService.submitOrder(r,t),yield this.paymentIntegrationService.submitPayment(e)}catch(e){this.isProviderError(e)&&(yield this.loadPaypal(),null===(n=this.paypalButtonRender)||void 0===n||n.close(),yield this.loadPaypalCheckoutInstance(),yield new Promise((e,t)=>{o&&"function"==typeof o&&o(new Error("INSTRUMENT_DECLINED")),t()})),this.handleError(e)}})}finalize(){return Promise.reject(new Id)}deinitialize(){var e;return this.braintreeTokenizePayload=void 0,null===(e=this.paypalButtonRender)||void 0===e||e.close(),this.braintreeIntegrationService.teardown()}preparePaymentData(e,t){var n;return ml(this,void 0,void 0,function*(){const i=this.paymentIntegrationService.getState(),r=i.getOutstandingBalance(t),o=i.getStoreConfig();if(!r)throw new pi(ui.MissingCheckout);if(!o)throw new pi(ui.MissingCheckoutConfig);if(!this.paymentMethod)throw new gi(hi.PaymentNotInitialized);const{currency:a,storeProfile:{storeLanguage:s}}=o,{nonce:d,config:{isVaultingEnabled:c}}=this.paymentMethod,{methodId:l,paymentData:u={}}=e,h=(null===(n=this.braintreeTokenizePayload)||void 0===n?void 0:n.nonce)||d;if(h){const t=yield this.paymentIntegrationService.loadPaymentMethod(l);return this.paymentMethod=t.getPaymentMethod(l),Object.assign(Object.assign({},e),{paymentData:this.formattedPayload(h)})}if(Cd(u)||(p=u,Boolean(p.instrumentId)&&!Object.prototype.hasOwnProperty.call(p,"ccNumber")&&!Object.prototype.hasOwnProperty.call(p,"ccCvv"))){if(!c)throw new ki("Vaulting is disabled but a vaulted instrument was being used for this transaction");return Promise.resolve(e)}var p;if(!Ad(u))throw new pi(ui.MissingPayment);const{shouldSaveInstrument:m,shouldSetAsDefaultInstrument:y}=u;if(m&&!c)throw new ki("Vaulting is disabled but shouldSaveInstrument is set to true");const g=i.getShippingAddress(),v=g?pl(g):void 0;return Promise.all([this.braintreeIntegrationService.paypal({amount:r,locale:s,currency:a.code,offerCredit:"braintreepaypalcredit"===this.paymentMethod.id,shippingAddressOverride:v,shouldSaveInstrument:m||!1,shippingAddressEditable:!1}),this.braintreeIntegrationService.getSessionId()]).then(([{nonce:t,details:n}={},i])=>Object.assign(Object.assign({},e),{paymentData:this.formattedPayload(t,n&&n.email,i,m,y)}))})}formattedPayload(e,t,n,i,r){return{formattedPayload:{vault_payment_instrument:i||null,set_as_default_stored_instrument:r||null,device_info:n||null,paypal_account:{token:e,email:t||null}}}}loadPaypalCheckoutInstance(){return ml(this,void 0,void 0,function*(){const{clientToken:e,initializationData:t,id:n}=this.paymentMethod||{};if(!e)throw new pi(ui.MissingPaymentMethod);try{this.braintreeIntegrationService.initialize(e);const i={currency:this.paymentIntegrationService.getState().getCartOrThrow().currency.code,intent:null==t?void 0:t.intent,isCreditEnabled:null==t?void 0:t.isCreditEnabled},r="braintreepaypalcredit"===n||!(null==t?void 0:t.isCreditEnabled);yield this.braintreeIntegrationService.getPaypalCheckout(i,e=>{var t;r&&n&&(null===(t=this.braintree)||void 0===t?void 0:t.bannerContainerId)&&this.renderPayPalMessages(n,this.braintree.bannerContainerId),this.renderPayPalButton(e)},this.handleError)}catch(e){this.handleError(e)}})}renderPayPalMessages(e,t){this.braintreeMessages.render(e,t,Oo.PAYMENT)}renderPayPalButton(e){const{onPaymentError:t,submitForm:n,onRenderButton:i,containerId:r,onError:o}=this.braintree||{};if(!r)return;if(!this.paymentMethod)throw new gi(hi.PaymentNotInitialized);this.loadingIndicatorContainer=r.split("#")[1];const{id:a,config:{testMode:s}}=this.paymentMethod,{paypal:d}=this.braintreeHostWindow,c=null==d?void 0:d.FUNDING.PAYPAL;d&&c?(this.paypalButtonRender=d.Buttons({env:s?"sandbox":"production",commit:!1,fundingSource:c,onClick:()=>{this.toggleLoadingIndicator(!0)},createOrder:()=>this.setupPayment(e,a,t),onApprove:t=>ml(this,void 0,void 0,function*(){this.braintreeTokenizePayload=yield this.tokenizePaymentOrThrow(t,e),n&&"function"==typeof n&&n()}),onCancel:()=>{this.toggleLoadingIndicator(!1)},onError:e=>{this.toggleLoadingIndicator(!1),null==o||o(e)}}),i&&"function"==typeof i&&i(),this.paypalButtonRender.isEligible()&&this.paypalButtonRender.render(`${r}`)):this.removeElement(r.split("#")[1])}setupPayment(e,t,n){return ml(this,void 0,void 0,function*(){const i=this.paymentIntegrationService.getState();try{const n=i.getCustomer(),r=i.getPaymentMethodOrThrow(t),o=i.getCheckoutOrThrow().outstandingBalance,a=i.getStoreConfigOrThrow().currency.code,s=i.getShippingAddress()||(null==n?void 0:n.addresses[0]),d=s?pl(s):void 0;return yield e.createPayment({flow:"checkout",enableShippingAddress:!0,shippingAddressEditable:!1,shippingAddressOverride:d,amount:o,currency:a,offerCredit:!1,intent:r.initializationData.intent})}catch(e){throw n&&(hl(e)||e instanceof li)&&n(e),e}})}tokenizePaymentOrThrow(e,t,n){return ml(this,void 0,void 0,function*(){try{return yield t.tokenizePayment(e)}catch(e){throw n&&(hl(e)||e instanceof li)&&n(e),e}})}loadPaypal(){return ml(this,void 0,void 0,function*(){const{clientToken:e,initializationData:t}=this.paymentMethod||{};if(!e||!t)throw new pi(ui.MissingPaymentMethod);try{this.braintreeIntegrationService.initialize(e),yield this.braintreeIntegrationService.getPaypal()}catch(e){this.handleError(e)}return Promise.resolve()})}handleError(e){if(!hl(e))throw e;if("PAYPAL_POPUP_CLOSED"===e.code)throw new nr(e.message);throw new so(e.message)}isProviderError(e){var t,n,i;return!!function(e){return"object"==typeof e&&null!==e&&"errors"in e}(e)&&"2046"===(null===(i=null===(n=((null===(t=null==e?void 0:e.errors)||void 0===t?void 0:t.filter(e=>e.provider_error))||[])[0])||void 0===n?void 0:n.provider_error)||void 0===i?void 0:i.code)}removeElement(e){const t=e&&document.getElementById(e);t&&t.remove()}toggleLoadingIndicator(e){e&&this.loadingIndicatorContainer?this.loadingIndicator.show(this.loadingIndicatorContainer):this.loadingIndicator.hide()}}const gl=Rt(e=>{const t=window,n=new ll,i=new Ri(e),r=new Ao(new tr(a(),t,i),t,n),o=new cl(e);return new yl(e,r,o,new sd({containerStyles:ul}))},[{id:"braintreepaypal"},{id:"braintreepaypalcredit"}]);class vl{constructor(e){this.requestSender=e}getOrderStatus(e="braintreelocalmethods",t){return n=this,i=void 0,o=function*(){const n=`/api/storefront/initialization/${e}`,i=Object.assign({"X-API-INTERNAL":Cr,"Content-Type":br.Json},Pr);return(yield this.requestSender.get(n,Object.assign({headers:i},t))).body},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}}var fl=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Sl{constructor(e,t,n,i,r=3e3,o=3e5){this.paymentIntegrationService=e,this.braintreeSdk=t,this.braintreeRequestSender=n,this.loadingIndicator=i,this.pollingInterval=r,this.maxPollingIntervalTime=o,this.isLPMsUpdateExperimentEnabled=!1,this.pollingTimer=0,this.stopPolling=V,this.isPollingEnabled=!1}initialize(e){return fl(this,void 0,void 0,function*(){const{gatewayId:t,methodId:n,braintreelocalmethods:i}=e;if(this.gatewayId=t,!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.gatewayId" argument is not provided.');if(!i)throw new ki('Unable to initialize payment because "options.braintreelocalmethods" argument is not provided.');this.braintreelocalmethods=i,this.loadingIndicatorContainer=i.container.split("#")[1],yield this.paymentIntegrationService.loadPaymentMethod(t);const r=this.paymentIntegrationService.getState(),o=r.getPaymentMethodOrThrow(t),{clientToken:a,config:s,initializationData:d}=o,c=r.getStoreConfigOrThrow().checkoutSettings.features;if(this.isPollingEnabled=Wt(c,"PAYPAL-5258.braintree_local_methods_polling"),this.isLPMsUpdateExperimentEnabled=Wt(c,"PAYPAL-4853.add_new_payment_flow_for_braintree_lpms"),!a||!d||!s.merchantId)throw new pi(ui.MissingPaymentMethod);try{this.braintreeSdk.initialize(a),this.isNonInstantPaymentMethod(n)||(this.braintreeLocalPayment=yield this.braintreeSdk.getBraintreeLocalPayment(s.merchantId))}catch(e){this.handleError(e)}})}finalize(){return Promise.reject(new Id)}deinitialize(){return fl(this,void 0,void 0,function*(){return this.toggleLoadingIndicator(!1),Promise.resolve()})}execute(e,t){return fl(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);const{methodId:r}=n;this.toggleLoadingIndicator(!0),this.isNonInstantPaymentMethod(r)?yield this.executeWithNotInstantLPM(r):yield this.executeWithInstantLPM(r,i,t)})}executeWithNotInstantLPM(e){return fl(this,void 0,void 0,function*(){try{const t=yield this.getLPMsBasicPaymentData();yield this.paymentIntegrationService.submitOrder(),yield this.paymentIntegrationService.submitPayment({methodId:e,paymentData:Object.assign(Object.assign({},t),{formattedPayload:{method:e}})})}catch(e){if(this.isBraintreeRedirectError(e)){const t=e.body.additional_action_required.data.redirect_url;return new Promise((e,n)=>{window.location.replace(t),this.toggleLoadingIndicator(!1),n()})}return this.handleError(e),Promise.reject(e)}})}executeWithInstantLPM(e,t,n){return fl(this,void 0,void 0,function*(){if(!this.braintreeLocalPayment)throw new co;yield new Promise((i,r)=>{var o;null===(o=this.braintreeLocalPayment)||void 0===o||o.startPayment(this.getInstantLPMConfig(e,t,n),this.getInstantLPMCallback(i,r,e,t,n))})})}getLPMsBasicPaymentData(){return fl(this,void 0,void 0,function*(){const{deviceData:e}=yield this.braintreeSdk.getDataCollectorOrThrow();return{deviceSessionId:e}})}getInstantLPMConfig(e,t,n){const i=this.paymentIntegrationService.getState(),r=i.getCartOrThrow(),o=i.getBillingAddressOrThrow(),{firstName:a,lastName:s,countryCode:d}=o,{currency:c,email:l,lineItems:u}=r,h=u.physicalItems.length>0,p=i.getCheckoutOrThrow().outstandingBalance,m=i.getStoreConfigOrThrow().links.checkoutLink;return{paymentType:e,amount:p,fallback:{url:m,buttonText:"Complete Payment"},currencyCode:c.code,shippingAddressRequired:h,email:l,givenName:a,surname:s,address:{countryCode:d},onPaymentStart:(i,r)=>fl(this,void 0,void 0,function*(){if(!this.isLPMsUpdateExperimentEnabled)return this.orderId=i.paymentId,void r();const o=yield this.getLPMsBasicPaymentData(),a=Object.assign(Object.assign({},o),{formattedPayload:{method:e,[`${e}_account`]:{order_id:i.paymentId}}});try{yield this.paymentIntegrationService.submitOrder(t,n),yield this.paymentIntegrationService.submitPayment({methodId:e,paymentData:a})}catch(t){if(this.isBraintreeOrderSavedResponse(t)&&t.body.additional_action_required.data.order_id_saved_successfully)return r(),this.isPollingEnabled?new Promise((t,n)=>{this.initializePollingMechanism(e,t,n,this.gatewayId)}):void 0;throw t}})}}getInstantLPMCallback(e,t,n,i,r){const o=this.paymentIntegrationService.getState().getCartOrThrow();return(a,s)=>fl(this,void 0,void 0,function*(){if(a)return"LOCAL_PAYMENT_WINDOW_CLOSED"===a.code?(this.toggleLoadingIndicator(!1),this.resetPollingMechanism(),t()):(this.isPollingEnabled&&this.resetPollingMechanism(),this.toggleLoadingIndicator(!1),t(new co));const d=yield this.getLPMsBasicPaymentData(),c=Object.assign(Object.assign({},d),{formattedPayload:{method:n,[`${n}_account`]:Object.assign({email:o.email,token:s.nonce},this.isLPMsUpdateExperimentEnabled?{}:{order_id:this.orderId})}});try{return this.isLPMsUpdateExperimentEnabled||(yield this.paymentIntegrationService.submitOrder(i,r)),yield this.paymentIntegrationService.submitPayment({methodId:n,paymentData:c}),e(void 0)}catch(e){return this.handleError(e),t(e)}})}toggleLoadingIndicator(e){e&&this.loadingIndicatorContainer?this.loadingIndicator.show(this.loadingIndicatorContainer):this.loadingIndicator.hide()}handleError(e){const{onError:t}=this.braintreelocalmethods||{};this.isPollingEnabled&&this.resetPollingMechanism(),this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}isNonInstantPaymentMethod(e){return e.toUpperCase()in Ui}isBraintreeRedirectError(e){var t;if("object"!=typeof e||null===e)return!1;const{body:n}=e;return!!n&&!!(null===(t=n.additional_action_required)||void 0===t?void 0:t.data.redirect_url)}isBraintreeOrderSavedResponse(e){var t;if("object"!=typeof e||null===e)return!1;const{body:n}=e;return!!n&&(null===(t=n.additional_action_required)||void 0===t?void 0:t.data.hasOwnProperty("order_id_saved_successfully"))}initializePollingMechanism(e,t,n,i){return fl(this,void 0,void 0,function*(){yield new Promise((e,t)=>{const n=setTimeout(e,this.pollingInterval);this.stopPolling=()=>(clearTimeout(n),this.toggleLoadingIndicator(!1),t())});try{this.pollingTimer+=this.pollingInterval;const r=yield this.braintreeRequestSender.getOrderStatus(i,{params:{useMetadata:!1}}),o=r.status===ji.Pending,a=r.status===ji.Completed,s=r.status===ji.Failed;if(a)return this.deinitializePollingMechanism(),t();if(s)return n();if(!a&&o&&this.pollingTimer<this.maxPollingIntervalTime)return yield this.initializePollingMechanism(e,t,n,i);yield this.reinitializeStrategy({methodId:e,gatewayId:i,braintreelocalmethods:this.braintreelocalmethods}),this.handleError(new lc)}catch(e){n()}})}deinitializePollingMechanism(){this.stopPolling(),this.pollingTimer=0}resetPollingMechanism(){this.deinitializePollingMechanism()}reinitializeStrategy(e){return fl(this,void 0,void 0,function*(){yield this.deinitialize(),yield this.initialize(e)})}}const wl=Rt(e=>{const t=window,i=new Ri(e),r=new Zi(new tr(a(),t,i)),o=n(),s=new vl(o);return new Sl(e,r,s,new sd({styles:{backgroundColor:"black"}}))},[{gateway:"braintreelocalmethods"}]);function _l(e){return!!e&&("authenticationState"in e||"addresses"in e||"instruments"in e)}var Cl=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Il{constructor(e,t,n){this.paymentIntegrationService=e,this.braintreeFastlaneUtils=t,this.braintreeSdk=n}initialize(e){var t;return Cl(this,void 0,void 0,function*(){const{methodId:n,braintreefastlane:i}=e;if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!i)throw new ki('Unable to initialize payment because "options.braintreefastlane" argument is not provided.');if(!i.onInit||"function"!=typeof i.onInit)throw new ki('Unable to initialize payment because "options.braintreefastlane.onInit" argument is not provided or it is not a function.');if(!i.onChange||"function"!=typeof i.onChange)throw new ki('Unable to initialize payment because "options.braintreefastlane.onChange" argument is not provided or it is not a function.');yield this.paymentIntegrationService.loadPaymentMethod(n);const r=this.paymentIntegrationService.getState(),o=r.getPaymentMethodOrThrow(n),{initializationData:a,clientToken:s}=o||{},{isFastlaneStylingEnabled:d}=a||{},c=Wt(r.getStoreConfigOrThrow().checkoutSettings.features,"PROJECT-7080.braintree_fastlane_three_ds");this.is3DSEnabled=o.config.is3dsEnabled,s&&c&&this.braintreeSdk.initialize(s);const l=Fo(d?null===(t=o.initializationData)||void 0===t?void 0:t.fastlaneStyles:void 0,i.styles);yield this.braintreeFastlaneUtils.initializeBraintreeFastlaneOrThrow(n,l),this.shouldRunAuthenticationFlow()&&(yield this.braintreeFastlaneUtils.runPayPalAuthenticationFlowOrThrow()),yield this.initializeCardComponent(),this.onError=i.onError,i.onInit(e=>this.renderBraintreeCardComponent(e)),i.onChange(()=>this.handleBraintreeStoredInstrumentChange(n))})}execute(e,t){return Cl(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);yield this.paymentIntegrationService.submitOrder(i,t);const r=yield this.preparePaymentPayload(n.methodId);yield this.paymentIntegrationService.submitPayment(r),this.braintreeFastlaneUtils.removeSessionIdFromCookies()})}finalize(){return Promise.reject(new Id)}deinitialize(){return Cl(this,void 0,void 0,function*(){return this.braintreeCardComponent=void 0,Promise.resolve()})}initializeCardComponent(){return Cl(this,void 0,void 0,function*(){const e=this.paymentIntegrationService.getState(),{phone:t,firstName:n,lastName:i}=e.getBillingAddressOrThrow(),r=`${n} ${i}`,o={styles:{},fields:Object.assign({cardholderName:{prefill:r,enabled:!0}},t&&{phoneNumber:{prefill:t}})},a=this.braintreeFastlaneUtils.getBraintreeFastlaneComponentOrThrow();this.braintreeCardComponent=yield a(o)})}renderBraintreeCardComponent(e){const t=this.getBraintreeCardComponentOrThrow();if(!e)throw new ki('Unable to initialize payment because "container" argument is not provided.');t.render(e)}preparePaymentPayload(e){var t,n;return Cl(this,void 0,void 0,function*(){const i=this.paymentIntegrationService.getState(),r=i.getBillingAddressOrThrow(),o=`${r.firstName} ${r.lastName}`,a=this.getPayPalInstruments()[0],s=yield this.braintreeFastlaneUtils.getDeviceSessionId(),d=Wt(i.getStoreConfigOrThrow().checkoutSettings.features,"PROJECT-7080.braintree_fastlane_three_ds");if(a){const t=this.is3DSEnabled&&d?yield this.get3DS(a.bigpayToken,(null==a?void 0:a.iin)||""):void 0;return{methodId:e,paymentData:{deviceSessionId:s,formattedPayload:{paypal_fastlane_token:{token:t||a.bigpayToken}}}}}const{getPaymentToken:c}=this.getBraintreeCardComponentOrThrow(),l=yield c({name:{fullName:o},billingAddress:this.mapToPayPalAddress(r)}),u=(null===(n=null===(t=l.paymentSource.card)||void 0===t?void 0:t.binDetails)||void 0===n?void 0:n.bin)||"",h=this.is3DSEnabled&&d?yield this.get3DS(l.id,u):void 0;return{methodId:e,paymentData:{deviceSessionId:s,nonce:h||l.id}}})}get3DS(e,t){return Cl(this,void 0,void 0,function*(){const n=this.paymentIntegrationService.getState(),i=yield this.braintreeSdk.getBraintreeThreeDS(),r=n.getOrderOrThrow();return new Promise((n,o)=>{i.verifyCard({amount:null==r?void 0:r.orderAmount,nonce:e,bin:t,onLookupComplete:(e,t)=>{i.on("customer-canceled",()=>{"function"==typeof this.onError&&this.onError(new nr),o(new nr)}),t()}},(e,t)=>(e&&"THREEDS_VERIFY_CARD_CANCELED_BY_MERCHANT"===e.code&&("function"==typeof this.onError&&this.onError(new nr),o(new nr)),n(t.nonce)))})})}mapToPayPalAddress(e){return{streetAddress:(null==e?void 0:e.address1)||"",locality:(null==e?void 0:e.city)||"",region:(null==e?void 0:e.stateOrProvinceCode)||(null==e?void 0:e.stateOrProvince)||"",postalCode:(null==e?void 0:e.postalCode)||"",countryCodeAlpha2:(null==e?void 0:e.countryCode)||""}}shouldRunAuthenticationFlow(){const e=this.paymentIntegrationService.getState(),t=e.getCartOrThrow(),n=e.getCustomerOrThrow(),i=e.getPaymentProviderCustomer(),r=_l(i)?i:{},o=this.braintreeFastlaneUtils.getSessionIdFromCookies();return!(!n.isGuest||(null==r?void 0:r.authenticationState)===qi.CANCELED||(null==r?void 0:r.authenticationState)||o!==t.id)}getBraintreeCardComponentOrThrow(){if(!this.braintreeCardComponent)throw new Oi;return this.braintreeCardComponent}getPayPalInstruments(){const e=this.paymentIntegrationService.getState().getPaymentProviderCustomerOrThrow();return(_l(e)?e:{}).instruments||[]}handleBraintreeStoredInstrumentChange(e){return Cl(this,void 0,void 0,function*(){const t=this.braintreeFastlaneUtils.getBraintreeFastlaneOrThrow(),{selectionChanged:n,selectedCard:i}=yield t.profile.showCardSelector();if(n){const t=this.paymentIntegrationService.getState().getPaymentProviderCustomer(),n=_l(t)?t:{},r=this.braintreeFastlaneUtils.mapPayPalToBcInstrument(e,[i]);if(r&&r.length>0)return yield this.paymentIntegrationService.updatePaymentProviderCustomer(Object.assign(Object.assign({},n),{instruments:[...r]})),r[0]}})}}const bl=Rt(e=>{const t=window,n=new Ri(e),i=new Ao(new tr(a(),t,n),t),r=new jo(e,i),o=new tr(a(),t,n),s=new Zi(o);return new Il(e,r,s)},[{id:"braintreeacceleratedcheckout"}]);var Pl=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Ol{constructor(e,t,n){this.paymentIntegrationService=e,this.formPoster=t,this.braintreeSdk=n}initialize(e){return Pl(this,void 0,void 0,function*(){const{braintreevisacheckout:t,methodId:n}=e;if(!t)throw new ki('Unable to initialize payment because "options.braintreevisacheckout" argument is not provided.');yield this.paymentIntegrationService.loadPaymentMethod(n);const i=this.paymentIntegrationService.getState();this.paymentMethod=i.getPaymentMethodOrThrow(n);const r=i.getCheckoutOrThrow(),o=i.getStoreConfigOrThrow(),{clientToken:a,config:s}=this.paymentMethod||{};if(!a)throw new pi(ui.MissingPaymentMethod);const{onError:d=V,onPaymentSelect:c=V}=t;this.braintreeSdk.initialize(a);const l=yield this.braintreeSdk.getBraintreeVisaCheckout(),u=yield this.braintreeSdk.getVisaCheckoutSdk(null==s?void 0:s.testMode),h=l.createInitOptions({settings:{locale:o.storeProfile.storeLanguage,shipping:{collectShipping:!1}},paymentRequest:{currencyCode:o.currency.code,subtotal:String(r.subtotal)}});yield u.init(h),u.on("payment.success",e=>this.tokenizePayment(l,e).then(()=>Promise.all([this.paymentIntegrationService.loadCheckout(),this.paymentIntegrationService.loadPaymentMethod(n)])).then(()=>c()).catch(e=>d(e))),u.on("payment.error",(e,t)=>d(t))})}execute(e,t){var n,i;return Pl(this,void 0,void 0,function*(){const{payment:r}=e,o=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!r)throw new ki('Unable to submit payment because "payload.payment" argument is not provided.');if(!(null===(i=null===(n=this.paymentMethod)||void 0===n?void 0:n.initializationData)||void 0===i?void 0:i.nonce))throw new pi(ui.MissingPaymentMethod);const{nonce:a}=this.paymentMethod.initializationData;try{yield this.paymentIntegrationService.submitOrder(o,t),yield this.paymentIntegrationService.submitPayment(Object.assign(Object.assign({},r),{paymentData:{nonce:a}}))}catch(e){this.handleError(e)}})}finalize(){return Promise.reject(new Id)}deinitialize(){return Pl(this,void 0,void 0,function*(){yield this.braintreeSdk.deinitialize()})}tokenizePayment(e,t){return Pl(this,void 0,void 0,function*(){return Promise.all([e.tokenize(t),this.braintreeSdk.getDataCollectorOrThrow()]).then(([e,t])=>{const n=this.paymentIntegrationService.getState(),i=n.getShippingAddress(),r=n.getBillingAddress(),{shippingAddress:o=this.mapToVisaCheckoutAddress(i),billingAddress:a=this.mapToVisaCheckoutAddress(r)}=e;return this.postForm(Object.assign(Object.assign({},e),{shippingAddress:o,billingAddress:a}),t)})})}mapToVisaCheckoutAddress(e){return e?{firstName:e.firstName,lastName:e.lastName,phoneNumber:e.phone,streetAddress:e.address1,extendedAddress:e.address2,locality:e.city,region:e.stateOrProvinceCode,countryCode:e.countryCode,postalCode:e.postalCode}:{}}postForm(e,t){const{userData:n,billingAddress:i,shippingAddress:r,details:o}=e,{userEmail:a}=n,{deviceData:s}=t;return this.formPoster.postForm("/checkout.php",{payment_type:e.type,nonce:e.nonce,provider:"braintreevisacheckout",action:"set_external_checkout",device_data:s,card_information:JSON.stringify({type:o.cardType,number:o.lastTwo}),billing_address:JSON.stringify(this.getAddress(a,i)),shipping_address:JSON.stringify(this.getAddress(a,r))})}getAddress(e,t={}){return{email:e,first_name:t.firstName,last_name:t.lastName,phone_number:t.phoneNumber,address_line_1:t.streetAddress,address_line_2:t.extendedAddress,city:t.locality,state:t.region,country_code:t.countryCode,postal_code:t.postalCode}}handleError(e){if(e instanceof Error&&"BraintreeError"===e.name)throw new so(e.message);throw e}}const El=Rt(e=>{const t=window,n=new Ri(e),i=new Zi(new tr(a(),t,n));return new Ol(e,Ee(),i)},[{id:"braintreevisacheckout"}]);var Al=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class kl{constructor(e,t){this.paymentIntegrationService=e,this.braintreeIntegrationService=t}initialize(e){return Al(this,void 0,void 0,function*(){const{methodId:t}=e;yield this.paymentIntegrationService.loadPaymentMethod(t);const n=this.paymentIntegrationService.getState();this.venmoOptions=e.braintreevenmo;const i=n.getPaymentMethodOrThrow(t);yield this.initializeBraintreeVenmo(i)})}execute(e){return Al(this,void 0,void 0,function*(){const{payment:t}=e,n=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!t)throw new fo(["payment"]);try{const e=yield this.preparePaymentData(t);yield this.paymentIntegrationService.submitOrder(n),yield this.paymentIntegrationService.submitPayment(e)}catch(e){this.handleError(e)}})}finalize(){return Promise.reject(new Id)}deinitialize(){return Al(this,void 0,void 0,function*(){return yield this.braintreeIntegrationService.teardown(),Promise.resolve()})}handleError(e){if(!$i(e))throw e;if("PAYPAL_POPUP_CLOSED"===e.code)throw new nr(e.message);throw new so(e.message)}initializeBraintreeVenmo(e){var t;return Al(this,void 0,void 0,function*(){const{clientToken:n}=e;if(!n)throw new pi(ui.MissingPaymentMethod);const i=Wt(this.paymentIntegrationService.getState().getStoreConfigOrThrow().checkoutSettings.features,"PAYPAL-5406.braintree_venmo_web_fallback_support");try{this.braintreeIntegrationService.initialize(n),this.braintreeVenmoCheckout=yield this.braintreeIntegrationService.getVenmoCheckout(Object.assign(Object.assign({},void 0!==(null===(t=this.venmoOptions)||void 0===t?void 0:t.allowDesktop)?{allowDesktop:this.venmoOptions.allowDesktop}:{}),i?{mobileWebFallBack:i}:{}))}catch(e){this.handleError(e)}})}preparePaymentData(e){return Al(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState(),{nonce:n}=t.getPaymentMethodOrThrow(e.methodId);if(n)return Object.assign(Object.assign({},e),{paymentData:this.formattedPayload(n)});const i=yield this.braintreeVenmoTokenize(),r=yield this.braintreeIntegrationService.getSessionId();return Object.assign(Object.assign({},e),{paymentData:this.formattedPayload(i.nonce,i.details.email,r)})})}formattedPayload(e,t,n){return{formattedPayload:{vault_payment_instrument:null,set_as_default_stored_instrument:null,device_info:n||null,paypal_account:{token:e,email:t||null}}}}braintreeVenmoTokenize(){return new Promise((e,t)=>{var n;null===(n=this.braintreeVenmoCheckout)||void 0===n||n.tokenize((n,i)=>{if(n)return t(n);e(i)})})}}const Tl=Rt(e=>{const t=window,n=a(),i=new Ri(e),r=new tr(n,t,i),o=new Ao(r,t);return new kl(e,o)},[{id:"braintreevenmo"}]);var Dl=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Ml{constructor(e,t,n){this.paymentIntegrationService=e,this.braintreeIntegrationService=t,this.braintreeHostedForm=n}initialize(e){return Dl(this,void 0,void 0,function*(){const{methodId:t,gatewayId:n,braintree:i}=e;yield this.paymentIntegrationService.loadPaymentMethod(t);const r=this.paymentIntegrationService.getState();this.paymentMethod=r.getPaymentMethodOrThrow(t);const{clientToken:o}=this.paymentMethod;if(!o)throw new pi(ui.MissingPaymentMethod);this.threeDSecure=null==i?void 0:i.threeDSecure;try{this.braintreeIntegrationService.initialize(o,this.threeDSecure),this.isHostedPaymentFormEnabled(t,n)&&(null==i?void 0:i.form)&&(yield this.braintreeHostedForm.initialize(i.form,i.unsupportedCardBrands,o),this.isHostedFormInitialized=this.braintreeHostedForm.isInitialized()),this.is3dsEnabled=this.paymentMethod.config.is3dsEnabled,this.deviceSessionId=yield this.braintreeIntegrationService.getSessionId(),this.shouldInitializeBraintreeFastlane()&&(yield this.initializeBraintreeFastlaneOrThrow(t))}catch(e){return this.handleError(e)}})}execute(e){return Dl(this,void 0,void 0,function*(){const{payment:t}=e,n=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!t)throw new fo(["payment"]);this.isHostedFormInitialized&&this.braintreeHostedForm.validate(),yield this.paymentIntegrationService.submitOrder(n);const i=this.paymentIntegrationService.getState(),r=i.getBillingAddressOrThrow(),o=i.getOrderOrThrow().orderAmount;try{const e=this.isHostedFormInitialized?yield this.prepareHostedPaymentData(t,r,o):yield this.preparePaymentData(t,r,o);yield this.paymentIntegrationService.submitPayment(Object.assign(Object.assign({},t),{paymentData:e}))}catch(e){return this.processAdditionalAction(e,t,o)}})}finalize(){return Promise.reject(new Id)}deinitialize(){return Dl(this,void 0,void 0,function*(){return this.isHostedFormInitialized=!1,yield Promise.all([this.braintreeIntegrationService.teardown(),this.braintreeHostedForm.deinitialize()]),Promise.resolve()})}handleError(e){if(hl(e))throw new so(e.message);throw e}preparePaymentData(e,t,n){return Dl(this,void 0,void 0,function*(){const{paymentData:i}=e,r={deviceSessionId:this.deviceSessionId};if(this.isSubmittingWithStoredCard(e))return Object.assign(Object.assign({},r),i);const{shouldSaveInstrument:o=!1,shouldSetAsDefaultInstrument:a=!1}=Ad(i)?i:{},{nonce:s}=this.shouldPerform3DSVerification(e)?yield this.braintreeIntegrationService.verifyCard(e,t,n):yield this.braintreeIntegrationService.tokenizeCard(e,t);return Object.assign(Object.assign({},r),{nonce:s,shouldSaveInstrument:o,shouldSetAsDefaultInstrument:a})})}prepareHostedPaymentData(e,t,n){return Dl(this,void 0,void 0,function*(){const{paymentData:i}=e,r={deviceSessionId:this.deviceSessionId};if(this.isSubmittingWithStoredCard(e)){const{nonce:e}=yield this.braintreeHostedForm.tokenizeForStoredCardVerification();return Object.assign(Object.assign(Object.assign({},r),i),{nonce:e})}const{shouldSaveInstrument:o=!1,shouldSetAsDefaultInstrument:a=!1}=Ad(i)?i:{},{nonce:s}=this.shouldPerform3DSVerification(e)?yield this.verifyCardWithHostedForm(t,n):yield this.braintreeHostedForm.tokenize(t);return Object.assign(Object.assign({},r),{shouldSaveInstrument:o,shouldSetAsDefaultInstrument:a,nonce:s})})}verifyCardWithHostedForm(e,t){return Dl(this,void 0,void 0,function*(){const n=yield this.braintreeHostedForm.tokenize(e);return this.braintreeIntegrationService.challenge3DSVerification(n,t)})}processAdditionalAction(e,t,n){return Dl(this,void 0,void 0,function*(){if(!wa(e)||!Z(e.body.errors,{code:"three_d_secure_required"}))return this.handleError(e);try{const{payer_auth_request:i}=function(e){return"object"==typeof e&&null!==e&&"name"in e&&"body"in e&&"status"in e.body&&"three_ds_result"in e.body&&"payer_auth_request"in e.body.three_ds_result&&"errors"in e.body}(e)&&e.body.three_ds_result||{},{paymentData:r}=t,o=this.paymentIntegrationService.getState();if(!r||!Cd(r))throw new fo(["instrumentId"]);const a=o.getCardInstrumentOrThrow(r.instrumentId),{nonce:s}=yield this.braintreeIntegrationService.challenge3DSVerification({nonce:i||"",bin:a.iin},n);yield this.paymentIntegrationService.submitPayment(Object.assign(Object.assign({},t),{paymentData:{deviceSessionId:this.deviceSessionId,nonce:s}}))}catch(e){return this.handleError(e)}})}isHostedPaymentFormEnabled(e,t){return!!e&&!0===this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e,t).config.isHostedFormEnabled}isSubmittingWithStoredCard(e){return!(!e.paymentData||!Cd(e.paymentData))}shouldPerform3DSVerification(e){return!(!this.is3dsEnabled||this.isSubmittingWithStoredCard(e))}shouldInitializeBraintreeFastlane(){var e;const t=this.paymentIntegrationService.getState().getPaymentProviderCustomerOrThrow(),n=_l(t)?t:{};return(null===(e=this.paymentMethod)||void 0===e?void 0:e.initializationData.isAcceleratedCheckoutEnabled)&&!(null==n?void 0:n.authenticationState)}initializeBraintreeFastlaneOrThrow(e){return Dl(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState(),n=t.getCartOrThrow(),i=t.getPaymentMethodOrThrow(e),{clientToken:r,config:o}=i;if(!r)throw new pi(ui.MissingPaymentMethod);this.braintreeIntegrationService.initialize(r,this.threeDSecure),yield this.braintreeIntegrationService.getBraintreeFastlane(n.id,o.testMode)})}}function zl(e){return"cardNumber"in e}function Nl(e){if(!$i(e))return!1;const{details:t}=e;return void 0===t||"object"==typeof t&&null!==t&&void 0===t.invalidFieldKeys||(n=t,Array.isArray(n)&&n.every(e=>"string"==typeof e));var n}var xl,Fl=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};!function(e){e[e.CreditCard=0]="CreditCard",e[e.StoredCardVerification=1]="StoredCardVerification"}(xl||(xl={}));class Rl{constructor(e,t){this.braintreeScriptLoader=e,this.braintreeSDKVersionManager=t,this.isInitializedHostedForm=!1,this.handleBlur=e=>{var t,n;null===(n=null===(t=this.formOptions)||void 0===t?void 0:t.onBlur)||void 0===n||n.call(t,{fieldType:this.mapFieldType(e.emittedBy),errors:this.mapErrors(e.fields)})},this.handleFocus=e=>{var t,n;null===(n=null===(t=this.formOptions)||void 0===t?void 0:t.onFocus)||void 0===n||n.call(t,{fieldType:this.mapFieldType(e.emittedBy)})},this.handleCardTypeChange=e=>{var t,n;const i=1===e.cards.length?e.cards[0].type.replace(/^master-card$/,"mastercard"):void 0;null===(n=null===(t=this.formOptions)||void 0===t?void 0:t.onCardTypeChange)||void 0===n||n.call(t,{cardType:i})},this.handleInputSubmitRequest=e=>{var t,n;null===(n=null===(t=this.formOptions)||void 0===t?void 0:t.onEnter)||void 0===n||n.call(t,{fieldType:this.mapFieldType(e.emittedBy)})},this.handleValidityChange=e=>{var t,n;null===(n=null===(t=this.formOptions)||void 0===t?void 0:t.onValidate)||void 0===n||n.call(t,{isValid:this.isValidForm(e),errors:this.mapValidationErrors(e.fields)})}}initialize(e,t,n){var i,r,o,a,s;return Fl(this,void 0,void 0,function*(){this.clientToken=n,this.formOptions=e,this.type=zl(e.fields)?xl.CreditCard:xl.StoredCardVerification;const d=this.mapFieldOptions(e.fields,t);E(d)?this.isInitializedHostedForm=!1:(this.cardFields=yield this.createHostedFields({fields:d,styles:e.styles&&this.mapStyleOptions(e.styles)}),null===(i=this.cardFields)||void 0===i||i.on("blur",this.handleBlur),null===(r=this.cardFields)||void 0===r||r.on("focus",this.handleFocus),null===(o=this.cardFields)||void 0===o||o.on("cardTypeChange",this.handleCardTypeChange),null===(a=this.cardFields)||void 0===a||a.on("validityChange",this.handleValidityChange),null===(s=this.cardFields)||void 0===s||s.on("inputSubmitRequest",this.handleInputSubmitRequest),this.isInitializedHostedForm=!0)})}isInitialized(){return!!this.isInitializedHostedForm}deinitialize(){var e;return Fl(this,void 0,void 0,function*(){this.isInitializedHostedForm&&(this.isInitializedHostedForm=!1,yield null===(e=this.cardFields)||void 0===e?void 0:e.teardown())})}validate(){if(!this.cardFields)throw new gi(hi.PaymentNotInitialized);const e=this.cardFields.getState();if(!this.isValidForm(e)){this.handleValidityChange(e);const t=this.mapValidationErrors(e.fields);throw new So(t)}}tokenize(e){var t,n,i,r,o;return Fl(this,void 0,void 0,function*(){if(!this.cardFields)throw new gi(hi.PaymentNotInitialized);try{const r=yield this.cardFields.tokenize(H({billingAddress:e&&this.mapBillingAddress(e)},T));return null===(n=null===(t=this.formOptions)||void 0===t?void 0:t.onValidate)||void 0===n||n.call(t,{isValid:!0,errors:{}}),{nonce:r.nonce,bin:null===(i=r.details)||void 0===i?void 0:i.bin}}catch(e){if(Nl(e)){const t=this.mapTokenizeError(e);if(t)throw null===(o=null===(r=this.formOptions)||void 0===r?void 0:r.onValidate)||void 0===o||o.call(r,{isValid:!1,errors:t}),new So(t)}throw e}})}tokenizeForStoredCardVerification(){var e,t,n,i,r;return Fl(this,void 0,void 0,function*(){if(!this.cardFields)throw new gi(hi.PaymentNotInitialized);try{const i=yield this.cardFields.tokenize();return null===(t=null===(e=this.formOptions)||void 0===e?void 0:e.onValidate)||void 0===t||t.call(e,{isValid:!0,errors:{}}),{nonce:i.nonce,bin:null===(n=i.details)||void 0===n?void 0:n.bin}}catch(e){if(Nl(e)){const t=this.mapTokenizeError(e,!0);if(t)throw null===(r=null===(i=this.formOptions)||void 0===i?void 0:i.onValidate)||void 0===r||r.call(i,{isValid:!1,errors:t}),new So(t)}throw e}})}createHostedFields(e){return Fl(this,void 0,void 0,function*(){const t=yield this.getClient(),n=yield this.braintreeScriptLoader.loadHostedFields(),i=this.braintreeSDKVersionManager.getSDKVersion()===Ni?Object.assign(Object.assign({},e),{preventCursorJumps:!0}):e;return n.create(Object.assign(Object.assign({},i),{client:t}))})}getClient(){return Fl(this,void 0,void 0,function*(){if(!this.clientToken)throw new gi(hi.PaymentNotInitialized);if(!this.client){const e=yield this.braintreeScriptLoader.loadClient();this.client=e.create({authorization:this.clientToken})}return this.client})}mapBillingAddress(e){return{countryName:e.country,postalCode:e.postalCode,streetAddress:e.address2?`${e.address1} ${e.address2}`:e.address1}}mapFieldOptions(e,t){if(zl(e)){const n={};return null==t||t.forEach(e=>{(e=>Object.values(Hi).includes(e))(e)&&(n[e]=!1)}),H({number:Object.assign({container:`#${e.cardNumber.containerId}`,placeholder:e.cardNumber.placeholder,internalLabel:e.cardNumber.accessibilityLabel},Object.keys(n).length>0?{supportedCardBrands:n}:{}),expirationDate:{container:`#${e.cardExpiry.containerId}`,placeholder:e.cardExpiry.placeholder,internalLabel:e.cardExpiry.accessibilityLabel},cvv:e.cardCode&&{container:`#${e.cardCode.containerId}`,placeholder:e.cardCode.placeholder,internalLabel:e.cardCode.accessibilityLabel},cardholderName:{container:`#${e.cardName.containerId}`,placeholder:e.cardName.placeholder,internalLabel:e.cardName.accessibilityLabel}},T)}return H({number:e.cardNumberVerification&&{container:`#${e.cardNumberVerification.containerId}`,placeholder:e.cardNumberVerification.placeholder},cvv:e.cardCodeVerification&&{container:`#${e.cardCodeVerification.containerId}`,placeholder:e.cardCodeVerification.placeholder}},T)}mapStyleOptions(e){const t=(e={})=>H({color:e.color,"font-family":e.fontFamily,"font-size":e.fontSize,"font-weight":e.fontWeight},T);return{input:t(e.default),".invalid":t(e.error),":focus":t(e.focus)}}mapFieldType(e){switch(e){case"number":return this.type===xl.StoredCardVerification?Ki.CardNumberVerification:Ki.CardNumber;case"expirationDate":return Ki.CardExpiry;case"cvv":return this.type===xl.StoredCardVerification?Ki.CardCodeVerification:Ki.CardCode;case"cardholderName":return Ki.CardName;default:throw new Error("Unexpected field type")}}mapErrors(e){const t={};if(e)for(const[n,i]of Object.entries(e))if(i&&this.isValidParam(n)){const{isValid:e,isEmpty:r,isPotentiallyValid:o}=i;t[n]={isValid:e,isEmpty:r,isPotentiallyValid:o}}return t}mapValidationErrors(e){return Object.keys(e).reduce((t,n)=>{var i;return Object.assign(Object.assign({},t),{[this.mapFieldType(n)]:(null===(i=e[n])||void 0===i?void 0:i.isValid)?void 0:[this.createInvalidError(this.mapFieldType(n))]})},{})}mapTokenizeError(e,t=!1){var n,i;if("HOSTED_FIELDS_FIELDS_EMPTY"===e.code){const e=[this.createRequiredError(this.mapFieldType("cvv"))];return t?{[this.mapFieldType("cvv")]:e}:{[this.mapFieldType("cvv")]:e,[this.mapFieldType("expirationDate")]:[this.createRequiredError(this.mapFieldType("expirationDate"))],[this.mapFieldType("number")]:[this.createRequiredError(this.mapFieldType("number"))],[this.mapFieldType("cardholderName")]:[this.createRequiredError(this.mapFieldType("cardholderName"))]}}return null===(i=null===(n=e.details)||void 0===n?void 0:n.invalidFieldKeys)||void 0===i?void 0:i.reduce((e,t)=>{const n=this.mapFieldType(t);return Object.assign(Object.assign({},e),{[n]:[this.createInvalidError(n)]})},{})}createRequiredError(e){var t;return{fieldType:e,message:null!==(t={[Ki.CardCode]:"CVV is required",[Ki.CardCodeVerification]:"CVV is required",[Ki.CardNumber]:"Credit card number is required",[Ki.CardNumberVerification]:"Credit card number is required",[Ki.CardExpiry]:"Expiration date is required",[Ki.CardName]:"Full name is required"}[e])&&void 0!==t?t:"Field is required",type:"required"}}createInvalidError(e){var t,n,i,r;const o={[Ki.CardCode]:{message:"Invalid card code",type:"invalid_card_code"},[Ki.CardCodeVerification]:{message:"Invalid card code",type:"invalid_card_code"},[Ki.CardNumber]:{message:"Invalid card number",type:"invalid_card_number"},[Ki.CardNumberVerification]:{message:"Invalid card number",type:"invalid_card_number"},[Ki.CardExpiry]:{message:"Invalid card expiry",type:"invalid_card_expiry"},[Ki.CardName]:{message:"Invalid card name",type:"invalid_card_name"}};return{fieldType:e,message:null!==(n=null===(t=o[e])||void 0===t?void 0:t.message)&&void 0!==n?n:"Invalid field",type:null!==(r=null===(i=o[e])||void 0===i?void 0:i.type)&&void 0!==r?r:"invalid"}}isValidForm(e){return Object.keys(e.fields).every(t=>{var n;return null===(n=e.fields[t])||void 0===n?void 0:n.isValid})}isValidParam(e){return["number","cvv","expirationDate","postalCode","cardholderName","cardType"].includes(e)}}const Ll=Rt(e=>{const t=window,n=new Ri(e),i=new tr(a(),t,n),r=new Ao(i,t),o=new Rl(i,n);return new Ml(e,r,o)},[{id:"braintree"}]);var Bl=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})},jl=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n};class Ul{constructor(e){this._paymentIntegrationService=e}execute(e,t){var n,i;return this._isHostedPaymentFormEnabled(null===(n=e.payment)||void 0===n?void 0:n.methodId,null===(i=e.payment)||void 0===i?void 0:i.gatewayId)&&this._shouldRenderHostedForm?this._executeWithHostedForm(e,t):this._executeWithoutHostedForm(e,t)}initialize(e){if(!this._isHostedPaymentFormEnabled(null==e?void 0:e.methodId,null==e?void 0:e.gatewayId)||!this._isHostedFieldAvailable(e))return this._shouldRenderHostedForm=!1,Promise.resolve();const t=e&&e.creditCard&&e.creditCard.form,n=this._paymentIntegrationService.getState(),{paymentSettings:{bigpayBaseUrl:i=""}={}}=n.getStoreConfigOrThrow();if(!t)throw new ki;const r=this._paymentIntegrationService.createHostedForm(i,t);return r.attach().then(()=>(this._shouldRenderHostedForm=!0,this._hostedForm=r,Promise.resolve()))}deinitialize(){return this._hostedForm&&this._hostedForm.detach(),Promise.resolve()}finalize(){return Promise.reject(new Id)}_executeWithoutHostedForm(e,t){return Bl(this,void 0,void 0,function*(){const{payment:n}=e,i=jl(e,["payment"]),r=n&&n.paymentData;if(!n||!r)throw new fo(["payment.paymentData"]);yield this._paymentIntegrationService.submitOrder(i,t),yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},n),{paymentData:r}))})}_executeWithHostedForm(e,t){return Bl(this,void 0,void 0,function*(){const{payment:n}=e,i=jl(e,["payment"]),r=this._hostedForm;if(!r)throw new gi(hi.PaymentNotInitialized);if(!n||!n.methodId)throw new fo(["payment.methodId"]);yield this._paymentIntegrationService.submitOrder(i,t),yield r.validate().then(()=>r.submit(n))})}_isHostedPaymentFormEnabled(e,t){return!!e&&!0===this._paymentIntegrationService.getState().getPaymentMethodOrThrow(e,t).config.isHostedFormEnabled}_isHostedFieldAvailable(e){return!ie(e&&e.creditCard&&e.creditCard.form.fields).every(T)}}var ql=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Vl extends Ul{constructor(e,t){super(e),this.paymentIntegrationService=e,this.cbaMGPSScriptLoader=t,this.sessionId=""}initialize(e){const t=Object.create(null,{initialize:{get:()=>super.initialize}});return ql(this,void 0,void 0,function*(){yield t.initialize.call(this,e);const{methodId:n}=e;yield this.paymentIntegrationService.loadPaymentMethod(n);const i=this.paymentIntegrationService.getState(),r=i.getPaymentMethodOrThrow(n);if(!function(e){return"object"==typeof e&&null!==e&&"initializationData"in e&&"object"==typeof e.initializationData&&null!==e.initializationData&&"merchantId"in e.initializationData&&"string"==typeof e.initializationData.merchantId&&("boolean"==typeof e.initializationData.isTestModeFlagEnabled||void 0===e.initializationData.isTestModeFlagEnabled)}(r))throw new pi(ui.MissingPaymentMethod);const{clientToken:o,initializationData:{isTestModeFlagEnabled:a=!1,merchantId:s},config:{is3dsEnabled:d}}=r;if(d){if(this.threeDSjs=yield this.cbaMGPSScriptLoader.load(a),!this.threeDSjs)throw new gi(hi.PaymentNotInitialized);if(!o||!s)throw new pi(ui.MissingPaymentMethod);if(this.sessionId=o,this.locale=i.getLocale(),!this.locale)throw new pi(ui.MissingCart);yield this.threeDSjs.configure({merchantId:s,sessionId:this.sessionId,callback:()=>{var e;if(null===(e=this.threeDSjs)||void 0===e?void 0:e.isConfigured())return this.paymentIntegrationService.getState();throw new so("Failed to configure 3DS API.")},configuration:{userLanguage:this.locale,wsVersion:62}})}return Promise.resolve()})}execute(e,t){const n=Object.create(null,{execute:{get:()=>super.execute}});return ql(this,void 0,void 0,function*(){const{payment:i}=e,r=i&&i.paymentData;if(!i||!r)throw new fo(["payment.paymentData"]);const o=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(i.methodId),{is3dsEnabled:a}=o.config;if(a){const t=Object.assign(Object.assign({},r),{threeDSecure:{token:this.sessionId}});e.payment&&(e.payment.paymentData=t)}return n.execute.call(this,e,t).catch(e=>{if(!a||!wa(e)||!Z(e.body.errors,{code:"three_d_secure_required"}))return Promise.reject(e);const t=this.paymentIntegrationService.getState(),n=t.getOrder(),{storeProfile:{storeId:i}}=t.getStoreConfigOrThrow();if(!n||!this.sessionId)throw new pi(ui.MissingCheckout);const r=`${i}_${n.orderId}`;if("object"!=typeof(o=e.body)||null===o||!("three_ds_result"in o)||"object"!=typeof o.three_ds_result||null===o.three_ds_result||!("token"in o.three_ds_result)||"string"!=typeof o.three_ds_result.token)throw new hr;var o;const{three_ds_result:{token:s}}=e.body;return s?this.initiateAuthentication(r,s):Promise.reject(e)})})}finalize(e){return ql(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState();return t.getOrder()&&t.getPaymentStatus()===Yc.FINALIZE?(yield this.paymentIntegrationService.finalizeOrder(e),Promise.resolve()):Promise.reject(new Id)})}deinitialize(){return this.threeDSjs=void 0,this.sessionId="",super.deinitialize()}initiateAuthentication(e,t){return ql(this,void 0,void 0,function*(){const n=yield new Promise((n,i)=>{if(!this.threeDSjs)throw new gi(hi.PaymentNotInitialized);this.threeDSjs.initiateAuthentication(e,t,e=>{const t=e.error;return t?i(new so(t.msg)):this.threeDSjs&&"PROCEED"===e.gatewayRecommendation?n(e.restApiResponse):i(new so)})});if(n.transaction&&"AUTHENTICATION_AVAILABLE"===n.transaction.authenticationStatus)return this.authenticatePayer(e,t);throw new so})}authenticatePayer(e,t,n=1){return ql(this,void 0,void 0,function*(){return new Promise((i,r)=>{if(!this.threeDSjs)return r(new gi(hi.PaymentNotInitialized));this.threeDSjs.authenticatePayer(e,t,i=>ql(this,void 0,void 0,function*(){const o=i.error;return o?o.cause&&"SERVER_BUSY"===o.cause&&n<5?(yield new Promise(e=>setTimeout(e,3e3)),this.authenticatePayer(e,t,++n)):r(new so):new Promise(V)}),{fullScreenRedirect:!0})})})}}class Gl{constructor(e,t=window){this._scriptLoader=e,this._window=t}load(e){return t=this,n=void 0,r=function*(){if(yield this._scriptLoader.loadScript(`//${e?"test":"ap"}-gateway.mastercard.com/static/threeDS/1.3.0/three-ds.min.js`),!this._window.ThreeDS)throw new Oi;return this._window.ThreeDS},new((i=void 0)||(i=Promise))(function(e,o){function a(e){try{d(r.next(e))}catch(e){o(e)}}function s(e){try{d(r.throw(e))}catch(e){o(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((r=r.apply(t,n||[])).next())});var t,n,i,r}}const Hl=Rt(e=>new Vl(e,new Gl(a())),[{id:"cba_mpgs"}]);var $l;!function(e){e.OffsiteRedirect="offsite_redirect"}($l||($l={}));class Wl extends Ul{constructor(e){super(e),this.paymentIntegrationService=e}finalize(e){const t=this.paymentIntegrationService.getState();return t.getOrder()&&t.getPaymentStatus()===Yc.FINALIZE&&this.paymentIntegrationService.finalizeOrder(e),Promise.reject(new Id)}_executeWithHostedForm(e,t){return n=this,i=void 0,o=function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),r=this._hostedForm;if(!r)throw new gi(hi.PaymentNotInitialized);if(!n||!n.methodId)throw new fo(["payment.methodId"]);try{yield r.validate(),yield this.paymentIntegrationService.submitOrder(i,t),yield r.submit(n)}catch(e){return this._processResponse(e)}this.paymentIntegrationService.loadCurrentOrder()},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}_processResponse(e){if(!wa(e))return Promise.reject(e);const t=e.body.additional_action_required;return t&&t.type===$l.OffsiteRedirect?this._performRedirect(t):Promise.reject(e)}_performRedirect(e){return new Promise(()=>{window.location.replace(e.data.redirect_url)})}}class Yl extends Wl{_executeWithoutHostedForm(e,t){return n=this,i=void 0,o=function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),r=n&&n.paymentData;if(!n||!r)throw new fo(["payment.paymentData"]);yield this._paymentIntegrationService.submitOrder(i,t);try{yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},n),{paymentData:Object.assign(Object.assign({},r),{formattedPayload:this._createFormattedPayload(n.methodId,r)})}))}catch(e){return this._processResponse(e)}},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}_createFormattedPayload(e,t){if("fawry"===e&&"customerMobile"in t&&"customerEmail"in t){const e=t;return{customerMobile:e.customerMobile,customerEmail:e.customerEmail}}}}const Kl=Rt(e=>new Yl(e),[{gateway:"checkoutcom",id:"fawry"}]);function Jl(e){return wa(e)&&Z(e.body.errors,{code:"three_d_secure_required"})}var Zl=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})},Ql=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n};class Xl extends Ul{constructor(e,t){super(e),this.paymentIntegrationService=e,this.formPoster=t}finalize(e){const t=this.paymentIntegrationService.getState();return t.getOrder()&&t.getPaymentStatus()===Yc.FINALIZE&&this.paymentIntegrationService.finalizeOrder(e),Promise.reject(new Id)}_executeWithoutHostedForm(e,t){return Zl(this,void 0,void 0,function*(){const{payment:n}=e,i=Ql(e,["payment"]),r=n&&n.paymentData;if(!n||!r)throw new fo(["payment.paymentData"]);yield this.paymentIntegrationService.submitOrder(i,t);try{yield this.paymentIntegrationService.submitPayment(Object.assign(Object.assign({},n),{paymentData:r}))}catch(e){return Jl(e)?this._handleThreeDSecure(e):Promise.reject(e)}})}_executeWithHostedForm(e,t){return Zl(this,void 0,void 0,function*(){const{payment:n}=e,i=Ql(e,["payment"]),r=this._hostedForm;if(!r)throw new gi(hi.PaymentNotInitialized);if(!n||!n.methodId)throw new fo(["payment.methodId"]);try{yield r.validate(),yield this.paymentIntegrationService.submitOrder(i,t),yield r.submit(n)}catch(e){return Jl(e)?this._handleThreeDSecure(e):Promise.reject(e)}this.paymentIntegrationService.loadCurrentOrder()})}_handleThreeDSecure(e){const{acs_url:t,payer_auth_request:n,callback_url:i,merchant_data:r}=e.body.three_ds_result;return new Promise(()=>this.formPoster.postForm(t,{PaReq:n||null,TermUrl:i||null,MD:r||null}))}}const eu=Rt(e=>new Xl(e,Ee()),[{gateway:"checkoutcom",id:"credit_card"},{gateway:"checkoutcom",id:"card"}]);class tu extends Wl{_executeWithoutHostedForm(e,t){return n=this,i=void 0,o=function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),r=null==n?void 0:n.paymentData;if(!n||!r)throw new fo(["payment.paymentData"]);yield this._paymentIntegrationService.submitOrder(i,t);try{yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},n),{paymentData:Object.assign(Object.assign({},r),{formattedPayload:this._createFormattedPayload(n.methodId,r)})}))}catch(e){return this._processResponse(e)}},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}_createFormattedPayload(e,t){const n={iban:"",bic:""},{iban:i,bic:r}="iban"in t&&"bic"in t?t:n;return"sepa"===e&&document&&(n.iban=i,n.bic=r),n}}const nu=Rt(e=>new tu(e),[{gateway:"checkoutcom",id:"sepa"}]);class iu extends Wl{_executeWithoutHostedForm(e,t){return n=this,i=void 0,o=function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),r=null==n?void 0:n.paymentData;if(!n||!r)throw new fo(["payment.paymentData"]);yield this._paymentIntegrationService.submitOrder(i,t);try{yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},n),{paymentData:Object.assign(Object.assign({},r),{formattedPayload:this._createFormattedPayload(n.methodId,r)})}))}catch(e){return this._processResponse(e)}},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}_createFormattedPayload(e,t){if("ideal"===e&&"bic"in t)return{bic:t.bic}}}const ru=Rt(e=>new iu(e),[{gateway:"checkoutcom",id:"ideal"}]);const ou=["boleto","oxxo","qpay","ideal"];class au extends Wl{_executeWithoutHostedForm(e,t){return n=this,i=void 0,o=function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),r=null==n?void 0:n.paymentData;if(!n||!r)throw new fo(["payment.paymentData"]);yield this._paymentIntegrationService.submitOrder(i,t);try{yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},n),{paymentData:Object.assign(Object.assign({},r),{formattedPayload:this._createFormattedPayload(n.methodId,r)})}))}catch(e){return this._processResponse(e)}},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}_createFormattedPayload(e,t){const n={ccDocument:""},i="ccDocument"in t?t.ccDocument:"";return-1!==ou.indexOf(e)&&i&&(n.ccDocument=i),n}}const su=Rt(e=>new au(e),[{gateway:"checkoutcom"}]);var du=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class cu{constructor(e,t){this._paymentIntegrationService=e,this._clearpayScriptLoader=t}initialize(e){return du(this,void 0,void 0,function*(){const{getPaymentMethodOrThrow:t}=this._paymentIntegrationService.getState(),n=t(e.methodId,e.gatewayId);this._clearpaySdk=yield this._clearpayScriptLoader.load(n)})}deinitialize(){return this._clearpaySdk=void 0,Promise.resolve()}execute(e,t){return du(this,void 0,void 0,function*(){const{gatewayId:n,methodId:i}=e.payment||{};if(!n||!i)throw new fo(["payment.gatewayId","payment.methodId"]);const r=this._paymentIntegrationService.getState(),{isStoreCreditApplied:o}=r.getCheckoutOrThrow();yield this._paymentIntegrationService.applyStoreCredit(o),yield this._paymentIntegrationService.validateCheckout(r.getCheckout(),t);const{countryCode:a}=r.getBillingAddressOrThrow();if(!this._isCountrySupported(a))throw new ki("Unable to proceed because billing country is not supported.");return yield this._loadPaymentMethod(n,i,t),yield this._redirectToClearpay(a,this._paymentIntegrationService.getState().getPaymentMethod(i,n)),new Promise(V)})}finalize(e){var t,n,i;return du(this,void 0,void 0,function*(){const r=this._paymentIntegrationService.getState(),o=r.getPaymentId(),a=r.getContextConfig();if(!o)throw new pi(ui.MissingCheckout);if(!a||!a.payment.token)throw new pi(ui.MissingCheckoutConfig);const s={methodId:o.providerId,paymentData:{nonce:a.payment.token}};yield this._paymentIntegrationService.submitOrder({},e);try{yield this._paymentIntegrationService.submitPayment(s)}catch(e){if(yield this._paymentIntegrationService.forgetCheckout(o.providerId),yield this._paymentIntegrationService.loadPaymentMethods(),wa(e))throw new Rd(null===(i=null===(n=null===(t=e.body)||void 0===t?void 0:t.errors)||void 0===n?void 0:n[0])||void 0===i?void 0:i.message)}})}_redirectToClearpay(e,t){return du(this,void 0,void 0,function*(){if(!this._clearpaySdk||!t||!t.clientToken)throw new gi(hi.PaymentNotInitialized);return this._clearpaySdk.initialize({countryCode:e}),this._clearpaySdk.redirect({token:t.clientToken}),Promise.resolve()})}_isCountrySupported(e){return"GB"===e}_loadPaymentMethod(e,t,n){var i;return du(this,void 0,void 0,function*(){try{return yield this._paymentIntegrationService.loadPaymentMethod(e,Object.assign(Object.assign({},n),{params:Object.assign(Object.assign({},null==n?void 0:n.params),{method:t})}))}catch(e){if(e instanceof hr&&422===(null===(i=e.body)||void 0===i?void 0:i.status))throw new ki("Clearpay can't process your payment for this order, please try another payment method");throw e}})}}class lu{constructor(e,t=window){this._scriptLoader=e,this._window=t}load(e){return t=this,n=void 0,r=function*(){if(yield this._scriptLoader.loadScript(this._getScriptUrl(e.config.testMode)),!this._window.AfterPay)throw new Oi;return this._window.AfterPay},new((i=void 0)||(i=Promise))(function(e,o){function a(e){try{d(r.next(e))}catch(e){o(e)}}function s(e){try{d(r.throw(e))}catch(e){o(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((r=r.apply(t,n||[])).next())});var t,n,i,r}_getScriptUrl(e){return e?"//portal.sandbox.clearpay.co.uk/afterpay-async.js":"//portal.clearpay.co.uk/afterpay-async.js"}}const uu=Rt(e=>new cu(e,new lu(a())),[{gateway:"clearpay"},{id:"clearpay"}]),hu=Rt(e=>new Ul(e),[{default:!0}]);var pu=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class mu{constructor(e,t){this._paymentIntegrationService=e,this._cardinalClient=t}prepare(e){return pu(this,void 0,void 0,function*(){yield this._cardinalClient.load(e.id,e.config.testMode),yield this._cardinalClient.configure(yield this._getClientToken(e))})}start(e,t,n,i){return pu(this,void 0,void 0,function*(){const{getCardInstrument:r,getPaymentMethodOrThrow:o}=this._paymentIntegrationService.getState(),{payment:{methodId:a="",paymentData:s={}}={}}=t,d=Cd(s)&&r(s.instrumentId),c=d?d.iin:i&&i.getBin();c&&(yield this._cardinalClient.runBinProcess(c));try{return yield e(q(t,{payment:{paymentData:{threeDSecure:{token:o(a).clientToken}}}}),n)}catch(e){if(!wa(e)||!Z(e.body.errors,{code:"three_d_secure_required"}))throw e;const n=yield this._cardinalClient.getThreeDSecureData(e.body.three_ds_result,this._getOrderData());if(!i)return void(yield this._paymentIntegrationService.submitPayment(q(t.payment,{paymentData:{threeDSecure:n}})));yield i.submit(q(t.payment,{paymentData:{threeDSecure:n}}))}})}_getClientToken(e){return pu(this,void 0,void 0,function*(){return e.clientToken?e.clientToken:(yield this._paymentIntegrationService.loadPaymentMethod(e.id),this._paymentIntegrationService.getState().getPaymentMethodOrThrow(e.id).clientToken||"")})}_getOrderData(){const e=this._paymentIntegrationService.getState(),t=e.getBillingAddressOrThrow(),n=e.getShippingAddress(),i=e.getCheckoutOrThrow(),r=e.getOrderOrThrow();return{billingAddress:t,shippingAddress:n,currencyCode:i.cart.currency.code,id:r.orderId.toString(),amount:i.cart.cartAmount}}}const yu=[100004,1010,1011,1020];var gu,vu,fu,Su,wu,_u,Cu;!function(e){e.SetupCompleted="payments.setupComplete",e.Validated="payments.validated"}(gu||(gu={})),function(e){e.Init="init",e.Complete="complete",e.Confirm="confirm"}(vu||(vu={})),function(e){e.Success="SUCCESS",e.NoAction="NOACTION",e.Failure="FAILURE",e.Error="ERROR"}(fu||(fu={})),function(e){e.CCA="CCA",e.Paypal="Paypal",e.Wallet="Wallet",e.VisaCheckout="VisaCheckout",e.ApplePay="ApplePay",e.DiscoverWallet="DiscoverWallet"}(Su||(Su={})),function(e){e.BinProcess="bin.process"}(wu||(wu={})),function(e){e.CCA="cca"}(_u||(_u={})),function(e){e.Yes="Y",e.No="N"}(Cu||(Cu={}));class Iu{constructor(e){this._scriptLoader=e,this._provider="",this._testMode=!1,this._configurationToken=""}load(e,t=!1){return this._provider=e,this._testMode=t,this._sdk||(this._sdk=this._scriptLoader.load(e,t)),this._sdk.then(V)}configure(e){if(this._configurationToken){if(this._configurationToken===e)return Promise.resolve();this._sdk=this._scriptLoader.load(`${this._provider}.${Date.now()}`,this._testMode)}return this._getClientSDK().then(t=>new Promise((n,i)=>{t.on(gu.SetupCompleted,()=>{t.off(gu.SetupCompleted),t.off(gu.Validated),this._configurationToken=e,n()}),t.on(gu.Validated,e=>{t.off(gu.SetupCompleted),t.off(gu.Validated),e.ActionCode===fu.Error&&(P(yu,e.ErrorNumber)&&i(new pi(ui.MissingPaymentMethod)),i(new so(e.ErrorDescription)))}),t.setup(vu.Init,{jwt:e})}))}runBinProcess(e){return this._getClientSDK().then(t=>t.trigger(wu.BinProcess,e).catch(V)).then(e=>{if(!e||!e.Status)throw new gi(hi.PaymentNotInitialized)})}getThreeDSecureData(e,t){return this._getClientSDK().then(n=>new Promise((i,r)=>{n.on(gu.Validated,(e,t)=>{if(n.off(gu.Validated),!t)return r(new so(e.ErrorDescription?e.ErrorDescription:"An error was encountered while processing the transaction."));if(!e.ActionCode)return i({token:t});switch(e.ActionCode){case fu.Success:return i({token:t});case fu.NoAction:return e.ErrorNumber>0?r(new so(e.ErrorDescription)):e.Payment&&e.Payment.ExtendedData&&e.Payment.ExtendedData.SignatureVerification===Cu.Yes?i({token:t}):r(new so("Transaction signature could not be validated."));case fu.Failure:return r(new so("User failed authentication or an error was encountered while processing the transaction."));case fu.Error:return r(new so(e.ErrorDescription))}});const o={AcsUrl:e.acs_url,Payload:e.merchant_data},a=this._mapToPartialOrder(t,e.payer_auth_request);n.continue(_u.CCA,o,a)}))}_mapToPartialOrder(e,t){const n={BillingAddress:this._mapToCardinalAddress(e.billingAddress)};return e.paymentData&&(n.Account=this._mapToCardinalAccount(e.paymentData)),e.billingAddress.email&&(n.Email1=e.billingAddress.email),e.shippingAddress&&(n.ShippingAddress=this._mapToCardinalAddress(e.shippingAddress)),{Consumer:n,OrderDetails:{OrderNumber:e.id,Amount:e.amount,CurrencyCode:e.currencyCode,OrderChannel:"S",TransactionId:t}}}_mapToCardinalAccount(e){return{AccountNumber:Number(e.ccNumber),ExpirationMonth:Number(e.ccExpiry.month),ExpirationYear:Number(e.ccExpiry.year),NameOnAccount:e.ccName,CardCode:Number(e.ccCvv)}}_mapToCardinalAddress(e){const t={FirstName:e.firstName,LastName:e.lastName,Address1:e.address1,City:e.city,State:e.stateOrProvince,PostalCode:e.postalCode,CountryCode:e.countryCode};return e.address2&&(t.Address2=e.address2),e.phone&&(t.Phone1=e.phone),t}_getClientSDK(){if(!this._sdk)throw new gi(hi.PaymentNotInitialized);return this._sdk}}class bu{constructor(e,t=window){this._scriptLoader=e,this._window=t}load(e,t){const n=t?"https://songbirdstag.cardinalcommerce.com/edge/v1/songbird.js":"https://songbird.cardinalcommerce.com/edge/v1/songbird.js";return this._scriptLoader.loadScript(`${n}?v=${e}`).then(()=>{if(!this._window.Cardinal)throw new Oi;return this._window.Cardinal})}}var Pu=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Ou extends Ul{constructor(e,t){super(e),this._threeDSecureFlow=t}initialize(e){const t=Object.create(null,{initialize:{get:()=>super.initialize}});return Pu(this,void 0,void 0,function*(){yield t.initialize.call(this,e);const{getPaymentMethodOrThrow:n}=this._paymentIntegrationService.getState(),i=n(e.methodId);i.config.is3dsEnabled&&(yield this._threeDSecureFlow.prepare(i))})}execute(e,t){const n=Object.create(null,{execute:{get:()=>super.execute}});return Pu(this,void 0,void 0,function*(){const{payment:{methodId:i=""}={}}=e,{getPaymentMethodOrThrow:r}=this._paymentIntegrationService.getState();return r(i).config.is3dsEnabled?this._threeDSecureFlow.start(n.execute.bind(this),e,t,this._hostedForm):n.execute.call(this,e,t)})}}const Eu=Rt(e=>new Ou(e,new mu(e,new Iu(new bu(a())))),[{id:"cybersource"}]);var Au=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class ku{constructor(e,t){this._paymentIntegrationService=e,this._cardinalClient=t}prepare(e){return Au(this,void 0,void 0,function*(){yield this._cardinalClient.load(e.id,e.config.testMode)})}start(e,t,n,i){var r,o,a,s;return Au(this,void 0,void 0,function*(){const{getCardInstrument:d}=this._paymentIntegrationService.getState(),{payment:c={methodId:""}}=t,{paymentData:l={}}=c;try{return yield e(t,n)}catch(e){if(wa(e)&&"additional_action_required"===(null===(r=e.body)||void 0===r?void 0:r.status)){const t=null===(a=null===(o=e.body.additional_action_required)||void 0===o?void 0:o.data)||void 0===a?void 0:a.token,n=null===(s=e.body.three_ds_result)||void 0===s?void 0:s.payer_auth_request;yield this._cardinalClient.configure(t);const r=this._getBin(l,d,i);r&&(yield this._cardinalClient.runBinProcess(r));try{return yield this._submitPayment(c,{xid:n},i)}catch(e){if(wa(e)&&Z(e.body.errors,{code:"three_d_secure_required"})){const t=e.body.three_ds_result,n=null==t?void 0:t.payer_auth_request;return yield this._cardinalClient.getThreeDSecureData(t,this._getOrderData()),this._submitPayment(c,{token:n},i)}throw e}}throw e}})}_getOrderData(){const e=this._paymentIntegrationService.getState(),t=e.getBillingAddressOrThrow(),n=e.getShippingAddress(),{cart:{currency:{code:i},cartAmount:r}}=e.getCheckoutOrThrow();return{billingAddress:t,shippingAddress:n,currencyCode:i,id:e.getOrderOrThrow().orderId.toString(),amount:r}}_submitPayment(e,t,n){return Au(this,void 0,void 0,function*(){const i=q({},e,{paymentData:{threeDSecure:t}});n||(yield this._paymentIntegrationService.submitPayment(i)),yield null==n?void 0:n.submit(i)})}_getBin(e,t,n){const i=Cd(e)&&t(e.instrumentId),r=function(e){const t=e;return!Cd(t)&&"string"==typeof t.ccName&&"string"==typeof t.ccNumber&&"object"==typeof t.ccExpiry&&"string"==typeof t.ccExpiry.month&&"string"==typeof t.ccExpiry.year}(e)&&e.ccNumber,o=n?n.getBin():r;return(i?i.iin:o)||""}}var Tu=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Du extends Ul{constructor(e,t){super(e),this._threeDSecureFlow=t}initialize(e){const t=Object.create(null,{initialize:{get:()=>super.initialize}});return Tu(this,void 0,void 0,function*(){yield t.initialize.call(this,e);const{getPaymentMethodOrThrow:n}=this._paymentIntegrationService.getState(),i=n(e.methodId);i.config.is3dsEnabled&&(yield this._threeDSecureFlow.prepare(i))})}execute(e,t){const n=Object.create(null,{execute:{get:()=>super.execute}});return Tu(this,void 0,void 0,function*(){const{payment:{methodId:i=""}={}}=e,{getPaymentMethodOrThrow:r}=this._paymentIntegrationService.getState();return r(i).config.is3dsEnabled?this._threeDSecureFlow.start(n.execute.bind(this),e,t,this._hostedForm):n.execute.call(this,e,t)})}}const Mu=Rt(e=>new Du(e,new ku(e,new Iu(new bu(a())))),[{id:"cybersourcev2"},{id:"bnz"},{id:"barclays"}]);class zu{constructor(e,t){this._formPoster=e,this._paymentIntegrationService=t}execute(e,t){return n=this,i=void 0,o=function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),r=n&&n.paymentData;if(!n||!r)throw new fo(["payment.paymentData"]);yield this._paymentIntegrationService.submitOrder(i,t);try{yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},n),{paymentData:r}))}catch(e){if(!wa(e)||"object"!=typeof(o=e.body)||null===o||!("additional_action_required"in o)||!this._isAdditionalActionRequired(e.body))return Promise.reject(e);const{body:{additional_action_required:{data:{redirect_url:t}}}}=e;return new Promise(()=>{this.redirectUrl(t)})}var o},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}finalize(){return Promise.reject(new Id)}initialize(){return Promise.resolve()}deinitialize(){return Promise.resolve()}redirectUrl(e){return this._formPoster.postForm(e,{})}_isAdditionalActionRequired(e){const{additional_action_required:t,status:n}=e;return"additional_action_required"===n&&t&&"offsite_redirect"===t.type}}const Nu=Rt(e=>new zu(Ee(),e),[{id:"laybuy"}]);function xu(e){return"object"==typeof e&&null!==e&&"errors"in e&&Array.isArray(e.errors)&&"code"in e.errors[0]&&"string"==typeof e.errors[0].code&&"provider_data"in e&&"object"==typeof e.provider_data}var Fu=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Ru extends sa{constructor(e,t){super("adyen",e),this._scriptLoader=t,this._service=e}initialize(e,t,n){const i=Object.create(null,{initialize:{get:()=>super.initialize},getPaymentMethod:{get:()=>super.getPaymentMethod}});return Fu(this,void 0,void 0,function*(){yield i.initialize.call(this,e,t,n);const r=i.getPaymentMethod.call(this),o=this._service.getState().getStoreConfig();if(!o)throw new pi(ui.MissingCheckoutConfig);return this._adyenClient=yield this._scriptLoader.load({environment:r.config.testMode?"test":"live",locale:o.storeProfile.storeLanguage}),Promise.resolve()})}getNonce(e){const t=Object.create(null,{getNonce:{get:()=>super.getNonce},getPaymentMethod:{get:()=>super.getPaymentMethod}});return Fu(this,void 0,void 0,function*(){const n=yield t.getNonce.call(this,e),i=t.getPaymentMethod.call(this);return JSON.stringify({type:i.method,googlePayToken:n,browser_info:Za()})})}processAdditionalAction(e){return Fu(this,void 0,void 0,function*(){if(!wa(e)||!xu(e.body))throw e;const t=yield this._handleAction(e.body.provider_data);try{return yield this._service.submitPayment(t)}catch(e){return this.processAdditionalAction(e)}})}_handleAction(e){return new Promise((t,n)=>{const i=JSON.parse(e.action);this._getAdyenClient().createFromAction(i,{onAdditionalDetails:e=>{const n={methodId:i.paymentMethodType,paymentData:{nonce:JSON.stringify(e.data)}};t(n)},size:"05",onError:e=>n(e)}).mount("body"),n(new nr)})}_getAdyenClient(){if(!this._adyenClient)throw new gi(hi.PaymentNotInitialized);return this._adyenClient}}var Lu=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Bu{constructor(e,t){this._paymentIntegrationService=e,this._googlePayPaymentProcessor=t,this._loadingIndicator=new sd({containerStyles:od})}initialize(e){var t;return Lu(this,void 0,void 0,function*(){if(!(null==e?void 0:e.methodId)||!ca(e.methodId))throw new ki('Unable to proceed because "methodId" is not a valid key.');this._methodId=e.methodId;const n=e[this._getMethodId()];if(!(null==n?void 0:n.walletButton))throw new ki("Unable to proceed without valid options.");const{walletButton:i,loadingContainerId:r}=n,o=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(n,["walletButton","loadingContainerId"]);this._loadingIndicatorContainer=r,yield this._paymentIntegrationService.loadPaymentMethod(this._getMethodId());const a=this._paymentIntegrationService.getState().getPaymentMethodOrThrow(this._getMethodId());yield this._googlePayPaymentProcessor.initialize(()=>a,this._getGooglePayClientOptions(null===(t=a.initializationData)||void 0===t?void 0:t.storeCountry)),this._addPaymentButton(i,o)})}execute({payment:e}){return Lu(this,void 0,void 0,function*(){if(!(null==e?void 0:e.methodId))throw new fo(["payment"]);yield this._paymentIntegrationService.submitOrder();const t=yield this._googlePayPaymentProcessor.getNonce(e.methodId),n=yield this._googlePayPaymentProcessor.extraPaymentData();try{yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},e),{paymentData:Object.assign({nonce:t},n)}))}catch(t){yield this._googlePayPaymentProcessor.processAdditionalAction(t,e.methodId)}})}finalize(){return Promise.reject(new Id)}deinitialize(){var e;return this._clickListener&&(null===(e=this._paymentButton)||void 0===e||e.removeEventListener("click",this._clickListener)),this._paymentButton=void 0,this._clickListener=void 0,this._methodId=void 0,Promise.resolve()}_addPaymentButton(e,t){if(this._paymentButton)return;const n=document.getElementById(e);if(!n)throw new ki("Unable to proceed without a walletButton.");this._paymentButton=n,this._clickListener=this._handleClick(t),this._paymentButton.addEventListener("click",this._clickListener)}_handleClick({onPaymentSelect:e,onError:t}){return n=>Lu(this,void 0,void 0,function*(){n.preventDefault();try{yield this._googlePayPaymentProcessor.initializeWidget(),yield this._interactWithPaymentSheet()}catch(e){let n=e;if(this._toggleLoadingIndicator(!1),da(e)){if("CANCELED"===e.statusCode)throw new nr;n=new so(JSON.stringify(e))}throw null==t||t(new so("An error occurred while requesting your Google Pay payment details.")),n}null==e||e()})}_interactWithPaymentSheet(){return Lu(this,void 0,void 0,function*(){const e=yield this._googlePayPaymentProcessor.showPaymentSheet();this._toggleLoadingIndicator(!0);const t=this._googlePayPaymentProcessor.mapToBillingAddressRequestBody(e);t&&(yield this._paymentIntegrationService.updateBillingAddress(t)),yield this._googlePayPaymentProcessor.setExternalCheckoutXhr(this._getMethodId(),e),yield this._paymentIntegrationService.loadCheckout(),yield this._paymentIntegrationService.loadPaymentMethod(this._getMethodId()),this._toggleLoadingIndicator(!1)})}_getMethodId(){return yi(this._methodId,()=>new gi(hi.PaymentNotInitialized))}_getIsSignedInOrThrow(){return Lu(this,void 0,void 0,function*(){try{return!!(yield this._googlePayPaymentProcessor.getNonce(this._getMethodId()))}catch(e){if(e instanceof pi&&e.subtype===ui.MissingPaymentToken)return!1;throw e}})}_handleOfferTrigger(e){return Lu(this,void 0,void 0,function*(){let t=!1,n="Sign in to Google Pay first to apply or remove promo codes.";try{t=yield this._getIsSignedInOrThrow()}catch(e){e instanceof pi&&(n=e.message)}if(t){const{newOfferInfo:t,error:n}=yield this._googlePayPaymentProcessor.handleCoupons(e);return{newOfferInfo:t,error:n}}return{error:{reason:na.OFFER_INVALID,message:n,intent:ia.OFFER}}})}_getGooglePayClientOptions(e){return{paymentDataCallbacks:{onPaymentDataChanged:({callbackTrigger:t,offerData:n})=>Lu(this,void 0,void 0,function*(){const i=this._paymentIntegrationService.getState().getStoreConfigOrThrow().checkoutSettings.features["PI-2875.googlepay_coupons_handling"]||!1;if(t!==ia.INITIALIZE&&(!i||t!==ia.OFFER))return;const{offerChangeTriggers:r}=this._googlePayPaymentProcessor.getCallbackTriggers(),{newOfferInfo:o,error:a}=r.includes(t)?yield this._handleOfferTrigger(n):{},s=a;yield this._paymentIntegrationService.loadCheckout();const{getCheckoutOrThrow:d,getCartOrThrow:c}=this._paymentIntegrationService.getState(),{code:l,decimalPlaces:u}=c().currency,h=J(d().outstandingBalance,u).toFixed(u);return Object.assign(Object.assign({newTransactionInfo:Object.assign(Object.assign({},e&&{countryCode:e}),{currencyCode:l,totalPriceStatus:Xo.FINAL,totalPrice:h})},o&&{newOfferInfo:o}),s&&{error:s})})}}}_toggleLoadingIndicator(e){e&&this._loadingIndicatorContainer?this._loadingIndicator.show(this._loadingIndicatorContainer):this._loadingIndicator.hide()}}const ju=Rt(e=>new Bu(e,new pa(ya(),new Ru(e,new wd(a(),s())),n(),Ee())),[{id:"googlepayadyenv2"}]);var Uu=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class qu extends sa{constructor(e,t){super("adyen",e),this._scriptLoader=t,this._service=e}initialize(e,t,n){const i=Object.create(null,{initialize:{get:()=>super.initialize},getPaymentMethod:{get:()=>super.getPaymentMethod}});return Uu(this,void 0,void 0,function*(){yield i.initialize.call(this,e,t,n);const r=i.getPaymentMethod.call(this),o=this._service.getState().getStoreConfig();if(!o)throw new pi(ui.MissingCheckoutConfig);return this._adyenClient=yield this._scriptLoader.load({environment:r.config.testMode?"test":"live",locale:o.storeProfile.storeLanguage}),Promise.resolve()})}processAdditionalAction(e){return Uu(this,void 0,void 0,function*(){if(!wa(e)||!xu(e.body))throw e;const t=yield this._handleAction(e.body.provider_data);try{return yield this._service.submitPayment(t)}catch(e){return this.processAdditionalAction(e)}})}getNonce(e){const t=Object.create(null,{getNonce:{get:()=>super.getNonce},getPaymentMethod:{get:()=>super.getPaymentMethod}});return Uu(this,void 0,void 0,function*(){const n=yield t.getNonce.call(this,e),i=t.getPaymentMethod.call(this);return JSON.stringify({type:i.method,googlePayToken:n,browser_info:Za()})})}_handleAction(e){return new Promise((t,n)=>{const i=JSON.parse(e.action);this._getAdyenClient().createFromAction(i,{onAdditionalDetails:e=>{const n={methodId:i.paymentMethodType,paymentData:{nonce:JSON.stringify(e.data)}};t(n)},size:"05",onError:e=>n(e)}).mount("body"),n(new nr)})}_getAdyenClient(){if(!this._adyenClient)throw new gi(hi.PaymentNotInitialized);return this._adyenClient}}const Vu=Rt(e=>new Bu(e,new pa(ya(),new qu(e,new Ed(a(),s())),n(),Ee())),[{id:"googlepayadyenv3"}]),Gu=Rt(e=>new Bu(e,new pa(ya(),new fa(e),n(),Ee())),[{id:"googlepayauthorizenet"}]),Hu=Rt(e=>{const t=n();return new Bu(e,new pa(ya(),new Ia(e,t),t,Ee()))},[{id:"googlepaycheckoutcom"}]),$u=Rt(e=>new Bu(e,new pa(ya(),new Pa(e),n(),Ee())),[{id:"googlepaycybersourcev2"},{id:"googlepaybnz"}]),Wu=Rt(e=>new Bu(e,new pa(ya(),new Aa(e),n(),Ee())),[{id:"googlepayorbital"}]),Yu=Rt(e=>new Bu(e,new pa(ya(),new Ma(e,new Na(a())),n(),Ee())),[{id:"googlepaystripe"},{id:"googlepaystripeupe"},{id:"googlepaystripeocs"}]),Ku=Rt(e=>new Bu(e,new pa(ya(),new Ra(e),n(),Ee())),[{id:"googlepayworldpayaccess"}]),Ju=Rt(e=>{const t=n(),i=window,r=new Ri(e),o=new Zi(new tr(a(),i,r));return new Bu(e,new pa(ya(),new ja(e,o),t,Ee()))},[{id:"googlepaybraintree"}]);var Zu,Qu;!function(e){e.Approved="APPROVED",e.PayerActionRequired="PAYER_ACTION_REQUIRED"}(Zu||(Zu={})),function(e){e.AUTHORIZE="authorize",e.CAPTURE="capture"}(Qu||(Qu={}));var Xu=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class eh extends Bu{constructor(e,t,n,i){super(e,t),this._payPalCommerceSdk=n,this._requestSender=i}execute({payment:e}){return Xu(this,void 0,void 0,function*(){if(!(null==e?void 0:e.methodId))throw new fo(["payment"]);const t=this._paymentIntegrationService.getState(),n=t.getCartOrThrow().id,{initializationData:i}=t.getPaymentMethodOrThrow(this._getMethodId()),{orderId:r}=yield this.getOrderId(n),{card_information:o}=i||{},a=yield this._googlePayPaymentProcessor.getNonce(e.methodId),s={tokenizationData:{type:"PAYMENT_GATEWAY",token:atob(a)},info:{cardNetwork:(null==o?void 0:o.type)||"",cardDetails:(null==o?void 0:o.number)||""},type:"CARD"};yield this.confirmOrder(r,s),yield this._paymentIntegrationService.submitOrder();try{const t={formattedPayload:{method_id:e.methodId,paypal_account:{order_id:r}}};yield this._paymentIntegrationService.submitPayment({methodId:e.methodId,paymentData:t})}catch(e){yield this._googlePayPaymentProcessor.processAdditionalAction(e)}})}confirmOrder(e,t){return Xu(this,void 0,void 0,function*(){const n=this._paymentIntegrationService.getState(),i=n.getPaymentMethodOrThrow(this._getMethodId());if(!i.initializationData)throw new pi(ui.MissingPaymentMethod);const r=n.getCartOrThrow().currency.code,o=yield this._payPalCommerceSdk.getPayPalGooglePaySdk(i,r,!0),{status:a}=yield o.Googlepay().confirmOrder({orderId:e,paymentMethodData:t});if(a===Zu.PayerActionRequired)return yield o.Googlepay().initiatePayerAction({orderId:e}),Promise.resolve();if(a!==Zu.Approved)throw new ki("Payment is not approved.");return Promise.resolve()})}getOrderId(e){return Xu(this,void 0,void 0,function*(){const t={cartId:e,shouldSaveInstrument:!1},{body:n}=yield this._requestSender.post("/api/storefront/payments/googlepaypaypalcommercecheckout",{headers:Object.assign({"X-API-INTERNAL":Cr,"Content-Type":br.Json},Pr),body:t});return n})}}const th=Rt(e=>{const t=new Va(a());return new eh(e,new pa(ya(),new $a(e,t),n(),Ee()),t,n())},[{id:"googlepaypaypalcommerce"}]);var nh,ih;!function(e){e.Approved="APPROVED",e.PayerActionRequired="PAYER_ACTION_REQUIRED"}(nh||(nh={})),function(e){e.AUTHORIZE="authorize",e.CAPTURE="capture"}(ih||(ih={}));var rh=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class oh extends Bu{constructor(e,t,n,i){super(e,t),this._payPalSdkHelper=n,this._requestSender=i}execute({payment:e}){return rh(this,void 0,void 0,function*(){if(!(null==e?void 0:e.methodId))throw new fo(["payment"]);const t=this._paymentIntegrationService.getState(),n=t.getCartOrThrow().id,{initializationData:i}=t.getPaymentMethodOrThrow(this._getMethodId()),{orderId:r}=yield this.getOrderId(n),{card_information:o}=i||{},a=yield this._googlePayPaymentProcessor.getNonce(e.methodId),s={tokenizationData:{type:"PAYMENT_GATEWAY",token:atob(a)},info:{cardNetwork:(null==o?void 0:o.type)||"",cardDetails:(null==o?void 0:o.number)||""},type:"CARD"};yield this.confirmOrder(r,s),yield this._paymentIntegrationService.submitOrder();try{const t={formattedPayload:{method_id:e.methodId,paypal_account:{order_id:r}}};yield this._paymentIntegrationService.submitPayment({methodId:e.methodId,paymentData:t})}catch(e){yield this._googlePayPaymentProcessor.processAdditionalAction(e)}})}confirmOrder(e,t){return rh(this,void 0,void 0,function*(){const n=this._paymentIntegrationService.getState(),i=n.getPaymentMethodOrThrow(this._getMethodId());if(!i.initializationData)throw new pi(ui.MissingPaymentMethod);const r=n.getCartOrThrow().currency.code,o=yield this._payPalSdkHelper.getPayPalGooglePaySdk(i,r,!0),{status:a}=yield o.Googlepay().confirmOrder({orderId:e,paymentMethodData:t});if(a===nh.PayerActionRequired)return yield o.Googlepay().initiatePayerAction({orderId:e}),Promise.resolve();if(a!==nh.Approved)throw new ki("Payment is not approved.");return Promise.resolve()})}getOrderId(e){return rh(this,void 0,void 0,function*(){const t={cartId:e,shouldSaveInstrument:!1},{body:n}=yield this._requestSender.post("/api/storefront/payments/googlepay_bigcommerce_paymentscheckout",{headers:Object.assign({"X-API-INTERNAL":Cr,"Content-Type":br.Json},Pr),body:t});return n})}}const ah=Rt(e=>{const t=new Gr(a());return new oh(e,new pa(ya(),new Ka(e,t),n(),Ee()),t,n())},[{id:"googlepay_bigcommerce_payments"}]),sh=Rt(e=>new Bu(e,new pa(ya(),new Xa(e,Ee()),n(),Ee())),[{id:"googlepaytdonlinemart"}]);class dh extends li{constructor(e,t,n){super(n||"Payment cannot be processed for this order, please select another payment method"),this.type="custom_provider_execute_error",this.name=t,this.subtype=e}}class ch{constructor(e,t){this.paymentIntegrationService=e,this.formPoster=t}execute(e,t){var n,i,r,o,a;return i=this,r=void 0,a=function*(){const{payment:i}=e,r=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!(null==i?void 0:i.methodId))throw new fo(["payment.methodId"]);yield this.paymentIntegrationService.loadPaymentMethod(i.methodId,t);const o=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(i.methodId);if(!(null===(n=o.initializationData)||void 0===n?void 0:n.processable))throw new dh("payment.humm_not_processable_error","hummNotProcessableError");yield this.paymentIntegrationService.submitOrder(r,t);try{yield this.paymentIntegrationService.submitPayment({methodId:i.methodId})}catch(e){return this.isOffsiteRedirectResponse(e)?this.handleOffsiteRedirectResponse(e):Promise.reject(e)}},new((o=void 0)||(o=Promise))(function(e,t){function n(e){try{d(a.next(e))}catch(e){t(e)}}function s(e){try{d(a.throw(e))}catch(e){t(e)}}function d(t){var i;t.done?e(t.value):(i=t.value,i instanceof o?i:new o(function(e){e(i)})).then(n,s)}d((a=a.apply(i,r||[])).next())})}finalize(){return Promise.reject(new Id)}initialize(){return Promise.resolve()}deinitialize(){return Promise.resolve()}handleOffsiteRedirectResponse(e){const t=e.body.additional_action_required.data.redirect_url,n=e.body.provider_data;return new Promise(e=>{this.formPoster.postForm(t,JSON.parse(n),e)})}isOffsiteRedirectResponse(e){if("object"!=typeof e||null===e)return!1;const t=e;if(!t.body)return!1;const n=t.body;return"additional_action_required"===n.status&&!!n.additional_action_required&&"offsite_redirect"===n.additional_action_required.type&&"string"==typeof n.provider_data}}const lh=Rt(e=>new ch(e,Ee()),[{id:"humm"}]),uh=["AT","BE","CA","CH","CZ","DE","DK","ES","FI","FR","GB","GR","IE","IT","NL","NO","NZ","PL","PT","SE"],hh=["AU"];var ph=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class mh{constructor(e,t){this.paymentIntegrationService=e,this.klarnaScriptLoader=t}initialize(e){return ph(this,void 0,void 0,function*(){this.klarnaCredit=yield this.klarnaScriptLoader.load(),this.unsubscribe=this.paymentIntegrationService.subscribe(t=>{t.isPaymentMethodInitialized({methodId:e.methodId,gatewayId:e.gatewayId})&&this.loadWidget(e)},e=>{const t=e.getCheckout();return t&&t.outstandingBalance},e=>{const t=e.getCheckout();return t&&t.coupons}),yield this.loadWidget(e)})}deinitialize(){return this.unsubscribe&&this.unsubscribe(),Promise.resolve()}execute(e,t){return ph(this,void 0,void 0,function*(){if(!e.payment)throw new ki('Unable to proceed because "payload.payment" argument is not provided.');const n=e.payment,{paymentData:i}=n,r=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(n,["paymentData"]),{authorization_token:o}=yield this.authorize();yield this.paymentIntegrationService.initializePayment(r.methodId,{authorizationToken:o}),yield this.paymentIntegrationService.submitOrder(Object.assign(Object.assign({},e),{payment:r,useStoreCredit:e.useStoreCredit}),t)})}finalize(){return Promise.reject(new Id)}loadWidget(e){return ph(this,void 0,void 0,function*(){if(!e.klarna)throw new ki('Unable to load widget because "options.klarna" argument is not provided.');const{methodId:t,klarna:{container:n,onLoad:i}}=e;return yield this.paymentIntegrationService.loadPaymentMethod(t),new Promise(e=>{const r=this.paymentIntegrationService.getState().getPaymentMethod(t);if(!r)throw new pi(ui.MissingPaymentMethod);if(!this.klarnaCredit||!r.clientToken)throw new gi(hi.PaymentNotInitialized);this.klarnaCredit.init({client_token:r.clientToken}),this.klarnaCredit.load({container:n},t=>{i&&i(t),e(t)})})})}getUpdateSessionData(e,t){if(!P([...uh,...hh],e.countryCode))return{};const n={billing_address:this.mapToKlarnaAddress(e,e.email)};return t&&(n.shipping_address=this.mapToKlarnaAddress(t,e.email)),n}needsStateCode(e){return P(hh,e)}mapToKlarnaAddress(e,t){const n={street_address:e.address1,city:e.city,country:e.countryCode,given_name:e.firstName,family_name:e.lastName,postal_code:e.postalCode,region:this.needsStateCode(e.countryCode)?e.stateOrProvinceCode:e.stateOrProvince,email:t};return e.address2&&(n.street_address2=e.address2),e.phone&&(n.phone=e.phone),n}authorize(){return new Promise((e,t)=>{const n=this.paymentIntegrationService.getState(),i=n.getBillingAddress(),r=n.getShippingAddress();if(!i)throw new pi(ui.MissingBillingAddress);if(!this.klarnaCredit)throw new gi(hi.PaymentNotInitialized);const o=this.getUpdateSessionData(i,r);this.klarnaCredit.authorize(o,n=>n.approved?e(n):n.show_form?t(new nr):void t(new co))})}}class yh{constructor(e,t=window){this.scriptLoader=e,this.klarnaWindow=t}load(){var e,t,n,i,r,o;return n=this,i=void 0,o=function*(){if((null===(e=this.klarnaWindow.Klarna)||void 0===e?void 0:e.Credit)||(yield this.scriptLoader.loadScript("//credit.klarnacdn.net/lib/v1/api.js")),!(null===(t=this.klarnaWindow.Klarna)||void 0===t?void 0:t.Credit))throw new Oi;return this.klarnaWindow.Klarna.Credit},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())})}}const gh=Rt(e=>new mh(e,new yh(a())),[{id:"klarna"}]);var vh=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class fh{constructor(e,t,n){this.paymentIntegrationService=e,this.klarnav2ScriptLoader=t,this.klarnav2TokenUpdater=n}initialize(e){return vh(this,void 0,void 0,function*(){this.klarnaPayments=yield this.klarnav2ScriptLoader.load(),this.unsubscribe=this.paymentIntegrationService.subscribe(t=>{t.isPaymentMethodInitialized({methodId:e.methodId,gatewayId:e.gatewayId})&&this.loadPaymentsWidget(e)},e=>{const t=e.getCheckout();return t&&t.outstandingBalance},e=>{const t=e.getCheckout();return t&&t.coupons}),yield this.loadPaymentsWidget(e)})}deinitialize(){return this.unsubscribe&&this.unsubscribe(),Promise.resolve()}execute(e,t){return vh(this,void 0,void 0,function*(){if(!e.payment)throw new ki('Unable to proceed because "payload.payment" argument is not provided.');const n=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e.payment,[]),{gatewayId:i,methodId:r}=n;if(!i)throw new ki('Unable to proceed because "payload.payment.gatewayId" argument is not provided.');const o=this.paymentIntegrationService.getState(),{id:a}=o.getCartOrThrow(),{clientToken:s}=o.getPaymentMethodOrThrow(r);yield this.klarnav2TokenUpdater.klarnaOrderInitialization(a,s);const d=this.isKlarnaSingleRadioButtonEnabled()?i:r,{authorization_token:c}=yield this.authorizeOrThrow(d,r);yield this.paymentIntegrationService.initializePayment(i,{authorizationToken:c}),yield this.paymentIntegrationService.submitOrder(Object.assign(Object.assign({},e),{payment:n,useStoreCredit:e.useStoreCredit}),t)})}finalize(){return Promise.reject(new Id)}loadPaymentsWidget(e){return vh(this,void 0,void 0,function*(){if(!e.klarnav2)throw new ki('Unable to load widget because "options.klarnav2" argument is not provided.');const{methodId:t,gatewayId:n,klarnav2:{container:i,onLoad:r}}=e;if(!n)throw new ki('Unable to proceed because "payload.payment.gatewayId" argument is not provided.');const o=this.paymentIntegrationService.getState(),a={params:o.getCartOrThrow().id};return yield this.klarnav2TokenUpdater.updateClientToken(n,{params:a}).catch(()=>{throw new pi(ui.MissingPaymentMethod)}),new Promise(e=>{const n=o.getPaymentMethodOrThrow(t);if(!this.klarnaPayments||!n.clientToken)throw new gi(hi.PaymentNotInitialized);this.klarnaPayments.init({client_token:n.clientToken}),this.klarnaPayments.load({container:i,payment_method_category:this.isKlarnaSingleRadioButtonEnabled()?n.gateway:t},t=>{r&&r(t),e(t)})})})}getUpdateSessionData(e,t,n){if(!P([...uh,...hh],t.countryCode))return{};const i={billing_address:this.mapToKlarnaAddress(e,t,t.email)};return n&&(i.shipping_address=this.mapToKlarnaAddress(e,n,t.email)),i}needsStateCode(e){return P(hh,e)}mapToKlarnaAddress(e,t,n){const i=this.paymentIntegrationService.getState(),{checkoutSettings:r}=i.getStoreConfigOrThrow(),o=i.getPaymentMethodOrThrow(e),{enableBillie:a}=o.initializationData||{},s={street_address:t.address1,city:t.city,country:t.countryCode,given_name:t.firstName,family_name:t.lastName,postal_code:t.postalCode,region:this.needsStateCode(t.countryCode)?t.stateOrProvinceCode:t.stateOrProvince,email:n};return t.address2&&(s.street_address2=t.address2),t.phone&&(s.phone=t.phone),t.company&&a&&Wt(r.features,"PI-3915.b2b_payment_session_for_klarna")&&(s.organization_name=t.company),s}authorizeOrThrow(e,t){return vh(this,void 0,void 0,function*(){yield this.paymentIntegrationService.loadCheckout();const n=this.paymentIntegrationService.getState(),i=n.getBillingAddressOrThrow(),r=n.getShippingAddress(),o=this.getUpdateSessionData(t,i,r);return new Promise((t,n)=>{if(!this.klarnaPayments)return n(new gi(hi.PaymentNotInitialized));this.klarnaPayments.authorize({payment_method_category:e},o,e=>e.approved?t(e):e.show_form?n(new nr):void n(new co))})})}isKlarnaSingleRadioButtonEnabled(){const{features:e}=this.paymentIntegrationService.getState().getStoreConfigOrThrow().checkoutSettings;return e["PI-4025.klarna_single_radio_button"]}}class Sh{constructor(e,t=window){this.scriptLoader=e,this.klarnaWindow=t}load(){var e,t,n,i,r,o;return n=this,i=void 0,o=function*(){if((null===(e=this.klarnaWindow.Klarna)||void 0===e?void 0:e.Payments)||(yield this.scriptLoader.loadScript("https://x.klarnacdn.net/kp/lib/v1/api.js")),!(null===(t=this.klarnaWindow.Klarna)||void 0===t?void 0:t.Payments))throw new Oi;return this.klarnaWindow.Klarna.Payments},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())})}}class wh{constructor(e){this.requestSender=e}updateClientToken(e,{timeout:t,params:n}={}){const i=`/api/storefront/payments/${e}`;return this.requestSender.get(i,{timeout:t,headers:Object.assign({Accept:br.JsonV1,"X-API-INTERNAL":Cr},Pr),params:n})}klarnaOrderInitialization(e,t){return n=this,i=void 0,o=function*(){const n={headers:Object.assign({Accept:br.JsonV1,"X-API-INTERNAL":Cr},Pr),body:{cartId:e,clientToken:t}};yield this.requestSender.put("/api/storefront/initialization/klarna",n)},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}}const _h=Rt(e=>{const{getHost:t}=e.getState(),i=n({host:t()});return new fh(e,new Sh(a()),new wh(i))},[{gateway:"klarna"}]);class Ch{constructor(e){this._paymentIntegrationService=e}execute(e,t){return n=this,i=void 0,o=function*(){return yield this._paymentIntegrationService.submitOrder(e,t),Promise.resolve()},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}finalize(){return Promise.reject(new Id)}initialize(){return Promise.resolve()}deinitialize(){return Promise.resolve()}}const Ih=Rt(e=>new Ch(e),[{id:"testgateway"}]);var bh,Ph=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};!function(e){e.CREDIT_CARD="credit_card"}(bh||(bh={}));const Oh=["klarnapaylater","klarnasliceit"];class Eh{constructor(e,t){this.mollieScriptLoader=e,this.paymentIntegrationService=t}initialize(e){return Ph(this,void 0,void 0,function*(){const{mollie:t,methodId:n,gatewayId:i}=e;if(!t)throw new ki('Unable to initialize payment because "options.mollie" argument is not provided.');if(!n||!i)throw new ki('Unable to initialize payment because "methodId" and/or "gatewayId" argument is not provided.');const r=document.querySelectorAll(".mollie-components-controller");v(r,e=>e.remove());const o=this.paymentIntegrationService.getState(),a=o.getStoreConfigOrThrow();this.initializeOptions=t;const s=o.getPaymentMethodOrThrow(n,i),{config:{merchantId:d,testMode:c}}=s;if(this.locale=o.getLocale(),!d)throw new pi(ui.MissingPaymentMethod);return this.isCreditCard(n)&&t.form&&this.shouldShowTSVHostedForm(n,i)?this.hostedForm=yield this.mountCardVerificationfields(t.form):this.isCreditCard(n)&&(this.mollieClient=yield this.loadMollieJs(d,a.storeProfile.storeLanguage,c),this.mountElements()),this.unsubscribe=()=>{if(this.paymentIntegrationService.getState().isPaymentMethodInitialized({methodId:e.methodId,gatewayId:e.gatewayId})){const e=document.getElementById(`${i}-${n}-paragraph`);e&&e.remove(),t.disableButton(!1),this.loadPaymentMethodsAllowed(t,n,i)}},this.unsubscribe(),this.loadPaymentMethodsAllowed(t,n,i),Promise.resolve()})}execute(e,t){return Ph(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),r=null==n?void 0:n.paymentData;if(!n||!n.gatewayId||!r)throw new fo(["payment","gatewayId","paymentData"]);try{return yield this.paymentIntegrationService.submitOrder(i,t),Cd(r)?yield this.executeWithVaulted(n):this.isCreditCard(n.methodId)?yield this.executeWithCC(n):yield this.executeWithAPM(n)}catch(e){yield this.processAdditionalAction(e)}})}finalize(){return Promise.resolve()}deinitialize(e){if(this.unsubscribe&&this.unsubscribe(),this.hostedForm&&this.hostedForm.detach(),e&&e.methodId&&e.gatewayId&&!this.hostedForm){const t=document.getElementById(`${e.gatewayId}-${e.methodId}`);t&&t.remove()}else e&&e.methodId&&this.isCreditCard(e.methodId)&&this.cardHolderElement&&this.cardNumberElement&&this.verificationCodeElement&&this.expiryDateElement&&(this.cardHolderElement.unmount(),this.cardHolderElement=void 0,this.cardNumberElement.unmount(),this.cardNumberElement=void 0,this.verificationCodeElement.unmount(),this.verificationCodeElement=void 0,this.expiryDateElement.unmount(),this.expiryDateElement=void 0);return this.mollieClient=void 0,Promise.resolve()}executeWithCC(e){return Ph(this,void 0,void 0,function*(){const t=e.paymentData,{shouldSaveInstrument:n=!1,shouldSetAsDefaultInstrument:i=!1}=Ad(t)?t:{},{token:r,error:o}=yield this.getMollieClient().createToken();if(o)return Promise.reject(o);const a={credit_card_token:{token:r},vault_payment_instrument:n,set_as_default_stored_instrument:i,browser_info:Za(),shopper_locale:this.getShopperLocale()};yield this.paymentIntegrationService.submitPayment(Object.assign(Object.assign({},e),{paymentData:{formattedPayload:a}}))})}executeWithVaulted(e){return Ph(this,void 0,void 0,function*(){if(this.isHostedPaymentFormEnabled(e.methodId,e.gatewayId)){const t=this.hostedForm;if(!t)throw new gi(hi.PaymentNotInitialized);yield t.validate(),yield t.submit(e),yield this.paymentIntegrationService.loadCurrentOrder()}else yield this.paymentIntegrationService.submitPayment(e)})}executeWithAPM(e){return Ph(this,void 0,void 0,function*(){const t=e.paymentData,n=t&&"issuer"in t?t.issuer:"";yield this.paymentIntegrationService.submitPayment(Object.assign(Object.assign({},e),{paymentData:Object.assign(Object.assign({},t),{formattedPayload:{issuer:n,shopper_locale:this.getShopperLocale()}})}))})}isCreditCard(e){return e===bh.CREDIT_CARD}shouldShowTSVHostedForm(e,t){return this.isHostedPaymentFormEnabled(e,t)&&this.isHostedFieldAvailable()}mountCardVerificationfields(e){return new Promise((t,n)=>Ph(this,void 0,void 0,function*(){try{const n=this.paymentIntegrationService.getState().getStoreConfig(),i=null==n?void 0:n.paymentSettings.bigpayBaseUrl;if(!i)throw new pi(ui.MissingCheckoutConfig);const r=this.paymentIntegrationService.createHostedForm(i,e);yield r.attach(),t(r)}catch(e){n(e)}}))}isHostedPaymentFormEnabled(e,t){const{getPaymentMethodOrThrow:n}=this.paymentIntegrationService.getState();return!0===n(e,t).config.isHostedFormEnabled}isHostedFieldAvailable(){var e;return!!(null===(e=this.getInitializeOptions().form)||void 0===e?void 0:e.fields)}processAdditionalAction(e){if(!wa(e))return Promise.reject(e);if(Z(e.body.errors,{code:"additional_action_required"})){const{additional_action_required:{data:{redirect_url:t}}}=e.body;return new Promise(()=>window.location.replace(t))}return Promise.reject(e)}getInitializeOptions(){if(!this.initializeOptions)throw new gi(hi.PaymentNotInitialized);return this.initializeOptions}loadMollieJs(e,t,n=!1){return this.mollieClient?Promise.resolve(this.mollieClient):this.mollieScriptLoader.load(e,t,n)}getMollieClient(){if(!this.mollieClient)throw new gi(hi.PaymentNotInitialized);return this.mollieClient}getShopperLocale(){if(!this.locale)throw new gi(hi.PaymentNotInitialized);return this.locale}mountElements(){const{containerId:e,cardNumberId:t,cardCvcId:n,cardExpiryId:i,cardHolderId:r,styles:o}=this.getInitializeOptions();let a;e&&(a=document.getElementById(e)),setTimeout(()=>{if(!e||"none"!==(null==a?void 0:a.style.display)){const e=this.getMollieClient();this.cardHolderElement=e.createComponent("cardHolder",{styles:o}),this.cardHolderElement.mount(`#${r}`),this.cardNumberElement=e.createComponent("cardNumber",{styles:o}),this.cardNumberElement.mount(`#${t}`),this.verificationCodeElement=e.createComponent("verificationCode",{styles:o}),this.verificationCodeElement.mount(`#${n}`),this.expiryDateElement=e.createComponent("expiryDate",{styles:o}),this.expiryDateElement.mount(`#${i}`)}},0)}loadPaymentMethodsAllowed(e,t,n){var i;if(Oh.includes(t)){const r=null===(i=this.paymentIntegrationService.getState().getCartOrThrow().lineItems)||void 0===i?void 0:i.digitalItems;if(r&&r.length>0){const{containerId:i}=this.getInitializeOptions();if(i){const r=document.getElementById(i);if(r){const i=document.createElement("p");i.setAttribute("id",`${n}-${t}-paragraph`),e.unsupportedMethodMessage&&(i.innerText=e.unsupportedMethodMessage,r.appendChild(i),e.disableButton(!0))}}}}}}class Ah{constructor(e,t=window){this.scriptLoader=e,this.mollieHostWindow=t}load(e,t,n){return i=this,r=void 0,a=function*(){if(yield this.scriptLoader.loadScript("https://js.mollie.com/v1/mollie.js"),!function(e){return"Mollie"in e}(this.mollieHostWindow))throw new Oi;return this.mollieHostWindow.Mollie(e,{locale:t,testmode:n})},new((o=void 0)||(o=Promise))(function(e,t){function n(e){try{d(a.next(e))}catch(e){t(e)}}function s(e){try{d(a.throw(e))}catch(e){t(e)}}function d(t){var i;t.done?e(t.value):(i=t.value,i instanceof o?i:new o(function(e){e(i)})).then(n,s)}d((a=a.apply(i,r||[])).next())});var i,r,o,a}}const kh=Rt(e=>new Eh(new Ah(a()),e),[{gateway:"mollie"},{gateway:"mollie",id:"applepay"}]);var Th=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};const Dh="moneris-payment-iframe";class Mh{constructor(e){this.paymentIntegrationService=e}initialize(e){return Th(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState(),{moneris:n,methodId:i}=e;if(!i)throw new ki('Unable to initialize payment because "methodId" argument is not provided.');if(!n)throw new ki('Unable to initialize payment because "options.moneris" argument is not provided.');this.initializeOptions=n;const{config:r,initializationData:o}=t.getPaymentMethodOrThrow(i);if(!(null==o?void 0:o.profileId))throw new pi(ui.MissingPaymentMethod);return n.form&&this.shouldShowTSVHostedForm(i)&&(this.hostedForm=yield this.mountCardVerificationfields(n.form)),this.iframe||(this.iframe=this.createIframe(n.containerId,o,!!r.testMode)),Promise.resolve()})}execute(e,t){return Th(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);const{isStoreCreditApplied:r}=this.paymentIntegrationService.getState().getCheckoutOrThrow();if(r&&(yield this.paymentIntegrationService.applyStoreCredit(r)),yield this.paymentIntegrationService.submitOrder(i,t),!n.paymentData||!Cd(n.paymentData))return this.executeWithCC(n);yield this.executeWithVaulted(n)})}finalize(){return Promise.reject(new Id)}deinitialize(){return this.hostedForm&&this.hostedForm.detach(),this.windowEventListener&&(window.removeEventListener("message",this.windowEventListener),this.windowEventListener=void 0),this.iframe&&this.iframe.parentNode&&(this.iframe.parentNode.removeChild(this.iframe),this.iframe=void 0),Promise.resolve()}executeWithCC(e){return Th(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e.methodId).config.testMode,n=e.paymentData||{},i=Ad(n)?n:{shouldSaveInstrument:!1,shouldSetAsDefaultInstrument:!1},{shouldSaveInstrument:r,shouldSetAsDefaultInstrument:o}=i,a=yield new Promise((e,n)=>{if(!this.iframe)throw new gi(hi.PaymentNotInitialized);const i=this.iframe.contentWindow;if(null===i)throw new gi(hi.PaymentNotInitialized);i.postMessage("tokenize",this.monerisURL(!!t)),this.windowEventListener=i=>{if("string"==typeof i.data&&i.origin===`https://${t?"esqa":"www3"}.moneris.com`)try{e(this.handleMonerisResponse(i))}catch(e){n(e)}},window.addEventListener("message",this.windowEventListener)});void 0!==a&&(yield this.paymentIntegrationService.submitPayment({methodId:e.methodId,paymentData:{nonce:a,shouldSaveInstrument:r,shouldSetAsDefaultInstrument:o}}))})}executeWithVaulted(e){return Th(this,void 0,void 0,function*(){if(this.hostedForm){const t=this.hostedForm;return yield t.validate(),yield t.submit(e),this.paymentIntegrationService.loadCurrentOrder()}return this.paymentIntegrationService.submitPayment(e)})}shouldShowTSVHostedForm(e){return this.isHostedPaymentFormEnabled(e)&&this.isHostedFieldAvailable()}isHostedPaymentFormEnabled(e){const t=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e);return Boolean(t.config.isHostedFormEnabled)}isHostedFieldAvailable(){var e;const t=this.getInitializeOptions(),n=H(null===(e=t.form)||void 0===e?void 0:e.fields,E);return!E(n)}getInitializeOptions(){if(!this.initializeOptions)throw new gi(hi.PaymentNotInitialized);return this.initializeOptions}mountCardVerificationfields(e){var t;return Th(this,void 0,void 0,function*(){const n=null===(t=this.paymentIntegrationService.getState().getStoreConfig())||void 0===t?void 0:t.paymentSettings.bigpayBaseUrl;if(!n)throw new pi(ui.MissingCheckoutConfig);const i=this.paymentIntegrationService.createHostedForm(n,e);return yield i.attach(),i})}createIframe(e,t,n,i){const r=document.getElementById(e);if(!r)throw new ki("Unable to create iframe without valid container ID.");const o=document.createElement("iframe"),a={id:t.profileId,pmmsg:!0,display_labels:1,enable_exp:1,enable_cvd:1,css_body:(null==i?void 0:i.cssBody)||"font-family: Arial, Helvetica,sans-serif;background: transparent;",css_textbox:(null==i?void 0:i.cssTextbox)||"border-radius:4px;border: 2px solid rgb(00,00,00);width: 100%;font-weight: 600;padding: 8px 8px;outline: 0;",css_textbox_pan:(null==i?void 0:i.cssTextboxCardNumber)||"width: 240px;",css_textbox_exp:(null==i?void 0:i.cssTextboxExpiryDate)||"margin-bottom: 0;width: calc(30% - 12px);",css_textbox_cvd:(null==i?void 0:i.cssTextboxCVV)||"margin-bottom: 0;width: calc(30% - 12px);",css_input_label:(null==i?void 0:i.cssInputLabel)||"font-size: 10px;position: relative;top: 8px;left: 6px;background: rgb(255,255,255);padding: 3px 2px;color: rgb(66,66,66);font-weight: 600;z-index: 2;",pan_label:t.creditCardLabel||"Credit Card Number",exp_label:t.expiryDateLabel||"Expiration",cvd_label:t.cvdLabel||"CVD"},s=B(a,(e,t)=>`${t}=${e}`).join("&");return o.width="100%",o.height="100%",o.name=Dh,o.id=Dh,o.style.border="none",o.src=`${this.monerisURL(n)}?${s}`,o.allow="payment",r.appendChild(o),o}handleMonerisResponse(e){const t=JSON.parse(e.data);if("001"!==t.responseCode[0])throw new Error(t.errorMessage);return t.dataKey}monerisURL(e){return`https://${e?"esqa":"www3"}.moneris.com/HPPtoken/index.php`}}const zh=Rt(e=>new Mh(e),[{id:"moneris"}]);class Nh{constructor(e){this._paymentIntegrationService=e}execute(e,t){return n=this,i=void 0,o=function*(){yield this._paymentIntegrationService.submitOrder(G(e,"payment"),t)},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}finalize(){return Promise.reject(new Id)}initialize(){return Promise.resolve()}deinitialize(){return Promise.resolve()}}const xh=Rt(e=>new Nh(e),[{id:"nopaymentdatarequired"}]);class Fh{constructor(e){this._paymentIntegrationService=e}execute(e,t){return n=this,i=void 0,o=function*(){return yield this._paymentIntegrationService.submitOrder(Object.assign(Object.assign({},e),{payment:e.payment?{methodId:e.payment.methodId}:void 0}),t),Promise.resolve()},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}finalize(){return Promise.reject(new Id)}initialize(){return Promise.resolve()}deinitialize(){return Promise.resolve()}}const Rh=Rt(e=>new Fh(e),[{type:"PAYMENT_TYPE_OFFLINE"}]);var Lh=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Bh{constructor(e){this._paymentIntegrationService=e}execute(e,t){return Lh(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),r=this._shouldSubmitFullPayload(n)?e:i,o=n&&n.paymentData,a=o&&Cd(o)&&o.instrumentId||void 0,s=o&&Ad(o)&&o.shouldSaveInstrument||void 0,d=o&&Ad(o)&&o.shouldSetAsDefaultInstrument||void 0;if(!n)throw new fo(["payment"]);const{methodId:c,gatewayId:l}=n;yield this._paymentIntegrationService.submitOrder(r,t),yield this._paymentIntegrationService.initializeOffsitePayment({methodId:c,gatewayId:l,instrumentId:a,shouldSaveInstrument:s,shouldSetAsDefaultInstrument:d})})}finalize(e){return Lh(this,void 0,void 0,function*(){const t=this._paymentIntegrationService.getState(),n=t.getOrder(),i=t.getPaymentStatus();if(!n||i!==Yc.ACKNOWLEDGE&&i!==Yc.FINALIZE)return Promise.reject(new Id);yield this._paymentIntegrationService.finalizeOrder(e)})}initialize(){return Promise.resolve()}deinitialize(){return Promise.resolve()}_shouldSubmitFullPayload(e){return!!e&&("adyen"===e.gatewayId||"barclaycard"===e.gatewayId)}}const jh=Rt(e=>new Bh(e),[{type:"PAYMENT_TYPE_HOSTED"}]),Uh={"background-color":"rgba(0, 0, 0, 0.4)","z-index":"1000"},qh=function({styles:e}){const t={};return e.color&&(t.color=e.color),e.layout&&(t.layout=e.layout),(e["logo-type"]||e["logo-position"])&&(t.logo={},e["logo-type"]&&(t.logo.type=e["logo-type"]),e["logo-position"]&&(t.logo.position=e["logo-position"])),e.ratio&&(t.ratio=e.ratio),(e["text-color"]||e["text-size"])&&(t.text={},e["text-color"]&&(t.text.color=e["text-color"]),e["text-size"]&&(t.text.size=+e["text-size"])),t};var Vh=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Gh{constructor(e,t,n,i){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t,this.paypalCommerceSdk=n,this.loadingIndicator=i}initialize(e){var t;return Vh(this,void 0,void 0,function*(){const{methodId:n,paypalcommerce:i}=e||{};if(this.paypalcommerce=i,!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!i)throw new ki('Unable to initialize payment because "options.paypalcommerce" argument is not provided.');yield this.paymentIntegrationService.loadPaymentMethod(n);const r=this.paymentIntegrationService.getState(),o=r.getPaymentMethodOrThrow(n),{container:a,bannerContainerId:s}=i,{orderId:d,paypalBNPLConfiguration:c=[],isPayPalCreditAvailable:l}=o.initializationData||{};if(void 0!==s){if(!document.getElementById(s))return void console.error("Unable to create banner without valid banner container ID.");const e=null==c?void 0:c.find(({id:e})=>"checkout"===e);if(l||!(null==e?void 0:e.status))return;const t=yield this.paypalCommerceSdk.getPayPalMessages(o,r.getCartOrThrow().currency.code);return t&&"function"==typeof(null==t?void 0:t.Messages)?this.renderMessages(t,s,e):void console.error("[BC PayPalCommerce PayLater]: banner could not be rendered, due to issues with loading PayPal SDK")}d?this.orderId=null===(t=o.initializationData)||void 0===t?void 0:t.orderId:(this.loadingIndicatorContainer=null==a?void 0:a.split("#")[1],yield this.paypalCommerceIntegrationService.loadPayPalSdk(n),i.onInit&&"function"==typeof i.onInit&&i.onInit(()=>this.renderButton(n,i)),(void 0===i.shouldRenderPayPalButtonOnInitialization||i.shouldRenderPayPalButtonOnInitialization)&&this.renderButton(n,i))})}execute(e,t){var n,i;return Vh(this,void 0,void 0,function*(){const{payment:r}=e,o=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),{onError:a}=this.paypalcommerce||{};if(!r)throw new fo(["payment"]);const{methodId:s,paymentData:d}=r;if(this.isPayPalVaultedInstrumentPaymentData(d)&&!this.orderId&&(this.orderId=yield this.createOrder()),!this.orderId)throw new co;const c=this.isPayPalVaultedInstrumentPaymentData(d)?this.prepareVaultedInstrumentPaymentPayload(s,this.orderId,d):this.preparePaymentPayload(s,this.orderId,d);try{yield this.paymentIntegrationService.submitOrder(o,t),yield this.paymentIntegrationService.submitPayment(c)}catch(e){if(function(e){var t;return wa(e)&&"offsite_redirect"===(null===(t=e.body.additional_action_required)||void 0===t?void 0:t.type)}(e)){const t=null===(i=null===(n=e.body.additional_action_required)||void 0===n?void 0:n.data)||void 0===i?void 0:i.redirect_url;return new Promise(()=>window.location.replace(t))}return this.isProviderError(e)&&(yield this.paypalCommerceIntegrationService.loadPayPalSdk(r.methodId),yield new Promise((e,t)=>{var n;this.paypalcommerce&&(null===(n=this.paypalButton)||void 0===n||n.close(),this.renderButton(r.methodId,this.paypalcommerce),this.handleError(new Error("INSTRUMENT_DECLINED"),a)),t()})),this.handleError(e,a),Promise.reject()}})}finalize(){return Promise.reject(new Id)}deinitialize(){var e;return this.orderId=void 0,null===(e=this.paypalButton)||void 0===e||e.close(),Promise.resolve()}prepareVaultedInstrumentPaymentPayload(e,t,n){const{instrumentId:i,shouldSetAsDefaultInstrument:r}=n,o=!this.isTrustedVaultingFlow(n);return o?{methodId:e,paymentData:{shouldSaveInstrument:o,shouldSetAsDefaultInstrument:r,formattedPayload:{paypal_account:{order_id:t}}}}:{methodId:e,paymentData:{instrumentId:i,shouldSetAsDefaultInstrument:r,formattedPayload:{paypal_account:{order_id:t},bigpay_token:{token:i}}}}}preparePaymentPayload(e,t,n){const{shouldSaveInstrument:i=!1,shouldSetAsDefaultInstrument:r=!1}=Ad(n)?n:{};return{methodId:e,paymentData:{shouldSaveInstrument:i,shouldSetAsDefaultInstrument:r,formattedPayload:{paypal_account:{order_id:t}}}}}renderButton(e,t){var n,i,r,o;const a=this.paypalCommerceIntegrationService.getPayPalSdkOrThrow(),s=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{paymentButtonStyles:d}=s.initializationData||{},{checkoutPaymentButtonStyles:c}=d||{},{container:l,onError:u,onRenderButton:h,onValidate:p,submitForm:m}=t;if(!l)throw new ki('Unable to initialize payment because "container" argument is not provided.');const y=Object.assign(Object.assign({},this.isPaypalCommerceAppSwitchEnabled(e)&&{appSwitchWhenAvailable:!0}),{fundingSource:a.FUNDING.PAYPAL,style:this.paypalCommerceIntegrationService.getValidButtonStyle(c),createOrder:()=>this.createOrder(),onClick:(e,t)=>this.handleClick(t,p),onApprove:e=>this.handleApprove(e,m),onError:e=>this.handleError(e,u),onCancel:()=>this.toggleLoadingIndicator(!1)});this.paypalButton=a.Buttons(y),this.paypalButton.isEligible()&&(h&&"function"==typeof h&&h(),(null===(i=(n=this.paypalButton).hasReturned)||void 0===i?void 0:i.call(n))&&this.isPaypalCommerceAppSwitchEnabled(e)?null===(o=(r=this.paypalButton).resume)||void 0===o||o.call(r):this.paypalButton.render(l))}handleClick(e,t){return Vh(this,void 0,void 0,function*(){const{resolve:n,reject:i}=e;return null==t?void 0:t(()=>(this.toggleLoadingIndicator(!0),n()),i)})}handleApprove({orderID:e},t){this.orderId=e,null==t||t()}handleError(e,t){this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}createOrder(){return Vh(this,void 0,void 0,function*(){const e=this.getFieldsValues();return this.paypalCommerceIntegrationService.createOrder("paypalcommercecheckout",{shouldSaveInstrument:(null==e?void 0:e.shouldSaveInstrument)||!1})})}getFieldsValues(){const{getFieldsValues:e}=this.paypalcommerce||{};return"function"==typeof e?e():void 0}isTrustedVaultingFlow(e){if(e&&Cd(e)){const t=this.paymentIntegrationService.getState().getInstruments(),n=null==t?void 0:t.find(t=>Qd(t)&&t.bigpayToken===e.instrumentId);return!(Qd(n)&&!n.trustedShippingAddress)}return!1}toggleLoadingIndicator(e){e&&this.loadingIndicatorContainer?this.loadingIndicator.show(this.loadingIndicatorContainer):this.loadingIndicator.hide()}isPayPalVaultedInstrumentPaymentData(e){return!!e&&Cd(e)&&Ad(e)}renderMessages(e,t,n){const i={amount:this.paymentIntegrationService.getState().getCheckoutOrThrow().outstandingBalance,placement:"payment",style:qh(n)};e.Messages(i).render(`#${t}`)}isProviderError(e){var t,n,i;return!!function(e){return"object"==typeof e&&null!==e&&"errors"in e}(e)&&"INSTRUMENT_DECLINED"===(null===(i=null===(n=((null===(t=null==e?void 0:e.errors)||void 0===t?void 0:t.filter(e=>e.provider_error))||[])[0])||void 0===n?void 0:n.provider_error)||void 0===i?void 0:i.code)}isPaypalCommerceAppSwitchEnabled(e){var t;return(null===(t=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e).initializationData)||void 0===t?void 0:t.isAppSwitchEnabled)||!1}}const Hh=Rt(e=>new Gh(e,ms(e),new Va(a()),new sd({containerStyles:Uh})),[{id:"paypalcommerce"}]);var $h=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Wh{constructor(e,t,n,i){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t,this.loadingIndicator=n,this.paypalCommerceSdk=i}initialize(e){return $h(this,void 0,void 0,function*(){const{methodId:t,paypalcommerce:n,paypalcommercecredit:i}=e||{},r=i||n;if(!t)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!r)throw new ki('Unable to initialize payment because "options.paypalcommerce" argument is not provided.');yield this.paymentIntegrationService.loadPaymentMethod(t);const o=this.paymentIntegrationService.getState(),a=o.getPaymentMethodOrThrow(t),{paypalBNPLConfiguration:s=[],orderId:d}=a.initializationData||{},{bannerContainerId:c,container:l}=r;if(void 0!==c){if(!document.getElementById(c))return void console.error("Unable to create banner without valid banner container ID.");const e=s&&s.find(({id:e})=>"checkout"===e);if(!(null==e?void 0:e.status))return;const t=yield this.paypalCommerceSdk.getPayPalMessages(a,o.getCartOrThrow().currency.code);return this.renderMessages(t,c,e)}d?this.orderId=d:(yield this.paypalCommerceIntegrationService.loadPayPalSdk(t),this.loadingIndicatorContainer=null==l?void 0:l.split("#")[1],this.renderButton(t,r))})}execute(e,t){return $h(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);if(!this.orderId)throw new co;yield this.paymentIntegrationService.submitOrder(i,t),yield this.paypalCommerceIntegrationService.submitPayment(n.methodId,this.orderId)})}finalize(){return Promise.reject(new Id)}deinitialize(){var e;return this.orderId=void 0,null===(e=this.paypalButton)||void 0===e||e.close(),Promise.resolve()}renderButton(e,t){if(!(null==t?void 0:t.container))throw new ki('Unable to initialize payment because "container" argument is not provided.');const n=this.paypalCommerceIntegrationService.getPayPalSdkOrThrow(),i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{paymentButtonStyles:r}=i.initializationData||{},{checkoutPaymentButtonStyles:o}=r||{},{container:a,onError:s,onRenderButton:d,onValidate:c,submitForm:l}=t,u=[n.FUNDING.PAYLATER,n.FUNDING.CREDIT];let h=!1;u.forEach(e=>{if(h)return;const t={fundingSource:e,style:this.paypalCommerceIntegrationService.getValidButtonStyle(o),createOrder:()=>this.paypalCommerceIntegrationService.createOrder("paypalcommercecreditcheckout"),onClick:(e,t)=>this.handleClick(t,c),onApprove:e=>this.handleApprove(e,l),onCancel:()=>this.toggleLoadingIndicator(!1),onError:e=>this.handleError(e,s)};if(this.paypalButton=n.Buttons(t),this.paypalButton.isEligible()||e!==n.FUNDING.PAYLATER){if(!this.paypalButton.isEligible()&&e===n.FUNDING.CREDIT)throw new Ti(`PayPal ${e} is not available for your region. Please use PayPal Checkout instead.`);d&&"function"==typeof d&&d(),this.paypalButton.render(a),h=!0}})}handleClick(e,t){return $h(this,void 0,void 0,function*(){const{resolve:n,reject:i}=e;if(t&&"function"==typeof t)return t(()=>(this.toggleLoadingIndicator(!0),n()),i)})}handleApprove({orderID:e},t){this.orderId=e,t&&"function"==typeof t&&t()}handleError(e,t){this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}toggleLoadingIndicator(e){e&&this.loadingIndicatorContainer?this.loadingIndicator.show(this.loadingIndicatorContainer):this.loadingIndicator.hide()}renderMessages(e,t,n){const i={amount:this.paymentIntegrationService.getState().getCheckoutOrThrow().outstandingBalance,placement:"payment",style:qh(n)};e.Messages(i).render(`#${t}`)}}const Yh=Rt(e=>new Wh(e,ms(e),new sd({containerStyles:Uh}),bs()),[{id:"paypalcommercecredit"}]);var Kh=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Jh{constructor(e,t,n){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t,this.loadingIndicator=n}initialize(e){var t,n;return Kh(this,void 0,void 0,function*(){const{methodId:i,paypalcommerce:r,paypalcommercevenmo:o}=e||{},a=o||r;if(!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!a)throw new ki('Unable to initialize payment because "options.paypalcommercevenmo" argument is not provided.');yield this.paymentIntegrationService.loadPaymentMethod(i);const s=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(i);(null===(t=s.initializationData)||void 0===t?void 0:t.orderId)?this.orderId=null===(n=s.initializationData)||void 0===n?void 0:n.orderId:(yield this.paypalCommerceIntegrationService.loadPayPalSdk(i),this.loadingIndicatorContainer=a.container.split("#")[1],this.renderButton(i,a))})}execute(e,t){return Kh(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);if(!this.orderId)throw new co;yield this.paymentIntegrationService.submitOrder(i,t),yield this.paypalCommerceIntegrationService.submitPayment(n.methodId,this.orderId)})}finalize(){return Promise.reject(new Id)}deinitialize(){var e;return this.orderId=void 0,null===(e=this.paypalButton)||void 0===e||e.close(),Promise.resolve()}renderButton(e,t){const n=this.paypalCommerceIntegrationService.getPayPalSdkOrThrow(),i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{paymentButtonStyles:r}=i.initializationData||{},{checkoutPaymentButtonStyles:o}=r||{},{container:a,onError:s,onRenderButton:d,onValidate:c,submitForm:l}=t,u={fundingSource:n.FUNDING.VENMO,style:this.paypalCommerceIntegrationService.getValidButtonStyle(o),createOrder:()=>this.paypalCommerceIntegrationService.createOrder("paypalcommercevenmocheckout"),onClick:(e,t)=>this.handleClick(t,c),onApprove:e=>this.handleApprove(e,l),onCancel:()=>this.toggleLoadingIndicator(!1),onError:e=>this.handleError(e,s)};if(this.paypalButton=n.Buttons(u),!this.paypalButton.isEligible())throw new Ti("PayPal Venmo is not available for your region. Please use PayPal Checkout instead.");d&&"function"==typeof d&&d(),this.paypalButton.render(a)}handleClick(e,t){return Kh(this,void 0,void 0,function*(){const{resolve:n,reject:i}=e;return t(()=>(this.toggleLoadingIndicator(!0),n()),i)})}handleApprove({orderID:e},t){this.orderId=e,t(),this.toggleLoadingIndicator(!1)}handleError(e,t){this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}toggleLoadingIndicator(e){e&&this.loadingIndicatorContainer?this.loadingIndicator.show(this.loadingIndicatorContainer):this.loadingIndicator.hide()}}const Zh=Rt(e=>new Jh(e,ms(e),new sd({styles:{backgroundColor:"black"}})),[{id:"paypalcommercevenmo"}]);var Qh=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Xh{constructor(e,t,n,i,r=3e3,o=3e5){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t,this.paypalCommerceSdk=n,this.loadingIndicator=i,this.pollingInterval=r,this.maxPollingIntervalTime=o,this.pollingTimer=0,this.stopPolling=V,this.isPollingEnabled=!1}initialize(e){return Qh(this,void 0,void 0,function*(){const{gatewayId:t,methodId:n,paypalcommerce:i,paypalcommercealternativemethods:r}=e,o=r||i;if(this.paypalcommercealternativemethods=r,!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.gatewayId" argument is not provided.');if(!o)throw new ki('Unable to initialize payment because "options.paypalcommercealternativemethods" argument is not provided.');const a=this.paymentIntegrationService.getState(),s=a.getPaymentMethodOrThrow(n,t),{orderId:d,shouldRenderFields:c}=s.initializationData||{},l=a.getStoreConfigOrThrow().checkoutSettings.features;this.isPollingEnabled=Wt(l,"PAYPAL-5192.paypal_commerce_ideal_polling"),d?this.orderId=d:(this.paypalApms=yield this.paypalCommerceSdk.getPayPalApmsSdk(s,a.getCartOrThrow().currency.code),this.loadingIndicatorContainer=o.container.split("#")[1],this.renderButton(n,t,o),c&&this.renderFields(n,o))})}execute(e,t){return Qh(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);const{methodId:r,gatewayId:o}=n;if(!this.orderId)throw new co;this.isPollingEnabled&&"ideal"===r&&(yield new Promise((e,t)=>{this.initializePollingMechanism(r,e,t,o)})),this.isNonInstantPaymentMethod(r)||(yield this.paymentIntegrationService.submitOrder(i,t)),yield this.paypalCommerceIntegrationService.submitPayment(r,this.orderId,o)})}finalize(){return Promise.reject(new Id)}deinitialize(){var e;return this.orderId=void 0,this.isPollingEnabled&&this.resetPollingMechanism(),null===(e=this.paypalButton)||void 0===e||e.close(),Promise.resolve()}initializePollingMechanism(e,t,n,i){return Qh(this,void 0,void 0,function*(){yield new Promise((e,t)=>{const n=setTimeout(e,this.pollingInterval);this.stopPolling=()=>(clearTimeout(n),this.toggleLoadingIndicator(!1),t())});try{this.pollingTimer+=this.pollingInterval;const r=yield this.paypalCommerceIntegrationService.getOrderStatus(i),o=r===ss.Approved,a=r===ss.PollingError;if(o)return this.deinitializePollingMechanism(),t();if(a)return n();if(!o&&this.pollingTimer<this.maxPollingIntervalTime)return yield this.initializePollingMechanism(e,t,n,i);yield this.reinitializeStrategy({methodId:e,gatewayId:i,paypalcommercealternativemethods:this.paypalcommercealternativemethods}),this.handleError(new lc)}catch(e){n()}})}deinitializePollingMechanism(){this.stopPolling(),this.pollingTimer=0}resetPollingMechanism(){this.deinitializePollingMechanism()}reinitializeStrategy(e){return Qh(this,void 0,void 0,function*(){yield this.deinitialize(),yield this.initialize(e)})}handleError(e){const{onError:t}=this.paypalcommercealternativemethods||{};this.isPollingEnabled&&this.resetPollingMechanism(),this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}renderButton(e,t,n){const i=this.getPaypalAmpsSdkOrThrow(),r=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e,t),{buttonStyle:o}=r.initializationData||{},{container:a,onError:s,onRenderButton:d,submitForm:c}=n,l={fundingSource:e,style:this.paypalCommerceIntegrationService.getValidButtonStyle(o),onInit:(e,t)=>n.onInitButton(t),createOrder:()=>this.onCreateOrder(e,t,n),onApprove:e=>this.handleApprove(e,c),onCancel:()=>{this.toggleLoadingIndicator(!1),this.deinitializePollingMechanism()},onError:e=>{this.deinitializePollingMechanism(),this.handleFailure(e,s)},onClick:(e,t)=>Qh(this,void 0,void 0,function*(){return n.onValidate(t.resolve,t.reject)})};this.paypalButton=i.Buttons(l),this.paypalButton.isEligible()&&(d&&"function"==typeof d&&d(),this.paypalButton.render(a))}onCreateOrder(e,t,n){return Qh(this,void 0,void 0,function*(){const{onValidate:i}=n;yield i(()=>(this.toggleLoadingIndicator(!0),()=>Promise.resolve()),V);const r=yield this.paypalCommerceIntegrationService.createOrder("paypalcommercealternativemethodscheckout");if(this.isNonInstantPaymentMethod(e)){const n={useStoreCredit:!1},i={params:{methodId:e,gatewayId:t}};yield this.paymentIntegrationService.submitOrder(n,i),yield this.paypalCommerceIntegrationService.submitPayment(e,r,t)}return r})}handleApprove({orderID:e},t){this.orderId=e,t()}handleFailure(e,t){this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}renderFields(e,t){const n=this.getPaypalAmpsSdkOrThrow(),i=this.paymentIntegrationService.getState(),{firstName:r,lastName:o,email:a}=i.getBillingAddressOrThrow(),{apmFieldsContainer:s,apmFieldsStyles:d}=t;if(!s)throw new ki('Unable to initialize payment because "options.paypalcommercealternativemethods" argument should contain "apmFieldsContainer".');const c=document.querySelector(s);c&&(c.innerHTML="");const l={fundingSource:e,style:d||{},fields:{name:{value:`${r} ${o}`},email:{value:a}}};n.PaymentFields(l).render(s)}toggleLoadingIndicator(e){e&&this.loadingIndicatorContainer?this.loadingIndicator.show(this.loadingIndicatorContainer):this.loadingIndicator.hide()}isNonInstantPaymentMethod(e){return e.toUpperCase()in as}getPaypalAmpsSdkOrThrow(){if(!this.paypalApms)throw new Oi;return this.paypalApms}}const ep=Rt(e=>new Xh(e,ms(e),bs(),new sd({containerStyles:Uh})),[{gateway:"paypalcommercealternativemethods"}]);var tp=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class np{constructor(e,t,n,i){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t,this.paypalCommerceSdk=n,this.paypalCommerceFastlaneUtils=i}initialize(e){return tp(this,void 0,void 0,function*(){const{methodId:t,paypalcommercecreditcards:n,paypalcommerce:i}=e,r=n||i,{form:o,onCreditCardFieldsRenderingError:a,onLoadComplete:s}=r||{};if(!t)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!o)throw new ki('Unable to proceed because "options.paypalcommercecreditcards.form" argument is not provided.');this.hostedFormOptions=o,this.isCreditCardForm=gc(o.fields),this.isCreditCardVaultedForm=vc(o.fields)&&!this.hasUndefinedValues(),yield this.paymentIntegrationService.loadPaymentMethod(t),yield this.paypalCommerceIntegrationService.loadPayPalSdk(t,void 0,!0,!0),null==s||s(),(this.isCreditCardForm||this.isCreditCardVaultedForm)&&(yield this.initializeFields(o,a)),this.shouldInitializePayPalFastlane(t)&&(yield this.initializePayPalFastlaneOrThrow(t))})}execute(e,t){return tp(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),{methodId:r,paymentData:o}=n||{};if(!n||!r)throw new fo(["payment"]);if(this.executionPaymentData=o,this.isCreditCardForm||this.isCreditCardVaultedForm)yield this.validateHostedFormOrThrow(),yield this.submitHostedForm();else{const{orderId:e}=yield this.paypalCommerceIntegrationService.createOrderCardFields("paypalcommercecreditcardscheckout",this.getInstrumentParams());this.returnedOrderId=e}const a=this.preparePaymentPayload(r,o,this.returnedOrderId,this.returnedVaultedToken);yield this.paymentIntegrationService.submitOrder(i,t),yield this.paymentIntegrationService.submitPayment(a)})}finalize(){return Promise.reject(new Id)}deinitialize(){var e,t,n,i;return tp(this,void 0,void 0,function*(){return yield null===(e=this.cvvField)||void 0===e?void 0:e.close(),yield null===(t=this.expiryField)||void 0===t?void 0:t.close(),yield null===(n=this.numberField)||void 0===n?void 0:n.close(),yield null===(i=this.nameField)||void 0===i?void 0:i.close(),Promise.resolve()})}preparePaymentPayload(e,t,n,i){const{shouldSaveInstrument:r=!1,shouldSetAsDefaultInstrument:o=!1}=Ad(t)?t:{},a=t&&Cd(t)?t.instrumentId:void 0,s=H({verification_nonce:i,token:a},T);return{methodId:e,paymentData:{shouldSaveInstrument:r,shouldSetAsDefaultInstrument:o,instrumentId:a,formattedPayload:Object.assign(Object.assign({},i||a?{bigpay_token:s}:{}),n?{card_with_order:{order_id:n}}:{})}}}initializeFields(e,t){return tp(this,void 0,void 0,function*(){const{fields:n,styles:i}=e,r=this.paypalCommerceIntegrationService.getPayPalSdkOrThrow(),o=this.getExecuteCallback(n),a=Object.assign({style:this.getInputStyles(i),onApprove:({orderID:e,vaultSetupToken:t,liabilityShift:n})=>{if(n===ts.No||n===ts.Unknown)throw new Error;return this.handleApprove({orderID:e,vaultSetupToken:t})},onError:()=>{throw new so},inputEvents:{onChange:t=>this.onChangeHandler(e,t),onFocus:t=>this.onFocusHandler(e,t),onBlur:t=>this.onBlurHandler(e,t),onInputSubmitRequest:t=>this.onInputSubmitRequest(e,t)}},o);if(this.cardFields=yield r.CardFields(a),!this.cardFields.isEligible())throw new gi(hi.PaymentNotInitialized);try{this.stylizeInputContainers(n),gc(n)&&(yield this.renderFields(n)),vc(n)&&(yield this.renderVaultedFields(n))}catch(e){"function"==typeof t&&t(e)}})}getExecuteCallback(e){return vc(e)?this.createVaultSetupTokenCallback():this.createOrderCallback()}createVaultSetupTokenCallback(){return{createVaultSetupToken:()=>tp(this,void 0,void 0,function*(){const{setupToken:e}=(yield this.paypalCommerceIntegrationService.createOrderCardFields("paypalcommercecreditcardscheckout",Object.assign(Object.assign({},this.getInstrumentParams()),{setupToken:!0})))||{};return e})}}createOrderCallback(){return{createOrder:()=>tp(this,void 0,void 0,function*(){const{orderId:e}=(yield this.paypalCommerceIntegrationService.createOrderCardFields("paypalcommercecreditcardscheckout",this.getInstrumentParams()))||{};return e})}}handleApprove({orderID:e,vaultSetupToken:t}){e&&(this.returnedOrderId=e),t&&(this.returnedVaultedToken=t)}renderFields(e){var t,n,i,r;return tp(this,void 0,void 0,function*(){const o=this.getCardFieldsOrThrow();(null===(t=e.cardCode)||void 0===t?void 0:t.containerId)&&(this.cvvField=o.CVVField({placeholder:""}),yield this.cvvField.render(`#${e.cardCode.containerId}`)),(null===(n=e.cardExpiry)||void 0===n?void 0:n.containerId)&&(this.expiryField=o.ExpiryField(),yield this.expiryField.render(`#${e.cardExpiry.containerId}`)),(null===(i=e.cardName)||void 0===i?void 0:i.containerId)&&(this.nameField=o.NameField({placeholder:""}),yield this.nameField.render(`#${e.cardName.containerId}`)),(null===(r=e.cardNumber)||void 0===r?void 0:r.containerId)&&(this.numberField=o.NumberField({placeholder:""}),yield this.numberField.render(`#${e.cardNumber.containerId}`))})}renderVaultedFields(e){var t,n,i;return tp(this,void 0,void 0,function*(){const r=this.getCardFieldsOrThrow();(null===(t=e.cardCodeVerification)||void 0===t?void 0:t.containerId)&&(this.cvvField=r.CVVField({placeholder:""}),yield this.cvvField.render(`#${e.cardCodeVerification.containerId}`)),(null===(n=e.cardExpiryVerification)||void 0===n?void 0:n.containerId)&&(this.expiryField=r.ExpiryField(),yield this.expiryField.render(`#${e.cardExpiryVerification.containerId}`)),(null===(i=e.cardNumberVerification)||void 0===i?void 0:i.containerId)&&(this.numberField=r.NumberField({placeholder:""}),yield this.numberField.render(`#${e.cardNumberVerification.containerId}`))})}getInstrumentParams(){if(!this.executionPaymentData)return{};if(Ad(this.executionPaymentData)){const{shouldSaveInstrument:e,shouldSetAsDefaultInstrument:t}=this.executionPaymentData;return{shouldSaveInstrument:e,shouldSetAsDefaultInstrument:t}}if(Cd(this.executionPaymentData)){const{instrumentId:e}=this.executionPaymentData;return{instrumentId:e}}return{}}getFieldTypeByEmittedField({emittedBy:e}){return{fieldType:this.mapFieldType(e)}}submitHostedForm(){return tp(this,void 0,void 0,function*(){const e=this.getCardFieldsOrThrow(),t=this.paymentIntegrationService.getState().getBillingAddressOrThrow(),n={billingAddress:{company:t.company,addressLine1:t.address1,addressLine2:t.address2,adminArea1:t.stateOrProvinceCode,adminArea2:t.city,postalCode:t.postalCode,countryCode:t.countryCode}};try{this.isCreditCardVaultedForm?yield e.submit():yield e.submit(n)}catch(e){throw new so("Failed authentication. Please try to authorize again.")}})}validateHostedFormOrThrow(){var e,t;return tp(this,void 0,void 0,function*(){const n=this.getCardFieldsOrThrow(),i=yield n.getState().then(e=>e),r=this.getValidityData(i);if(!r.isValid)throw null===(t=null===(e=this.hostedFormOptions)||void 0===e?void 0:e.onValidate)||void 0===t||t.call(e,r),new So(this.mapValidationErrors(r.errors))})}getValidityData({fields:e}){const t=Object.assign({},e);delete t.cardNameField;const n=Object.keys(t);return{isValid:n.every(e=>{var n;return null===(n=t[e])||void 0===n?void 0:n.isValid}),errors:n.reduce((e,n)=>{var i;const r=this.mapFieldType(n);return Object.assign(Object.assign({},e),{[r]:(null===(i=t[n])||void 0===i?void 0:i.isValid)?void 0:[this.getInvalidErrorByFieldType(r)]})},{})}}getInvalidErrorByFieldType(e){switch(e){case yc.CardCode:case yc.CardCodeVerification:return{fieldType:e,message:"Invalid card code",type:"invalid_card_code"};case yc.CardNumber:case yc.CardNumberVerification:return{fieldType:e,message:"Invalid card number",type:"invalid_card_number"};case yc.CardExpiry:case yc.CardExpiryVerification:return{fieldType:e,message:"Invalid card expiry",type:"invalid_card_expiry"};default:return{fieldType:e,message:"Invalid field",type:"invalid"}}}mapValidationErrors(e={}){const t={};return Object.keys(e).forEach(n=>{var i,r;t[n]=[{message:(null===(r=null===(i=e[n])||void 0===i?void 0:i[0])||void 0===r?void 0:r.message)||"",type:n}]}),t}mapFieldType(e){switch(e){case"name":return yc.CardName;case"cardNumberField":case"number":return this.isCreditCardForm?yc.CardNumber:yc.CardNumberVerification;case"cardExpiryField":case"expiry":return this.isCreditCardForm?yc.CardExpiry:yc.CardExpiryVerification;case"cardCvvField":case"cvv":return this.isCreditCardForm?yc.CardCode:yc.CardCodeVerification;default:throw new Error("Unexpected field type")}}getCardFieldsOrThrow(){if(!this.cardFields)throw new gi(hi.PaymentNotInitialized);return this.cardFields}getInputStyles(e){var t,n,i;const r={"font-size":(null===(t=null==e?void 0:e.default)||void 0===t?void 0:t.fontSize)||"1rem","font-family":(null===(n=null==e?void 0:e.default)||void 0===n?void 0:n.fontFamily)||"Montserrat, Arial, Helvetica, sans-serif","font-weight":(null===(i=null==e?void 0:e.default)||void 0===i?void 0:i.fontWeight)||"400",outline:"none",padding:"9px 13px"},o=Object.assign(Object.assign({},r),{color:"#333333"});return{input:o,".invalid":Object.assign(Object.assign({},r),{color:"red"}),".valid":o,":focus":o}}stylizeInputContainers(e){Object.values(e||{}).forEach(e=>{const t=document.getElementById(`${(null==e?void 0:e.containerId)||""}`);t&&(t.style.padding="0px",t.style.boxShadow="none",t.style.border="none",t.style.background="transparent",t.style.marginBottom="10px",t.style.marginLeft="-5px")})}hasUndefinedValues(){return!this.hostedFormOptions||Object.values(this.hostedFormOptions.fields).some(e=>void 0===e)}onChangeHandler(e,t){var n;null===(n=null==e?void 0:e.onValidate)||void 0===n||n.call(e,this.getValidityData(t))}onFocusHandler(e,t){var n;null===(n=null==e?void 0:e.onFocus)||void 0===n||n.call(e,this.getFieldTypeByEmittedField(t))}onBlurHandler(e,t){var n;null===(n=null==e?void 0:e.onBlur)||void 0===n||n.call(e,this.getFieldTypeByEmittedField(t))}onInputSubmitRequest(e,t){var n;null===(n=null==e?void 0:e.onEnter)||void 0===n||n.call(e,this.getFieldTypeByEmittedField(t))}shouldInitializePayPalFastlane(e){var t,n;const i=this.paymentIntegrationService.getState(),r=i.getPaymentMethodOrThrow(e),o=i.getPaymentProviderCustomer(),a=(s=o)&&("authenticationState"in s||"addresses"in s||"instruments"in s)?o:{};var s;return(null===(t=null==r?void 0:r.initializationData)||void 0===t?void 0:t.isAcceleratedCheckoutEnabled)&&(null===(n=null==r?void 0:r.initializationData)||void 0===n?void 0:n.isPayPalCommerceAnalyticsV2Enabled)&&!(null==a?void 0:a.authenticationState)}initializePayPalFastlaneOrThrow(e){return tp(this,void 0,void 0,function*(){try{const t=this.paymentIntegrationService.getState(),n=t.getCartOrThrow(),i=t.getPaymentMethodOrThrow(e),{initializationData:r}=i;if(!(null==r?void 0:r.connectClientToken))return;const o=yield this.paypalCommerceSdk.getPayPalFastlaneSdk(i,n.currency.code,n.id);yield this.paypalCommerceFastlaneUtils.initializePayPalFastlane(o,!!(null==r?void 0:r.isDeveloperModeApplicable))}catch(e){}})}}const ip=Rt(e=>new np(e,ms(e),bs(),Ns()),[{id:"paypalcommercecreditcards"}]);var rp=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class op{constructor(e,t,n,i=3e3,r=3e5){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t,this.loadingIndicator=n,this.pollingInterval=i,this.maxPollingIntervalTime=r,this.pollingTimer=0,this.stopPolling=V}initialize(e){return rp(this,void 0,void 0,function*(){const{gatewayId:t,methodId:n,paypalcommerceratepay:i}=e;if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.gatewayId" argument is not provided.');if(!i)throw new ki('Unable to initialize payment because "options.paypalcommerceratepay" argument is not provided.');const{legalTextContainer:r,container:o,loadingContainerId:a}=i;if(!o)throw new ki('Unable to initialize payment because "options.container" argument is not provided.');if(!r)throw new ki('Unable to initialize payment because "options.legalTextContainer" argument is not provided.');if(!a)throw new ki('Unable to initialize payment because "options.loadingContainerId" argument is not provided.');this.loadingIndicatorContainer=a;const s=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(n,t),{merchantId:d}=s.initializationData||{};if(!d)throw new ki("Unable to initialize payment because merchantId argument is not provided.");this.paypalcommerceratepay=i,yield this.paypalCommerceIntegrationService.loadPayPalSdk(n),this.createFraudNetScript(d,n,t),this.loadFraudnetConfig(),this.renderLegalText(r,o)})}execute(e,t){return rp(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),{getFieldsValues:r}=this.paypalcommerceratepay||{};if(!n)throw new fo(["payment"]);if(!r||"function"!=typeof r)throw new ki('Unable to initialize payment because "options.getFieldsValues" argument is not provided.');this.toggleLoadingIndicator(!0);try{const e=yield this.paypalCommerceIntegrationService.createOrder("paypalcommercealternativemethodscheckout",{metadataId:this.guid}),{ratepayBirthDate:o,ratepayPhoneNumber:a,ratepayPhoneCountryCode:s}=r(),d={formattedPayload:{vault_payment_instrument:null,set_as_default_stored_instrument:null,device_info:null,method_id:n.methodId,rate_pay:{birth_date:this.normalizeDate(o),phone:{national_number:a,country_code:s.split("+")[1]}},paypal_account:{order_id:e}}};return yield this.paymentIntegrationService.submitOrder(i,t),yield this.paymentIntegrationService.submitPayment({methodId:n.methodId,paymentData:d}),yield new Promise((e,t)=>{this.initializePollingMechanism(n.methodId,e,t,n.gatewayId)})}catch(e){return this.handleError(e),new Promise((e,t)=>t())}})}finalize(){return Promise.reject(new Id)}deinitialize(){const{legalTextContainer:e}=this.paypalcommerceratepay||{},t=document.querySelectorAll('[data-id="fraudnetScript"]')[0],n=document.querySelectorAll('[data-id="fraudnetConfig"]')[0];if(this.deinitializePollingMechanism(),t.remove(),n.remove(),e){const t=document.getElementById(e);null==t||t.remove()}return Promise.resolve()}normalizeDate(e){const t=this.formatDate(e.getDate()),n=this.formatDate(e.getMonth()+1);return`${e.getFullYear()}-${n}-${t}`}formatDate(e){return`${e<10?0:""}${e}`}renderLegalText(e,t){const n=e,i=t.split("#")[1],r=document.getElementById(i),o=null==r?void 0:r.parentNode,a=document.createElement("div");a.style.marginBottom="20px",a.setAttribute("id",n),null==o||o.prepend(a);const s=this.paypalCommerceIntegrationService.getPayPalSdkOrThrow(),d=s.Legal({fundingSource:s.Legal.FUNDING.PAY_UPON_INVOICE});if(!document.getElementById(n))throw new ki('Unable to initialize payment because "legalTextContainerElement" argument is not found.');d.render(`#${n}`)}handleError(e){const{onError:t}=this.paypalcommerceratepay||{};this.resetPollingMechanism(),this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}createFraudNetScript(e,t,n){const i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(t,n),{testMode:r}=i.config,o=document.createElement("script");o.setAttribute("type","application/json"),o.setAttribute("fncls","fnparams-dede7cc5-15fd-4c75-a9f4-36c430ee3a99"),o.setAttribute("data-id","fraudnetScript"),this.guid=this.generateGUID();const a={f:this.guid,s:`${e}_checkout-page`,sandbox:r};o.innerHTML=JSON.stringify(a),document.body.appendChild(o)}generateGUID(){let e="";for(let t=0;t<32;t+=1)e+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"[Math.floor(62*Math.random())];return e}loadFraudnetConfig(){const e=document.createElement("script");e.setAttribute("data-id","fraudnetConfig"),e.src="https://c.paypal.com/da/r/fb.js",document.body.appendChild(e)}reinitializeStrategy(e){return rp(this,void 0,void 0,function*(){yield this.deinitialize(),yield this.initialize(e)})}initializePollingMechanism(e,t,n,i){return rp(this,void 0,void 0,function*(){yield new Promise((e,t)=>{const n=setTimeout(e,this.pollingInterval);this.stopPolling=()=>(clearTimeout(n),this.toggleLoadingIndicator(!1),t())});try{this.pollingTimer+=this.pollingInterval;const r=yield this.paypalCommerceIntegrationService.getOrderStatus("paypalcommercealternativemethods",{params:{useMetadata:!0}}),o=r===ss.PollingStop,a=r===ss.PollingError;if(o)return this.deinitializePollingMechanism(),t();if(a)return n();if(!o&&this.pollingTimer<this.maxPollingIntervalTime)return yield this.initializePollingMechanism(e,t,n,i);yield this.reinitializeStrategy({methodId:e,gatewayId:i,paypalcommerceratepay:this.paypalcommerceratepay}),this.handleError(new lc)}catch(e){this.handleError(e),n()}})}deinitializePollingMechanism(){this.stopPolling(),this.pollingTimer=0}resetPollingMechanism(){this.deinitializePollingMechanism()}toggleLoadingIndicator(e){e&&this.loadingIndicatorContainer?this.loadingIndicator.show(this.loadingIndicatorContainer):this.loadingIndicator.hide()}}const ap=Rt(e=>new op(e,ms(e),new sd({containerStyles:Object.assign(Object.assign({},Uh),{position:"fixed"})})),[{gateway:"paypalcommercealternativemethods",id:"ratepay"}]);function sp(e){return!!e&&("authenticationState"in e||"addresses"in e||"instruments"in e)}var dp=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class cp{constructor(e,t,n,i){this.paymentIntegrationService=e,this.paypalCommerceRequestSender=t,this.paypalCommerceSdk=n,this.paypalCommerceFastlaneUtils=i}initialize(e){var t,n;return dp(this,void 0,void 0,function*(){const{methodId:i,paypalcommercefastlane:r}=e;if(this.methodId=i,this.paypalcommercefastlane=r,!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!r)throw new ki('Unable to initialize payment because "options.paypalcommercefastlane" argument is not provided.');if(!r.onInit||"function"!=typeof r.onInit)throw new ki('Unable to initialize payment because "options.paypalcommercefastlane.onInit" argument is not provided or it is not a function.');if(!r.onChange||"function"!=typeof r.onChange)throw new ki('Unable to initialize payment because "options.paypalcommercefastlane.onChange" argument is not provided or it is not a function.');yield this.paymentIntegrationService.loadPaymentMethod(i);const o=this.paymentIntegrationService.getState(),a=o.getCartOrThrow(),s=o.getPaymentMethodOrThrow(i),{isDeveloperModeApplicable:d,isFastlaneStylingEnabled:c}=s.initializationData||{};this.threeDSVerificationMethod=null===(t=s.initializationData)||void 0===t?void 0:t.threeDSVerificationMethod,this.paypalFastlaneSdk=yield this.paypalCommerceSdk.getPayPalFastlaneSdk(s,a.currency.code,a.id);const l=Fs(c?null===(n=null==s?void 0:s.initializationData)||void 0===n?void 0:n.fastlaneStyles:{},null==r?void 0:r.styles);yield this.paypalCommerceFastlaneUtils.initializePayPalFastlane(this.paypalFastlaneSdk,!!d,l),this.shouldRunAuthenticationFlow()&&(yield this.runPayPalAuthenticationFlowOrThrow(i)),yield this.initializePayPalPaymentComponent(),r.onInit(e=>this.renderPayPalPaymentComponent(e)),r.onChange(()=>this.handlePayPalStoredInstrumentChange(i))})}execute(e,t){return dp(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);const{paymentData:r,methodId:o}=n,a=r&&Cd(r);try{yield this.paymentIntegrationService.submitOrder(i,t);const e=a?yield this.prepareVaultedInstrumentPaymentPayload(o,r):yield this.preparePaymentPayload(o,r);yield this.paymentIntegrationService.submitPayment(e),this.paypalCommerceFastlaneUtils.removeStorageSessionId()}catch(e){if(function(e){return"object"==typeof e&&null!==e&&"message"in e&&"response"in e&&"body"in e.response&&"name"in e.response.body}(e)&&"INVALID_REQUEST"===e.response.body.name){const e={translationKey:"payment.errors.invalid_request_error"};return this.handleError(e),Promise.reject()}if(e instanceof Error&&"FastlaneError"!==e.name)throw e;return Promise.reject()}})}finalize(){return Promise.reject(new Id)}deinitialize(){return dp(this,void 0,void 0,function*(){return Promise.resolve()})}shouldRunAuthenticationFlow(){const e=this.paymentIntegrationService.getState(),t=e.getCartOrThrow(),n=e.getCustomerOrThrow(),i=e.getPaymentProviderCustomer(),r=sp(i)?i:{},o=this.paypalCommerceFastlaneUtils.getStorageSessionId();return!(!n.isGuest||(null==r?void 0:r.authenticationState)===Ds.CANCELED||(null==r?void 0:r.authenticationState)||o!==t.id)}runPayPalAuthenticationFlowOrThrow(e){return dp(this,void 0,void 0,function*(){try{const t=this.paymentIntegrationService.getState(),n=t.getCartOrThrow(),i=t.getCustomer(),r=t.getBillingAddress(),o=(null==i?void 0:i.email)||(null==r?void 0:r.email)||"",{customerContextId:a}=yield this.paypalCommerceFastlaneUtils.lookupCustomerOrThrow(o),s=yield this.paypalCommerceFastlaneUtils.triggerAuthenticationFlowOrThrow(a),{authenticationState:d,addresses:c,instruments:l}=this.paypalCommerceFastlaneUtils.mapPayPalFastlaneProfileToBcCustomerData(e,s);yield this.paymentIntegrationService.updatePaymentProviderCustomer({authenticationState:d,addresses:c,instruments:l}),s.authenticationState===Ds.CANCELED?this.paypalCommerceFastlaneUtils.removeStorageSessionId():this.paypalCommerceFastlaneUtils.updateStorageSessionId(n.id)}catch(e){}})}initializePayPalPaymentComponent(){return dp(this,void 0,void 0,function*(){const e=this.paymentIntegrationService.getState().getBillingAddressOrThrow(),t=e.phone,n=`${e.firstName} ${e.lastName}`.trim(),i=this.paypalCommerceFastlaneUtils.getPayPalFastlaneOrThrow(),r={fields:Object.assign({cardholderName:{prefill:n,enabled:!0}},t&&{phoneNumber:{prefill:t}})};this.paypalComponentMethods=yield i.FastlaneCardComponent(r)})}renderPayPalPaymentComponent(e){const t=this.getPayPalComponentMethodsOrThrow();if(!e)throw new ki('Unable to render card component because "container" argument is not provided.');t.render(e)}getPayPalComponentMethodsOrThrow(){if(!this.paypalComponentMethods)throw new Oi;return this.paypalComponentMethods}prepareVaultedInstrumentPaymentPayload(e,t){return dp(this,void 0,void 0,function*(){const{instrumentId:n}=t,i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),r=this.isPaypalCommerceFastlaneThreeDSAvailable()&&i.config.is3dsEnabled;r||(yield this.createOrder(n));const o=r?yield this.get3DSNonce(n):n;return{methodId:e,paymentData:{formattedPayload:{paypal_fastlane_token:{order_id:this.orderId,token:o}}}}})}preparePaymentPayload(e,t){return dp(this,void 0,void 0,function*(){const n=this.paymentIntegrationService.getState(),i=n.getBillingAddressOrThrow(),r=n.getPaymentMethodOrThrow(e),o=`${i.firstName} ${i.lastName}`.trim(),{getPaymentToken:a}=this.getPayPalComponentMethodsOrThrow(),{id:s}=yield a({name:{fullName:o},billingAddress:this.paypalCommerceFastlaneUtils.mapBcToPayPalAddress(i)}),d=this.isPaypalCommerceFastlaneThreeDSAvailable()&&r.config.is3dsEnabled;d||(yield this.createOrder(s));const c=d?yield this.get3DSNonce(s):s,{shouldSaveInstrument:l=!1,shouldSetAsDefaultInstrument:u=!1}=Ad(t)?t:{};return{methodId:e,paymentData:Object.assign(Object.assign({},t),{shouldSaveInstrument:l,shouldSetAsDefaultInstrument:u,formattedPayload:{paypal_fastlane_token:{order_id:this.orderId,token:c}}})}})}createOrder(e){return dp(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState().getCartOrThrow().id;if(this.methodId){const{orderId:n}=yield this.paypalCommerceRequestSender.createOrder(this.methodId,{cartId:t,fastlaneToken:e});this.orderId=n}})}get3DSNonce(e){var t;return dp(this,void 0,void 0,function*(){const n=this.paymentIntegrationService.getState(),i=n.getCartOrThrow(),r=n.getOrderOrThrow(),o=n.getStoreConfigOrThrow().links.checkoutLink,a=null===(t=this.paypalFastlaneSdk)||void 0===t?void 0:t.ThreeDomainSecureClient;if(!a)throw new Oi;const s={amount:r.orderAmount.toFixed(2),currency:i.currency.code,nonce:e,threeDSRequested:"SCA_ALWAYS"===this.threeDSVerificationMethod,transactionContext:{experience_context:{locale:"en-US",return_url:o,cancel_url:o}}};if(yield a.isEligible(s)){const{liabilityShift:e,authenticationState:t,nonce:n}=yield a.show();if(e===ts.No||e===ts.Unknown||t===Os.Errored||t===Os.Cancelled)throw new co;if(t===Os.Succeeded)return yield this.createOrder(n),n}return e})}handlePayPalStoredInstrumentChange(e){return dp(this,void 0,void 0,function*(){const t=this.paypalCommerceFastlaneUtils.getPayPalFastlaneOrThrow(),{selectionChanged:n,selectedCard:i}=yield t.profile.showCardSelector();if(n){const t=this.paymentIntegrationService.getState().getPaymentProviderCustomer(),n=sp(t)?t:{},r=this.paypalCommerceFastlaneUtils.mapPayPalToBcInstrument(e,i)[0];return yield this.paymentIntegrationService.updatePaymentProviderCustomer(Object.assign(Object.assign({},n),{instruments:[r]})),r}})}isPaypalCommerceFastlaneThreeDSAvailable(){return Wt(this.paymentIntegrationService.getState().getStoreConfigOrThrow().checkoutSettings.features,"PROJECT-7080.paypalcommerce_fastlane_three_ds")}handleError(e){var t;(null===(t=this.paypalcommercefastlane)||void 0===t?void 0:t.onError)&&"function"==typeof this.paypalcommercefastlane.onError&&this.paypalcommercefastlane.onError(e)}}const lp=Rt(e=>{const{getHost:t}=e.getState();return new cp(e,new us(n({host:t()})),bs(),Ns())},[{id:"paypalcommerceacceleratedcheckout"}]);var up,hp,pp,mp,yp,gp;!function(e){e.HORIZONTAL="horizontal",e.VERTICAL="vertical"}(up||(up={})),function(e){e.SMALL="small",e.MEDIUM="medium",e.LARGE="large",e.RESPONSIVE="responsive"}(hp||(hp={})),function(e){e.GOLD="gold",e.BLUE="blue",e.SIlVER="silver",e.BLACK="black"}(pp||(pp={})),function(e){e.CHECKOUT="checkout",e.PAY="pay",e.BUYNOW="buynow",e.PAYPAL="paypal",e.CREDIT="credit"}(mp||(mp={})),function(e){e.PILL="pill",e.RECT="rect"}(yp||(yp={})),function(e){e.ACKNOWLEDGE="ACKNOWLEDGE",e.FINALIZE="FINALIZE",e.INITIALIZE="INITIALIZE"}(gp||(gp={}));var vp=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class fp{constructor(e,t){this.paymentIntegrationService=e,this.scriptLoader=t,this.useRedirectFlow=!1,this.window=window}initialize(e){return vp(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState();this.paymentMethod=t.getPaymentMethodOrThrow(e.methodId),this.useRedirectFlow=!0===(e.paypalexpress&&e.paypalexpress.useRedirectFlow);const n=this.paymentMethod.config.merchantId;if(!this.isInContextEnabled()||!n)throw new pi(ui.MissingPaymentMethod);const i=yield this.scriptLoader.loadPaypalSDK();this.paypalSdk=i,this.paypalSdk.checkout.setup(n,{button:"paypal-button",environment:this.paymentMethod.config.testMode?"sandbox":"production"})})}deinitialize(){return this.isInContextEnabled()&&this.paypalSdk&&(this.paypalSdk.checkout.closeFlow(),this.paypalSdk=void 0),Promise.resolve()}execute(e,t){return vp(this,void 0,void 0,function*(){let n,i;const r=this.paypalSdk;if(!this.isAcknowledgedOrFinalized()){if(!this.isInContextEnabled()||this.useRedirectFlow)return n=yield this.paymentIntegrationService.submitOrder(e,t),i=n.getPaymentRedirectUrl(),i&&this.window.top&&(this.window.top.location.href=i),new Promise(V);if(!r)throw new gi(hi.PaymentNotInitialized);r.checkout.initXO();try{n=yield this.paymentIntegrationService.submitOrder(e,t)}catch(e){return r.checkout.closeFlow(),Promise.reject(e)}return i=n.getPaymentRedirectUrl(),i&&r.checkout.startFlow(i),new Promise(V)}yield this.paymentIntegrationService.submitOrder(e,t)})}finalize(e){return vp(this,void 0,void 0,function*(){return this.paymentIntegrationService.getState().getOrder()&&this.isAcknowledgedOrFinalized()?(yield this.paymentIntegrationService.finalizeOrder(e),Promise.resolve()):Promise.reject(new Id)})}isAcknowledgedOrFinalized(){const e=this.paymentIntegrationService.getState();return e.getPaymentStatus()===gp.ACKNOWLEDGE||e.getPaymentStatus()===gp.FINALIZE}isInContextEnabled(){return!(!this.paymentMethod||!this.paymentMethod.config.merchantId)}}class Sp{constructor(e){this.scriptLoader=e,this.window=window}loadPaypalSDK(e=""){return t=this,n=void 0,r=function*(){const t=Object.assign({async:!0,attributes:{"data-merchant-id":e}},e&&{attributes:{"data-merchant-id":e}});if(yield this.scriptLoader.loadScript("//www.paypalobjects.com/api/checkout.min.js",t),!this.window.paypal)throw new Oi;return this.window.paypal},new((i=void 0)||(i=Promise))(function(e,o){function a(e){try{d(r.next(e))}catch(e){o(e)}}function s(e){try{d(r.throw(e))}catch(e){o(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((r=r.apply(t,n||[])).next())});var t,n,i,r}}const wp=Rt(e=>new fp(e,new Sp(a())),[{id:"paypalexpress",type:"PAYMENT_TYPE_HOSTED"},{id:"paypalexpresscredit",type:"PAYMENT_TYPE_HOSTED"}]);var _p=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Cp extends Ul{constructor(e,t){super(e),this.paymentIntegrationService=e,this.threeDSecureFlow=t}initialize(e){const t=Object.create(null,{initialize:{get:()=>super.initialize}});return _p(this,void 0,void 0,function*(){yield t.initialize.call(this,e);const n=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e.methodId);n.config.is3dsEnabled&&(yield this.threeDSecureFlow.prepare(n))})}execute(e,t){const n=Object.create(null,{execute:{get:()=>super.execute}});return _p(this,void 0,void 0,function*(){const{payment:{methodId:i=""}={}}=e,r=this.paymentIntegrationService.getState();return r.getPaymentStatus()===Yc.ACKNOWLEDGE?(yield this.paymentIntegrationService.submitOrder(Object.assign(Object.assign({},e),{payment:{methodId:i}}),t),Promise.resolve()):r.getPaymentMethodOrThrow(i).config.is3dsEnabled?this.threeDSecureFlow.start(n.execute.bind(this),e,t,this._hostedForm):n.execute.call(this,e,t)})}}const Ip=Rt(e=>new Cp(e,new mu(e,new Iu(new bu(a())))),[{id:"paypal"}]);class bp extends Ul{constructor(e,t){super(e),this.paymentIntegrationService=e,this._formPoster=t}execute(e,t){const{payment:n}=e;if(!n)throw new gi(hi.PaymentNotInitialized);const{paymentData:i}=n;if(!i)throw new pi(ui.MissingPayment);if(this._isThreeDSTwoExperimentOn()){const t=Object.assign(Object.assign({},i),{browser_info:Za()});e.payment&&(e.payment.paymentData=t)}return super.execute(e,t).catch(e=>wa(e)&&Z(e.body.errors,{code:"three_d_secure_required"})?new Promise(()=>{let t;t=this._isThreeDSTwoExperimentOn()&&!e.body.three_ds_result.merchant_data?{creq:e.body.three_ds_result.payer_auth_request}:{PaReq:e.body.three_ds_result.payer_auth_request,TermUrl:e.body.three_ds_result.callback_url,MD:e.body.three_ds_result.merchant_data},this._formPoster.postForm(e.body.three_ds_result.acs_url,t,void 0,"_top")}):Promise.reject(e))}finalize(e){const t=this.paymentIntegrationService.getState();return t.getOrder()&&t.getPaymentStatus()===Yc.FINALIZE&&this.paymentIntegrationService.finalizeOrder(e),super.finalize()}_isThreeDSTwoExperimentOn(){return!0===this.paymentIntegrationService.getState().getStoreConfigOrThrow().checkoutSettings.features["INT-4994.Opayo_3DS2"]}}const Pp=Rt(e=>new bp(e,Ee()),[{id:"sagepay"}]);class Op extends zu{redirectUrl(e){window.location.replace(e)}}const Ep=Rt(e=>new Op(Ee(),e),[{id:"sezzle"}]);var Ap;!function(e){e.CHARGE="CHARGE",e.STORE="STORE"}(Ap||(Ap={}));var kp=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Tp{constructor(e,t){this._scriptLoader=e,this._paymentIntegrationService=t}initialize({testMode:e,applicationId:t,locationId:n}){return kp(this,void 0,void 0,function*(){const i=yield this._scriptLoader.load(e);this._payments=i.payments(t,n)})}deinitialize(){return kp(this,void 0,void 0,function*(){this._formValidationSubscription&&this._formValidationSubscription.unsubscribe(),this._card&&(yield this._card.destroy()),this._formValidationSubscription=void 0,this._card=void 0,this._payments=void 0})}initializeCard({containerId:e,style:t,onValidationChange:n}){return kp(this,void 0,void 0,function*(){const{postalCode:i}=this._paymentIntegrationService.getState().getBillingAddress()||{};this._card=yield this._getPayments().card(),yield this._card.attach(`#${e}`);try{yield this._card.configure({postalCode:i,style:t})}catch(e){}n&&(this._formValidationSubscription=this._subscribeToFormValidation(this._card,n))})}tokenize(){return kp(this,void 0,void 0,function*(){const e=yield this._getCard().tokenize();if("OK"!==e.status||!e.token){let t=`Tokenization failed with status: ${e.status}`;throw e.errors&&(t+=` and errors: ${JSON.stringify(e.errors)}`),new dh("payment.errors.card_error","SquareV2TokenizationError",t)}return e.token})}verifyBuyer(e,t){return kp(this,void 0,void 0,function*(){return t===Ap.CHARGE?this._chargeVerifyBuyer(e):this._storeVerifyBuyer(e)})}_getPayments(){return yi(this._payments,()=>new gi(hi.PaymentNotInitialized))}_subscribeToFormValidation(e,t){const n=["cardNumber","cvv"],i=new Set(n),r=["focusClassAdded","focusClassRemoved","errorClassAdded","errorClassRemoved","cardBrandChanged","postalCodeChanged"].map(t=>ue(e,t));return he(...r).pipe(we(e=>{const{detail:{field:t,currentState:{isCompletelyValid:r}}}=e;return n.includes(t)&&i[r?"delete":"add"](t),0===i.size}),fe()).subscribe(t)}_getCard(){return yi(this._card,()=>new gi(hi.PaymentNotInitialized))}_mapToSquareBillingContact({firstName:e,lastName:t,address1:n,address2:i,city:r,stateOrProvinceCode:o,postalCode:a,countryCode:s,email:d,phone:c}){return{givenName:e,familyName:t,addressLines:[n,i],city:r,state:o,postalCode:a,countryCode:s,email:d,phone:c}}_chargeVerifyBuyer(e){return kp(this,void 0,void 0,function*(){const{getCheckoutOrThrow:t,getBillingAddressOrThrow:n}=this._paymentIntegrationService.getState(),{outstandingBalance:i,cart:r}=t(),o={amount:i.toString(),billingContact:this._mapToSquareBillingContact(n()),currencyCode:r.currency.code,intent:Ap.CHARGE},a=yield this._getPayments().verifyBuyer(e,o);return a?a.token:""})}_storeVerifyBuyer(e){return kp(this,void 0,void 0,function*(){const{getBillingAddressOrThrow:t}=this._paymentIntegrationService.getState(),n={billingContact:this._mapToSquareBillingContact(t()),intent:Ap.STORE},i=yield this._getPayments().verifyBuyer(e,n);return i?i.token:""})}}var Dp=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Mp{constructor(e,t){this._paymentIntegrationService=e,this._squareV2PaymentProcessor=t}initialize(e){var t;return Dp(this,void 0,void 0,function*(){if(!(null===(t=null==e?void 0:e.squarev2)||void 0===t?void 0:t.containerId))throw new ki('Unable to proceed because "containerId" argument is not provided.');const{methodId:n,squarev2:i}=e,{config:{testMode:r},initializationData:o}=this._paymentIntegrationService.getState().getPaymentMethodOrThrow(n),{applicationId:a,locationId:s}=o||{};if(!a)throw new co;yield this._squareV2PaymentProcessor.initialize({applicationId:a,locationId:s,testMode:r}),yield this._squareV2PaymentProcessor.initializeCard(i)})}execute({payment:e}){return Dp(this,void 0,void 0,function*(){if(!e)throw new fo(["payment"]);const{methodId:t,paymentData:n}=e,{shouldSaveInstrument:i,shouldSetAsDefaultInstrument:r}=Ad(n)?n:{shouldSaveInstrument:!1,shouldSetAsDefaultInstrument:!1};yield this._paymentIntegrationService.submitOrder();const o=n&&Cd(n)?yield this._getVaultedInstrumentPayload(t,n):yield this._getCardPayload(t,i);yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},e),{paymentData:{formattedPayload:Object.assign(Object.assign({},o),{vault_payment_instrument:i||!1,set_as_default_stored_instrument:r||!1})}}))})}finalize(){return Promise.reject(new Id)}deinitialize(){return this._squareV2PaymentProcessor.deinitialize()}shouldVerify(){const{features:e}=this._paymentIntegrationService.getState().getStoreConfigOrThrow().checkoutSettings;return e["PROJECT-3828.add_3ds_support_on_squarev2"]}_getCardPayload(e,t){return Dp(this,void 0,void 0,function*(){const{getPaymentMethodOrThrow:n}=this._paymentIntegrationService.getState(),{initializationData:i}=n(e),r=yield this._squareV2PaymentProcessor.tokenize();if(i&&"isSquareV2ApiV2Enabled"in i?!i.isSquareV2ApiV2Enabled:!this.shouldVerify())return{credit_card_token:{token:r}};let o={nonce:r,token:yield this._squareV2PaymentProcessor.verifyBuyer(r,Ap.CHARGE)};if(t){const e=yield this._squareV2PaymentProcessor.tokenize();o=Object.assign(Object.assign({},o),{store_card_nonce:e,store_card_token:yield this._squareV2PaymentProcessor.verifyBuyer(e,Ap.STORE)})}return{credit_card_token:{token:JSON.stringify(o)}}})}_getVaultedInstrumentPayload(e,t){return Dp(this,void 0,void 0,function*(){const{getPaymentMethodOrThrow:n}=this._paymentIntegrationService.getState(),{initializationData:i}=n(e),{instrumentId:r}=t,o=(i&&"isSquareV2ApiV2Enabled"in i?i.isSquareV2ApiV2Enabled:this.shouldVerify())?yield this._squareV2PaymentProcessor.verifyBuyer(yield this._getSquareCardIdOrThrow(e,r),Ap.CHARGE):void 0;return{bigpay_token:Object.assign({token:r},o&&{three_d_secure:{token:o}})}})}_getSquareCardIdOrThrow(e,t){return Dp(this,void 0,void 0,function*(){const n=yield this._paymentIntegrationService.loadPaymentMethod(e,{params:{method:e,bigpayToken:t}}),{initializationData:i}=n.getPaymentMethodOrThrow(e),{cardId:r}=i||{};if(!r)throw new fo(["cardId"]);return r})}}var zp;!function(e){e.LIVE="https://web.squarecdn.com/v1/square.js",e.SANDBOX="https://sandbox.web.squarecdn.com/v1/square.js"}(zp||(zp={}));class Np{constructor(e){this._scriptLoader=e}load(e=!1){return t=this,n=void 0,r=function*(){return yield this._scriptLoader.loadScript(e?zp.SANDBOX:zp.LIVE),function(e){if(!function(e){return"Square"in e}(e))throw new Oi}(window),window.Square},new((i=void 0)||(i=Promise))(function(e,o){function a(e){try{d(r.next(e))}catch(e){o(e)}}function s(e){try{d(r.throw(e))}catch(e){o(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((r=r.apply(t,n||[])).next())});var t,n,i,r}}const xp=Rt(e=>new Mp(e,new Tp(new Np(a()),e)),[{id:"squarev2"}]);function Fp(e){return null!==e&&"object"==typeof e&&"cardNumberElementOptions"in e&&"cardCvcElementOptions"in e&&"cardExpiryElementOptions"in e&&void 0!==e.cardNumberElementOptions&&void 0!==e.cardCvcElementOptions&&void 0!==e.cardExpiryElementOptions}var Rp,Lp,Bp,jp;!function(e){e.Solid="solid",e.Default="default"}(Rp||(Rp={})),function(e){e.Alipay="alipay",e.CardCvc="cardCvc",e.CardExpiry="cardExpiry",e.CardNumber="cardNumber",e.CreditCard="card",e.IDEAL="idealBank",e.Sepa="iban"}(Lp||(Lp={})),function(e){e.Alipay="alipay",e.CreditCard="card",e.IDEAL="ideal",e.Sepa="sepa_debit"}(Bp||(Bp={})),function(e){e.AuthFailure="auth_failure"}(jp||(jp={}));class Up extends li{constructor(e){super(e===jp.AuthFailure?"User did not authenticate":"There was an error while processing your payment. Please try again or contact us."),this.type="stripev3_error",this.subtype=e}}var qp=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};const Vp=[Lp.Alipay,Lp.IDEAL];class Gp{constructor(e,t){this.paymentIntegrationService=e,this.scriptLoader=t}initialize(e){return qp(this,void 0,void 0,function*(){const{stripev3:t,methodId:n,gatewayId:i}=e;if(!i)throw new ki('Unable to initialize payment because "gatewayId" argument is not provided.');this.initializeOptions=t,this.isDeinitialize=!1;const r=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(n),{initializationData:{stripePublishableKey:o,stripeConnectedAccount:a,useIndividualCardFields:s,allowRedisplayForStoredInstruments:d}}=r;this._allowRedisplayForStoredInstruments=d;const c=this.getInitializeOptions().form;this.useIndividualCardFields=s,this.stripeV3Client=yield this.loadStripeJs(o,a),this.isCreditCard(n)&&this.shouldShowTSVHostedForm(n,i)&&c?this.hostedForm=yield this.mountCardVerificationFields(c):this.stripeElement=yield this.mountCardFields(n)})}execute(e,t){var n,i;return qp(this,void 0,void 0,function*(){const{payment:r}=e,o=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);let a,s;if(!r||!r.paymentData)throw new fo(["payment.paymentData"]);const{paymentData:d,gatewayId:c,methodId:l}=r,{shouldSaveInstrument:u,shouldSetAsDefaultInstrument:h}=Ad(d)?d:{shouldSaveInstrument:!1,shouldSetAsDefaultInstrument:!1},p=P(Vp,l),{isStoreCreditApplied:m}=this.paymentIntegrationService.getState().getCheckoutOrThrow();m&&(yield this.paymentIntegrationService.applyStoreCredit(m));try{p&&(yield this.paymentIntegrationService.submitOrder(o,t)),c&&(yield this.paymentIntegrationService.loadPaymentMethod(c,{params:{method:l}}));const e=this.paymentIntegrationService.getState();if(Cd(d)){yield this.paymentIntegrationService.submitOrder(o,t);const{instrumentId:n}=d,i=e.getPaymentMethodOrThrow(r.methodId).clientToken;if(!i)throw new pi(ui.MissingPaymentMethod);return yield this.executeWithVaulted(r,n,h,i)}const m=e.getPaymentMethodOrThrow(l),y=yield this.confirmStripePayment(m),{clientToken:g,method:v}=m,{id:f}=null!==(i=null!==(n=y.paymentIntent)&&void 0!==n?n:y.paymentMethod)&&void 0!==i?i:{id:""};s=y.error,a={credit_card_token:{token:f},vault_payment_instrument:u,confirm:!1,set_as_default_stored_instrument:h},v===Lp.CreditCard&&(a.client_token=g),p||(yield this.paymentIntegrationService.submitOrder(o,t));const S=this.buildPaymentPayload(l,a,h);yield this.paymentIntegrationService.submitPayment(S)}catch(e){yield this.processAdditionalAction(this.handleEmptyPaymentIntentError(e,s),l,u,h)}})}finalize(){return Promise.reject(new Id)}deinitialize(){return this.hostedForm&&this.hostedForm.detach(),this.isDeinitialize=!0,this.unmountElement(),Promise.resolve()}buildPaymentPayload(e,t,n){return{methodId:e,paymentData:n?{formattedPayload:Object.assign(Object.assign({},t),{set_as_default_stored_instrument:n})}:{formattedPayload:t}}}isCancellationError(e){var t,n;return e&&-1!==(null===(n=null===(t=e.payment_intent.last_payment_error)||void 0===t?void 0:t.message)||void 0===n?void 0:n.indexOf("canceled"))}isAuthError(e){return"payment_intent_authentication_failure"===(null==e?void 0:e.code)}isCreditCard(e){return e===Bp.CreditCard}isHostedFieldAvailable(){var e;const t=this.getInitializeOptions(),n=H(null===(e=t.form)||void 0===e?void 0:e.fields,E);return!E(n)}isHostedPaymentFormEnabled(e,t){const{getPaymentMethodOrThrow:n}=this.paymentIntegrationService.getState(),i=n(e,t);return Boolean(i.config.isHostedFormEnabled)}confirmStripePayment(e){return qp(this,void 0,void 0,function*(){const{clientToken:t,method:n,returnUrl:i}=e;if(!t)throw new pi(ui.MissingPaymentMethod);switch(n){case Lp.Alipay:return this.getStripeJs().confirmAlipayPayment(t,{return_url:i},{handleActions:!1});case Lp.IDEAL:{const e=this.mapStripePaymentData(Bp.IDEAL,i);return this.getStripeJs().confirmIdealPayment(t,e,{handleActions:!1})}case Lp.Sepa:{const e=this.mapStripePaymentData(Bp.Sepa);return this.getStripeJs().confirmSepaDebitPayment(t,e)}default:{const e=this.useIndividualCardFields?this.getStripeCardElements()[0]:this.getStripeElement(),t=this.mapStripeBillingDetails(this.paymentIntegrationService.getState().getBillingAddress(),this.paymentIntegrationService.getState().getCustomer()),n=this._allowRedisplayForStoredInstruments;return this.getStripeJs().createPaymentMethod(Object.assign({type:Bp.CreditCard,card:e,billing_details:t},n?{allow_redisplay:"always"}:{}))}}})}executeWithVaulted(e,t,n,i){var r;return qp(this,void 0,void 0,function*(){const o={bigpay_token:{token:t},confirm:!0,client_token:i,set_as_default_stored_instrument:n};if(this.isHostedPaymentFormEnabled(e.methodId,e.gatewayId)&&this.hostedForm){const t=this.hostedForm;return e.paymentData&&Cd(e.paymentData)&&(e.paymentData=Object.assign(Object.assign({},e.paymentData),{instrumentId:JSON.stringify({token:(null===(r=e.paymentData)||void 0===r?void 0:r.instrumentId)||"",client_token:i})})),yield t.validate(),yield t.submit(e),this.paymentIntegrationService.loadCurrentOrder()}const a=this.buildPaymentPayload(e.methodId,o,n);return this.paymentIntegrationService.submitPayment(a)})}getInitializeOptions(){if(!this.initializeOptions)throw new gi(hi.PaymentNotInitialized);return this.initializeOptions}getStripeCardElements(){if(!this.stripeCardElements)throw new gi(hi.PaymentNotInitialized);return this.stripeCardElements}getStripeElement(){if(!this.stripeElement)throw new gi(hi.PaymentNotInitialized);return this.stripeElement}getStripeJs(){if(!this.stripeV3Client)throw new gi(hi.PaymentNotInitialized);return this.stripeV3Client}handleEmptyPaymentIntentError(e,t){return wa(e)&&Z(e.body.errors,{code:"required_field"})&&t?new Error(t.message):e}loadStripeJs(e,t){return qp(this,void 0,void 0,function*(){return this.stripeV3Client?Promise.resolve(this.stripeV3Client):this.scriptLoader.load(e,t,this.paymentIntegrationService.getState().getLocale())})}mapStripeAddress(e){if(e){const{city:t,countryCode:n,address1:i,address2:r,postalCode:o,stateOrProvinceCode:a}=e;return{city:t,country:n,line1:i,line2:r,postal_code:o,state:a}}return{line1:""}}mapStripeBillingDetails(e,t){const{firstName:n,lastName:i}=e||t||{firstName:"Guest",lastName:""},r=`${n} ${i}`.trim(),{options:o}=this.getInitializeOptions();if(this.useIndividualCardFields&&Fp(o)){const{zipCodeElementOptions:t}=o;if(t){const n=document.getElementById(t.containerId)?document.getElementById(t.containerId).value:"";n&&e&&(e=Object.assign(Object.assign({},e),{postalCode:n}))}}const a={address:this.mapStripeAddress(e)};if(t&&t.addresses[0]&&function(e){return"object"==typeof e&&null!==e&&"id"in e&&void 0!==e.id}(t.addresses[0])){const e=t.addresses[0],{email:n}=t,{phone:i}=e;return i?Object.assign(Object.assign({},a),{email:n,name:r,phone:i}):Object.assign(Object.assign({},a),{email:n,name:r})}if(e){const{email:t,phone:n}=e;return n?Object.assign(Object.assign({},a),{email:t,name:r,phone:n}):Object.assign(Object.assign({},a),{email:t,name:r})}return Object.assign(Object.assign({},a),{name:r})}mapStripePaymentData(e,t){const n=this.paymentIntegrationService.getState().getCustomer(),i=this.paymentIntegrationService.getState().getBillingAddress(),r={payment_method:{[e]:this.getStripeElement(),billing_details:this.mapStripeBillingDetails(i,n)}};return e===Bp.IDEAL?Object.assign(Object.assign({},r),{return_url:t}):r}mountCardFields(e){const{options:t,containerId:n}=this.getInitializeOptions();let i;return new Promise((r,o)=>{switch(this.stripeElements||(this.stripeElements=this.getStripeJs().elements()),e){case Lp.CreditCard:if(this.useIndividualCardFields&&Fp(t)){const{cardNumberElementOptions:e,cardExpiryElementOptions:n,cardCvcElementOptions:r}=t,a=this.stripeElements.getElement(Lp.CardNumber)||this.stripeElements.create(Lp.CardNumber,e),s=this.stripeElements.getElement(Lp.CardExpiry)||this.stripeElements.create(Lp.CardExpiry,n),d=this.stripeElements.getElement(Lp.CardCvc)||this.stripeElements.create(Lp.CardCvc,r);this.stripeCardElements=[a,s,d],i=this.stripeCardElements[0];try{a.mount(`#${e.containerId}`),s.mount(`#${n.containerId}`),d.mount(`#${r.containerId}`)}catch(e){this.isDeinitialize||o(new ki("Unable to mount Stripe component without valid container ID."))}}else{i=this.stripeElements.getElement(e)||this.stripeElements.create(e,t);try{i.mount(`#${n}`)}catch(e){this.isDeinitialize||o(new ki("Unable to mount Stripe component without valid container ID."))}}break;case Lp.IDEAL:case Lp.Sepa:i=this.stripeElements.getElement(e)||this.stripeElements.create(e,t);try{i.mount(`#${n}`)}catch(e){this.isDeinitialize||o(new ki("Unable to mount Stripe component without valid container ID."))}case Lp.Alipay:}r(i)})}mountCardVerificationFields(e){return qp(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState().getStoreConfig();if(!t)throw new pi(ui.MissingCheckoutConfig);const n=t.paymentSettings.bigpayBaseUrl,i=this.paymentIntegrationService.createHostedForm(n,e);return yield i.attach(),i})}processAdditionalAction(e,t,n=!1,i=!1){return qp(this,void 0,void 0,function*(){if(!wa(e))throw e;const r=Z(e.body.errors,{code:"additional_action_required"}),o=Z(e.body.errors,{code:"three_d_secure_required"});if(r){const t=e.body.additional_action_required;if(t&&"redirect_to_url"===t.type)return new Promise(()=>{t.data.redirect_url&&window.location.replace(t.data.redirect_url)})}if(o){const r=e.body.three_ds_result.token,o=!1;let a,s=!1;try{a=yield this.getStripeJs().confirmCardPayment(r)}catch(e){s=!0}if(null==a?void 0:a.error){if(this.isCancellationError(a.error))throw new nr;if(this.isAuthError(a.error))throw new Up(jp.AuthFailure);throw new Error(a.error.message)}const d={credit_card_token:{token:this.getPaymentToken(null==a?void 0:a.paymentIntent,r,s)},vault_payment_instrument:n,confirm:o},c=this.buildPaymentPayload(t,d,i);try{return yield this.paymentIntegrationService.submitPayment(c)}catch(e){throw this.handleEmptyPaymentIntentError(e,null==a?void 0:a.error)}}throw e})}getPaymentToken(e,t,n){return!e||n?t:e.id}shouldShowTSVHostedForm(e,t){return this.isHostedFieldAvailable()&&this.isHostedPaymentFormEnabled(e,t)}unmountElement(){this.stripeElement&&(this.stripeElement.unmount(),this.stripeElement=void 0)}}class Hp{constructor(e,t=window){this.scriptLoader=e,this.stripeWindow=t}load(e,t,n){return this.scriptLoader.loadScript("https://js.stripe.com/v3/").then(()=>{if(!this.stripeWindow.Stripe)throw new Oi;return this.stripeWindow.Stripe(e,{stripeAccount:t,locale:n,betas:["payment_intent_beta_3","alipay_pm_beta_1"],apiVersion:"2020-03-02;alipay_beta=v1"})})}}const $p=Rt(e=>new Gp(e,new Hp(a())),[{gateway:"stripev3"}]),Wp={ar:["ar"],bg:["bg"],cs:["cs"],da:["da"],de:["de"],el:["el"],en:["en","en-GB"],es:["es","es-419"],et:["et"],fi:["fi"],fil:["fil"],fr:["fr","fr-CA"],he:["he"],hr:["hr"],hu:["hu"],id:["id"],it:["it"],ja:["ja"],ko:["ko"],lt:["lt"],lv:["lv"],ms:["ms"],mt:["mt"],nb:["nb"],nl:["nl"],pl:["pl"],pt:["pt","pt-BR"],ro:["ro"],ru:["ru"],sk:["sk"],sl:["sl"],sv:["sv"],th:["th"],tr:["tr"],vi:["vi"],zh:["zh","zh-HK","zh-TW"]};function Yp(e){const[t,n]=e.replace(/_/g,"-").toLowerCase().split("-"),i=Wp[t];if(!i)return"auto";const r=n?`${t}-${n.toUpperCase()}`:t;return i.indexOf(r)>-1?r:i[0]}var Kp=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Jp{constructor(e,t,n){this.paymentIntegrationService=e,this.scriptLoader=t,this.stripeIntegrationService=n}initialize(e){return Kp(this,void 0,void 0,function*(){const{stripeupe:t,methodId:n,gatewayId:i}=e;if(!(null==t?void 0:t.containerId))throw new gi(hi.PaymentNotInitialized);if(!i)throw new ki('Unable to initialize payment because "gatewayId" argument is not provided.');return this._loadStripeElement(t,i,n).catch(e=>{var n;return null===(n=t.onError)||void 0===n?void 0:n.call(t,e)}),this.stripeIntegrationService.initCheckoutEventsSubscription(i,n,t,this._stripeElements),Promise.resolve()})}execute(e,t){return Kp(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n||!n.paymentData)throw new fo(["payment.paymentData"]);if(!this._stripeUPEClient)throw new gi(hi.PaymentNotInitialized);const{paymentData:r,methodId:o,gatewayId:a}=n,{shouldSaveInstrument:s=!1,shouldSetAsDefaultInstrument:d=!1}=Ad(r)?r:{},c=this.paymentIntegrationService.getState(),{isStoreCreditApplied:l}=c.getCheckoutOrThrow(),u=c.getPaymentProviderCustomerOrThrow(),h=(Xs(u)?u:{}).stripeLinkAuthenticationState;if(l&&(yield this.paymentIntegrationService.applyStoreCredit(l)),a){yield this.stripeIntegrationService.updateStripePaymentIntent(a,o);const{email:e}=c.getCustomerOrThrow();if(void 0!==h&&!e){const e=c.getBillingAddressOrThrow();yield this.paymentIntegrationService.updateBillingAddress(e)}}if(yield this.paymentIntegrationService.submitOrder(i,t),Cd(r)){const{instrumentId:e}=r;return void(yield this._executeWithVaulted(n.methodId,e,d))}yield this._executeWithStripeConfirmation(n.methodId,!h&&s,d)})}finalize(){return Promise.reject(new Id)}deinitialize(){var e,t;return null===(t=null===(e=this._stripeElements)||void 0===e?void 0:e.getElement(Ks.PAYMENT))||void 0===t||t.unmount(),this.stripeIntegrationService.deinitialize(),this._stripeElements=void 0,this._stripeUPEClient=void 0,Promise.resolve()}_executeWithStripeConfirmation(e,t,n){return Kp(this,void 0,void 0,function*(){const i=this.paymentIntegrationService.getState(),{clientToken:r}=i.getPaymentMethodOrThrow(e),o=this._getPaymentPayload(e,r||"",t,n);try{yield this.paymentIntegrationService.submitPayment(o)}catch(i){yield this._processAdditionalActionWithStripeConfirmation(i,e,t,n)}})}_executeWithVaulted(e,t,n){var i;return Kp(this,void 0,void 0,function*(){const r=this.paymentIntegrationService.getState(),o=r.getPaymentMethodOrThrow(e),a=null===(i=r.getCart())||void 0===i?void 0:i.id;try{const i={methodId:e,paymentData:{formattedPayload:{cart_id:a,bigpay_token:{token:t},confirm:!1,client_token:o.clientToken,set_as_default_stored_instrument:n}}};return yield this.paymentIntegrationService.submitPayment(i)}catch(t){return this._processVaultedAdditionalAction(t,e,n)}})}_loadStripeElement(e,t,n){return Kp(this,void 0,void 0,function*(){const{containerId:i,style:r,render:o,initStripeElementUpdateTrigger:a}=e,s=yield this.paymentIntegrationService.loadPaymentMethod(t,{params:{method:n}}),d=s.getPaymentMethodOrThrow(n),{checkoutSettings:c}=s.getStoreConfigOrThrow();if(!qs(d))throw new pi(ui.MissingPaymentMethod);const{clientToken:l,initializationData:u}=d,{shopperLanguage:h,allowRedisplayForStoredInstruments:p=!1}=u;if(this._allowRedisplayForStoredInstruments=p,!l)throw new pi(ui.MissingPaymentMethod);let m;if(this._stripeUPEClient=yield this._loadStripeJs(u),this._isStripeElementUpdateEnabled=!!c.features["PI-1679.trigger_update_stripe_payment_element"]&&"function"==typeof a,r){const e=r;m={variables:this.stripeIntegrationService.mapAppearanceVariables(r),rules:{".Input":this.stripeIntegrationService.mapInputAppearanceRules(e)}}}this._stripeElements=yield this.scriptLoader.getElements(this._stripeUPEClient,{clientSecret:l,locale:Yp(h),appearance:m});const{getBillingAddress:y,getShippingAddress:g}=s,{postalCode:v}=g()||y()||{},f=this._stripeElements.getElement(Ks.PAYMENT)||this._stripeElements.create(Ks.PAYMENT,Object.assign({fields:{billingDetails:{email:Ys.NEVER,address:{country:Ys.NEVER,city:Ys.NEVER,postalCode:v?Ys.NEVER:Ys.AUTO}}},wallets:{applePay:Ys.NEVER,googlePay:Ys.NEVER}},this._getStripeElementTerms()));this.stripeIntegrationService.mountElement(f,i),f.on(Zs.READY,()=>{o()}),f.on(Zs.CHANGE,e=>{(null==e?void 0:e.value)&&"type"in e.value&&this._updateStripeLinkStateByElementType(e.value.type)}),this._isStripeElementUpdateEnabled&&(null==a||a(this._updateStripeElement.bind(this)))})}_processAdditionalActionWithStripeConfirmation(e,t,n=!1,i=!1){return Kp(this,void 0,void 0,function*(){if(!wa(e)||!this.stripeIntegrationService.isAdditionalActionError(e.body.errors))throw e;if(!this._stripeUPEClient||!this._stripeElements)throw new gi(hi.PaymentNotInitialized);const{data:r}=e.body.additional_action_required,{token:o}=r,{paymentIntent:a}=yield this._confirmStripePaymentOrThrow(t,r),s=this._getPaymentPayload(t,(null==a?void 0:a.id)||o,n,i);try{yield this.paymentIntegrationService.submitPayment(s)}catch(e){this.stripeIntegrationService.throwPaymentConfirmationProceedMessage()}})}_confirmStripePaymentOrThrow(e,t){var n,i;return Kp(this,void 0,void 0,function*(){const{token:r,redirect_url:o}=t,a=this.stripeIntegrationService.mapStripePaymentData(this._stripeElements,o,!!this._allowRedisplayForStoredInstruments);let s;try{const t=(yield this.stripeIntegrationService.isPaymentCompleted(e,this._stripeUPEClient))?yield null===(i=this._stripeUPEClient)||void 0===i?void 0:i.retrievePaymentIntent(r||""):yield null===(n=this._stripeUPEClient)||void 0===n?void 0:n.confirmPayment(a);if(s=null==t?void 0:t.error,s||!(null==t?void 0:t.paymentIntent))throw new so;return t}catch(e){this.stripeIntegrationService.throwStripeError(s)}})}_processVaultedAdditionalAction(e,t,n=!1){var i;return Kp(this,void 0,void 0,function*(){if(!t||!wa(e)||!Z(e.body.errors,{code:"three_d_secure_required"}))throw e;if(!this._stripeUPEClient||!this._stripeElements)throw new gi(hi.PaymentNotInitialized);const r=e.body.three_ds_result.token;let o,a=!1;try{o=yield this._stripeUPEClient.confirmCardPayment(r)}catch(e){try{o=yield this._stripeUPEClient.retrievePaymentIntent(r)}catch(e){a=!0}}if((null==o?void 0:o.error)&&this.stripeIntegrationService.throwStripeError(o.error),!(null==o?void 0:o.paymentIntent)&&!a)throw new hr;const s=this._getPaymentPayload(t,a?r:null===(i=null==o?void 0:o.paymentIntent)||void 0===i?void 0:i.id,!1,n);return this.paymentIntegrationService.submitPayment(s)})}_loadStripeJs(e){return Kp(this,void 0,void 0,function*(){return this._stripeUPEClient?this._stripeUPEClient:this.scriptLoader.getStripeClient(e,Vs,Gs)})}_getPaymentPayload(e,t,n=!1,i=!1){var r;return{methodId:e,paymentData:{formattedPayload:{cart_id:(null===(r=this.paymentIntegrationService.getState().getCart())||void 0===r?void 0:r.id)||"",credit_card_token:{token:t},confirm:!1,vault_payment_instrument:n,set_as_default_stored_instrument:i}}}}_updateStripeElement({shouldShowTerms:e}){var t;const n=null===(t=this._stripeElements)||void 0===t?void 0:t.getElement(Ks.PAYMENT);null==n||n.update(Object.assign({},this._getStripeElementTerms(e)))}_getStripeElementTerms(e){let t=Ys.AUTO;return this._isStripeElementUpdateEnabled&&(t=e?Ys.AUTO:Ys.NEVER),{terms:{card:t}}}_updateStripeLinkStateByElementType(e){const t=this.paymentIntegrationService.getState().getPaymentProviderCustomerOrThrow(),n=e===Ws.Link;!Xs(t)&&n&&this.paymentIntegrationService.updatePaymentProviderCustomer({stripeLinkAuthenticationState:n})}}const Zp=Rt(e=>{const t=new Us(a());return new Jp(e,t,new id(e,t))},[{gateway:"stripeupe"},{gateway:"stripeupe",id:"klarna"}]);var Qp=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Xp{constructor(e,t,n){this.paymentIntegrationService=e,this.scriptLoader=t,this.stripeIntegrationService=n}initialize(e){var t;return Qp(this,void 0,void 0,function*(){const{stripeocs:n,methodId:i,gatewayId:r}=e;if(!(null==n?void 0:n.containerId))throw new gi(hi.PaymentNotInitialized);if(!r)throw new ki('Unable to initialize payment because "gatewayId" argument is not provided.');try{yield this._initializeStripeElement(n,r,i)}catch(e){e instanceof Error&&(null===(t=n.onError)||void 0===t||t.call(n,e))}this.stripeIntegrationService.initCheckoutEventsSubscription(r,i,n,this.stripeElements)})}execute(e,t){return Qp(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),{methodId:r,gatewayId:o}=n||{};if(!this.stripeClient)throw new gi(hi.PaymentNotInitialized);if(!o||!r)throw new ki('Unable to initialize payment because "gatewayId" or "methodId" argument is not provided.');const a=this.paymentIntegrationService.getState(),{isStoreCreditApplied:s}=a.getCheckoutOrThrow();s&&(yield this.paymentIntegrationService.applyStoreCredit(s)),yield this.stripeIntegrationService.updateStripePaymentIntent(o,r),yield this.paymentIntegrationService.submitOrder(i,t);const{clientToken:d}=a.getPaymentMethodOrThrow(r),c=this._getPaymentPayload(r,d||"");try{yield this.paymentIntegrationService.submitPayment(c)}catch(e){yield this._processAdditionalAction(e,r)}})}finalize(){return Promise.reject(new Id)}deinitialize(){var e;const t=null===(e=this.stripeElements)||void 0===e?void 0:e.getElement(Ks.PAYMENT);return null==t||t.unmount(),null==t||t.destroy(),this.stripeIntegrationService.deinitialize(),this.stripeElements=void 0,this.stripeClient=void 0,Promise.resolve()}_initializeStripeElement(e,t,n){return Qp(this,void 0,void 0,function*(){let i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(n);if((null==i?void 0:i.clientToken)||(i=(yield this.paymentIntegrationService.loadPaymentMethod(t,{params:{method:n}})).getPaymentMethodOrThrow(n)),!qs(i))throw new pi(ui.MissingPaymentMethod);const{clientToken:r,initializationData:o}=i,{shopperLanguage:a,customerSessionToken:s,enableLink:d}=o;if(!r)throw new pi(ui.MissingPaymentMethod);this.stripeClient=yield this._loadStripeJs(o);const{appearance:c,containerId:l,fonts:u,layout:h,render:p,paymentMethodSelect:m,handleClosePaymentMethod:y,togglePreloader:g}=e;this.stripeElements=yield this.scriptLoader.getElements(this.stripeClient,{clientSecret:r,customerSessionClientSecret:s,locale:Yp(a),appearance:c,fonts:u});const{getBillingAddress:v,getShippingAddress:f}=this.paymentIntegrationService.getState(),S=v(),{postalCode:w}=f()||S||{},_=this.stripeElements.getElement(Ks.PAYMENT)||this.stripeElements.create(Ks.PAYMENT,{fields:{billingDetails:{email:Ys.NEVER,address:{country:Ys.NEVER,city:Ys.NEVER,postalCode:w?Ys.NEVER:Ys.AUTO}}},wallets:{applePay:Ys.NEVER,googlePay:Ys.NEVER,link:d?Ys.AUTO:Ys.NEVER},layout:h,savePaymentMethod:{maxVisiblePaymentMethods:20},defaultValues:{billingDetails:{email:(null==S?void 0:S.email)||""}}});this.stripeIntegrationService.mountElement(_,l),_.on(Zs.LOADER_START,()=>{null==g||g(!1)}),_.on(Zs.READY,()=>{p()}),_.on(Zs.CHANGE,e=>{this._onStripeElementChange(e,t,n,m)}),null==y||y(this._collapseStripeElement.bind(this))})}_loadStripeJs(e){return Qp(this,void 0,void 0,function*(){return this.stripeClient?this.stripeClient:this.scriptLoader.getStripeClient(e)})}_collapseStripeElement(){var e;const t=null===(e=this.stripeElements)||void 0===e?void 0:e.getElement(Ks.PAYMENT);null==t||t.collapse()}_getPaymentPayload(e,t,n){var i;const r=(null===(i=this.paymentIntegrationService.getState().getCart())||void 0===i?void 0:i.id)||"",{card:o,us_bank_account:a}=n||{},s=this._shouldSaveInstrument(o)||this._shouldSaveInstrument(a),d=this._getTokenizedOptions(t,n);return{methodId:e,paymentData:{formattedPayload:Object.assign({cart_id:r,confirm:!1,method:this.selectedMethodId,vault_payment_instrument:s},d)}}}_processAdditionalAction(e,t){return Qp(this,void 0,void 0,function*(){if(!wa(e)||!this.stripeIntegrationService.isAdditionalActionError(e.body.errors))throw e;if(!this.stripeClient||!this.stripeElements)throw new gi(hi.PaymentNotInitialized);const{data:n}=e.body.additional_action_required,{token:i}=n,{paymentIntent:r}=yield this._confirmStripePaymentOrThrow(t,n),{client_secret:o,payment_method_options:a}=r||{},s=this._getPaymentPayload(t,o||i,a);try{return yield this.paymentIntegrationService.submitPayment(s)}catch(e){this.stripeIntegrationService.throwPaymentConfirmationProceedMessage()}})}_confirmStripePaymentOrThrow(e,t){var n,i;return Qp(this,void 0,void 0,function*(){const{token:r,redirect_url:o}=t,a=this.stripeIntegrationService.mapStripePaymentData(this.stripeElements,o);let s;try{const t=(yield this.stripeIntegrationService.isPaymentCompleted(e,this.stripeClient))?yield null===(i=this.stripeClient)||void 0===i?void 0:i.retrievePaymentIntent(r||""):yield null===(n=this.stripeClient)||void 0===n?void 0:n.confirmPayment(a);if(s=null==t?void 0:t.error,s||!(null==t?void 0:t.paymentIntent))throw new so;return t}catch(e){return this.stripeIntegrationService.throwStripeError(s)}})}_onStripeElementChange(e,t,n,i){(e=>"object"==typeof e&&null!==e&&"value"in e&&"collapsed"in e)(e)&&!e.collapsed&&(this.selectedMethodId=e.value.type,null==i||i(`${t}-${n}`))}_shouldSaveInstrument(e){const t=null==e?void 0:e.setup_future_usage;return t===Qs.ON_SESSION||t===Qs.OFF_SESSION}_getTokenizedOptions(e,t){return this._shouldSaveInstrument(null==t?void 0:t.us_bank_account)?{tokenized_ach:{token:e}}:{credit_card_token:{token:e}}}}const em=Rt(e=>{const t=new Us(a());return new Xp(e,t,new id(e,t))},[{gateway:"stripeocs",id:"optimized_checkout"}]);var tm;!function(e){e.CARD_NUMBER="card-number",e.CVV="cvv",e.EXPIRY="expiry"}(tm||(tm={}));var nm=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class im{constructor(e,t,n){this.paymentIntegrationService=e,this.tdOnlineMartScriptLoader=t,this.formPoster=n,this.tdInputs=[{id:"ccNumber",fieldType:tm.CARD_NUMBER},{id:"ccCvv",fieldType:tm.CVV},{id:"ccExpiry",fieldType:tm.EXPIRY}]}initialize(e){return nm(this,void 0,void 0,function*(){const{methodId:t}=e;if(!t)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');this.tdOnlineMartClient=yield this.loadTDOnlineMartJs(),this.mountHostedFields(t)})}execute(e,t){return nm(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);if(!n.methodId)throw new pi(ui.MissingPaymentMethod);const r=yield this.getPaymentPayloadOrThrow(n);yield this.paymentIntegrationService.submitOrder(i,t);try{yield this.paymentIntegrationService.submitPayment(r)}catch(e){yield this.processWithAdditionalAction(e)}})}finalize(){return Promise.reject(new Id)}deinitialize(){return this.tdOnlineMartClient=void 0,this.tdInputs.forEach(({inputElement:e})=>{null==e||e.unmount()}),Promise.resolve()}getPaymentPayloadOrThrow(e){return nm(this,void 0,void 0,function*(){const{methodId:t,paymentData:n}=e,{shouldSaveInstrument:i=!1,shouldSetAsDefaultInstrument:r=!1}=Ad(n)?n:{},o={browser_info:Za(),shouldSaveInstrument:i,shouldSetAsDefaultInstrument:r};if(Ad(n)&&Cd(n)&&n.instrumentId){const e=!!this.paymentIntegrationService.getState().getCartOrThrow().lineItems.digitalItems.length,i=!this.isTrustedVaultingInstrument(n.instrumentId)||e;return{methodId:t,paymentData:Object.assign(Object.assign(Object.assign({},o),{instrumentId:n.instrumentId}),i?{nonce:n.instrumentId}:{})}}let a;try{a=yield this.getTokenOrThrow()}catch(e){this.throwTokenizationError(e)}return{methodId:t,paymentData:Object.assign(Object.assign({},o),{nonce:a})}})}mountHostedFields(e){const t=this.getHostedFieldsOptions(),n=this.getTDOnlineMartClientOrThrow();this.tdInputs.forEach(i=>{const r=`${e}-${i.id}`;document.getElementById(r)&&(i.inputElement=n.create(i.fieldType,t),i.inputElement.mount(`#${r}`))})}loadTDOnlineMartJs(){return nm(this,void 0,void 0,function*(){return this.tdOnlineMartClient?this.tdOnlineMartClient:this.tdOnlineMartScriptLoader.load()})}getTokenOrThrow(){return new Promise((e,t)=>{this.getTDOnlineMartClientOrThrow().createToken(n=>{const{error:i,token:r}=n;if(i||!r)return t(i);e(r)})})}getTDOnlineMartClientOrThrow(){if(!this.tdOnlineMartClient)throw new gi(hi.PaymentNotInitialized);return this.tdOnlineMartClient}processWithAdditionalAction(e){return nm(this,void 0,void 0,function*(){if(!function(e){return wa(e)&&(t=e.body,D(t)&&"object"==typeof t&&"errors"in t&&"three_ds_result"in t&&O(t.errors)&&Z(t.errors,{code:"three_d_secure_required"}));var t}(e))throw e;const{three_ds_result:t}=e.body,{acs_url:n,payer_auth_request:i,merchant_data:r}=t||{};if(!n||!i||!r)throw new fo(["formUrl","threeDSSessionData","creq"]);return new Promise(e=>{this.formPoster.postForm(n,{threeDSSessionData:i,creq:r},e,"_top")})})}throwTokenizationError(e){if(!function(e){return"object"==typeof e&&null!==e&&"field"in e&&"type"in e&&"message"in e}(e))throw new pi(ui.MissingPaymentToken);throw new Error(e.message)}getHostedFieldsOptions(){return{style:{error:{color:"#d14343"}},classes:{error:"form-input--error"}}}isTrustedVaultingInstrument(e){const t=this.paymentIntegrationService.getState().getInstruments(),n=null==t?void 0:t.find(t=>Qd(t)&&t.bigpayToken===e);return!(Qd(n)&&!n.trustedShippingAddress)}}class rm{constructor(e,t=window){this.scriptLoader=e,this.tdOnlineMartWindow=t}load(){return e=this,t=void 0,i=function*(){if(this.tdOnlineMartWindow.customcheckout||(yield this.scriptLoader.loadScript("https://libs.na.bambora.com/customcheckout/1/customcheckout.js")),!this.tdOnlineMartWindow.customcheckout)throw new Oi;return this.tdOnlineMartWindow.customcheckout()},new((n=void 0)||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())});var e,t,n,i}}const om=Rt(e=>new im(e,new rm(a()),Ee()),[{id:"tdonlinemart"}]);var am=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};const sm="Payment cannot continue";let dm;class cm extends Ul{initialize(e){const t=Object.create(null,{initialize:{get:()=>super.initialize}});return am(this,void 0,void 0,function*(){if(this._initializeOptions=e&&e.worldpay,!this._initializeOptions)throw new gi(hi.PaymentNotInitialized);return t.initialize.call(this,e)})}execute(e,t){const n=Object.create(null,{execute:{get:()=>super.execute}});return am(this,void 0,void 0,function*(){const{payment:i}=e;if(dm=this._submitAdditionalAction(),!i)throw new fo(["payment"]);try{return yield n.execute.call(this,e,t)}catch(e){return this._processAdditionalAction(e,i)}})}_processAdditionalAction(e,t){return am(this,void 0,void 0,function*(){return wa(e)&&Z(e.body.errors,{code:"additional_action_required"})?new Promise((n,i)=>{const r=e=>am(this,void 0,void 0,function*(){if("string"!=typeof e.data||!this._isValidJsonWithSessionId(e.data))return i(new Error(sm));window.removeEventListener("message",r),o.remove();const a=JSON.parse(e.data),s=q({},t,{paymentData:{threeDSecure:{token:a.SessionId}}});try{n(yield dm(s))}catch(e){if(!wa(e)||!Z(e.body.errors,{code:"three_d_secure_required"}))return i(e);if(!this._initializeOptions)return i(new gi(hi.PaymentNotInitialized));const{onLoad:t}=this._initializeOptions,n=this._createIframe(e.body.three_ds_result);try{t(n,()=>i(new Error("Payment was cancelled")))}catch(e){i(new Error(sm))}}});let o;window.addEventListener("message",r);try{o=this._createHiddenIframe(e.body)}catch(e){throw window.removeEventListener("message",r),new Error(sm)}}):Promise.reject(e)})}_createHiddenIframe(e){const t=document.createElement("iframe");if(document.body.appendChild(t),!t.contentWindow)throw new Error;t.id="worldpay_hosted_hidden_payment_page",t.height="0px",t.width="0px";const n=document.createElement("form"),i="collectionForm";n.id=i,n.name="devicedata",n.method="post";const r=e.additional_action_required.data.redirect_url;n.action=r;const o=document.createElement("input");o.name="Bin",o.type="hidden",o.value=e.provider_data.source_id,n.appendChild(o);const a=document.createElement("input");a.name="JWT",a.type="hidden",a.value=e.provider_data.data,n.appendChild(a);const s=document.createElement("button");s.type="submit",s.id="btnsubmit",n.appendChild(s),navigator.userAgent.match("Firefox")?t.srcdoc=n.outerHTML:t.contentWindow.document.body.appendChild(n);const d=document.createElement("script");return d.innerHTML=`\n document.getElementById('${i}').submit();\n `,t.contentWindow.document.body.appendChild(d),t}_createIframe(e){const t=document.createElement("form");t.id="challengeForm",t.method="POST",t.action=e.acs_url;const n=document.createElement("input");n.name="JWT",n.type="hidden",n.value=e.payer_auth_request,t.appendChild(n);const i=document.createElement("input");i.name="MD",i.type="hidden",i.value=`merchantSessionId=${e.merchant_data}`,t.appendChild(i);const r=document.createElement("script");r.type="text/javascript",r.innerHTML="window.onload = function() { document.getElementById('challengeForm').submit(); }";const o=document.createElement("iframe");return o.name="worldpay_hosted_payment_page",o.height="400",o.width="100%",o.srcdoc=`${t.outerHTML} ${r.outerHTML}`,o}_submitAdditionalAction(){if(this._shouldRenderHostedForm){if(!this._hostedForm)throw new gi(hi.PaymentNotInitialized);const e=this._hostedForm;return t=>am(this,void 0,void 0,function*(){yield e.submit(t)})}return e=>am(this,void 0,void 0,function*(){yield this._paymentIntegrationService.submitPayment(e)})}_isValidJsonWithSessionId(e){try{return!!JSON.parse(e).SessionId}catch(e){return!1}}}const lm=Rt(e=>new cm(e),[{id:"worldpayaccess"}]);class um{constructor(e){this._requestSender=e}saveExternalId(e,t){return n=this,i=void 0,o=function*(){const n=`/api/storefront/payment/${e}/save-external-id`,i={headers:Object.assign({Accept:br.JsonV1,"X-API-INTERNAL":Cr},Pr),body:{externalId:t,provider:e}};yield this._requestSender.post(n,i)},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}}class hm{constructor(e,t){this.paymentIntegrationService=e,this.storefrontPaymentRequestSender=t}initialize(){return Promise.resolve()}execute(e,t){return n=this,i=void 0,o=function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);const{methodId:r}=n,{getPaymentMethodOrThrow:o}=yield this.paymentIntegrationService.loadPaymentMethod(r,t),{clientToken:a,initializationData:s}=o(r),d=null==s?void 0:s.redirectUrl;if(!a||!d)throw new pi(ui.MissingPaymentMethod);const{id:c}=JSON.parse(a);if(!c)throw new pi(ui.MissingPaymentToken);const{isStoreCreditApplied:l}=this.paymentIntegrationService.getState().getCheckoutOrThrow();yield this.paymentIntegrationService.applyStoreCredit(l),yield this.paymentIntegrationService.initializePayment(r,{useStoreCredit:l}),yield this.paymentIntegrationService.submitOrder(i,t),yield this._prepareForReferredRegistration(r,c);try{yield this.paymentIntegrationService.submitPayment({methodId:r,paymentData:{nonce:c}})}catch(e){if(wa(e)&&"additional_action_required"===e.body.status)return new Promise(()=>window.location.replace(d));throw e}},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}finalize(){return Promise.reject(new Id)}deinitialize(){return Promise.resolve()}_prepareForReferredRegistration(e,t){return this.storefrontPaymentRequestSender.saveExternalId(e,t)}}const pm=Rt(e=>{const{getHost:t}=e.getState(),i=n({host:t()}),r=new um(i);return new hm(e,r)},[{id:"zip"},{id:"quadpay"}]);var mm,ym;!function(e){e.LoadCountriesRequested="LOAD_COUNTRIES_REQUESTED",e.LoadCountriesSucceeded="LOAD_COUNTRIES_SUCCEEDED",e.LoadCountriesFailed="LOAD_COUNTRIES_FAILED"}(mm||(mm={}));class gm{constructor(e){this._countryRequestSender=e}loadCountries(e){return oe.create(t=>{t.next(l(mm.LoadCountriesRequested)),this._countryRequestSender.loadCountries(e).then(e=>{t.next(l(mm.LoadCountriesSucceeded,e.body.data)),t.complete()}).catch(e=>{t.error(h(mm.LoadCountriesFailed,e))})})}}class vm{constructor(e,t){this._requestSender=e,this._config=t}loadCountries({timeout:e}={}){const t=Object.assign({"Accept-Language":this._config.locale},rt);return this._requestSender.get("/internalapi/v1/store/countries",{headers:t,timeout:e})}}class fm extends Ze{constructor(e){super(e||"Your checkout could not be processed because some details have changed. Please review your order and try again."),this.name="CartConsistencyError",this.type="cart_consistency"}}class Sm extends Ze{constructor(e){super(e||"The tax provider is unavailable."),this.name="OrderTaxProviderUnavailableError",this.type="tax_provider_unavailable"}}class wm extends Ze{constructor(e){super(e),this.name="MissingShippingMethodError",this.type="missing_shipping_method"}}class _m extends Ze{constructor(e){super(e),this.name="InvalidShippingAddressError",this.type="invalid_shipping_address"}}class Cm{constructor(e){this._requestSender=e}loadOrder(e,{timeout:t}={}){const n=`/api/storefront/orders/${e}`,i=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.get(n,{params:{include:Mt(["payments","lineItems.physicalItems.socialMedia","lineItems.physicalItems.options","lineItems.physicalItems.categories","lineItems.digitalItems.socialMedia","lineItems.digitalItems.options","lineItems.digitalItems.categories"])},headers:i,timeout:t})}submitOrder(e,{headers:t,timeout:n}={}){return this._requestSender.post("/internalapi/v1/checkout/order",{body:e,headers:H(Object.assign({"X-Checkout-Variant":t&&t.checkoutVariant},rt),T),timeout:n}).catch(e=>{if("tax_provider_unavailable"===e.body.type)throw new Sm;if("cart_has_changed"===e.body.type)throw new fm;if("missing_shipping_method"===e.body.type)throw new wm(e.body.detail);if("invalid_shipping_address"===e.body.type)throw new _m(e.body.detail);if("empty_cart"===e.body.type)throw new nt;throw e})}finalizeOrder(e,{timeout:t}={}){const n=`/internalapi/v1/checkout/order/${e}`;return this._requestSender.post(n,{timeout:t,headers:rt})}}class Im extends Ze{constructor(){super("You haven't complete our spam check. Please try again."),this.name="SpamProtectionNotCompletedError",this.type="spam_protection_not_completed"}}!function(e){e.LoadOrderRequested="LOAD_ORDER_REQUESTED",e.LoadOrderSucceeded="LOAD_ORDER_SUCCEEDED",e.LoadOrderFailed="LOAD_ORDER_FAILED",e.LoadOrderPaymentsRequested="LOAD_ORDER_PAYMENTS_REQUESTED",e.LoadOrderPaymentsSucceeded="LOAD_ORDER_PAYMENTS_SUCCEEDED",e.LoadOrderPaymentsFailed="LOAD_ORDER_PAYMENTS_FAILED",e.SubmitOrderRequested="SUBMIT_ORDER_REQUESTED",e.SubmitOrderSucceeded="SUBMIT_ORDER_SUCCEEDED",e.SubmitOrderFailed="SUBMIT_ORDER_FAILED",e.FinalizeOrderRequested="FINALIZE_ORDER_REQUESTED",e.FinalizeOrderSucceeded="FINALIZE_ORDER_SUCCEEDED",e.FinalizeOrderFailed="FINALIZE_ORDER_FAILED"}(ym||(ym={}));var bm,Pm;class Om{constructor(e,t){this._orderRequestSender=e,this._checkoutValidator=t}loadOrder(e,t){return new oe(n=>{n.next(l(ym.LoadOrderRequested)),this._orderRequestSender.loadOrder(e,t).then(e=>{n.next(l(ym.LoadOrderSucceeded,e.body)),n.complete()}).catch(e=>{n.error(h(ym.LoadOrderFailed,e))})})}loadOrderPayments(e,t){return new oe(n=>{n.next(l(ym.LoadOrderPaymentsRequested)),this._orderRequestSender.loadOrder(e,t).then(e=>{n.next(l(ym.LoadOrderPaymentsSucceeded,e.body)),n.complete()}).catch(e=>{n.error(h(ym.LoadOrderPaymentsFailed,e))})})}loadCurrentOrder(e){return t=>de(()=>{const n=this._getCurrentOrderId(t.getState());if(!n)throw new Qe(We.MissingOrderId);return this.loadOrder(n,e)})}submitOrder(e,t){return n=>se(me(l(ym.SubmitOrderRequested)),de(()=>{const i=n.getState(),r=i.config.getExternalSource(),o=i.config.getVariantIdentificationToken(),a=i.checkout.getCheckout();if(!a)throw new Qe(We.MissingCheckout);if(a.shouldExecuteSpamCheck)throw new Im;return le(this._checkoutValidator.validate(a,t).then(()=>this._orderRequestSender.submitOrder(this._mapToOrderRequestBody(null!=e?e:{},a.id,a.customerMessage,r),Object.assign(Object.assign({},t),{headers:{checkoutVariant:o}})))).pipe(Ie(e=>se(this.loadOrder(e.body.data.order.orderId,t),me(l(ym.SubmitOrderSucceeded,e.body.data,Object.assign(Object.assign({},e.body.meta),{token:e.headers.token}))))))}).pipe(ge(e=>Je(ym.SubmitOrderFailed,e))))}finalizeOrder(e,t){return se(me(l(ym.FinalizeOrderRequested)),le(this._orderRequestSender.finalizeOrder(e,t)).pipe(Ie(n=>se(this.loadOrder(e,t),me(l(ym.FinalizeOrderSucceeded,n.body.data)))))).pipe(ge(e=>Je(ym.FinalizeOrderFailed,e)))}_getCurrentOrderId(e){const t=e.order.getOrder(),n=e.checkout.getCheckout();return t&&t.orderId||n&&n.orderId}_mapToOrderRequestBody(e,t,n,i){const{payment:r}=e,o=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);return r?Object.assign(Object.assign({},o),{cartId:t,customerMessage:n,externalSource:i,payment:{paymentData:r.paymentData,name:r.methodId,gateway:r.gatewayId}}):Object.assign(Object.assign({},o),{cartId:t,customerMessage:n,externalSource:i})}}function Em(e){const t=Te();return e.subscribe(e=>{const n=e.config.getStoreConfig();n&&t.setHost(n.paymentSettings.bigpayBaseUrl)},e=>e.config.getStoreConfig()),t}class Am extends Ze{constructor(){super("The current order does not need to be finalized at this stage."),this.name="OrderFinalizationNotRequiredError",this.type="order_finalization_not_required"}}!function(e){e.ExecuteFailed="PAYMENT_STRATEGY_EXECUTE_FAILED",e.ExecuteRequested="PAYMENT_STRATEGY_EXECUTE_REQUESTED",e.ExecuteSucceeded="PAYMENT_STRATEGY_EXECUTE_SUCCEEDED",e.FinalizeFailed="PAYMENT_STRATEGY_FINALIZE_FAILED",e.FinalizeRequested="PAYMENT_STRATEGY_FINALIZE_REQUESTED",e.FinalizeSucceeded="PAYMENT_STRATEGY_FINALIZE_SUCCEEDED",e.InitializeFailed="PAYMENT_STRATEGY_INITIALIZE_FAILED",e.InitializeRequested="PAYMENT_STRATEGY_INITIALIZE_REQUESTED",e.InitializeSucceeded="PAYMENT_STRATEGY_INITIALIZE_SUCCEEDED",e.DeinitializeFailed="PAYMENT_STRATEGY_DEINITIALIZE_FAILED",e.DeinitializeRequested="PAYMENT_STRATEGY_DEINITIALIZE_REQUESTED",e.DeinitializeSucceeded="PAYMENT_STRATEGY_DEINITIALIZE_SUCCEEDED",e.WidgetInteractionStarted="PAYMENT_STRATEGY_WIDGET_INTERACTION_STARTED",e.WidgetInteractionFinished="PAYMENT_STRATEGY_WIDGET_INTERACTION_FINISHED",e.WidgetInteractionFailed="PAYMENT_STRATEGY_WIDGET_INTERACTION_FAILED"}(bm||(bm={})),function(e){e.ADYENV2="adyenv2",e.ADYENV2_GOOGLEPAY="googlepayadyenv2",e.ADYENV3="adyenv3",e.ADYENV3_GOOGLEPAY="googlepayadyenv3",e.AFFIRM="affirm",e.AFTERPAY="afterpay",e.AUTHORIZENET_GOOGLE_PAY="googlepayauthorizenet",e.AMAZONPAY="amazonpay",e.APPLEPAY="applepay",e.BARCLAYS="barclays",e.BLUESNAPV2="bluesnapv2",e.BOLT="bolt",e.CBA_MPGS="cba_mpgs",e.CHECKOUTCOM="checkoutcom",e.CHECKOUTCOM_APM="checkoutcomapm",e.CHECKOUTCOM_FAWRY="checkoutcomfawry",e.CHECKOUTCOM_SEPA="checkoutcomsepa",e.CHECKOUTCOM_IDEAL="checkoutcomideal",e.CREDIT_CARD="creditcard",e.CHECKOUTCOM_GOOGLE_PAY="googlepaycheckoutcom",e.CLEARPAY="clearpay",e.CONVERGE="converge",e.CYBERSOURCE="cybersource",e.CYBERSOURCEV2="cybersourcev2",e.BNZ="bnz",e.BNZ_GOOGLEPAY="googlepaybnz",e.CYBERSOURCEV2_GOOGLE_PAY="googlepaycybersourcev2",e.HUMM="humm",e.KLARNA="klarna",e.KLARNAV2="klarnav2",e.LAYBUY="laybuy",e.LEGACY="legacy",e.MOLLIE="mollie",e.MONERIS="moneris",e.NO_PAYMENT_DATA_REQUIRED="nopaymentdatarequired",e.OFFLINE="offline",e.OFFSITE="offsite",e.ORBITAL_GOOGLE_PAY="googlepayorbital",e.PAYPAL_EXPRESS="paypalexpress",e.PAYPAL_EXPRESS_CREDIT="paypalexpresscredit",e.PAYPAL_COMMERCE="paypalcommerce",e.PAYPAL_COMMERCE_CREDIT="paypalcommercecredit",e.PAYPAL_COMMERCE_CREDIT_CARD="paypalcommercecreditcards",e.PAYPAL_COMMERCE_ALTERNATIVE_METHODS="paypalcommercealternativemethods",e.PAYPAL_COMMERCE_VENMO="paypalcommercevenmo",e.PPSDK="PAYMENT_TYPE_SDK",e.QUADPAY="quadpay",e.SAGE_PAY="sagepay",e.SQUARE="squarev2",e.STRIPEV3="stripev3",e.STRIPE_UPE="stripeupe",e.STRIPE_UPE_GOOGLE_PAY="googlepaystripeupe",e.BRAINTREE="braintree",e.BRAINTREE_PAYPAL="braintreepaypal",e.BRAINTREE_VENMO="braintreevenmo",e.BRAINTREE_PAYPAL_CREDIT="braintreepaypalcredit",e.BRAINTREE_VISA_CHECKOUT="braintreevisacheckout",e.BRAINTREE_GOOGLE_PAY="googlepaybraintree",e.WE_PAY="wepay",e.WORLDPAYACCESS="worldpayaccess",e.WORLDPAYACCESS_GOOGLE_PAY="googlepayworldpayaccess",e.MASTERPASS="masterpass",e.STRIPE_GOOGLE_PAY="googlepaystripe",e.SEZZLE="sezzle",e.ZIP="zip"}(Pm||(Pm={}));const km=Pm;class Tm{widgetInteraction(e,t){const n={methodId:t&&t.methodId};return se(me(l(bm.WidgetInteractionStarted,void 0,n)),de(()=>e().then(()=>l(bm.WidgetInteractionFinished,void 0,n)))).pipe(ge(e=>Je(bm.WidgetInteractionFailed,e,n)))}}class Dm{constructor(e,t,n,i,r,o){this._strategyRegistry=e,this._strategyRegistryV2=t,this._orderActionCreator=n,this._spamProtectionActionCreator=i,this._paymentIntegrationService=r,this._errorLogger=o,this._paymentStrategyWidgetActionCreator=new Tm}execute(e,t){const{payment:n={},useStoreCredit:i}=e,r={methodId:n.methodId};return o=>{const{checkout:a}=o.getState(),{shouldExecuteSpamCheck:s}=a.getCheckoutOrThrow();return se(s?this._spamProtectionActionCreator.verifyCheckoutSpamProtection()(o):ce(),me(l(bm.ExecuteRequested,void 0,r)),de(()=>{const a=o.getState();let s;if(a.payment.isPaymentDataRequired(i)){const e=a.paymentMethods.getPaymentMethod(n.methodId,n.gatewayId);if(!e)throw new Qe(We.MissingPaymentMethod);s=this._getStrategy(e)}else s=this._strategyRegistryV2.get({id:km.NO_PAYMENT_DATA_REQUIRED});return s.execute(e,Object.assign(Object.assign({},t),{methodId:n.methodId,gatewayId:n.gatewayId})).then(()=>l(bm.ExecuteSucceeded,void 0,r))})).pipe(ge(e=>Je(bm.ExecuteFailed,e,r)))}}finalize(e){return t=>se(me(l(bm.FinalizeRequested)),this._loadOrderPaymentsIfNeeded(t,e),de(()=>{return n=this,i=void 0,o=function*(){const n=t.getState(),{providerId:i="",gatewayId:r=""}=n.payment.getPaymentId()||{},o=n.paymentMethods.getPaymentMethod(i,r);if(!o)throw new Am;const a=this._getStrategy(o);return yield a.finalize(Object.assign(Object.assign({},e),{methodId:o.id,gatewayId:o.gateway})),l(bm.FinalizeSucceeded,void 0,{methodId:o.id})},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o})).pipe(ge(e=>{const n=t.getState().payment.getPaymentId();return Je(bm.FinalizeFailed,e,{methodId:n&&n.providerId})}))}initialize(e){const{methodId:t,gatewayId:n}=e;return i=>de(()=>{var r,o;const a=i.getState(),s=a.paymentMethods.getPaymentMethod(t,n);if(!s)throw new Qe(We.MissingPaymentMethod);if(t&&a.paymentStrategies.isInitialized({methodId:t,gatewayId:n}))return ce();const{features:d}=a.config.getStoreConfigOrThrow().checkoutSettings,c=Wt(d,"CHECKOUT-9450.lazy_load_payment_strategies",!1);let u=!1;try{this._strategyRegistry.getByMethod(s)}catch(e){u=!0}if(c&&u){const t={id:s.id,gateway:s.gateway,type:s.type};Kt(this._strategyRegistryV2,null!==(r=e.integrations)&&void 0!==r?r:[],t,this._errorLogger),Yt(this._strategyRegistryV2,null!==(o=e.integrations)&&void 0!==o?o:[],this._paymentIntegrationService)}const h=this._getStrategy(s).initialize(Object.assign(Object.assign({},e),{methodId:t,gatewayId:n}));return se(me(l(bm.InitializeRequested,void 0,{methodId:t,gatewayId:n})),h.then(()=>l(bm.InitializeSucceeded,void 0,{methodId:t,gatewayId:n})))}).pipe(ge(e=>Je(bm.InitializeFailed,e,{methodId:t,gatewayId:n})))}deinitialize(e){const{methodId:t,gatewayId:n}=e;return i=>de(()=>{const r=i.getState(),o=r.paymentMethods.getPaymentMethod(t,n);if(!o)throw new Qe(We.MissingPaymentMethod);if(t&&!r.paymentStrategies.isInitialized({methodId:t,gatewayId:n}))return ce();const a=this._getStrategy(o).deinitialize(Object.assign(Object.assign({},e),{methodId:t,gatewayId:n}));return se(me(l(bm.DeinitializeRequested,void 0,{methodId:t,gatewayId:n})),a.then(()=>l(bm.DeinitializeSucceeded,void 0,{methodId:t,gatewayId:n})))}).pipe(ge(e=>Je(bm.DeinitializeFailed,e,{methodId:t,gatewayId:n})))}widgetInteraction(e,t){return this._paymentStrategyWidgetActionCreator.widgetInteraction(e,t)}_getStrategy(e){let t;try{t=this._strategyRegistry.getByMethod(e)}catch(n){t=this._strategyRegistryV2.get({id:e.id,gateway:e.gateway,type:e.type})}return t}_loadOrderPaymentsIfNeeded(e,t){const n=e.getState().checkout.getCheckout();return n&&n.orderId?this._orderActionCreator.loadOrderPayments(n.orderId,t):ce()}}class Mm{isEqual(e,t){return A(this._normalize(e),this._normalize(t))}_normalize(e){return{cartAmount:e.cartAmount,currency:e.currency,id:e.id,lineItems:{digitalItems:e.lineItems.digitalItems.slice().sort((e,t)=>`${e.productId}${e.variantId}`.localeCompare(`${t.productId}${t.variantId}`)).map(e=>({extendedSalePrice:e.extendedSalePrice,productId:e.productId,quantity:e.quantity,variantId:e.variantId})),giftCertificates:e.lineItems.giftCertificates.slice().sort((e,t)=>`${e.id}`.localeCompare(`${t.id}`)).map(e=>({amount:e.amount,recipient:e.recipient})),physicalItems:e.lineItems.physicalItems.slice().sort((e,t)=>`${e.productId}${e.variantId}`.localeCompare(`${t.productId}${t.variantId}`)).map(e=>({extendedSalePrice:e.extendedSalePrice,productId:e.productId,quantity:e.quantity,variantId:e.variantId,giftWrapping:e.giftWrapping}))}}}}class zm extends Ze{constructor(e,t){super("An update to your shopping cart has been detected and your available shipping costs have been updated."),this.name="CartChangedError",this.type="cart_changed",this.data={previous:e,updated:t}}}class Nm{constructor(e){this._checkoutRequestSender=e}validate(e,t){if(!e)throw new Qe(We.MissingCheckout);return this._checkoutRequestSender.loadCheckout(e.id,t).then(t=>{const n=new Mm;if(!(e.outstandingBalance===t.body.outstandingBalance&&this._compareCoupons(e.coupons,t.body.coupons)&&this._compareGiftCertificates(e.giftCertificates,t.body.giftCertificates)&&n.isEqual(e.cart,t.body.cart)))throw new zm(this._getComparableCheckout(e),this._getComparableCheckout(t.body))})}_compareCoupons(e,t){return A(B(e,"code"),B(t,"code"))}_compareGiftCertificates(e,t){return A(B(e,"code"),B(t,"code"))}_getComparableCheckout(e){const{cart:t,coupons:n,giftCertificates:i,outstandingBalance:r}=e;return{cart:{cartAmount:t.cartAmount,currency:t.currency,lineItems:t.lineItems},coupons:n,giftCertificates:i,outstandingBalance:r}}}class xm{constructor(e){this._namespace=e}getItem(e){const t=ke.getItem(this.withNamespace(e));if(null===t)return null;try{return JSON.parse(t)}catch(t){return this.removeItem(this.withNamespace(e)),null}}getItemOnce(e){const t=this.getItem(e);return this.removeItem(e),t}setItem(e,t){return ke.setItem(this.withNamespace(e),JSON.stringify(t))}removeItem(e){return ke.removeItem(this.withNamespace(e))}withNamespace(e){return`${this._namespace}.${e}`}}class Fm extends Ze{constructor(){super("Please complete our human verification challenge and try again."),this.name="CardingProtectionChallengeNotCompletedError",this.type="carding_protection_challenge_not_completed"}}class Rm extends Ze{constructor(){super("We were not able to verify that you are not a robot. Please try again."),this.name="CardingProtectionFailedError",this.type="carding_protection_failed"}}var Lm,Bm,jm=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Um{constructor(e){this._googleRecaptcha=e}handle(e,t){return jm(this,void 0,void 0,function*(){return"string"==typeof e?this.handleWithRecaptchaSitekey(e,t):this.handleWithPaymentHumanVerificationRequestError(e)})}handleWithPaymentHumanVerificationRequestError(e){return jm(this,void 0,void 0,function*(){if(!this._isPaymentHumanVerificationRequest(e))throw e;return yield this._initialize(e.body.additional_action_required.data.key),this._performRecaptcha()})}handleWithRecaptchaSitekey(e,t){return jm(this,void 0,void 0,function*(){if("recaptcha_v2"!==e)throw Error("Human verification method is not supported.");if(!t)throw Error("Recaptcha site key is missing.");return yield this._initialize(t),this._performRecaptcha()})}_performRecaptcha(){return this._googleRecaptcha.execute().pipe(be(1)).pipe(Ie(({error:e,token:t})=>jm(this,void 0,void 0,function*(){if(e instanceof mn)throw new Fm;if(e||!t)throw new Rm;return{type:"recaptcha_v2_verification",data:{human_verification_token:t}}}))).toPromise()}_initialize(e){const t="cardingProtectionContainer";let n=document.getElementById(t);return n&&n.parentNode&&n.parentNode.removeChild(n),n=document.createElement("div"),n.setAttribute("id",t),document.body.appendChild(n),this._googleRecaptcha.load(t,e)}_isPaymentHumanVerificationRequest(e){const{additional_action_required:t,status:n}=e.body||{};return"additional_action_required"===n&&t&&"recaptcha_v2_verification"===t.type}}function qm(e,t){const{body:n}=e,{errors:i=[]}=n;return new _t(e,{message:Vm(i)||t,errors:i})}function Vm(e){if(Array.isArray(e))return e.reduce((e,t)=>t&&t.message?[...e,t.message]:e,[]).join(" ")}class Gm extends Ze{constructor(e){super(e||"Unable to proceed due to invalid configuration provided for the hosted payment form."),this.name="InvalidHostedFormConfigError",this.type="invalid_hosted_form_config"}}class Hm extends Ze{constructor(e){super(e||"Unable to proceed due to an unknown error with the hosted payment form."),this.name="InvalidHostedFormError",this.type="invalid_hosted_form"}}class $m extends Ze{constructor(e){super(["Unable to proceed due to invalid user input values",..._(ie(e),e=>B(e,({message:e})=>e))].join(". ")),this.errors=e,this.name="InvalidHostedFormValueError",this.type="invalid_hosted_form_value"}}!function(e){e.AttachRequested="HOSTED_FIELD:ATTACH_REQUESTED",e.SubmitRequested="HOSTED_FIELD:SUBMITTED_REQUESTED",e.ValidateRequested="HOSTED_FIELD:VALIDATE_REQUESTED",e.StoredCardRequested="HOSTED_FIELD:STORED_CARD_REQUESTED"}(Lm||(Lm={})),function(e){e.AttachSucceeded="HOSTED_INPUT:ATTACH_SUCCEEDED",e.AttachFailed="HOSTED_INPUT:ATTACH_FAILED",e.BinChanged="HOSTED_INPUT:BIN_CHANGED",e.Blurred="HOSTED_INPUT:BLURRED",e.Changed="HOSTED_INPUT:CHANGED",e.CardTypeChanged="HOSTED_INPUT:CARD_TYPE_CHANGED",e.Entered="HOSTED_INPUT:ENTERED",e.Focused="HOSTED_INPUT:FOCUSED",e.SubmitSucceeded="HOSTED_INPUT:SUBMIT_SUCCEEDED",e.SubmitFailed="HOSTED_INPUT:SUBMIT_FAILED",e.Validated="HOSTED_INPUT:VALIDATED",e.StoredCardSucceeded="HOSTED_INPUT:STORED_CARD_SUCCEEDED",e.StoredCardFailed="HOSTED_INPUT:STORED_CARD_FAILED"}(Bm||(Bm={}));var Wm=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Ym{constructor(e,t,n,i,r,o,a,s,d,c){this._type=e,this._containerId=t,this._placeholder=n,this._accessibilityLabel=i,this._styles=r,this._eventPoster=o,this._eventListener=a,this._detachmentObserver=s,this._checkoutId=d,this._cardInstrument=c,this._iframe=document.createElement("iframe");const l=this._checkoutId?`/checkout/payment/hosted-field?version=1.817.0&checkoutId=${this._checkoutId}`:"/checkout/payment/hosted-field?version=1.817.0";this._iframe.src=l,this._iframe.style.border="none",this._iframe.style.height="100%",this._iframe.style.overflow="hidden",this._iframe.style.width="100%"}getType(){return this._type}attach(){return Wm(this,void 0,void 0,function*(){const e=document.getElementById(this._containerId);if(!e)throw new Gm("Unable to proceed because the provided container ID is not valid.");e.appendChild(this._iframe),this._eventListener.listen();const t=ue(this._iframe,"load").pipe(Ie(({target:e})=>Wm(this,void 0,void 0,function*(){const t=e&&e.contentWindow;if(!t)throw new Error("The content window of the iframe cannot be accessed.");this._eventPoster.setTarget(t),yield this._eventPoster.post({type:Lm.AttachRequested,payload:{accessibilityLabel:this._accessibilityLabel,cardInstrument:this._cardInstrument,fontUrls:this._getFontUrls(),placeholder:this._placeholder,styles:this._styles,origin:document.location.origin,type:this._type}},{successType:Bm.AttachSucceeded,errorType:Bm.AttachFailed})})),be(1)).toPromise();yield this._detachmentObserver.ensurePresence([this._iframe],t)})}detach(){this._iframe.parentElement&&(this._iframe.parentElement.removeChild(this._iframe),this._eventListener.stopListen())}submitForm(e,t){return Wm(this,void 0,void 0,function*(){try{const n=this._eventPoster.post({type:Lm.SubmitRequested,payload:{fields:e,data:t}},{successType:Bm.SubmitSucceeded,errorType:Bm.SubmitFailed});return yield this._detachmentObserver.ensurePresence([this._iframe],n)}catch(e){if(this._isSubmitErrorEvent(e)){if("hosted_form_error"===e.payload.error.code)throw new Hm(e.payload.error.message);if(e.payload.response)throw qm(e.payload.response);throw new Error(e.payload.error.message)}throw e}})}submitStoredCardForm(e,t){return Wm(this,void 0,void 0,function*(){const n=this._eventPoster.post({type:Lm.StoredCardRequested,payload:{fields:e,data:t}},{successType:Bm.StoredCardSucceeded,errorType:Bm.StoredCardFailed});return this._detachmentObserver.ensurePresence([this._iframe],n)})}validateForm(){return Wm(this,void 0,void 0,function*(){const e=this._eventPoster.post({type:Lm.ValidateRequested},{successType:Bm.Validated}),{payload:t}=yield this._detachmentObserver.ensurePresence([this._iframe],e);if(!t.isValid)throw new $m(t.errors)})}_getFontUrls(){const e="fonts.googleapis.com",t=document.querySelectorAll(`link[href*='${e}'][rel='stylesheet']`);return Array.prototype.slice.call(t).filter(t=>Mn(t.href).hostname===e).filter(e=>ie(this._styles).map(e=>e&&e.fontFamily).filter(e=>"string"==typeof e).some(t=>t.split(/,\s/).some(t=>-1!==e.href.indexOf(t.replace(" ","+"))))).map(e=>e.href)}_isSubmitErrorEvent(e){return e.type===Bm.SubmitFailed}}var Km,Jm=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Zm{constructor(e,t,n,i,r){this._fields=e,this._eventListener=t,this._payloadTransformer=n,this._eventCallbacks=i,this._paymentHumanVerificationHandler=r,this._handleEnter=({payload:e})=>Jm(this,void 0,void 0,function*(){try{yield this.validate()}catch(e){if(e instanceof Error&&"InvalidHostedFormValueError"!==e.name)throw e}const{onEnter:t=V}=this._eventCallbacks;t(e)});const{onBlur:o=V,onCardTypeChange:a=V,onFocus:s=V,onValidate:d=V}=this._eventCallbacks;this._eventListener.addListener(Bm.Blurred,({payload:e})=>o(e)),this._eventListener.addListener(Bm.CardTypeChanged,({payload:e})=>a(e)),this._eventListener.addListener(Bm.Focused,({payload:e})=>s(e)),this._eventListener.addListener(Bm.Validated,({payload:e})=>d(e)),this._eventListener.addListener(Bm.Entered,this._handleEnter),this._eventListener.addListener(Bm.CardTypeChanged,({payload:e})=>this._cardType=e.cardType),this._eventListener.addListener(Bm.BinChanged,({payload:e})=>this._bin=e.bin)}getBin(){return this._bin}getCardType(){return this._cardType}attach(){return Jm(this,void 0,void 0,function*(){this._eventListener.listen();const e=this._getFirstField(),t=re(this._fields,e);yield e.attach(),yield Promise.all(t.map(e=>e.attach()))})}detach(){this._eventListener.stopListen(),this._fields.forEach(e=>{e.detach()})}submit(e,t){return Jm(this,void 0,void 0,function*(){try{return yield this._getFirstField().submitForm(this._fields.map(e=>e.getType()),this._payloadTransformer.transform(e,t))}catch(t){const n=yield this._paymentHumanVerificationHandler.handle(t);return yield this._getFirstField().submitForm(this._fields.map(e=>e.getType()),this._payloadTransformer.transform(e,n))}})}submitStoredCard(e){return Jm(this,void 0,void 0,function*(){return this._getFirstField().submitStoredCardForm(e.fields,e.data)})}validate(){return Jm(this,void 0,void 0,function*(){return this._getFirstField().validateForm()})}_getFirstField(){const e=this._fields[0];if(!e)throw new Gm("Unable to proceed because the payment form has no field defined.");return e}}function Qm(e){return Boolean(e.instrumentId)}class Xm{constructor(e){this._store=e}transform(e,t){const n=this._store.getState(),i=n.checkout.getCheckout(),r=n.config.getConfig(),o=n.instruments.getInstrumentsMeta(),a=n.order.getOrder(),s=n.order.getOrderMeta(),d=G(e.paymentData,"ccExpiry","ccName","ccNumber","ccCvv"),c=n.paymentMethods.getPaymentMethod(e.methodId,e.gatewayId),l=n.paymentMethods.getPaymentMethodsMeta(),u=o&&d&&Qm(d)?`${n.payment.getPaymentToken()}, ${o.vaultAccessToken}`:n.payment.getPaymentToken();if(!u)throw new Qe(We.MissingPaymentToken);return{additionalAction:t,authToken:u,checkout:i,config:r,order:a,orderMeta:s,payment:d,paymentMethod:c,paymentMethodMeta:l}}}class ey{constructor(e){this._store=e}create(e,t,n){const i=Object.keys(t.fields).reduce((i,r)=>{const o=t.fields[r];return o?[...i,new Ym(r,o.containerId,o.placeholder||"",o.accessibilityLabel||"",t.styles||{},new Rn(e),new ai(e),new qn(new Sn),n,"instrumentId"in o?this._getCardInstrument(o.instrumentId):void 0)]:i},[]);return new Zm(i,new ai(e),new Xm(this._store),W(t,"onBlur","onEnter","onFocus","onCardTypeChange","onValidate"),new Um(bn(o())))}_getCardInstrument(e){const{instruments:{getCardInstrument:t}}=this._store.getState(),n=t(e);if(!n)throw new Qe(We.MissingPaymentInstrument);return n}}!function(e){e.SubmitPaymentRequested="SUBMIT_PAYMENT_REQUESTED",e.SubmitPaymentSucceeded="SUBMIT_PAYMENT_SUCCEEDED",e.SubmitPaymentFailed="SUBMIT_PAYMENT_FAILED",e.InitializeOffsitePaymentRequested="INITIALIZE_OFFSITE_PAYMENT_REQUESTED",e.InitializeOffsitePaymentSucceeded="INITIALIZE_OFFSITE_PAYMENT_SUCCEEDED",e.InitializeOffsitePaymentFailed="INITIALIZE_OFFSITE_PAYMENT_FAILED"}(Km||(Km={}));class ty{constructor(e,t,n,i){this._paymentRequestSender=e,this._orderActionCreator=t,this._paymentRequestTransformer=n,this._paymentHumanVerificationHandler=i,this.initializeOffsitePayment=({methodId:e,gatewayId:t,instrumentId:n,target:i,promise:r,shouldSaveInstrument:o,shouldSetAsDefaultInstrument:a})=>s=>{let d;n?d={formattedPayload:{bigpay_token:n}}:o&&(d={formattedPayload:{vault_payment_instrument:o,set_as_default_stored_instrument:a||null}});const c=this._paymentRequestTransformer.transform({gatewayId:t,methodId:e,paymentData:d},s.getState());return se(me(l(Km.InitializeOffsitePaymentRequested)),Promise.race([this._paymentRequestSender.initializeOffsitePayment(c,i),r].filter(Boolean)).then(()=>l(Km.InitializeOffsitePaymentSucceeded))).pipe(ge(e=>Je(Km.InitializeOffsitePaymentFailed,e)))}}submitPayment(e){return t=>se(me(l(Km.SubmitPaymentRequested)),de(()=>{return n=this,i=void 0,o=function*(){try{return yield this._paymentRequestSender.submitPayment(this._paymentRequestTransformer.transform(e,t.getState()))}catch(n){const i=yield this._paymentHumanVerificationHandler.handle(n);return yield this._paymentRequestSender.submitPayment(this._paymentRequestTransformer.transform(Object.assign(Object.assign({},e),{additionalAction:i}),t.getState()))}},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}).pipe(Ie(({body:e})=>se(this._orderActionCreator.loadCurrentOrder()(t),me(l(Km.SubmitPaymentSucceeded,e)))))).pipe(ge(e=>Je(Km.SubmitPaymentFailed,e)))}}class ny{constructor(e){this._client=e}submitPayment(e){return new Promise((t,n)=>{this._client.submitPayment(e,(e,i)=>{e?n(this._transformResponse(e)):t(this._transformResponse(i))})})}initializeOffsitePayment(e,t){return new Promise(()=>{this._client.initializeOffsitePayment(e,null,t)})}_transformResponse(e){return{headers:e.headers,body:e.data,status:e.status,statusText:e.statusText}}}function iy(e,t){let n;return function(e){return void 0!==e.id}(e)?n=e.id:t&&t.length&&(n=t[0].id),{id:n,firstName:e.firstName,lastName:e.lastName,company:e.company,addressLine1:e.address1,addressLine2:e.address2,city:e.city,province:e.stateOrProvince,provinceCode:e.stateOrProvinceCode,postCode:e.postalCode,country:e.country,countryCode:e.countryCode,phone:e.phone,customFields:e.customFields}}const ry=["per_item_discount","percentage_discount","per_total_discount","shipping_discount","free_shipping"];function oy(e){return{code:e.code,discount:e.displayName,discountType:ry.indexOf(e.couponType)}}function ay(e){return{code:e.code,discountedAmount:e.used,remainingBalance:e.remaining,giftCertificate:{balance:e.balance,code:e.code,purchaseDate:e.purchaseDate}}}function sy(e){const t=[];return(e||[]).forEach(e=>{(e.banners||[]).forEach(e=>{t.push({placeholders:[],discountType:null,message:"",messageHtml:e.text})})}),t}function dy(e,t,n="id"){return Object.keys(e).reduce((i,r)=>[...i,...e[r].map(e=>"giftCertificates"===r?function(e,t){const n=new dd(t);return{id:e.id,imageUrl:"",name:e.name,amount:e.amount,amountAfterDiscount:e.amount,discount:0,integerAmount:n.toInteger(e.amount),integerAmountAfterDiscount:n.toInteger(e.amount),integerUnitPrice:n.toInteger(e.amount),integerUnitPriceAfterDiscount:n.toInteger(e.amount),integerDiscount:0,quantity:1,sender:e.sender,recipient:e.recipient,type:"ItemGiftCertificateEntity",attributes:[],variantId:null}}(e,t):function(e,t,n,i="id"){const r=new dd(n);return{id:e[i],imageUrl:e.imageUrl,amount:e.extendedListPrice,amountAfterDiscount:e.extendedSalePrice,discount:e.discountAmount,integerAmount:r.toInteger(e.extendedListPrice),integerAmountAfterDiscount:r.toInteger(e.extendedSalePrice),integerDiscount:r.toInteger(e.discountAmount),integerUnitPrice:r.toInteger(e.listPrice),integerUnitPriceAfterDiscount:r.toInteger(e.salePrice),downloadsPageUrl:e.downloadPageUrl,name:e.name,quantity:e.quantity,brand:e.brand,sku:e.sku,categoryNames:e.categoryNames,variantId:e.variantId,productId:e.productId,attributes:(e.options||[]).map(e=>({name:e.name,value:e.value})),addedByPromotion:e.addedByPromotion,type:t}}(e,function(e){switch(e){case"physicalItems":return"ItemPhysicalEntity";case"digitalItems":return"ItemDigitalEntity";case"giftCertificates":return"ItemGiftCertificateEntity";default:return""}}(r),t,n))],[])}function cy(e){const t=e.cart.currency.decimalPlaces,n=new dd(t);return{id:e.cart.id,items:dy(e.cart.lineItems,t),currency:e.cart.currency.code,coupon:{discountedAmount:K(e.cart.coupons,(e,t)=>e+t.discountedAmount,0),coupons:e.cart.coupons.map(oy)},discount:{amount:e.cart.discountAmount,integerAmount:n.toInteger(e.cart.discountAmount)},discountNotifications:sy(e.promotions),giftCertificate:{totalDiscountedAmount:K(e.giftCertificates,(e,t)=>e+t.used,0),appliedGiftCertificates:F(e.giftCertificates.map(ay),"code")},shipping:{amount:e.shippingCostTotal,integerAmount:n.toInteger(e.shippingCostTotal),amountBeforeDiscount:e.shippingCostBeforeDiscount,integerAmountBeforeDiscount:n.toInteger(e.shippingCostBeforeDiscount),required:Z(e.cart.lineItems.physicalItems,e=>e.isShippingRequired)},subtotal:{amount:e.subtotal,integerAmount:n.toInteger(e.subtotal)},storeCredit:{amount:e.customer?e.customer.storeCredit:0},taxSubtotal:{amount:e.taxTotal,integerAmount:n.toInteger(e.taxTotal)},taxes:e.taxes,taxTotal:{amount:e.taxTotal,integerAmount:n.toInteger(e.taxTotal)},handling:{amount:e.handlingCostTotal,integerAmount:n.toInteger(e.handlingCostTotal)},grandTotal:{amount:e.grandTotal,integerAmount:n.toInteger(e.grandTotal)}}}var ly;!function(e){e.APPLEPAY="applepay",e.AMAZON_PAY_V2="amazonpay",e.BRAINTREE_PAYPAL="braintreepaypal",e.BRAINTREE_VENMO="braintreevenmo",e.BRAINTREE_PAYPAL_CREDIT="braintreepaypalcredit",e.GOOGLEPAY_ADYENV2="googlepayadyenv2",e.GOOGLEPAY_ADYENV3="googlepayadyenv3",e.GOOGLEPAY_AUTHORIZENET="googlepayauthorizenet",e.GOOGLEPAY_BNZ="googlepaybnz",e.GOOGLEPAY_BRAINTREE="googlepaybraintree",e.GOOGLEPAY_CHECKOUTCOM="googlepaycheckoutcom",e.GOOGLEPAY_CYBERSOURCEV2="googlepaycybersourcev2",e.GOOGLEPAY_ORBITAL="googlepayorbital",e.GOOGLEPAY_STRIPE="googlepaystripe",e.GOOGLEPAY_STRIPEUPE="googlepaystripeupe",e.GOOGLEPAY_WORLDPAYACCESS="googlepayworldpayaccess",e.MASTERPASS="masterpass",e.PAYPALEXPRESS="paypalexpress"}(ly||(ly={}));const uy=ly;function hy(e,t){const n=e.firstName||t.firstName||"",i=e.lastName||t.lastName||"";return{addresses:(e.addresses||[]).map(e=>iy(e)),customerId:e.id,isGuest:e.isGuest,storeCredit:e.storeCredit,email:e.email||t.email||"",firstName:n,lastName:i,name:e.fullName||[n,i].join(" "),customerGroupName:e.customerGroup&&e.customerGroup.name}}class py{format(e){const[t="",n=""]=e.split(new RegExp("\\s*/\\s*")),i=t.slice(0,2),r=4===n.length?n.slice(-2):n?n.slice(0,2):t.slice(2);return e.length<2?t:e.length>3&&!r?i:`${i} / ${r}`}toObject(e){const[t="",n=""]=e.split(new RegExp("\\s*/\\s*"));return/^\d+$/.test(t)&&/^\d+$/.test(n)?{month:1===t.length?`0${t}`:t.slice(0,2),year:2===n.length?`20${n}`:n.slice(0,4)}:{month:"",year:""}}}class my{format(e){const{card:t}=Me(e);if(!t)return e;const n=j(De(e).map(e=>j(e.lengths))),i=this.unformat(e).slice(0,n);return t.gaps.filter(e=>i.length>e).reduce((e,t,n)=>[e.slice(0,t+n),e.slice(t+n)].join(" "),i)}unformat(e){const{card:t}=Me(e);return t?e.replace(new RegExp(" ","g"),""):e}}function yy(e,t={}){const n=e.currency.decimalPlaces,i=new dd(n);return{id:e.orderId,items:dy(e.lineItems,e.currency.decimalPlaces,"productId"),orderId:e.orderId,currency:e.currency.code,customerCanBeCreated:e.customerCanBeCreated,payment:fy(e.payments,t.payment),subtotal:{amount:e.baseAmount,integerAmount:i.toInteger(e.baseAmount)},coupon:{discountedAmount:K(e.coupons,(e,t)=>e+t.discountedAmount,0),coupons:e.coupons.map(oy)},discount:{amount:e.discountAmount,integerAmount:i.toInteger(e.discountAmount)},token:t.orderToken,callbackUrl:t.callbackUrl,discountNotifications:[],giftCertificate:vy(e.payments),socialData:wy(e),status:e.status,hasDigitalItems:e.hasDigitalItems,isDownloadable:e.isDownloadable,isComplete:e.isComplete,shipping:{amount:e.shippingCostTotal,integerAmount:i.toInteger(e.shippingCostTotal),amountBeforeDiscount:e.shippingCostBeforeDiscount,integerAmountBeforeDiscount:i.toInteger(e.shippingCostBeforeDiscount)},storeCredit:{amount:gy(e.payments)},taxes:e.taxes,taxTotal:{amount:e.taxTotal,integerAmount:i.toInteger(e.taxTotal)},handling:{amount:e.handlingCostTotal,integerAmount:i.toInteger(e.handlingCostTotal)},grandTotal:{amount:e.orderAmount,integerAmount:e.orderAmountAsInteger}}}function gy(e){const t=S(e,{providerId:"storecredit"});return t?t.amount:0}function vy(e){const t=f(e,{providerId:"giftcertificate"});return{totalDiscountedAmount:K(t,(e,t)=>t.amount+e,0),appliedGiftCertificates:F(t.map(e=>({code:e.detail.code,discountedAmount:e.amount,remainingBalance:e.detail.remaining,giftCertificate:{balance:e.amount+e.detail.remaining,code:e.detail.code,purchaseDate:""}})),"code")}}function fy(e,t={}){const n=S(e,Sy);return n?{id:n.providerId,status:(i=n.detail.step,`PAYMENT_STATUS_${i}`),helpText:n.detail.instructions,returnUrl:t.returnUrl}:{};var i}function Sy(e){return"giftcertificate"!==e.providerId&&"storecredit"!==e.providerId}function wy(e){const t={};return[...e.lineItems.physicalItems,...e.lineItems.digitalItems].forEach(e=>{var n;t[e.id]=(n=e,["fb","tw","gp"].reduce((e,t)=>{const i=n.socialMedia&&S(n.socialMedia,e=>e.code===t);return i?(e[t]={name:n.name,description:n.name,image:n.imageUrl,url:i.link,shareText:i.text,sharingLink:i.link,channelName:i.channel,channelCode:i.code},e):e},{}))}),t}function _y(e,t){return{description:e.description,module:e.type,price:e.cost,id:e.id,selected:t,isRecommended:e.isRecommended,imageUrl:e.imageUrl,transitTime:e.transitTime}}class Cy{constructor(){this._cardExpiryFormatter=new py,this._cardNumberFormatter=new my}transform(e,t){const n=t.billingAddress.getBillingAddress(),i=t.checkout.getCheckout(),r=t.customer.getCustomer(),o=t.order.getOrder(),a=t.paymentMethods.getPaymentMethod(e.methodId,e.gatewayId),s=this._mapShippingAddress(t,a),d=t.consignments.getConsignments(),c=t.consignments.getShippingOption(),l=t.config.getStoreConfig(),u=t.config.getContextConfig(),h=t.instruments.getInstrumentsMeta(),p=t.paymentMethods.getPaymentMethodsMeta(),m=t.order.getOrderMeta(),y=r&&n&&hy(r,n),g=h&&e.paymentData&&(Qm(e.paymentData)||function(e){const t=e.formattedPayload;return!!t&&("string"==typeof t.bigpay_token||Boolean(t.bigpay_token&&t.bigpay_token.token))}(e.paymentData))?`${t.payment.getPaymentToken()}, ${h.vaultAccessToken}`:t.payment.getPaymentToken();if(!g)throw new Qe(We.MissingPaymentToken);return{additionalAction:e.additionalAction,authToken:g,customer:y,billingAddress:n&&iy(n),shippingAddress:s&&iy(s,d),shippingOption:c&&_y(c,!0),cart:i&&cy(i),order:o&&yy(o,m),orderMeta:m,payment:e.paymentData,paymentMethod:a&&this._transformPaymentMethod(a),quoteMeta:{request:Object.assign(Object.assign({},p),{geoCountryCode:u&&u.geoCountryCode})},source:"bigcommerce-checkout-js-sdk",store:W(l&&l.storeProfile,["storeHash","storeId","storeLanguage","storeName"])}}transformWithHostedFormData(e,t,n){const{additionalAction:i,authToken:r,checkout:o,config:a,order:s,orderMeta:d,payment:c={},paymentMethod:l,paymentMethodMeta:u}=t,h=o&&o.consignments[0],p=h&&h.shippingAddress,m=h&&h.selectedShippingOption;return{additionalAction:i,authToken:r,paymentMethod:l&&this._transformPaymentMethod(l),customer:s&&s.billingAddress&&o&&hy(o.customer,s.billingAddress),billingAddress:s&&s.billingAddress&&iy(s.billingAddress),shippingAddress:p&&o&&iy(p,o.consignments),shippingOption:m&&_y(m,!0),cart:o&&cy(o),order:s&&yy(s,d),orderMeta:d,payment:this._transformHostedInputValues(e,c,n),quoteMeta:{request:Object.assign(Object.assign({},u),{geoCountryCode:a&&a.context.geoCountryCode})},source:"bigcommerce-checkout-js-sdk",store:a&&W(a.storeConfig.storeProfile,["storeHash","storeId","storeLanguage","storeName"])}}_transformPaymentMethod(e){return"multi-option"!==e.method||e.gateway?e.initializationData&&e.initializationData.gateway?Object.assign(Object.assign({},e),{id:e.initializationData.gateway}):e.id===uy.BRAINTREE_VENMO?Object.assign(Object.assign({},e),{id:uy.BRAINTREE_PAYPAL}):e:Object.assign(Object.assign({},e),{gateway:e.id})}_transformHostedInputValues(e,t,n){return"instrumentId"in t?Object.assign(Object.assign({},t),{ccCvv:e.cardCodeVerification,ccNumber:e.cardNumberVerification&&this._cardNumberFormatter.unformat(e.cardNumberVerification),hostedFormNonce:n}):Object.assign(Object.assign({},t),{ccCvv:e.cardCode,ccExpiry:this._cardExpiryFormatter.toObject(e.cardExpiry||""),ccName:e.cardName||"",ccNumber:this._cardNumberFormatter.unformat(e.cardNumber||""),hostedFormNonce:n})}_mapShippingAddress(e,t){var n,i,r,o;if(t){const a=null===(i=null===(n=t.initializationData)||void 0===n?void 0:n.bopis)||void 0===i?void 0:i.enabled,s=null===(o=null===(r=t.initializationData)||void 0===r?void 0:r.bopis)||void 0===o?void 0:o.requiredAddress,d=e.consignments.getConsignments(),c=null==d?void 0:d.every(e=>e.selectedPickupOption);if(a&&c&&"none"===s)return}return e.shippingAddress.getShippingAddress()}}const Iy=e=>{const{type:t,initializationStrategy:n}=e;return t===km.PPSDK&&"string"==typeof(null==n?void 0:n.type)};class by extends Bt{getByMethod(e){if(!e)return this.get();const t=this._getToken(e),n=[e.gateway,e.id].filter(e=>null!=e).join("-");return this.get(t,n)}_getToken(e){if(Iy(e))return km.PPSDK;if("klarna"===e.gateway)return km.KLARNAV2;const t=e.gateway||e.id;if(this._hasFactoryForMethod(t))return t;if("PAYMENT_TYPE_OFFLINE"===e.type)return km.OFFLINE;throw new Lt(`'${t}' is not registered.`)}_hasFactoryForMethod(e){return this._hasFactory(e)}}const Py="FINALIZE";class Oy extends Lt{constructor(e){let t="Unable to submit payment for the order because the payload is invalid.";e&&(t=`${t} Make sure the following fields are provided correctly: ${e.join(", ")}.`),super(t),this.name="PaymentArgumentInvalidError"}}var Ey=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n};class Ay{constructor(e,t,n,i){this._store=e,this._orderActionCreator=t,this._paymentActionCreator=n,this._hostedFormFactory=i}execute(e,t){var n,i;return this._isHostedPaymentFormEnabled(null===(n=e.payment)||void 0===n?void 0:n.methodId,null===(i=e.payment)||void 0===i?void 0:i.gatewayId)&&this._shouldRenderHostedForm?this._executeWithHostedForm(e,t):this._executeWithoutHostedForm(e,t)}finalize(e){return Promise.reject(new Am)}initialize(e){if(!this._isHostedPaymentFormEnabled(null==e?void 0:e.methodId,null==e?void 0:e.gatewayId)||!this._isHostedFieldAvailable(e))return this._shouldRenderHostedForm=!1,Promise.resolve(this._store.getState());const t=e&&e.creditCard&&e.creditCard.form,{config:n}=this._store.getState(),{paymentSettings:{bigpayBaseUrl:i=""}={}}=n.getStoreConfig()||{};if(!t)throw new Lt;const r=this._hostedFormFactory.create(i,t);return r.attach().then(()=>(this._shouldRenderHostedForm=!0,this._hostedForm=r,this._store.getState()))}deinitialize(e){return this._hostedForm&&this._hostedForm.detach(),Promise.resolve(this._store.getState())}_executeWithoutHostedForm(e,t){const{payment:n}=e,i=Ey(e,["payment"]),r=n&&n.paymentData;if(!n||!r)throw new Oy(["payment.paymentData"]);return this._store.dispatch(this._orderActionCreator.submitOrder(i,t)).then(()=>this._store.dispatch(this._paymentActionCreator.submitPayment(Object.assign(Object.assign({},n),{paymentData:r}))))}_executeWithHostedForm(e,t){const{payment:n}=e,i=Ey(e,["payment"]),r=this._hostedForm;if(!r)throw new wn(gn.PaymentNotInitialized);if(!n||!n.methodId)throw new Oy(["payment.methodId"]);return r.validate().then(()=>this._store.dispatch(this._orderActionCreator.submitOrder(i,t))).then(()=>r.submit(n)).then(()=>this._store.dispatch(this._orderActionCreator.loadCurrentOrder()))}_isHostedPaymentFormEnabled(e,t){if(!e)return!1;const{paymentMethods:{getPaymentMethodOrThrow:n}}=this._store.getState();return!0===n(e,t).config.isHostedFormEnabled}_isHostedFieldAvailable(e){return!ie(e&&e.creditCard&&e.creditCard.form.fields).every(T)}}class ky extends Ay{constructor(e,t,n,i,r){super(e,t,n,i),this._formPoster=r}execute(e,t){return super.execute(e,t).catch(e=>e instanceof _t&&Z(e.body.errors,{code:"three_d_secure_required"})?new Promise(()=>{this._formPoster.postForm(e.body.three_ds_result.acs_url,{PaReq:e.body.three_ds_result.payer_auth_request,TermUrl:e.body.three_ds_result.callback_url,MD:e.body.three_ds_result.merchant_data})}):Promise.reject(e))}finalize(e){const t=this._store.getState(),n=t.order.getOrder();return n&&t.payment.getPaymentStatus()===Py?this._store.dispatch(this._orderActionCreator.finalizeOrder(n.orderId,e)):Promise.reject(new Am)}}class Ty{constructor(e,t,n,i,r){this._store=e,this._orderActionCreator=t,this._paymentActionCreator=n,this._masterpassScriptLoader=i,this._locale=r}initialize(e){const{methodId:t}=e;if(this._paymentMethod=this._store.getState().paymentMethods.getPaymentMethod(t),!this._paymentMethod)throw new Qe(We.MissingPaymentMethod);const n={useMasterpassSrc:this._paymentMethod.initializationData.isMasterpassSrcEnabled,language:Tn(this._locale),testMode:this._paymentMethod.config.testMode,checkoutId:this._paymentMethod.initializationData.checkoutId};return this._masterpassScriptLoader.load(n).then(t=>{if(this._masterpassClient=t,!e.masterpass)throw new Lt('Unable to initialize payment because "options.masterpass" argument is not provided.');const n=e.masterpass.walletButton&&document.getElementById(e.masterpass.walletButton);return n&&(this._walletButton=n,this._walletButton.addEventListener("click",this._handleWalletButtonClick)),this._store.getState()})}deinitialize(){return this._paymentMethod=void 0,this._walletButton&&this._walletButton.removeEventListener("click",this._handleWalletButtonClick),this._walletButton=void 0,this._masterpassClient=void 0,Promise.resolve(this._store.getState())}execute(e,t){const{payment:n}=e,i={useStoreCredit:e.useStoreCredit};if(!n)throw new Lt('Unable to submit payment because "payload.payment" argument is not provided.');if(!this._paymentMethod||!this._paymentMethod.initializationData||!this._paymentMethod.initializationData.gateway)throw new Qe(We.MissingPaymentMethod);const r=this._paymentMethod.initializationData.paymentData;if(!r)throw new Lt('Unable to proceed because "paymentMethod.initializationData.paymentData" argument is not provided.');return this._store.dispatch(this._orderActionCreator.submitOrder(i,t)).then(()=>this._store.dispatch(this._paymentActionCreator.submitPayment(Object.assign(Object.assign({},n),{paymentData:r}))))}finalize(){return Promise.reject(new Am)}_createMasterpassPayload(){const e=this._store.getState(),t=e.checkout.getCheckout(),n=e.config.getStoreConfig();if(!t)throw new Qe(We.MissingCheckout);if(!n)throw new Qe(We.MissingCheckoutConfig);if(!this._paymentMethod||!this._paymentMethod.initializationData)throw new Qe(We.MissingPaymentMethod);return{checkoutId:this._paymentMethod.initializationData.checkoutId,allowedCardTypes:this._paymentMethod.initializationData.allowedCardTypes,amount:t.subtotal.toFixed(2),currency:n.currency.code,cartId:t.cart.id,callbackUrl:An("checkout")}}_handleWalletButtonClick(e){if(e.preventDefault(),!this._masterpassClient)return;const t=this._createMasterpassPayload();this._masterpassClient.checkout(t)}}!function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);o>3&&a&&Object.defineProperty(t,n,a)}([Kn],Ty.prototype,"_handleWalletButtonClick",null);class Dy extends Ze{constructor(e){super(e||"Payment process was cancelled."),this.name="PaymentMethodCancelledError",this.type="payment_cancelled"}}const My="redirecting";class zy{constructor(){this._isRedirecting=this.currentUrlHasRedirectingParam()}isRedirecting(){return this._isRedirecting}setRedirecting(e){e?this.setRedirectingParamOnUrl():this.removeRedirectingParamFromUrl(),this._isRedirecting=e}currentUrlHasRedirectingParam(){return My in this.getCurrentUrl().query}getCurrentUrl(){return Ne(window.location.href)}replaceCurrentUrl(e){window.history.replaceState(null,"",e)}setRedirectingParamOnUrl(){if(this.currentUrlHasRedirectingParam())return;const e=this.getCurrentUrl(),t=Object.assign(Object.assign({},e),{query:Object.assign(Object.assign({},e.query),{[My]:"true"})});this.replaceCurrentUrl(xe(t))}removeRedirectingParamFromUrl(){this.currentUrlHasRedirectingParam()&&this.replaceCurrentUrl(ze(window.location.href,[My]))}}const Ny=$([e=>"continue"===I(e,"type")&&"redirect"===I(e,"code")&&(e=>{const t=I(e,"form_fields");return z(I(e,"url"))&&(N(t)||D(t))})(I(e,"parameters")),e=>"continue"===I(e,"type")&&"resubmit_with_human_verification"===I(e,"code")&&(e=>{const t=I(e,"available_methods");return O(t)})(I(e,"parameters"))]);class xy{constructor(e,t){this._formPoster=e,this._humanVerificationHandler=t}handle(e,t){switch(e.code){case"redirect":return(({url:e,form_fields:t},n)=>{const i=new zy;return i.isRedirecting()?(i.setRedirecting(!1),Promise.reject(new Dy)):(i.setRedirecting(!0),t?n.postForm(e,t):window.location.assign(e),new Promise(V))})(e.parameters,this._formPoster);case"resubmit_with_human_verification":return(({available_methods:e},t,n)=>{return i=void 0,r=void 0,a=function*(){if(!n)throw new Error("PPSDK human verification callback function is missing.");if(!t)throw new Error("PPSDK human verification handler is missing.");if(0===e.length)throw Error("Human verification method is missing.");const{id:i,parameters:r}=e[0],o=yield t.handle(i,r.key);return n(o)},new((o=void 0)||(o=Promise))(function(e,t){function n(e){try{d(a.next(e))}catch(e){t(e)}}function s(e){try{d(a.throw(e))}catch(e){t(e)}}function d(t){var i;t.done?e(t.value):(i=t.value,i instanceof o?i:new o(function(e){e(i)})).then(n,s)}d((a=a.apply(i,r||[])).next())});var i,r,o,a})(e.parameters,this._humanVerificationHandler,null==t?void 0:t.humanVerification)}}}class Fy{constructor(e){this._continueHandler=e}handle(e,t){const{body:n}=e;return(e=>"success"===I(e,"type"))(n)?Promise.resolve():(e=>Ny(e))(n)?this._continueHandler.handle(n,null==t?void 0:t.continue):(e=>"failure"===I(e.body,"type")&&z(I(e.body,"code")))(e)?(e=>{return Promise.reject(new _t((t=e,Object.assign(Object.assign({},t),{body:{errors:[{code:t.body.code}]}}))));var t})(e):((e=>{I(e.body,"type")})(e),(e=>Promise.reject(new _t(e)))(e))}}const Ry="completed-payments";class Ly{constructor(e){this._browserStorage=e}isCompleted(e){return this.getCompletedPayments().indexOf(e)>=0}setCompleted(e){const t=this.getCompletedPayments();t.push(e),this.setCompletedPayments(t)}getCompletedPayments(){return this._browserStorage.getItem(Ry)||[]}setCompletedPayments(e){this._browserStorage.setItem(Ry,e)}}var By,jy=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Uy{constructor(e,t,n,i,r){this._store=e,this._orderActionCreator=t,this._subStrategyRegistry=n,this._paymentResumer=i,this._completedPayments=new Ly(r)}execute(e,t){var n;return jy(this,void 0,void 0,function*(){const{bigpayBaseUrl:i}=this._store.getState().config.getStoreConfigOrThrow().paymentSettings;if(!(null==t?void 0:t.methodId))throw new Lt('Unable to submit payment because "options.methodId" argument is not provided.');const{methodId:r}=t,{payment:o}=e,a=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),{_subStrategy:s}=this;if(!s)throw new wn(gn.PaymentNotInitialized);yield this._store.dispatch(this._orderActionCreator.submitOrder(a,t));const d=null===(n=this._store.getState().order.getOrderMeta())||void 0===n?void 0:n.token;if(!d)throw new Qe(We.MissingOrder);return yield s.execute({methodId:r,payment:o,bigpayBaseUrl:i,token:d}),this._store.getState()})}finalize(e){return jy(this,void 0,void 0,function*(){const t=this._store.getState().order.getOrderOrThrow();if(t.isComplete)return this._store.getState();const{bigpayBaseUrl:n}=this._store.getState().config.getStoreConfigOrThrow().paymentSettings;if(!(null==e?void 0:e.methodId))throw new Lt('Unable to submit payment because "options.methodId" argument is not provided.');const i=this._store.getState().order.getPaymentId(e.methodId);if(!i||!t||this._completedPayments.isCompleted(i))throw new Am;const{orderId:r}=t;return yield this._paymentResumer.resume({paymentId:i,bigpayBaseUrl:n,orderId:r}).catch(e=>{throw this._completedPayments.setCompleted(i),e}),this._store.getState()})}initialize(e){return jy(this,void 0,void 0,function*(){if(!(null==e?void 0:e.methodId))throw new Lt('Unable to submit payment because "options.methodId" argument is not provided.');const t=((e,t)=>{const n=e.getState().paymentMethods.getPaymentMethod(t);if(n&&Iy(n))return n})(this._store,e.methodId);if(!t)throw new wn(gn.PaymentNotInitialized);if(this._subStrategy=this._subStrategyRegistry.getByMethod(t),!this._subStrategy)throw new wn(gn.PaymentNotInitialized);return yield this._subStrategy.initialize(e),this._store.getState()})}deinitialize(e){var t;return jy(this,void 0,void 0,function*(){return null===(t=this._subStrategy)||void 0===t||t.deinitialize(),this._store.getState()})}}!function(e){e.CARD="card_ui",e.NONE="none",e.UNSUPPORTED="unsupported"}(By||(By={}));const qy=m([[e=>"card_ui"===e.type,y(By.CARD)],[e=>"none"===e.type,y(By.NONE)],[Q,y(By.UNSUPPORTED)]]);class Vy extends Bt{getByMethod(e){const t=qy(e.initializationStrategy);return this.get(t)}}var Gy=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Hy{constructor(e,t,n,i){this._store=e,this._orderActionCreator=t,this._hostedFormFactory=n,this._ppsdkStepHandler=i}execute(e){return Gy(this,void 0,void 0,function*(){const t=this._hostedForm;if(!t)throw new wn(gn.PaymentNotInitialized);const{additionalAction:n,payment:i}=e;if(!i||!i.methodId)throw new Oy(["payment.methodId"]);yield t.validate();const{payload:r}=yield t.submit(i,n),{response:o}=r;yield this._ppsdkStepHandler.handle(o,{continue:{humanVerification:t=>Gy(this,void 0,void 0,function*(){return this.execute(Object.assign({additionalAction:t},e))})}}),yield this._store.dispatch(this._orderActionCreator.loadCurrentOrder())})}initialize(e){return Gy(this,void 0,void 0,function*(){const t=e&&e.creditCard&&e.creditCard.form,{config:n,checkout:i}=this._store.getState(),{paymentSettings:{bigpayBaseUrl:r=""}={}}=n.getStoreConfig()||{},o=i.getCheckoutOrThrow().id;if(!t)throw new Lt;const a=t&&this._hostedFormFactory.create(r,t,o);yield a.attach(),this._hostedForm=a})}deinitialize(){this._hostedForm&&this._hostedForm.detach()}}class $y{constructor(e,t){this._requestSender=e,this._stepHandler=t}execute({methodId:e,bigpayBaseUrl:t,token:n}){const i={credentials:!1,body:{payment_method_id:e},headers:{authorization:n,"X-XSRF-TOKEN":null}};return this._requestSender.post(`${t}/payments`,i).then(e=>this._stepHandler.handle(e))}initialize(){return Promise.resolve()}deinitialize(){}}var Wy,Yy,Ky=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Jy{constructor(e,t){this._requestSender=e,this._stepHandler=t}resume({paymentId:e,bigpayBaseUrl:t,orderId:n}){return Ky(this,void 0,void 0,function*(){const i={credentials:!1,headers:{authorization:yield this._getToken(n).catch(()=>{throw new Am}),"X-XSRF-TOKEN":null}};return this._requestSender.get(`${t}/payments/${e}`,i).then(e=>this._stepHandler.handle(e))})}_getToken(e){return Ky(this,void 0,void 0,function*(){const t={params:{order_id:e}};return this._requestSender.get("/api/storefront/payments/auth-token",t).then(({body:e})=>e.auth_token)})}}class Zy extends Ay{constructor(e,t,n,i,r){super(e,t,n,i),this._wepayRiskClient=r}initialize(e){return this._wepayRiskClient.initialize(),super.initialize(e)}execute(e,t){const n=this._wepayRiskClient.getRiskToken(),i=q({},e,{payment:{paymentData:{deviceSessionId:n}}});return super.execute(i,t)}}class Qy{constructor(e){this._scriptLoader=e}initialize(){return this._scriptLoader.loadScript("//static.wepay.com/min/js/risk.1.latest.js").then(()=>this._riskClient=window.WePay.risk).then(()=>this)}getRiskToken(){if(!this._riskClient)throw new wn(gn.PaymentNotInitialized);return this._riskClient.generate_risk_token(),this._riskClient.get_risk_token()}}class Xy{constructor(e){this._requestSender=e}createBuyNowCart(e,{timeout:t}={}){const n=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.post("/api/storefront/carts",{body:e,headers:n,timeout:t})}}!function(e){e.UpdatePaymentProviderCustomer="UPDATE_PAYMENT_PROVIDER_CUSTOMER"}(Wy||(Wy={}));class eg{updatePaymentProviderCustomer(e){return me(l(Wy.UpdatePaymentProviderCustomer,e))}}!function(e){e.CreateConsignmentsRequested="CREATE_CONSIGNMENTS_REQUESTED",e.CreateConsignmentsSucceeded="CREATE_CONSIGNMENTS_SUCCEEDED",e.CreateConsignmentsFailed="CREATE_CONSIGNMENTS_FAILED",e.UpdateConsignmentRequested="UPDATE_CONSIGNMENT_REQUESTED",e.UpdateConsignmentSucceeded="UPDATE_CONSIGNMENT_SUCCEEDED",e.UpdateConsignmentFailed="UPDATE_CONSIGNMENT_FAILED",e.DeleteConsignmentRequested="DELETE_CONSIGNMENT_REQUESTED",e.DeleteConsignmentSucceeded="DELETE_CONSIGNMENT_SUCCEEDED",e.DeleteConsignmentFailed="DELETE_CONSIGNMENT_FAILED",e.UpdateShippingOptionRequested="UPDATE_SHIPPING_OPTION_REQUESTED",e.UpdateShippingOptionSucceeded="UPDATE_SHIPPING_OPTION_SUCCEEDED",e.UpdateShippingOptionFailed="UPDATE_SHIPPING_OPTION_FAILED",e.LoadShippingOptionsRequested="LOAD_SHIPPING_OPTIONS_REQUESTED",e.LoadShippingOptionsSucceeded="LOAD_SHIPPING_OPTIONS_SUCCEEDED",e.LoadShippingOptionsFailed="LOAD_SHIPPING_OPTIONS_FAILED"}(Yy||(Yy={}));class tg{constructor(e,t){this._consignmentRequestSender=e,this._checkoutRequestSender=t}unassignItemsByAddress(e,t){return n=>{const i=n.getState();if(!i.checkout.getCheckout())throw new Qe(We.MissingCheckout);const r=this._consignmentHasAddress(e)?e.address:e.shippingAddress,o=i.consignments.getConsignmentByAddress(r);if(!o)throw new Lt("No consignment found for the specified address");const a=this._removeLineItems(e.lineItems,o,i.cart.getCart());return a.length?this.updateConsignment({id:o.id,address:r,lineItems:a},t)(n):this.deleteConsignment(o.id,t)(n)}}assignItemsByAddress(e,t){return n=>{const i=n.getState(),r=this._consignmentHasAddress(e)?e.address:e.shippingAddress,o=i.consignments.getConsignmentByAddress(r);return this._createOrUpdateConsignment({id:o&&o.id,address:r,lineItems:this._addLineItems(e.lineItems,o,i.cart.getCart())},t)(n)}}selectShippingOption(e,t){return n=>oe.create(i=>{const r=n.getState(),o=r.checkout.getCheckout(),a=r.consignments.getConsignments();if(!o)throw new Qe(We.MissingCheckout);if(!a||!a.length)throw new Qe(We.MissingConsignments);const s={id:a[0].id,shippingOptionId:e},d={id:a[0].id};i.next(l(Yy.UpdateShippingOptionRequested,void 0,d)),this._consignmentRequestSender.updateConsignment(o.id,s,t).then(({body:e})=>{i.next(l(Yy.UpdateShippingOptionSucceeded,e,d)),i.complete()}).catch(e=>{i.error(h(Yy.UpdateShippingOptionFailed,e,d))})})}loadShippingOptions(e){return t=>oe.create(n=>{const i=t.getState().checkout.getCheckout();if(!i)throw new Qe(We.MissingCheckout);n.next(l(Yy.LoadShippingOptionsRequested)),this._checkoutRequestSender.loadCheckout(i.id,Object.assign(Object.assign({},e),{params:{include:[At.AvailableShippingOptions]}})).then(({body:e})=>{n.next(l(Yy.LoadShippingOptionsSucceeded,e)),n.complete()}).catch(e=>{n.error(h(Yy.LoadShippingOptionsFailed,e))})})}updateAddress(e,t){return n=>{const i=this._getUpdateAddressRequestBody(e,n),r=n.getState().consignments.getConsignments();return r&&r.length&&(i.id=r[0].id),this._createOrUpdateConsignment(i,t)(n)}}createConsignments(e,t){return n=>oe.create(i=>{const r=n.getState().checkout.getCheckout();if(!r||!r.id)throw new Qe(We.MissingCheckout);i.next(l(Yy.CreateConsignmentsRequested)),this._consignmentRequestSender.createConsignments(r.id,e,t).then(({body:e})=>{i.next(l(Yy.CreateConsignmentsSucceeded,e)),i.complete()}).catch(e=>{i.error(h(Yy.CreateConsignmentsFailed,e))})})}updateConsignment(e,t){return n=>oe.create(i=>{const r=n.getState().checkout.getCheckout();if(!r||!r.id)throw new Qe(We.MissingCheckout);const o={id:e.id};i.next(l(Yy.UpdateConsignmentRequested,void 0,o)),this._consignmentRequestSender.updateConsignment(r.id,e,t).then(({body:e})=>{i.next(l(Yy.UpdateConsignmentSucceeded,e,o)),i.complete()}).catch(e=>{i.error(h(Yy.UpdateConsignmentFailed,e,o))})})}deleteConsignment(e,t){return n=>oe.create(i=>{const r=n.getState().checkout.getCheckout(),o={id:e};if(!r||!r.id)throw new Qe(We.MissingCheckout);i.next(l(Yy.DeleteConsignmentRequested,void 0,o)),this._consignmentRequestSender.deleteConsignment(r.id,e,t).then(({body:e})=>{i.next(l(Yy.DeleteConsignmentSucceeded,e,o)),i.complete()}).catch(e=>{i.error(h(Yy.DeleteConsignmentFailed,e,o))})})}updateShippingOption(e,t){return n=>oe.create(i=>{var r;const o=n.getState().checkout.getCheckout(),a=n.getState().consignments.getConsignmentById(e.id);if((null===(r=null==a?void 0:a.selectedShippingOption)||void 0===r?void 0:r.id)===e.shippingOptionId)return void i.complete();if(!o||!o.id)throw new Qe(We.MissingCheckout);const s={id:e.id};i.next(l(Yy.UpdateShippingOptionRequested,void 0,s)),this._consignmentRequestSender.updateConsignment(o.id,e,t).then(({body:e})=>{i.next(l(Yy.UpdateShippingOptionSucceeded,e,s)),i.complete()}).catch(e=>{i.error(h(Yy.UpdateShippingOptionFailed,e,s))})})}_createOrUpdateConsignment(e,t){return n=>{const i=n.getState().checkout.getCheckout();if(!i||!i.id)throw new Qe(We.MissingCheckout);return this._isUpdateConsignmentRequest(e)?this.updateConsignment(e,t)(n):this.createConsignments([e],t)(n)}}_getUpdateAddressRequestBody(e,t){const n=t.getState().cart.getCart();if(!n)throw new Qe(We.MissingCart);const{physicalItems:i,customItems:r=[]}=n.lineItems;return{address:e,lineItems:[...i,...r].map(e=>({itemId:e.id,quantity:e.quantity}))}}_removeLineItems(e,t,n){if(!n)throw new Qe(We.MissingCart);return this._hydrateLineItems(t.lineItemIds,n).map(t=>{const n=S(e,e=>e.itemId===t.itemId);return Object.assign(Object.assign({},t),{quantity:n?t.quantity-n.quantity:t.quantity})}).filter(e=>e.quantity>0)}_addLineItems(e,t,n){if(!t)return e;if(!n)throw new Qe(We.MissingCart);return e.concat(this._hydrateLineItems(t.lineItemIds,n)).filter(e=>e.quantity>0)}_hydrateLineItems(e,t){return e.map(e=>{const n=S(t.lineItems.physicalItems,t=>t.id===e);return{itemId:e,quantity:n?n.quantity:0}})}_isUpdateConsignmentRequest(e){return!!e.id}_consignmentHasAddress(e){return"object"==typeof e&&"address"in e}}const ng=["consignments.availableShippingOptions","cart.lineItems.physicalItems.options","cart.lineItems.digitalItems.options","customer","promotions.banners"];class ig{constructor(e){this._requestSender=e}createConsignments(e,t,{timeout:n,params:{include:i}={}}={}){const r=`/api/storefront/checkouts/${e}/consignments`,o=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.post(r,{body:t,params:{include:Zt(ng,i)},headers:o,timeout:n}).catch(e=>{if("empty_cart"===e.body.type)throw new nt;throw e})}updateConsignment(e,t,{timeout:n,params:{include:i}={}}={}){const{id:r}=t,o=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(t,["id"]),a=`/api/storefront/checkouts/${e}/consignments/${r}`,s=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.put(a,{body:o,params:{include:Zt(ng,i)},headers:s,timeout:n}).catch(e=>{if("empty_cart"===e.body.type)throw new nt;throw e})}deleteConsignment(e,t,{timeout:n}={}){const i=`/api/storefront/checkouts/${e}/consignments/${t}`,r=Object.assign({Accept:it.JsonV1},rt),o=Mt(ng);return this._requestSender.delete(i,{params:{include:o},headers:r,timeout:n}).catch(e=>{if("empty_cart"===e.body.type)throw new nt;throw e})}}var rg,og;!function(e){e.LoadShippingCountriesRequested="LOAD_SHIPPING_COUNTRIES_REQUESTED",e.LoadShippingCountriesSucceeded="LOAD_SHIPPING_COUNTRIES_SUCCEEDED",e.LoadShippingCountriesFailed="LOAD_SHIPPING_COUNTRIES_FAILED"}(rg||(rg={}));class ag{constructor(e,t){this._shippingCountryRequestSender=e,this._store=t}loadCountries(e){const{checkout:t}=this._store.getState(),n=t.getCheckout(),i=n?n.channelId:null;return oe.create(t=>{t.next(l(rg.LoadShippingCountriesRequested)),this._shippingCountryRequestSender.loadCountries(i,e).then(e=>{t.next(l(rg.LoadShippingCountriesSucceeded,e.body.data)),t.complete()}).catch(e=>{t.error(h(rg.LoadShippingCountriesFailed,e))})})}}class sg{constructor(e,t){this._requestSender=e,this._config=t}loadCountries(e,{timeout:t}={}){const n="/internalapi/v1/shipping/countries"+(e?`?channel_id=${e}`:""),i=Object.assign({"Accept-Language":this._config.locale},rt);return this._requestSender.get(n,{headers:i,timeout:t})}}!function(e){e.ApplyStoreCreditRequested="APPLY_STORE_CREDIT_REQUESTED",e.ApplyStoreCreditSucceeded="APPLY_STORE_CREDIT_SUCCEEDED",e.ApplyStoreCreditFailed="APPLY_STORE_CREDIT_FAILED"}(og||(og={}));var dg;class cg{constructor(e){this._storeCreditRequestSender=e}applyStoreCredit(e,t){return n=>se(me(l(og.ApplyStoreCreditRequested)),de(()=>{return i=this,r=void 0,a=function*(){const i=n.getState().checkout.getCheckout();if(!i)throw new Qe(We.MissingCheckout);const{body:r}=yield e?this._storeCreditRequestSender.applyStoreCredit(i.id,t):this._storeCreditRequestSender.removeStoreCredit(i.id,t);return l(og.ApplyStoreCreditSucceeded,r)},new((o=void 0)||(o=Promise))(function(e,t){function n(e){try{d(a.next(e))}catch(e){t(e)}}function s(e){try{d(a.throw(e))}catch(e){t(e)}}function d(t){var i;t.done?e(t.value):(i=t.value,i instanceof o?i:new o(function(e){e(i)})).then(n,s)}d((a=a.apply(i,r||[])).next())});var i,r,o,a})).pipe(ge(e=>Je(og.ApplyStoreCreditFailed,e)))}}class lg{constructor(e){this._requestSender=e}applyStoreCredit(e,{timeout:t}={}){const n=`/api/storefront/checkouts/${e}/store-credit`,i=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.post(n,{headers:i,timeout:t,params:{include:Mt(Et)}})}removeStoreCredit(e,{timeout:t}={}){const n=`/api/storefront/checkouts/${e}/store-credit`,i=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.delete(n,{headers:i,timeout:t,params:{include:Mt(Et)}})}}!function(e){e.UpdateSubscriptionsRequested="UPDATE_SUBSCRIPTIONS_REQUESTED",e.UpdateSubscriptionsSucceeded="UPDATE_SUBSCRIPTIONS_SUCCEEDED",e.UpdateSubscriptionsFailed="UPDATE_SUBSCRIPTIONS_FAILED"}(dg||(dg={}));class ug extends _t{constructor(e){super(e),this.name="UpdateSubscriptionsError",this.type="update_subscriptions"}}class hg{constructor(e){this._subscriptionsRequestSender=e}updateSubscriptions(e,t){return se(me(l(dg.UpdateSubscriptionsRequested)),de(()=>{return n=this,i=void 0,o=function*(){const{body:n}=yield this._subscriptionsRequestSender.updateSubscriptions(e,t);return l(dg.UpdateSubscriptionsSucceeded,n)},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o})).pipe(ge(e=>Je(dg.UpdateSubscriptionsFailed,new ug(e))))}}class pg{constructor(e){this._requestSender=e}updateSubscriptions(e,{timeout:t}={}){const n=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.post("/api/storefront/subscriptions",{body:e,headers:n,timeout:t})}}function mg(e){return M(e)}const yg=U(e=>Array.isArray(e)?e.map(e=>gg(e)):mg(e)?Object.keys(e).reduce((t,n)=>Object.assign(Object.assign({},t),{[n]:gg(e[n])}),{}):e);yg.cache=new WeakMap;const gg=e=>"object"==typeof e&&null!==e?yg(e):e;function vg(e){return(...t)=>gg(e(...t))}function fg({billingAddress:{getBillingAddress:e,getBillingAddressOrThrow:t},cart:{getCart:n,getCartOrThrow:i},checkout:{getCheckout:r,getCheckoutOrThrow:o,getOutstandingBalance:a},config:{getContextConfig:s,getHost:d,getLocale:c,getStoreConfig:l,getStoreConfigOrThrow:u,getConfig:h},consignments:{getConsignments:p,getConsignmentsOrThrow:m},countries:{getCountries:y},customer:{getCustomer:g,getCustomerOrThrow:v},instruments:{getCardInstrument:f,getCardInstrumentOrThrow:S,getInstruments:w,getInstrumentsMeta:_},order:{getOrder:C,getOrderOrThrow:I,getOrderMeta:b},payment:{getPaymentToken:P,getPaymentTokenOrThrow:O,getPaymentId:E,getPaymentIdOrThrow:A,getPaymentStatus:k,getPaymentStatusOrThrow:T,getPaymentRedirectUrl:D,getPaymentRedirectUrlOrThrow:M,isPaymentDataRequired:z},paymentMethods:{getPaymentMethod:N,getPaymentMethodOrThrow:x,getPaymentMethodsMeta:F},paymentProviderCustomer:{getPaymentProviderCustomer:R,getPaymentProviderCustomerOrThrow:L},paymentStrategies:{isInitialized:B},shippingAddress:{getShippingAddress:j,getShippingAddressOrThrow:U,getShippingAddresses:q,getShippingAddressesOrThrow:V},shippingCountries:{getShippingCountries:G}}){return{getHost:vg(d),getLocale:vg(c),getBillingAddress:vg(e),getBillingAddressOrThrow:vg(t),getCart:vg(n),getCartOrThrow:vg(i),getCheckout:vg(r),getCheckoutOrThrow:vg(o),getCountries:vg(y),getStoreConfig:vg(l),getStoreConfigOrThrow:vg(u),getConfig:vg(h),getConsignments:vg(p),getConsignmentsOrThrow:vg(m),getContextConfig:vg(s),getCustomer:vg(g),getCustomerOrThrow:vg(v),getCardInstrument:vg(f),getInstruments:vg(w),getCardInstrumentOrThrow:vg(S),getOrder:vg(C),getOrderOrThrow:vg(I),getOrderMeta:vg(b),getInstrumentsMeta:vg(_),getPaymentToken:P,getPaymentTokenOrThrow:O,getPaymentId:E,getPaymentIdOrThrow:A,getPaymentStatus:k,getPaymentStatusOrThrow:T,getPaymentRedirectUrl:D,getPaymentRedirectUrlOrThrow:M,getPaymentMethod:vg(N),getPaymentMethodOrThrow:vg(x),getPaymentMethodsMeta:vg(F),getPaymentProviderCustomer:vg(R),getPaymentProviderCustomerOrThrow:vg(L),getShippingAddress:vg(j),getShippingAddressOrThrow:vg(U),getShippingAddresses:vg(q),getShippingAddressesOrThrow:vg(V),getShippingCountries:vg(G),getOutstandingBalance:vg(a),isPaymentDataRequired:z,isPaymentMethodInitialized:B}}var Sg,wg=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class _g{constructor(e,t,n,i,r,o,a,s,d,c,l,u,h,p,m,y,g,v,f,S){this._store=e,this._storeProjectionFactory=t,this._checkoutActionCreator=n,this._checkoutValidator=i,this._hostedFormFactory=r,this._orderActionCreator=o,this._billingAddressActionCreator=a,this._consignmentActionCreator=s,this._paymentMethodActionCreator=d,this._paymentActionCreator=c,this._paymentHumanVerificationHandler=l,this._customerActionCreator=u,this._cartRequestSender=h,this._storeCreditActionCreator=p,this._couponActionCreator=m,this._spamProtectionActionCreator=y,this._paymentProviderCustomerActionCreator=g,this._shippingCountryActionCreator=v,this._remoteCheckoutActionCreator=f,this._paymentStrategyWidgetActionCreator=S,this._storeProjection=this._storeProjectionFactory.create(this._store)}createHostedForm(e,t){const n=this._storeProjection.getState().getCheckoutOrThrow().id;return this._hostedFormFactory.create(e,t,n)}subscribe(e,...t){return this._storeProjection.subscribe(e,...t)}getState(){return this._storeProjection.getState()}initializeOffsitePayment(e){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._paymentActionCreator.initializeOffsitePayment(e)),this._storeProjection.getState()})}loadCheckout(e){return wg(this,void 0,void 0,function*(){return e?yield this._store.dispatch(this._checkoutActionCreator.loadCheckout(e)):yield this._store.dispatch(this._checkoutActionCreator.loadCurrentCheckout()),this._storeProjection.getState()})}loadDefaultCheckout(){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._checkoutActionCreator.loadDefaultCheckout()),this._storeProjection.getState()})}loadPaymentMethod(e,t){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._paymentMethodActionCreator.loadPaymentMethod(e,t)),this._storeProjection.getState()})}loadPaymentMethods(e){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._paymentMethodActionCreator.loadPaymentMethods(e)),this._storeProjection.getState()})}submitOrder(e,t){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._orderActionCreator.submitOrder(e,t)),this._storeProjection.getState()})}submitPayment(e){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._paymentActionCreator.submitPayment(e)),this._storeProjection.getState()})}finalizeOrder(e){return wg(this,void 0,void 0,function*(){const{order:{getOrderOrThrow:t}}=this._store.getState();return yield this._store.dispatch(this._orderActionCreator.finalizeOrder(t().orderId,e)),this._storeProjection.getState()})}updateBillingAddress(e){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._billingAddressActionCreator.updateAddress(e)),this._storeProjection.getState()})}updateShippingAddress(e){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._consignmentActionCreator.updateAddress(e)),this._storeProjection.getState()})}selectShippingOption(e,t){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._consignmentActionCreator.selectShippingOption(e,t)),this._storeProjection.getState()})}signInCustomer(e,t){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._customerActionCreator.signInCustomer(e,t)),this._storeProjection.getState()})}signOutCustomer(e){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._customerActionCreator.signOutCustomer(e)),this._storeProjection.getState()})}createBuyNowCart(e,t){return wg(this,void 0,void 0,function*(){const{body:n}=yield this._cartRequestSender.createBuyNowCart(e,t);return n})}applyStoreCredit(e,t){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._storeCreditActionCreator.applyStoreCredit(e,t)),this._storeProjection.getState()})}applyCoupon(e,t){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._couponActionCreator.applyCoupon(e,t)),this._storeProjection.getState()})}removeCoupon(e,t){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._couponActionCreator.removeCoupon(e,t)),this._storeProjection.getState()})}verifyCheckoutSpamProtection(){return wg(this,void 0,void 0,function*(){const{checkout:e}=this._store.getState(),{shouldExecuteSpamCheck:t}=e.getCheckoutOrThrow();return t&&(yield this._store.dispatch(this._spamProtectionActionCreator.verifyCheckoutSpamProtection())),this._storeProjection.getState()})}loadCurrentOrder(e){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._orderActionCreator.loadCurrentOrder(e)),this._storeProjection.getState()})}updatePaymentProviderCustomer(e){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._paymentProviderCustomerActionCreator.updatePaymentProviderCustomer(e)),this._storeProjection.getState()})}loadShippingCountries(e){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._shippingCountryActionCreator.loadCountries(e)),this._storeProjection.getState()})}deleteConsignment(e,t){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._consignmentActionCreator.deleteConsignment(e,t)),this._storeProjection.getState()})}initializePayment(e,t,n){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._remoteCheckoutActionCreator.initializePayment(e,t,n)),this._storeProjection.getState()})}forgetCheckout(e,t){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._remoteCheckoutActionCreator.forgetCheckout(e,t)),this._storeProjection.getState()})}remoteCheckoutSignOut(e,t){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._remoteCheckoutActionCreator.signOut(e,t)),this._storeProjection.getState()})}validateCheckout(e,t){return wg(this,void 0,void 0,function*(){yield this._checkoutValidator.validate(e,t)})}handlePaymentHumanVerification(e,t){return wg(this,void 0,void 0,function*(){return"string"==typeof e?this._paymentHumanVerificationHandler.handle(e,null!=t?t:""):this._paymentHumanVerificationHandler.handle(e)})}widgetInteraction(e){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._paymentStrategyWidgetActionCreator.widgetInteraction(e),{queueId:"widgetInteraction"}),this._storeProjection.getState()})}}class Cg{constructor(e){this._transformSelectors=e}create(e){return ct(e,this._transformSelectors)}}function Ig(e){const{config:{getHost:t,getLocale:i}}=e.getState(),r=n({host:t()}),a=new Cg(fg),s=new en(new Qt(r),new St(new bt(r)),new nn(new rn(r))),d=new Nm(new Qt(r)),c=new ey(e),l=new Om(new Cm(r),new Nm(new Qt(r))),u=new tt(new at(r),new hg(new pg(r))),h=new tg(new ig(r),new Qt(r)),p=new an(new sn(r)),m=new ty(new ny(Em(e)),l,new Cy,new Um(bn(o()))),y=new Um(bn(o())),g=new Ht(new $t(r),s,new fn(bn(o()),new Pn(r))),v=new cg(new lg(r)),f=new Ot(new zt(r)),S=bn(o()),w=new Pn(r),_=new fn(S,w),C=new Xy(r),I=new eg,b=new ag(new sg(r,{locale:i()}),e),P=new pn(new un(r),s),O=new Tm;return new _g(e,a,s,d,c,l,u,h,p,m,y,g,C,v,f,_,I,b,P,O)}!function(e){e.LoadInstrumentsRequested="LOAD_INSTRUMENTS_REQUESTED",e.LoadInstrumentsSucceeded="LOAD_INSTRUMENTS_SUCCEEDED",e.LoadInstrumentsFailed="LOAD_INSTRUMENTS_FAILED",e.DeleteInstrumentRequested="DELETE_INSTRUMENT_REQUESTED",e.DeleteInstrumentSucceeded="DELETE_INSTRUMENT_SUCCEEDED",e.DeleteInstrumentFailed="DELETE_INSTRUMENT_FAILED"}(Sg||(Sg={}));class bg{constructor(e){this._instrumentRequestSender=e}loadInstruments(){return e=>oe.create(t=>{t.next(l(Sg.LoadInstrumentsRequested));const n=this._getSessionContext(e),i=this._getCurrentAccessToken(e),r=this._getShippingAddress(e);return this._getValidAccessToken(i).then(e=>this._instrumentRequestSender.loadInstruments(Object.assign(Object.assign({},n),{authToken:e.vaultAccessToken}),r).then(({body:n})=>{t.next(l(Sg.LoadInstrumentsSucceeded,n,e)),t.complete()})).catch(e=>{t.error(h(Sg.LoadInstrumentsFailed,e))})})}deleteInstrument(e){return t=>oe.create(n=>{n.next(l(Sg.DeleteInstrumentRequested,void 0,{instrumentId:e}));const i=this._getSessionContext(t),r=this._getCurrentAccessToken(t);return this._getValidAccessToken(r).then(t=>this._instrumentRequestSender.deleteInstrument(Object.assign(Object.assign({},i),{authToken:t.vaultAccessToken}),e).then(({body:i})=>{n.next(l(Sg.DeleteInstrumentSucceeded,i,Object.assign({instrumentId:e},t))),n.complete()})).catch(t=>{n.error(h(Sg.DeleteInstrumentFailed,t,{instrumentId:e}))})})}_isValidVaultAccessToken(e){if(!e||!e.vaultAccessToken)return!1;return function(e){const t=new Date(e.getTime());return t.setMinutes(e.getMinutes()+2),t}(new Date(e.vaultAccessExpiry)).valueOf()>Date.now()}_getCurrentAccessToken(e){const{instruments:t}=e.getState(),n=t.getInstrumentsMeta();if(n)return{vaultAccessToken:n.vaultAccessToken,vaultAccessExpiry:n.vaultAccessExpiry}}_getValidAccessToken(e){return e&&this._isValidVaultAccessToken(e)?Promise.resolve(e):this._instrumentRequestSender.getVaultAccessToken().then(({body:e})=>e)}_getShippingAddress(e){const t=e.getState(),n=t.shippingAddress.getShippingAddresses();return n.length>1?n:t.shippingAddress.getShippingAddress()}_getSessionContext(e){const t=e.getState(),n=t.config.getStoreConfig(),i=t.cart.getCart();if(!n)throw new Qe(We.MissingCheckoutConfig);if(!i)throw new Qe(We.MissingCart);const{customerId:r}=i,{storeId:o}=n.storeProfile,{code:a}=n.shopperCurrency.isTransactional?n.shopperCurrency:n.currency;return{customerId:r,storeId:o,currencyCode:a}}}var Pg,Og,Eg=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n};class Ag{transformResponse(e){const t=this._transformResponse(e),{body:n}=t,i=Eg(t,["body"]);return Object.assign(Object.assign({},i),{body:{vaultedInstruments:this._transformVaultedInstruments(n.vaulted_instruments)}})}transformErrorResponse(e){return this._transformResponse(e)}transformVaultAccessResponse(e){return Object.assign(Object.assign({},e),{body:{vaultAccessToken:e.body.data.token,vaultAccessExpiry:e.body.data.expires_at}})}_transformVaultedInstruments(e=[]){return e.map(e=>this._isPayPalInstrument(e)?function(e){return{bigpayToken:e.bigpay_token,defaultInstrument:e.default_instrument,provider:e.provider,externalId:e.external_id,trustedShippingAddress:e.trusted_shipping_address,method:"paypal",type:"account"}}(e):this._isBankInstrument(e)?function(e){return{bigpayToken:e.bigpay_token,defaultInstrument:e.default_instrument,provider:e.provider,trustedShippingAddress:e.trusted_shipping_address,accountNumber:e.account_number,issuer:e.issuer,iban:e.iban,method:e.method,type:"bank"}}(e):function(e){return{bigpayToken:e.bigpay_token,defaultInstrument:e.default_instrument,provider:e.provider,iin:e.iin,last4:e.last_4,expiryMonth:e.expiry_month,expiryYear:e.expiry_year,brand:e.brand,trustedShippingAddress:e.trusted_shipping_address,untrustedShippingCardVerificationMode:e.untrusted_shipping_address_card_verification_mode,method:e.method,type:"card"}}(e))}_isPayPalInstrument(e){return"paypal"===e.method_type}_isBankInstrument(e){return"bank"===e.method_type}_transformResponse(e){const{data:t}=e,n=Eg(e,["data"]);return Object.assign(Object.assign({},n),{body:t})}}class kg{constructor(e,t){this._client=e,this._requestSender=t,this._transformer=new Ag}getVaultAccessToken({timeout:e}={}){return this._requestSender.get("/internalapi/v1/checkout/payments/vault-access-token",{timeout:e}).then(e=>Object.assign(Object.assign({},e),{body:{vaultAccessToken:e.body.data.token,vaultAccessExpiry:e.body.data.expires_at}}))}loadInstruments(e,t){return t?this._loadInstrumentsWithAddress(e,t):this._loadInstruments(e)}deleteInstrument(e,t){const n=Object.assign(Object.assign({},e),{instrumentId:t});return new Promise((e,t)=>{this._client.deleteShopperInstrument(n,(n,i)=>n?t(this._transformer.transformErrorResponse(n)):e(this._transformer.transformResponse(i)))})}_loadInstruments(e){return new Promise((t,n)=>{this._client.loadInstruments(e,(e,i)=>e?n(this._transformer.transformErrorResponse(e)):t(this._transformer.transformResponse(i)))})}_loadInstrumentsWithAddress(e,t){const n=Object.assign(Object.assign({},e),{shippingAddress:Array.isArray(t)?t.map(e=>iy(e)):iy(t)});return new Promise((e,t)=>{this._client.loadInstrumentsWithAddress(n,(n,i)=>n?t(this._transformer.transformErrorResponse(n)):e(this._transformer.transformResponse(i)))})}}!function(e){e.LoadPickupOptionsRequested="LOAD_PICKUP_OPTIONS_REQUESTED",e.LoadPickupOptionsSucceeded="LOAD_PICKUP_OPTIONS_SUCCEEDED",e.LoadPickupOptionsFailed="LOAD_PICKUP_OPTIONS_FAILED"}(Pg||(Pg={}));class Tg{constructor(e){this._pickupOptionRequestSender=e}loadPickupOptions(e){return t=>new oe(n=>{const i=this._hydrateApiQuery(t,e);n.next(l(Pg.LoadPickupOptionsRequested)),this._pickupOptionRequestSender.fetchPickupOptions(i).then(t=>{n.next(l(Pg.LoadPickupOptionsSucceeded,t.body.results,e)),n.complete()}).catch(e=>{n.error(h(Pg.LoadPickupOptionsFailed,e))})})}_hydrateApiQuery(e,t){const n=e.getState(),i=n.cart.getCartOrThrow();if(!i)throw new Qe(We.MissingCart);const r=n.consignments.getConsignmentById(t.consignmentId);if(!r)throw new Qe(We.MissingConsignments);const o=r.lineItemIds,a=i.lineItems.physicalItems.filter(e=>P(o,e.id)).map(e=>({variantId:e.variantId,quantity:e.quantity}));return{searchArea:t.searchArea,items:a}}}class Dg{constructor(e){this._requestSender=e}fetchPickupOptions(e){return this._requestSender.post("/api/storefront/pickup-options",{headers:Object.assign({Accept:it.Json},rt),body:e})}}!function(e){e.UpdateAddressFailed="SHIPPING_STRATEGY_UPDATE_ADDRESS_FAILED",e.UpdateAddressRequested="SHIPPING_STRATEGY_UPDATE_ADDRESS_REQUESTED",e.UpdateAddressSucceeded="SHIPPING_STRATEGY_UPDATE_ADDRESS_SUCCEEDED",e.SelectOptionFailed="SHIPPING_STRATEGY_SELECT_OPTION_FAILED",e.SelectOptionRequested="SHIPPING_STRATEGY_SELECT_OPTION_REQUESTED",e.SelectOptionSucceeded="SHIPPING_STRATEGY_SELECT_OPTION_SUCCEEDED",e.InitializeFailed="SHIPPING_STRATEGY_INITIALIZE_FAILED",e.InitializeRequested="SHIPPING_STRATEGY_INITIALIZE_REQUESTED",e.InitializeSucceeded="SHIPPING_STRATEGY_INITIALIZE_SUCCEEDED",e.DeinitializeFailed="SHIPPING_STRATEGY_DEINITIALIZE_FAILED",e.DeinitializeRequested="SHIPPING_STRATEGY_DEINITIALIZE_REQUESTED",e.DeinitializeSucceeded="SHIPPING_STRATEGY_DEINITIALIZE_SUCCEEDED",e.WidgetInteractionStarted="SHIPPING_STRATEGY_WIDGET_INTERACTION_STARTED",e.WidgetInteractionFinished="SHIPPING_STRATEGY_WIDGET_INTERACTION_FINISHED",e.WidgetInteractionFailed="SHIPPING_STRATEGY_WIDGET_INTERACTION_FAILED"}(Og||(Og={}));class Mg{constructor(e){this._strategyRegistry=e}updateAddress(e,t){return n=>oe.create(i=>{const r=n.getState().payment.getPaymentId(),o=t&&t.methodId||r&&r.providerId;i.next(l(Og.UpdateAddressRequested,void 0,{methodId:o})),this._strategyRegistry.get(o).updateAddress(e,Object.assign(Object.assign({},t),{methodId:o})).then(()=>{i.next(l(Og.UpdateAddressSucceeded,void 0,{methodId:o})),i.complete()}).catch(e=>{i.error(h(Og.UpdateAddressFailed,e,{methodId:o}))})})}selectOption(e,t){return n=>oe.create(i=>{const r=n.getState().payment.getPaymentId(),o=t&&t.methodId||r&&r.providerId;i.next(l(Og.SelectOptionRequested,void 0,{methodId:o})),this._strategyRegistry.get(o).selectOption(e,Object.assign(Object.assign({},t),{methodId:o})).then(()=>{i.next(l(Og.SelectOptionSucceeded,void 0,{methodId:o})),i.complete()}).catch(e=>{i.error(h(Og.SelectOptionFailed,e,{methodId:o}))})})}initialize(e){return t=>oe.create(n=>{const i=t.getState(),r=i.payment.getPaymentId(),o=e&&e.methodId||r&&r.providerId,a=Object.assign(Object.assign({},e),{methodId:o});if(o&&i.shippingStrategies.isInitialized(o))return n.complete();n.next(l(Og.InitializeRequested,void 0,{methodId:o})),this._strategyRegistry.get(o).initialize(a).then(()=>{n.next(l(Og.InitializeSucceeded,void 0,{methodId:o})),n.complete()}).catch(e=>{n.error(h(Og.InitializeFailed,e,{methodId:o}))})})}deinitialize(e){return t=>oe.create(n=>{const i=t.getState(),r=i.payment.getPaymentId(),o=e&&e.methodId||r&&r.providerId;if(o&&!i.shippingStrategies.isInitialized(o))return n.complete();n.next(l(Og.DeinitializeRequested,void 0,{methodId:o})),this._strategyRegistry.get(o).deinitialize(Object.assign(Object.assign({},e),{methodId:o})).then(()=>{n.next(l(Og.DeinitializeSucceeded,void 0,{methodId:o})),n.complete()}).catch(e=>{n.error(h(Og.DeinitializeFailed,e,{methodId:o}))})})}widgetInteraction(e,t){return oe.create(n=>{const i={methodId:t&&t.methodId};n.next(l(Og.WidgetInteractionStarted,void 0,i)),e().then(()=>{n.next(l(Og.WidgetInteractionFinished,void 0,i)),n.complete()}).catch(e=>{n.error(h(Og.WidgetInteractionFailed,e,i))})})}}var zg,Ng,xg,Fg,Rg,Lg,Bg,jg,Ug,qg=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Vg{constructor(e){this.scriptLoader=e,this.window=window}getPayPalSDK(e,t,n,i){return qg(this,void 0,void 0,function*(){if(!this.window.paypal||i){const i=this.getPayPalSdkScriptConfigOrThrow(e,t,n);if(yield this.loadPayPalSdk(i),!this.window.paypal)throw new Oi}return this.window.paypal})}getPayPalFastlaneSdk(e,t,n){return qg(this,void 0,void 0,function*(){if(!this.window.paypalFastlaneSdk){const i=this.getPayPalFastlaneSdkConfiguration(e,t,n);if(yield this.loadPayPalSdk(i),!this.window.paypalFastlaneSdk)throw new Oi}return this.window.paypalFastlaneSdk})}getPayPalGooglePaySdk(e,t,n,i){return qg(this,void 0,void 0,function*(){if(!this.window.paypalGooglePay||i){const i=this.getPayPalGooglePaySdkScriptConfigOrThrow(e,t,n);yield this.loadPayPalSdk(i)}if(!this.window.paypalGooglePay)throw new Oi;return this.window.paypalGooglePay})}getPayPalApmsSdk(e,t){return qg(this,void 0,void 0,function*(){if(!this.window.paypalApms){const n=this.getPayPalApmSdkConfiguration(e,t);if(yield this.loadPayPalSdk(n),!this.window.paypalApms)throw new Oi}return this.window.paypalApms})}getPayPalMessages(e,t){return qg(this,void 0,void 0,function*(){if(!this.window.paypalMessages){const n=this.getPayPalSdkMessagesConfiguration(e,t);yield this.loadPayPalSdk(n)}if(!this.window.paypalMessages)throw new Oi;return this.window.paypalMessages})}loadPayPalSdk({options:e,attributes:t}){return qg(this,void 0,void 0,function*(){const n=this.transformConfig(e),i=this.transformConfig(t),r=`https://www.paypal.com/sdk/js?${new URLSearchParams(n).toString()}`;yield this.scriptLoader.loadScript(r,{async:!0,attributes:i})})}getPayPalSdkScriptConfigOrThrow(e,t,n=!0){const{id:i,clientToken:r,initializationData:o}=e;if(!o||!o.clientId)throw new pi(ui.MissingPaymentMethod);const{intent:a,clientId:s,merchantId:d,buyerCountry:c,attributionId:l,isVenmoEnabled:u,isHostedCheckoutEnabled:h,isPayPalCreditAvailable:p,isDeveloperModeApplicable:m,availableAlternativePaymentMethods:y=[],enabledAlternativePaymentMethods:g=[],isGooglePayEnabled:v}=o,f=h||n,S="paypalcommercecreditcards"===i||"bigcommerce_payments_creditcards"===i,w=S?["card"]:[],_=p?["credit","paylater"]:[],C=n||!f,I=u?["venmo"]:[],b=C?g:[],P=v?["googlepay"]:[],O=n?["card-fields"]:[],E=[...S?[]:["card"],...p?[]:["credit","paylater"],...u?[]:["venmo"],...C?y.filter(e=>!g.includes(e)):y],A=[...w,..._,...I,...b];return{options:Object.assign({"client-id":s,"merchant-id":d,"enable-funding":A.length>0?A:void 0,"disable-funding":E.length>0?E:void 0,commit:f,components:["buttons","hosted-fields","payment-fields","legal",...P,...O],currency:t,intent:a},m&&{"buyer-country":c}),attributes:{"data-partner-attribution-id":l,"data-client-token":r}}}getPayPalFastlaneSdkConfiguration(e,t,n){const{clientToken:i,initializationData:r}=e;if(!r||!r.clientId)throw new pi(ui.MissingPaymentMethod);const{intent:o,clientId:a,merchantId:s,attributionId:d}=r;return{options:{"client-id":a,"merchant-id":s,commit:!0,components:["fastlane","buttons","payment-fields","hosted-fields","three-domain-secure"],currency:t,intent:o},attributes:{"data-client-metadata-id":n.replace(/-/g,""),"data-namespace":"paypalFastlaneSdk","data-partner-attribution-id":d,"data-sdk-client-token":i}}}getPayPalGooglePaySdkScriptConfigOrThrow(e,t,n=!0){const{clientToken:i,initializationData:r}=e;if(!r||!r.clientId)throw new pi(ui.MissingPaymentMethod);const{intent:o,clientId:a,merchantId:s,buyerCountry:d,attributionId:c,isHostedCheckoutEnabled:l,isDeveloperModeApplicable:u}=r,h=l||n;return{options:Object.assign({"client-id":a,"merchant-id":s,commit:h,components:["googlepay"],currency:t,intent:o},u&&{"buyer-country":d}),attributes:{"data-partner-attribution-id":c,"data-client-token":i,"data-namespace":"paypalGooglePay"}}}getPayPalApmSdkConfiguration(e,t){const{initializationData:n}=e;if(!n||!n.clientId)throw new pi(ui.MissingPaymentMethod);const{intent:i,clientId:r,merchantId:o,buyerCountry:a,attributionId:s,isDeveloperModeApplicable:d,availableAlternativePaymentMethods:c=[],enabledAlternativePaymentMethods:l=[]}=n,u=l,h=c.filter(e=>!l.includes(e));return{options:Object.assign({"client-id":r,"merchant-id":o,"enable-funding":u.length>0?u:void 0,"disable-funding":h.length>0?h:void 0,commit:!0,components:["buttons","payment-fields"],currency:t,intent:i},d&&{"buyer-country":a}),attributes:{"data-partner-attribution-id":s,"data-namespace":"paypalApms"}}}getPayPalSdkMessagesConfiguration(e,t){const{initializationData:n}=e;if(!n||!n.clientId)throw new pi(ui.MissingPaymentMethod);const{clientId:i,merchantId:r,attributionId:o,isDeveloperModeApplicable:a,buyerCountry:s}=n;return{options:Object.assign({"client-id":i,"merchant-id":r,components:["messages"],currency:t},a&&{"buyer-country":s}),attributes:{"data-namespace":"paypalMessages","data-partner-attribution-id":o}}}transformConfig(e){let t={};return Object.keys(e).forEach(n=>{const i=e[n];null==i||""===i||Array.isArray(i)&&0===i.length||(t=Object.assign(Object.assign({},t),{[n]:Array.isArray(i)?i.join(","):i}))}),t}}!function(e){e.AUTHORIZE="authorize",e.CAPTURE="capture"}(zg||(zg={})),function(e){e.Succeeded="succeeded",e.Cancelled="cancelled",e.Errored="errored"}(Ng||(Ng={})),function(e){e.Possible="POSSIBLE",e.No="NO",e.Unknown="UNKNOWN",e.Yes="YES"}(xg||(xg={})),function(e){e.paypal="paypal",e.checkout="checkout",e.buynow="buynow",e.pay="pay",e.installment="installment"}(Fg||(Fg={})),function(e){e.gold="gold",e.blue="blue",e.silver="silver",e.black="black",e.white="white"}(Rg||(Rg={})),function(e){e.pill="pill",e.rect="rect"}(Lg||(Lg={})),function(e){e.SUCCEEDED="succeeded",e.FAILED="failed",e.CANCELED="canceled",e.UNRECOGNIZED="unrecognized"}(Bg||(Bg={})),(jg||(jg={})).OXXO="oxxo",function(e){e.Approved="APPROVED",e.Created="CREATED",e.PayerActionRequired="PAYER_ACTION_REQUIRED",e.PollingStop="POLLING_STOP",e.PollingError="POLLING_ERROR"}(Ug||(Ug={}));var Gg=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Hg{constructor(){this.window=window}initializePayPalFastlane(e,t,n){return Gg(this,void 0,void 0,function*(){if(t&&(window.localStorage.setItem("fastlaneEnv","sandbox"),window.localStorage.setItem("axoEnv","sandbox")),!this.window.paypalFastlane){const t={root:{backgroundColorPrimary:"transparent"}};this.window.paypalFastlane=yield e.Fastlane({styles:n||t})}return this.window.paypalFastlane})}getPayPalFastlaneOrThrow(){if(!this.window.paypalFastlane)throw new Oi;return this.window.paypalFastlane}lookupCustomerOrThrow(e){return Gg(this,void 0,void 0,function*(){return this.getPayPalFastlaneOrThrow().identity.lookupCustomerByEmail(e)})}triggerAuthenticationFlowOrThrow(e){return Gg(this,void 0,void 0,function*(){return e?this.getPayPalFastlaneOrThrow().identity.triggerAuthenticationFlow(e):{}})}updateStorageSessionId(e){const t=new Date;t.setDate(t.getDate()+14);const n={expires:t,secure:!0};$r.set("bc-fastlane-sessionId",e,n)}removeStorageSessionId(){$r.remove("bc-fastlane-sessionId")}getStorageSessionId(){return $r.get("bc-fastlane-sessionId")||""}mapPayPalFastlaneProfileToBcCustomerData(e,t){var n,i,r;const{authenticationState:o,profileData:a}=t,s=null===(r=null===(i=null===(n=null==a?void 0:a.card)||void 0===n?void 0:n.paymentSource)||void 0===i?void 0:i.card)||void 0===r?void 0:r.billingAddress,d=null==a?void 0:a.shippingAddress,c=null==a?void 0:a.name,l=null==a?void 0:a.card,u=d?this.mapPayPalToBcAddress(d.address,d.name,d.phoneNumber):void 0,h=s&&c?this.mapPayPalToBcAddress(s,c,null==d?void 0:d.phoneNumber):void 0,p=l?this.mapPayPalToBcInstrument(e,l):[],m=this.filterAddresses([u,h]);return{authenticationState:o||Bg.UNRECOGNIZED,addresses:m,billingAddress:h,shippingAddress:u,instruments:p}}mapPayPalToBcInstrument(e,t){const{id:n,paymentSource:i}=t,{brand:r,expiry:o,lastDigits:a}=i.card,[s,d]=o.split("-");return[{bigpayToken:n,brand:r,defaultInstrument:!1,expiryMonth:d,expiryYear:s,iin:"",last4:a,method:e,provider:e,trustedShippingAddress:!1,untrustedShippingCardVerificationMode:xr.PAN,type:"card"}]}mapBcToPayPalAddress(e){return{company:(null==e?void 0:e.company)||"",addressLine1:(null==e?void 0:e.address1)||"",addressLine2:(null==e?void 0:e.address2)||"",adminArea1:(null==e?void 0:e.stateOrProvinceCode)||(null==e?void 0:e.stateOrProvince)||"",adminArea2:(null==e?void 0:e.city)||"",postalCode:(null==e?void 0:e.postalCode)||"",countryCode:(null==e?void 0:e.countryCode)||""}}mapPayPalToBcAddress(e,t,n,i){const[r,o]=t.fullName.split(" "),a=(null==n?void 0:n.nationalNumber)||"",s=(null==n?void 0:n.countryCode)||"";return{id:Date.now(),type:"paypal-address",firstName:t.firstName||r||"",lastName:t.lastName||o||"",company:e.company||"",address1:e.addressLine1,address2:e.addressLine2||"",city:e.adminArea2,stateOrProvince:e.adminArea1,stateOrProvinceCode:e.adminArea1,country:e.countryCode||"",countryCode:e.countryCode||"",postalCode:e.postalCode,phone:s+a,customFields:i||[]}}filterAddresses(e){return e.reduce((e,t)=>t?e.some(e=>this.isEqualAddresses(e,t))?e:[...e,t]:e,[])}isEqualAddresses(e,t){return A(this.normalizeAddress(e),this.normalizeAddress(t))}normalizeAddress(e){return G(e,["id","phone"])}}var $g,Wg=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Yg{constructor(e,t,n,i,r){this._store=e,this._consignmentActionCreator=t,this._paymentMethodActionCreator=n,this._amazonPayV2PaymentProcessor=i,this._shippingStrategyActionCreator=r}updateAddress(e,t){const n=this._store.getState().shippingAddress.getShippingAddress();if(!n)throw new Qe(We.MissingShippingAddress);const i=Object.assign(Object.assign({},n),{customFields:e.customFields});return this._store.dispatch(this._consignmentActionCreator.updateAddress(i,t))}selectOption(e,t){return this._store.dispatch(this._consignmentActionCreator.selectShippingOption(e,t))}initialize(e){return Wg(this,void 0,void 0,function*(){const{amazonpay:t,methodId:n}=e;if(!t||!n)throw new Lt('Unable to proceed because "options.amazonpay" argument is not provided.');const i=(yield this._store.dispatch(this._paymentMethodActionCreator.loadPaymentMethod(n))).paymentMethods.getPaymentMethodOrThrow(n);yield this._amazonPayV2PaymentProcessor.initialize(i);const{paymentToken:r,region:o}=i.initializationData,a=t.editAddressButtonId;if(r&&a){const e=this._shouldShowLoadingSpinner(o);this._bindEditButton(a,r,"changeAddress",e)}return this._store.getState()})}deinitialize(){return Wg(this,void 0,void 0,function*(){return yield this._amazonPayV2PaymentProcessor.deinitialize(),Promise.resolve(this._store.getState())})}_bindEditButton(e,t,n,i){const r=document.getElementById(e);if(r&&r.parentNode){if(i){const e=r.cloneNode(!0);r.parentNode.replaceChild(e,r),e.addEventListener("click",()=>this._showLoadingSpinner())}this._amazonPayV2PaymentProcessor.bindButton(e,t,n)}}_showLoadingSpinner(){return this._store.dispatch(this._shippingStrategyActionCreator.widgetInteraction(()=>new Promise(pe)),{queueId:"widgetInteraction"})}_shouldShowLoadingSpinner(e){return"us"!==e}}!function(e){e.CVV="cvv",e.PAN="pan"}($g||($g={}));var Kg=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Jg{constructor(e,t,n,i,r,o){this._store=e,this._billingAddressActionCreator=t,this._consignmentActionCreator=n,this._paymentMethodActionCreator=i,this._paymentProviderCustomerActionCreator=r,this._braintreeIntegrationService=o}updateAddress(e,t){return this._store.dispatch(this._consignmentActionCreator.updateAddress(e,t))}selectOption(e,t){return this._store.dispatch(this._consignmentActionCreator.selectShippingOption(e,t))}deinitialize(){return Promise.resolve(this._store.getState())}initialize(e){var t;return Kg(this,void 0,void 0,function*(){const{methodId:n,braintreefastlane:i}=e||{},{onPayPalFastlaneAddressChange:r}=i||{};if(!n)throw new Lt('Unable to proceed because "methodId" argument is not provided.');const o=this._store.getState();if(!o.customer.getCustomerOrThrow().isGuest)return Promise.resolve(this._store.getState());try{if(this._shouldRunAuthenticationFlow()){const e=o.paymentMethods.getPaymentMethod(n),{clientToken:r,isFastlaneStylingEnabled:a}=(null==e?void 0:e.initializationData)||{};r||(yield this._store.dispatch(this._paymentMethodActionCreator.loadPaymentMethod(n)));const s=Fo(a?null===(t=null==e?void 0:e.initializationData)||void 0===t?void 0:t.fastlaneStyles:void 0,null==i?void 0:i.styles);yield this._runAuthenticationFlowOrThrow(n,s)}"function"==typeof r&&(yield this._shouldUseBraintreeFastlaneShippingComponent(n))&&r(()=>this._handleBraintreeFastlaneShippingAddressChange())}catch(e){}return Promise.resolve(this._store.getState())})}_shouldRunAuthenticationFlow(){var e;const t=this._store.getState(),n=null===(e=t.cart.getCart())||void 0===e?void 0:e.id,i=$r.get("bc-fastlane-sessionId")||"",r=t.paymentProviderCustomer.getPaymentProviderCustomer(),o=_l(r)?r:{};return(null==o?void 0:o.authenticationState)!==qi.CANCELED&&!(null==o?void 0:o.authenticationState)&&i===n}_runAuthenticationFlowOrThrow(e,t){var n,i;return Kg(this,void 0,void 0,function*(){const r=this._store.getState(),o=r.cart.getCartOrThrow(),a=r.countries.getCountries()||[],s=r.paymentMethods.getPaymentMethodOrThrow(e),{clientToken:d,config:c}=s;if(!d)throw new Qe(We.MissingPaymentMethod);this._braintreeIntegrationService.initialize(d);const l=yield this._braintreeIntegrationService.getBraintreeFastlane(null==o?void 0:o.id,null==c?void 0:c.testMode,t),u=(null===(n=r.customer.getCustomer())||void 0===n?void 0:n.email)||(null===(i=r.billingAddress.getBillingAddress())||void 0===i?void 0:i.email);if(!u)return;const{lookupCustomerByEmail:h,triggerAuthenticationFlow:p}=l.identity,{customerContextId:m}=yield h(u);if(!m)return;const{authenticationState:y,profileData:g}=yield p(m);if(y===qi.CANCELED)return yield this._store.dispatch(this._paymentProviderCustomerActionCreator.updatePaymentProviderCustomer({authenticationState:y,addresses:[],instruments:[]})),void $r.remove("bc-fastlane-sessionId");const v=this._getPayPalBillingAddress(g),f=g.shippingAddress,S=g.shippingAddress.phoneNumber,w=this._mapPayPalToBcAddress(f,a,S),_=this._mapPayPalToBcAddress(v,a,S);if(_&&w){const t=this._mergeShippingAndBillingAddresses(w,_),n=this._mapPayPalToBcInstrument(e,g.card),i=n?[n]:[];yield this._store.dispatch(this._paymentProviderCustomerActionCreator.updatePaymentProviderCustomer({authenticationState:y,addresses:t,instruments:i})),_&&(yield this._store.dispatch(this._billingAddressActionCreator.updateAddress(Object.assign(Object.assign({},_),{id:String(_.id)})))),w&&o.lineItems.physicalItems.length>0&&(yield this._store.dispatch(this._consignmentActionCreator.updateAddress(w)))}})}_getPayPalBillingAddress(e){const{name:t,card:n}=e,i=n.paymentSource.card.billingAddress;return Object.assign(Object.assign({},i),{firstName:i.firstName||(null==t?void 0:t.firstName),lastName:i.lastName||(null==t?void 0:t.lastName)})}_getCountryNameByCountryCode(e,t){const n=t.find(t=>t.code===e);return(null==n?void 0:n.name)||""}_mapPayPalToBcAddress(e,t,n,i){return{id:Number(Date.now()),type:"paypal-address",firstName:e.firstName||"",lastName:e.lastName||"",company:e.company||"",address1:e.streetAddress,address2:e.extendedAddress||"",city:e.locality,stateOrProvince:e.region,stateOrProvinceCode:e.region,country:this._getCountryNameByCountryCode(e.countryCodeAlpha2,t),countryCode:e.countryCodeAlpha2,postalCode:e.postalCode,phone:n||"",customFields:i||[]}}_normalizeAddress(e){return G(e,["id"])}_mergeShippingAndBillingAddresses(e,t){return A(this._normalizeAddress(e),this._normalizeAddress(t))?[e]:[e,t]}_mapPayPalToBcInstrument(e,t){if(!t)return;const{id:n,paymentSource:i}=t,{brand:r,expiry:o,lastDigits:a}=i.card,[s,d]=o.split("-");return{bigpayToken:n,brand:r,defaultInstrument:!1,expiryMonth:d,expiryYear:s,iin:"",last4:a,method:e,provider:e,trustedShippingAddress:!1,untrustedShippingCardVerificationMode:$g.CVV,type:"card"}}_handleBraintreeFastlaneShippingAddressChange(){var e;return Kg(this,void 0,void 0,function*(){const t=this._store.getState().countries.getCountries()||[],n=yield this._braintreeIntegrationService.getBraintreeFastlane(),{selectionChanged:i,selectedAddress:r}=yield n.profile.showShippingAddressSelector();if(i){const n=this._store.getState(),i=n.shippingAddress.getShippingAddressesOrThrow(),o=n.paymentProviderCustomer.getPaymentProviderCustomer(),a=_l(o)?o:{},s=this._mapPayPalToBcAddress(r,t,r.phoneNumber,null===(e=i[0])||void 0===e?void 0:e.customFields);if(s){const e=this._filterAddresses([s,...a.addresses||[]]);return yield this._store.dispatch(this._paymentProviderCustomerActionCreator.updatePaymentProviderCustomer(Object.assign(Object.assign({},a),{addresses:e}))),yield this._store.dispatch(this._consignmentActionCreator.updateAddress(s)),s}}})}_filterAddresses(e){return e.reduce((e,t)=>t?e.some(e=>this._isEqualAddresses(e,t))?e:[...e,t]:e,[])}_isEqualAddresses(e,t){return A(this._normalizeAddress(e),this._normalizeAddress(t))}_shouldUseBraintreeFastlaneShippingComponent(e){var t;return Kg(this,void 0,void 0,function*(){const n=this._store.getState().paymentProviderCustomer.getPaymentProviderCustomer(),i=_l(n)?n:{};if(i&&i!==qi.CANCELED){const n=yield this._getBraintreePaymentMethodOrThrow(e);return!!(null===(t=null==n?void 0:n.initializationData)||void 0===t?void 0:t.isFastlaneEnabled)}return!1})}_getBraintreePaymentMethodOrThrow(e){return Kg(this,void 0,void 0,function*(){const t=this._store.getState().paymentMethods.getPaymentMethod(e);return t||(yield this._store.dispatch(this._paymentMethodActionCreator.loadPaymentMethod(e))).paymentMethods.getPaymentMethodOrThrow(e)})}}class Zg{constructor(e,t){this._store=e,this._consignmentActionCreator=t}updateAddress(e,t){return this._store.dispatch(this._consignmentActionCreator.updateAddress(e,t))}selectOption(e,t){return this._store.dispatch(this._consignmentActionCreator.selectShippingOption(e,t))}initialize(){return Promise.resolve(this._store.getState())}deinitialize(){return Promise.resolve(this._store.getState())}}function Qg(e){return"string"!=typeof e}var Xg=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class ev{constructor(e,t,n,i,r,o,a){this._store=e,this._billingAddressActionCreator=t,this._consignmentActionCreator=n,this._paymentMethodActionCreator=i,this._paymentProviderCustomerActionCreator=r,this._paypalCommerceSdk=o,this._paypalCommerceFastlaneUtils=a}updateAddress(e,t){return this._store.dispatch(this._consignmentActionCreator.updateAddress(e,t))}selectOption(e,t){return this._store.dispatch(this._consignmentActionCreator.selectShippingOption(e,t))}deinitialize(){return Promise.resolve(this._store.getState())}initialize(e){return Xg(this,void 0,void 0,function*(){const{methodId:t,paypalcommercefastlane:n}=e||{},{onPayPalFastlaneAddressChange:i,styles:r}=n||{};if(!t)throw new Lt('Unable to proceed because "methodId" argument is not provided.');const o=this._store.getState().customer.getCustomerOrThrow();if(!(null==o?void 0:o.isGuest))return Promise.resolve(this._store.getState());try{this._shouldAuthenticateUserWithFastlane()&&(yield this._initializePayPalSdk(t,r),yield this._authenticateUserWithFastlaneOtp(t)),"function"==typeof i&&this._shouldUsePayPalFastlaneShippingComponent()&&(yield this._initializePayPalSdk(t,r),i(()=>this._handlePayPalShippingAddressChange()))}catch(e){}return Promise.resolve(this._store.getState())})}_getPayPalPaymentMethodOrThrow(e){return Xg(this,void 0,void 0,function*(){const t=this._store.getState().paymentMethods.getPaymentMethod(e);return t||(yield this._store.dispatch(this._paymentMethodActionCreator.loadPaymentMethod(e))).paymentMethods.getPaymentMethodOrThrow(e)})}_getPayPalCustomerAuthenticationState(){const e=this._store.getState().paymentProviderCustomer.getPaymentProviderCustomerOrThrow();var t;return((t=e)&&("authenticationState"in t||"addresses"in t||"instruments"in t)?e:{}).authenticationState}_shouldAuthenticateUserWithFastlane(){const e=this._store.getState().cart.getCartOrThrow(),t=this._paypalCommerceFastlaneUtils.getStorageSessionId();return!this._getPayPalCustomerAuthenticationState()&&t===e.id}_shouldUsePayPalFastlaneShippingComponent(){const e=this._getPayPalCustomerAuthenticationState();return!!e&&e!==Bg.CANCELED}_initializePayPalSdk(e,t){var n;return Xg(this,void 0,void 0,function*(){const i=this._store.getState().cart.getCartOrThrow(),r=yield this._getPayPalPaymentMethodOrThrow(e),{isDeveloperModeApplicable:o,isFastlaneStylingEnabled:a}=(null==r?void 0:r.initializationData)||{},s=!!o,d=function(e,t){if(t||e)return function(e){var t,n;const i={},r=H(e.root,Qg),o=H(e.input,Qg),a=H(e.toggle,Qg),s=H(null===(t=e.text)||void 0===t?void 0:t.body,Qg),d=H(null===(n=e.text)||void 0===n?void 0:n.caption,Qg),c=e.branding;return Object.keys(r).length&&(i.root=r),Object.keys(o).length&&(i.input=o),Object.keys(a).length&&(i.toggle=a),Object.keys(s).length&&(i.text={},i.text.body=s),Object.keys(d).length&&(i.text=Object.assign({},i.text),i.text.caption=d),c&&(i.branding=c),i}(function(e,t){var n,i,r,o,a,s,d,c,l,u,h,p,m,y,g,v,f,S,w,_,C,I;return{root:{backgroundColorPrimary:(null==e?void 0:e.fastlaneRootSettingsBackgroundColor)||(null===(n=null==t?void 0:t.root)||void 0===n?void 0:n.backgroundColorPrimary),errorColor:(null==e?void 0:e.fastlaneRootSettingsErrorColor)||(null===(i=null==t?void 0:t.root)||void 0===i?void 0:i.errorColor),fontFamily:(null==e?void 0:e.fastlaneRootSettingsFontFamily)||(null===(r=null==t?void 0:t.root)||void 0===r?void 0:r.fontFamily),fontSizeBase:(null==e?void 0:e.fastlaneRootSettingsFontSize)||(null===(o=null==t?void 0:t.root)||void 0===o?void 0:o.fontSizeBase),padding:(null==e?void 0:e.fastlaneRootSettingsPadding)||(null===(a=null==t?void 0:t.root)||void 0===a?void 0:a.padding),primaryColor:(null==e?void 0:e.fastlaneRootSettingsPrimaryColor)||(null===(s=null==t?void 0:t.root)||void 0===s?void 0:s.primaryColor)},input:{borderRadius:(null==e?void 0:e.fastlaneInputSettingsBorderRadius)||(null===(d=null==t?void 0:t.input)||void 0===d?void 0:d.borderRadius),borderColor:(null==e?void 0:e.fastlaneInputSettingsBorderColor)||(null===(c=null==t?void 0:t.input)||void 0===c?void 0:c.borderColor),focusBorderColor:(null==e?void 0:e.fastlaneInputSettingsFocusBorderBase)||(null===(l=null==t?void 0:t.input)||void 0===l?void 0:l.focusBorderColor),backgroundColor:(null==e?void 0:e.fastlaneInputSettingsBackgroundColor)||(null===(u=null==t?void 0:t.input)||void 0===u?void 0:u.backgroundColor),borderWidth:(null==e?void 0:e.fastlaneInputSettingsBorderWidth)||(null===(h=null==t?void 0:t.input)||void 0===h?void 0:h.borderWidth),textColorBase:(null==e?void 0:e.fastlaneInputSettingsTextColorBase)||(null===(p=null==t?void 0:t.input)||void 0===p?void 0:p.textColorBase)},toggle:{colorPrimary:(null==e?void 0:e.fastlaneToggleSettingsColorPrimary)||(null===(m=null==t?void 0:t.toggle)||void 0===m?void 0:m.colorPrimary),colorSecondary:(null==e?void 0:e.fastlaneToggleSettingsColorSecondary)||(null===(y=null==t?void 0:t.toggle)||void 0===y?void 0:y.colorSecondary)},text:{body:{color:(null==e?void 0:e.fastlaneTextBodySettingsColor)||(null===(v=null===(g=null==t?void 0:t.text)||void 0===g?void 0:g.body)||void 0===v?void 0:v.color),fontSize:(null==e?void 0:e.fastlaneTextBodySettingsFontSize)||(null===(S=null===(f=null==t?void 0:t.text)||void 0===f?void 0:f.body)||void 0===S?void 0:S.fontSize)},caption:{color:(null==e?void 0:e.fastlaneTextCaptionSettingsColor)||(null===(_=null===(w=null==t?void 0:t.text)||void 0===w?void 0:w.caption)||void 0===_?void 0:_.color),fontSize:(null==e?void 0:e.fastlaneTextCaptionSettingsFontSize)||(null===(I=null===(C=null==t?void 0:t.text)||void 0===C?void 0:C.caption)||void 0===I?void 0:I.fontSize)}},branding:(null==e?void 0:e.fastlaneBrandingSettings)||(null==t?void 0:t.branding)}}(e,t))}(a?null===(n=null==r?void 0:r.initializationData)||void 0===n?void 0:n.fastlaneStyles:{},t),c=yield this._paypalCommerceSdk.getPayPalFastlaneSdk(r,i.currency.code,i.id);yield this._paypalCommerceFastlaneUtils.initializePayPalFastlane(c,s,d)})}_authenticateUserWithFastlaneOtp(e){var t,n;return Xg(this,void 0,void 0,function*(){const i=this._store.getState(),r=i.cart.getCartOrThrow(),o=null===(t=i.customer.getCustomer())||void 0===t?void 0:t.email,a=null===(n=i.billingAddress.getBillingAddress())||void 0===n?void 0:n.email,s=o||a||"",{customerContextId:d}=yield this._paypalCommerceFastlaneUtils.lookupCustomerOrThrow(s),c=yield this._paypalCommerceFastlaneUtils.triggerAuthenticationFlowOrThrow(d),{authenticationState:l,addresses:u,billingAddress:h,shippingAddress:p,instruments:m}=this._paypalCommerceFastlaneUtils.mapPayPalFastlaneProfileToBcCustomerData(e,c);yield this._store.dispatch(this._paymentProviderCustomerActionCreator.updatePaymentProviderCustomer({authenticationState:l,addresses:u,instruments:m})),c.authenticationState===Bg.CANCELED?this._paypalCommerceFastlaneUtils.removeStorageSessionId():this._paypalCommerceFastlaneUtils.updateStorageSessionId(r.id),h&&(yield this._store.dispatch(this._billingAddressActionCreator.updateAddress(Object.assign(Object.assign({},h),{id:String(h.id)})))),p&&r.lineItems.physicalItems.length>0&&(yield this._store.dispatch(this._consignmentActionCreator.updateAddress(p)))})}_handlePayPalShippingAddressChange(){var e;return Xg(this,void 0,void 0,function*(){const t=this._paypalCommerceFastlaneUtils.getPayPalFastlaneOrThrow(),{selectionChanged:n,selectedAddress:i}=yield t.profile.showShippingAddressSelector();if(n){const t=this._store.getState(),n=t.shippingAddress.getShippingAddressesOrThrow(),o=t.paymentProviderCustomer.getPaymentProviderCustomer(),a=(r=o)&&("authenticationState"in r||"addresses"in r||"instruments"in r)?o:{},s=this._paypalCommerceFastlaneUtils.mapPayPalToBcAddress(i.address,i.name,i.phoneNumber,null===(e=n[0])||void 0===e?void 0:e.customFields),d=this._paypalCommerceFastlaneUtils.filterAddresses([s,...a.addresses||[]]);return yield this._store.dispatch(this._paymentProviderCustomerActionCreator.updatePaymentProviderCustomer(Object.assign(Object.assign({},a),{addresses:d}))),yield this._store.dispatch(this._consignmentActionCreator.updateAddress(s)),s}var r})}}var tv;class nv{constructor(e,t,n,i){this._store=e,this._stripeUPEScriptLoader=t,this._consignmentActionCreator=n,this._paymentMethodActionCreator=i}updateAddress(e,t){return this._store.dispatch(this._consignmentActionCreator.updateAddress(e,t))}selectOption(e,t){return this._store.dispatch(this._consignmentActionCreator.selectShippingOption(e,t))}initialize(e){return t=this,n=void 0,r=function*(){if(!e.stripeupe)throw new Lt('Unable to proceed because "options" argument is not provided.');const{container:t,gatewayId:n,methodId:i,onChangeShipping:r,getStyles:o,availableCountries:a,getStripeState:s}=e.stripeupe;Object.entries(e.stripeupe).forEach(([e,t])=>{if(!t)throw new Lt(`Unable to proceed because "${e}" argument is not provided.`)});const d=(yield this._store.dispatch(this._paymentMethodActionCreator.loadPaymentMethod(n,{params:{method:i}}))).paymentMethods.getPaymentMethodOrThrow(i,n),{initializationData:c}=d;if(!d||!d.initializationData.stripePublishableKey||!d.clientToken)throw new Qe(We.MissingPaymentMethod);let l;this._stripeUPEClient=yield this._stripeUPEScriptLoader.getStripeClient(c,Vs,Gs);const u=o&&o(),{form:{getShippingAddressFields:h},shippingAddress:{getShippingAddress:p}}=this._store.getState(),m=h([],"");l=u?{variables:{colorPrimary:u.fieldInnerShadow,colorBackground:u.fieldBackground,colorText:u.labelText,colorDanger:u.fieldErrorText,colorTextSecondary:u.labelText,colorTextPlaceholder:u.fieldPlaceholderText,spacingUnit:"4px",borderRadius:"4px"},rules:{".Input":{borderColor:u.fieldBorder,color:u.fieldText,boxShadow:u.fieldInnerShadow}}}:{variables:{spacingUnit:"4px",borderRadius:"4px"}},this._stripeElements=yield this._stripeUPEScriptLoader.getElements(this._stripeUPEClient,{clientSecret:d.clientToken,appearance:l});const y=p(),g=m.find(e=>"phone"===e.name);let v={mode:Hs.SHIPPING,allowedCountries:[a],fields:{phone:"always"},validation:{phone:{required:g&&g.required?"always":"never"}},display:{name:$s.SPLIT}};if(y){const{stateOrProvinceCode:e,countryCode:t,lastName:n,firstName:i,phone:r,address1:o,address2:a,city:d,postalCode:c}=y,l=e&&t?s(t,e):e;v=Object.assign(Object.assign({},v),{defaultValues:{firstName:i,lastName:n,phone:r,address:{line1:o,line2:a,city:d,state:l,postal_code:c,country:t}}})}let f=this._stripeElements.getElement(Ks.SHIPPING);return f&&f.destroy(),f=this._stripeElements.create(Ks.SHIPPING,v),f.on(Zs.CHANGE,e=>{if(!("isNewAddress"in e))throw new Qe(We.MissingShippingAddress);(e.complete||e.isNewAddress)&&(this.sendData&&clearTimeout(this.sendData),this.sendData=setTimeout(()=>{r(Object.assign(Object.assign({},e),{phoneFieldRequired:!!g&&g.required}))},1e3))}),f.mount(`#${t}`),Promise.resolve(this._store.getState())},new((i=void 0)||(i=Promise))(function(e,o){function a(e){try{d(r.next(e))}catch(e){o(e)}}function s(e){try{d(r.throw(e))}catch(e){o(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((r=r.apply(t,n||[])).next())});var t,n,i,r}deinitialize(){return Promise.resolve(this._store.getState())}}!function(e){e.SendSignInEmailRequested="SEND_SIGNIN_EMAIL_REQUESTED",e.SendSignInEmailSucceeded="SEND_SIGNIN_EMAIL_SUCCEEDED",e.SendSignInEmailFailed="SEND_SIGNIN_EMAIL_FAILED"}(tv||(tv={}));class iv{constructor(e){this._requestSender=e}sendSignInEmail(e,t){return se(me(l(tv.SendSignInEmailRequested)),de(()=>{return n=this,i=void 0,o=function*(){const{body:n}=yield this._requestSender.sendSignInEmail(e,t);return l(tv.SendSignInEmailSucceeded,n)},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o})).pipe(ge(e=>Je(tv.SendSignInEmailFailed,e)))}}class rv{constructor(e){this._requestSender=e}sendSignInEmail({email:e,redirectUrl:t},{timeout:n}={}){const i=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.post("/login.php?action=passwordless_login",{body:{email:e,redirect_url:t||Mn(window.top?window.top.location.href:"").pathname},headers:i,timeout:n})}}class ov{constructor(e){this._messageCustomizer=e}transform(e){var t;return e.message=(t=this._messageCustomizer(e))?t.split(/(?:\r\n|\n|\r)/).map(e=>e.replace(/^\s+/gm,"")).join(" ").trim():"",e}}let av=class{constructor(e,t,n,i,r,o,a,s,d,c,l,u,h,p,m,y,g,v,f,S,w,_,C,I,b,P,O,E){this._store=e,this._storeProjection=t,this._extensionMessenger=n,this._extensionEventBroadcaster=i,this._billingAddressActionCreator=r,this._checkoutActionCreator=o,this._configActionCreator=a,this._customerActionCreator=s,this._consignmentActionCreator=d,this._countryActionCreator=c,this._couponActionCreator=l,this._customerStrategyActionCreator=u,this._errorActionCreator=h,this._giftCertificateActionCreator=p,this._instrumentActionCreator=m,this._orderActionCreator=y,this._paymentMethodActionCreator=g,this._paymentStrategyActionCreator=v,this._pickupOptionActionCreator=f,this._shippingCountryActionCreator=S,this._shippingStrategyActionCreator=w,this._signInEmailActionCreator=_,this._spamProtectionActionCreator=C,this._storeCreditActionCreator=I,this._subscriptionsActionCreator=b,this._formFieldsActionCreator=P,this._extensionActionCreator=O,this._workerExtensionMessenger=E,this._errorTransformer=function(e="development"===ht()){return new ov(t=>{if(!e||!function(e){return!(!e.subtype&&!e.type)}(t))return t.message;switch(t.subtype||t.type){case We.MissingConsignments:return`\n ${t.message}\n The data could be unavailable because no shipping address has been provided.\n To fix this, create a consignment or update the shipping address before performing\n the same action again.\n `;case We.MissingCart:case We.MissingCheckout:return`\n ${t.message}\n The data could be unavailable because it has not loaded from the server yet.\n To fix this issue, you can try calling \`CheckoutService#loadCheckout\`\n before performing the same action again.\n `;case We.MissingCheckoutConfig:return`\n ${t.message}\n The data could be unavailable because it has not loaded from the server yet.\n To fix this issue, you need to make sure \`CheckoutService\` is initialized\n properly by calling \`CheckoutService#loadCheckout\` before performing any\n other actions.\n `;case We.MissingOrder:return`\n ${t.message}\n The data could be unavailable because it has not loaded from the server yet.\n To fix this issue, you can try calling \`CheckoutService#loadOrder\`\n before performing the same action again.\n `;case We.MissingOrderId:return`\n ${t.message}\n The data could be unavailable because no order has been created yet. You have\n to first create the order before you can perform the action.\n `;case We.MissingPaymentMethod:return`\n ${t.message}\n The data could be unavailable because it has not loaded from the server, or\n configured by the merchant yet. To fix the former issue, you can try calling\n \`CheckoutService#loadPaymentMethods\` before performing the same action again.\n `;case gn.CustomerNotInitialized:return"\n In order to initialize the customer step of checkout, you need to call\n `CheckoutService#initializeCustomer`. Afterwards, you should be able to\n submit customer details.\n ";case gn.PaymentNotInitialized:return`\n ${t.message}\n In order to initialize the payment step of checkout, you need to call\n \`CheckoutService#initializePayment\`. Afterwards, you should be able to\n submit payment details.\n `;case gn.ShippingNotInitialized:return`\n ${t.message}\n In order to initialize the shipping step of checkout, you need to call\n \`CheckoutService#initializeShipping\`. Afterwards, you should be able to\n submit shipping details.\n `;default:return t.message}})}()}getState(){return this._storeProjection.getState()}notifyState(){this._storeProjection.notifyState()}subscribe(e,...t){return this._storeProjection.subscribe(e,...t)}hydrateInitialState(e){return this._dispatch(this._checkoutActionCreator.hydrateInitialState(e))}loadCheckout(e,t){return this._dispatch(e?this._checkoutActionCreator.loadCheckout(e,t):this._checkoutActionCreator.loadDefaultCheckout(t))}updateCheckout(e,t){const n=this._checkoutActionCreator.updateCheckout(e,t);return this._dispatch(n)}loadOrder(e,t){const n=this._orderActionCreator.loadOrder(e,t),i=this._formFieldsActionCreator.loadFormFields(t),r=this._configActionCreator.loadConfig(t);return Promise.all([this._dispatch(n),this._dispatch(r,{queueId:"config"}),this._dispatch(i,{queueId:"formFields"})]).then(()=>this.getState())}submitOrder(e,t){const n=this._paymentStrategyActionCreator.execute(e,t);return this._dispatch(n,{queueId:"paymentStrategy"})}finalizeOrderIfNeeded(e){const t=this._paymentStrategyActionCreator.finalize(e);return this._dispatch(t,{queueId:"paymentStrategy"})}loadPaymentMethods(e){const t=this._paymentMethodActionCreator.loadPaymentMethods(e);return this._dispatch(t,{queueId:"paymentMethods"})}loadPaymentMethodByIds(e,t){const n=this._paymentMethodActionCreator.loadPaymentMethodsById(e,t);return this._dispatch(n,{queueId:"paymentMethods"})}loadPaymentMethod(e,t){const n=this._paymentMethodActionCreator.loadPaymentMethod(e,t);return this._dispatch(n,{queueId:"paymentMethods"})}initializePayment(e){const t=this._paymentStrategyActionCreator.initialize(e);return this._dispatch(t,{queueId:"paymentStrategy"})}deinitializePayment(e){const t=this._paymentStrategyActionCreator.deinitialize(e);return this._dispatch(t,{queueId:"paymentStrategy"})}loadBillingCountries(e){const t=this._countryActionCreator.loadCountries(e);return this._dispatch(t,{queueId:"billingCountries"})}loadShippingCountries(e){const t=this._shippingCountryActionCreator.loadCountries(e);return this._dispatch(t,{queueId:"shippingCountries"})}loadPickupOptions(e){const t=this._pickupOptionActionCreator.loadPickupOptions(e);return this._dispatch(t,{queueId:"pickupOptions"})}loadBillingAddressFields(e){return this.loadBillingCountries(e)}loadShippingAddressFields(e){return this.loadShippingCountries(e)}initializeCustomer(e){const t=this._customerStrategyActionCreator.initialize(e);return this._dispatch(t,{queueId:"customerStrategy"})}deinitializeCustomer(e){const t=this._customerStrategyActionCreator.deinitialize(e);return this._dispatch(t,{queueId:"customerStrategy"})}sendSignInEmail(e,t){const n=this._signInEmailActionCreator.sendSignInEmail(e,t);return this._dispatch(n,{queueId:"signInEmail"})}createCustomerAccount(e,t){const n=this._customerActionCreator.createCustomer(e,t);return this._dispatch(n)}createCustomerAddress(e,t){const n=this._customerActionCreator.createAddress(e,t);return this._dispatch(n)}updateSubscriptions(e,t){const n=this._subscriptionsActionCreator.updateSubscriptions(e,t);return this._dispatch(n,{queueId:"subscriptions"})}continueAsGuest(e,t){const n=this._billingAddressActionCreator.continueAsGuest(e,t);return this._dispatch(n)}signInCustomer(e,t){const n=this._customerStrategyActionCreator.signIn(e,t);return this._dispatch(n,{queueId:"customerStrategy"})}signOutCustomer(e){const t=this._customerStrategyActionCreator.signOut(e);return this._dispatch(t,{queueId:"customerStrategy"})}executePaymentMethodCheckout(e){const t=this._customerStrategyActionCreator.executePaymentMethodCheckout(e);return this._dispatch(t,{queueId:"customerStrategy"})}loadShippingOptions(e){const t=this._consignmentActionCreator.loadShippingOptions(e);return this._dispatch(t)}initializeShipping(e){const t=this._shippingStrategyActionCreator.initialize(e);return this._dispatch(t,{queueId:"shippingStrategy"})}deinitializeShipping(e){const t=this._shippingStrategyActionCreator.deinitialize(e);return this._dispatch(t,{queueId:"shippingStrategy"})}selectShippingOption(e,t){const n=this._shippingStrategyActionCreator.selectOption(e,t);return this._dispatch(n,{queueId:"shippingStrategy"})}updateShippingAddress(e,t){const n=this._shippingStrategyActionCreator.updateAddress(e,t);return this._dispatch(n,{queueId:"shippingStrategy"})}createConsignments(e,t){const n=this._consignmentActionCreator.createConsignments(e,t);return this._dispatch(n,{queueId:"shippingStrategy"})}deleteConsignment(e,t){const n=this._consignmentActionCreator.deleteConsignment(e,t);return this._dispatch(n,{queueId:"shippingStrategy"})}updateConsignment(e,t){const n=this._consignmentActionCreator.updateConsignment(e,t);return this._dispatch(n,{queueId:"shippingStrategy"})}assignItemsToAddress(e,t){const n=this._consignmentActionCreator.assignItemsByAddress(e,t);return this._dispatch(n,{queueId:"shippingStrategy"})}unassignItemsToAddress(e,t){const n=this._consignmentActionCreator.unassignItemsByAddress(e,t);return this._dispatch(n,{queueId:"shippingStrategy"})}selectConsignmentShippingOption(e,t,n){const i=this._consignmentActionCreator.updateShippingOption({id:e,shippingOptionId:t},n);return this._dispatch(i,{queueId:"shippingStrategy"})}updateBillingAddress(e,t={}){const n=this._billingAddressActionCreator.updateAddress(e,t);return this._dispatch(n)}applyStoreCredit(e,t){const n=this._storeCreditActionCreator.applyStoreCredit(e,t);return this._dispatch(n)}applyCoupon(e,t){const n=this._couponActionCreator.applyCoupon(e,t);return this._dispatch(n)}removeCoupon(e,t){const n=this._couponActionCreator.removeCoupon(e,t);return this._dispatch(n)}applyGiftCertificate(e,t){const n=this._giftCertificateActionCreator.applyGiftCertificate(e,t);return this._dispatch(n)}removeGiftCertificate(e,t){const n=this._giftCertificateActionCreator.removeGiftCertificate(e,t);return this._dispatch(n)}loadInstruments(){const e=this._instrumentActionCreator.loadInstruments();return this._dispatch(e)}deleteInstrument(e){const t=this._instrumentActionCreator.deleteInstrument(e);return this._dispatch(t).then(()=>this.loadInstruments())}clearError(e){const t=this._errorActionCreator.clearError(e);return this._dispatch(t)}initializeSpamProtection(e){const t=this._spamProtectionActionCreator.initialize(e);return this._dispatch(t,{queueId:"spamProtection"})}executeSpamCheck(){const e=this._spamProtectionActionCreator.verifyCheckoutSpamProtection();return this._dispatch(e,{queueId:"spamProtection"})}loadExtensions(e){const t=this._extensionActionCreator.loadExtensions(e);return this._dispatch(t,{queueId:"extensions"})}renderExtension(e,t){return n=this,i=void 0,o=function*(){const n=this._extensionActionCreator.renderExtension(e,t,this._workerExtensionMessenger),i=yield this._dispatch(n,{queueId:"extensions"});return this._extensionEventBroadcaster.listen(),i},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}clearExtensionCache(e){this._extensionMessenger.clearCacheByRegion(e)}postMessageToExtension(e,t){this._extensionMessenger.post(e,t)}handleExtensionCommand(e,t,n){return this._extensionMessenger.listenForCommand(e,t,n)}handleExtensionQuery(e,t,n){return this._extensionMessenger.listenForQuery(e,t,n)}_dispatch(e,t){return this._store.dispatch(e,t).then(()=>this.getState()).catch(e=>{throw this._errorTransformer.transform(e)})}};av=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([Kn],av);const sv=av;function dv(e){return(...t)=>{const n=t.pop();return e(...t,(...e)=>{const t=n(...e);return"function"==typeof t?Pe(t):t})}}const cv=dv(Fe),lv=dv(Re(Le,(e,t)=>Be(e,t)));class uv extends _t{constructor(e,t){super(e,{message:t||"An unexpected error has occurred. The checkout process cannot continue as a result."}),this.name="UnrecoverableError",this.type="unrecoverable"}}function hv(e){return e.reduce((e,t)=>t?[...e,t]:e,[]).join(" ")}class pv extends _t{constructor(e){super(e,{message:"The request has timed out or aborted."}),this.name="TimeoutError",this.type="timeout"}}class mv{constructor(){this._factoryMethods={},this.register("default",(e,t)=>new _t(e,{message:t})),this.register("internal",(e,t)=>function(e,t){const{body:n}=e,{errors:i=[]}=n;return new _t(e,{message:hv(i)||n.detail||n.title||t,errors:i.length?i.map(e=>({code:n.type,message:e})):[{code:n.type,message:n.detail||n.title}]})}(e,t)),this.register("storefront",(e,t)=>function(e,t){const{body:n}=e;return new _t(e,{message:t||n.detail||n.title,errors:[{code:n.code||n.type,message:n.detail||n.title}]})}(e,t)),this.register("payment",(e,t)=>qm(e,t)),this.register("timeout",e=>new pv(e))}register(e,t){this._factoryMethods[e]=t}createError(e,t){return(this._factoryMethods[this._getType(e)]||this._factoryMethods.default)(e,t)}_getType(e){if(0===e.status)return"timeout";if(this._isStorefrontErrorResponseBody(e.body))return"storefront";if(this._isInternalErrorResponseBody(e.body)){const t=L(e.body.type.split("/"));return t&&this._factoryMethods[t]?t:"internal"}const t=L(e.body&&e.body.errors);return t&&t.code&&this._factoryMethods[t.code]?t.code:"payment"}_isStorefrontErrorResponseBody(e){const t=e;return!this._isInternalErrorResponseBody(e)&&"string"==typeof t.title&&"string"==typeof t.type&&"number"==typeof t.status&&"string"==typeof t.detail}_isInternalErrorResponseBody(e){const t=e;return"object"==typeof t.errors&&"string"==typeof t.title&&"string"==typeof t.type&&"number"==typeof t.status}}function yv(e,t){return Array.isArray(e)?e.map(e=>yv(e,t)):M(e)?X(H(e,t),(e,n,i)=>{e[i]=yv(n,t)},{}):e}function gv(e,t){return function(e){return e.type===dt.ClearError}(t)?yv(e,e=>e===t.payload):e}function vv(e,t,n){return e===t||(e&&t&&"object"==typeof e&&"object"==typeof t?Array.isArray(e)&&Array.isArray(t)?function(e,t,n){if(e.length!==t.length)return!1;for(let i=0,r=e.length;i<r;i++)if(!vv(e[i],t[i],n))return!1;return!0}(e,t,n):!Array.isArray(e)&&!Array.isArray(t)&&(e instanceof Date&&t instanceof Date?function(e,t){return e.getTime()===t.getTime()}(e,t):!(e instanceof Date||t instanceof Date)&&(e instanceof RegExp&&t instanceof RegExp?function(e,t){return e.toString()===t.toString()}(e,t):!(e instanceof RegExp||t instanceof RegExp)&&function(e,t,n){const i=n&&n.keyFilter,r=i?Object.keys(e).filter(i):Object.keys(e),o=i?Object.keys(t).filter(i):Object.keys(t);if(r.length!==o.length)return!1;for(let i=0,o=r.length;i<o;i++){const o=r[i];if(!Object.prototype.hasOwnProperty.call(t,o))return!1;if(!vv(e[o],t[o],n))return!1}return!0}(e,t,n))):e===t)}function fv(e,t){return void 0===t||vv(e,t)?e:t}function Sv(e,t,n){return e&&Object.prototype.hasOwnProperty.call(e,t)&&vv(e[t],n)?e:Object.assign(Object.assign({},e),{[t]:n})}const wv={errors:{},statuses:{}};function _v(e=wv,t){return d({data:Cv,errors:c(Iv,gv),statuses:bv})(e,t)}function Cv(e,t){var n,i;switch(t.type){case Ye.UpdateBillingAddressSucceeded:case Ye.ContinueAsGuestSucceeded:case Vt.LoadCheckoutSucceeded:return fv(e,t.payload&&t.payload.billingAddress);case Gt.HydrateInitialState:return fv(e,null===(i=null===(n=t.payload)||void 0===n?void 0:n.checkout)||void 0===i?void 0:i.billingAddress);default:return e}}function Iv(e=wv.errors,t){switch(t.type){case Vt.LoadCheckoutRequested:case Vt.LoadCheckoutSucceeded:return Sv(e,"loadError",void 0);case Vt.LoadCheckoutFailed:return Sv(e,"loadError",t.payload);case Ye.UpdateBillingAddressRequested:case Ye.UpdateBillingAddressSucceeded:return Sv(e,"updateError",void 0);case Ye.UpdateBillingAddressFailed:return Sv(e,"updateError",t.payload);case dg.UpdateSubscriptionsRequested:case dg.UpdateSubscriptionsSucceeded:case Ye.ContinueAsGuestRequested:case Ye.ContinueAsGuestSucceeded:return Sv(e,"continueAsGuestError",void 0);case dg.UpdateSubscriptionsFailed:case Ye.ContinueAsGuestFailed:return Sv(e,"continueAsGuestError",t.payload);default:return e}}function bv(e=wv.statuses,t){switch(t.type){case Vt.LoadCheckoutRequested:return Sv(e,"isLoading",!0);case Vt.LoadCheckoutSucceeded:case Vt.LoadCheckoutFailed:return Sv(e,"isLoading",!1);case Ye.UpdateBillingAddressRequested:return Sv(e,"isUpdating",!0);case Ye.UpdateBillingAddressFailed:case Ye.UpdateBillingAddressSucceeded:return Sv(e,"isUpdating",!1);case Ye.ContinueAsGuestRequested:case dg.UpdateSubscriptionsRequested:return Sv(e,"isContinuingAsGuest",!0);case dg.UpdateSubscriptionsSucceeded:case dg.UpdateSubscriptionsFailed:case Ye.ContinueAsGuestFailed:case Ye.ContinueAsGuestSucceeded:return Sv(e,"isContinuingAsGuest",!1);default:return e}}const Pv=function e(t,n,i){const{matchObject:r=(e,t)=>void 0!==e.id&&e.id===t.id}=i||{};if(!t)return n;if(!n||t===n)return t;let o=0,a=0;const s=(e,t,n)=>(o+=e===t?1:0,a+=e===n?1:0,e),d=n.map((n,i)=>{const o=t&&t[i];return mg(o)&&mg(n)?r(o,n)?s(Ov(o,n),o,n):s(fv(o,n),o,n):O(o)&&O(n)?s(e(o,n),o,n):s(fv(o,n),o,n)});return o===n.length&&t&&t.length===n.length?t:a===n.length?n:d},Ov=function e(t,n){return t?n&&t!==n?Object.keys(n).reduce((t,i)=>{const r=t[i],o=n[i];return mg(r)&&mg(o)?Sv(t,i,e(r,o)):O(r)&&O(o)?Sv(t,i,Pv(r,o)):Sv(t,i,o)},t):t:n},Ev={errors:{},statuses:{}};function Av(e=Ev,t){return d({data:kv,errors:c(Dv,gv),statuses:Tv})(e,t)}function kv(e,t){var n,i;switch(t.type){case Ye.UpdateBillingAddressSucceeded:case Vt.LoadCheckoutSucceeded:case Yy.CreateConsignmentsSucceeded:case Yy.DeleteConsignmentSucceeded:case Yy.UpdateConsignmentSucceeded:case Yy.UpdateShippingOptionSucceeded:case Yy.LoadShippingOptionsSucceeded:case Pt.ApplyCouponSucceeded:case Pt.RemoveCouponSucceeded:case kt.ApplyGiftCertificateSucceeded:case kt.RemoveGiftCertificateSucceeded:return Ov(e,t.payload&&t.payload.cart);case Gt.HydrateInitialState:return Ov(e,null===(i=null===(n=t.payload)||void 0===n?void 0:n.checkout)||void 0===i?void 0:i.cart);default:return e}}function Tv(e=Ev.statuses,t){switch(t.type){case Vt.LoadCheckoutRequested:return Sv(e,"isLoading",!0);case Vt.LoadCheckoutFailed:case Vt.LoadCheckoutSucceeded:return Sv(e,"isLoading",!1);default:return e}}function Dv(e=Ev.errors,t){switch(t.type){case Vt.LoadCheckoutRequested:case Vt.LoadCheckoutSucceeded:return Sv(e,"loadError",void 0);case Vt.LoadCheckoutFailed:return Sv(e,"loadError",t.payload);default:return e}}var Mv;!function(e){e.InitializeButtonFailed="INITIALIZE_BUTTON_FAILED",e.InitializeButtonRequested="INITIALIZE_BUTTON_REQUESTED",e.InitializeButtonSucceeded="INITIALIZE_BUTTON_SUCCEEDED",e.DeinitializeButtonFailed="DEINITIALIZE_BUTTON_FAILED",e.DeinitializeButtonRequested="DEINITIALIZE_BUTTON_REQUESTED",e.DeinitializeButtonSucceeded="DEINITIALIZE_BUTTON_SUCCEEDED"}(Mv||(Mv={}));const zv={data:{},errors:{},statuses:{}},Nv={initializedContainers:{}},xv={},Fv={};function Rv(e=zv,t){return t.meta&&t.meta.methodId?d({data:d({[t.meta.methodId]:Lv}),errors:d({[t.meta.methodId]:Bv}),statuses:d({[t.meta.methodId]:jv})})(e,t):e}function Lv(e=Nv,t){switch(t.type){case Mv.InitializeButtonSucceeded:return t.meta&&t.meta.containerId?Ov(e,{initializedContainers:{[t.meta.containerId]:!0}}):e;case Mv.DeinitializeButtonSucceeded:return Sv(e,"initializedContainers",{})}return e}function Bv(e=xv,t){switch(t.type){case Mv.InitializeButtonRequested:case Mv.InitializeButtonSucceeded:return Sv(e,"initializeError",void 0);case Mv.InitializeButtonFailed:return Sv(e,"initializeError",t.payload);case Mv.DeinitializeButtonRequested:case Mv.DeinitializeButtonSucceeded:return Sv(e,"deinitializeError",void 0);case Mv.DeinitializeButtonFailed:return Sv(e,"deinitializeError",t.payload);default:return e}}function jv(e=Fv,t){switch(t.type){case Mv.InitializeButtonRequested:return Sv(e,"isInitializing",!0);case Mv.InitializeButtonFailed:case Mv.InitializeButtonSucceeded:return Sv(e,"isInitializing",!1);case Mv.DeinitializeButtonRequested:return Sv(e,"isDeinitializing",!0);case Mv.DeinitializeButtonFailed:case Mv.DeinitializeButtonSucceeded:return Sv(e,"isDeinitializing",!1);default:return e}}const Uv={meta:{},errors:{},statuses:{}};function qv(e=Uv,t){return d({data:Vv,errors:c(Gv,gv),statuses:Hv})(e,t)}function Vv(e,t){var n;switch(t.type){case ft.LoadConfigSucceeded:return Ov(e,t.payload);case Gt.HydrateInitialState:return Ov(e,null===(n=t.payload)||void 0===n?void 0:n.config);default:return e}}function Gv(e=Uv.errors,t){switch(t.type){case ft.LoadConfigSucceeded:return Sv(e,"loadError",void 0);case ft.LoadConfigFailed:return Sv(e,"loadError",t.payload);default:return e}}function Hv(e=Uv.statuses,t){switch(t.type){case ft.LoadConfigRequested:return Sv(e,"isLoading",!0);case ft.LoadConfigSucceeded:case ft.LoadConfigFailed:return Sv(e,"isLoading",!1);default:return e}}const $v={errors:{},statuses:{}};function Wv(e=$v,t){return d({data:Yv,errors:c(Kv,gv),statuses:Jv})(e,t)}function Yv(e,t){var n,i;switch(t.type){case Vt.LoadCheckoutSucceeded:case Pt.ApplyCouponSucceeded:case Yy.UpdateShippingOptionSucceeded:case Pt.RemoveCouponSucceeded:case ym.LoadOrderSucceeded:return Pv(e,t.payload&&t.payload.coupons);case Gt.HydrateInitialState:return Pv(e,null===(i=null===(n=t.payload)||void 0===n?void 0:n.checkout)||void 0===i?void 0:i.coupons);default:return e}}function Kv(e={},t){switch(t.type){case Pt.ApplyCouponRequested:case Pt.ApplyCouponSucceeded:return Sv(e,"applyCouponError",void 0);case Pt.ApplyCouponFailed:return Sv(e,"applyCouponError",t.payload);case Pt.RemoveCouponRequested:case Pt.RemoveCouponSucceeded:return Sv(e,"removeCouponError",void 0);case Pt.RemoveCouponFailed:return Sv(e,"removeCouponError",t.payload);default:return e}}function Jv(e={},t){switch(t.type){case Pt.ApplyCouponRequested:return Sv(e,"isApplyingCoupon",!0);case Pt.ApplyCouponSucceeded:case Pt.ApplyCouponFailed:return Sv(e,"isApplyingCoupon",!1);case Pt.RemoveCouponRequested:return Sv(e,"isRemovingCoupon",!0);case Pt.RemoveCouponSucceeded:case Pt.RemoveCouponFailed:return Sv(e,"isRemovingCoupon",!1);default:return e}}const Zv={errors:{},statuses:{}};function Qv(e=Zv,t){return d({data:Xv,errors:c(ef,gv),statuses:tf})(e,t)}function Xv(e,t){var n,i;switch(t.type){case Vt.LoadCheckoutSucceeded:case Yy.CreateConsignmentsSucceeded:case Yy.UpdateConsignmentSucceeded:case Yy.DeleteConsignmentSucceeded:case Yy.UpdateShippingOptionSucceeded:case Pt.ApplyCouponSucceeded:case Pt.RemoveCouponSucceeded:case kt.ApplyGiftCertificateSucceeded:case kt.RemoveGiftCertificateSucceeded:return Pv(e,t.payload&&t.payload.giftCertificates);case Gt.HydrateInitialState:return Pv(e,null===(i=null===(n=t.payload)||void 0===n?void 0:n.checkout)||void 0===i?void 0:i.giftCertificates);default:return e}}function ef(e=Zv.errors,t){switch(t.type){case kt.ApplyGiftCertificateRequested:case kt.ApplyGiftCertificateSucceeded:return Sv(e,"applyGiftCertificateError",void 0);case kt.ApplyGiftCertificateFailed:return Sv(e,"applyGiftCertificateError",t.payload);case kt.RemoveGiftCertificateRequested:case kt.RemoveGiftCertificateSucceeded:return Sv(e,"removeGiftCertificateError",void 0);case kt.RemoveGiftCertificateFailed:return Sv(e,"removeGiftCertificateError",t.payload);default:return e}}function tf(e=Zv.statuses,t){switch(t.type){case kt.ApplyGiftCertificateRequested:return Sv(e,"isApplyingGiftCertificate",!0);case kt.ApplyGiftCertificateSucceeded:case kt.ApplyGiftCertificateFailed:return Sv(e,"isApplyingGiftCertificate",!1);case kt.RemoveGiftCertificateRequested:return Sv(e,"isRemovingGiftCertificate",!0);case kt.RemoveGiftCertificateSucceeded:case kt.RemoveGiftCertificateFailed:return Sv(e,"isRemovingGiftCertificate",!1);default:return e}}const nf={errors:{},statuses:{}};function rf(e=nf,t){return d({data:of,errors:c(af,gv),statuses:sf})(e,t)}function of(e,t){var n,i;switch(t.type){case Ye.ContinueAsGuestSucceeded:case Vt.LoadCheckoutSucceeded:return Ov(e,t.payload&&t.payload.customer);case Dt.CreateCustomerAddressSucceeded:return Ov(e,t.payload);case Gt.HydrateInitialState:return Ov(e,null===(i=null===(n=t.payload)||void 0===n?void 0:n.checkout)||void 0===i?void 0:i.customer);default:return e}}function af(e=nf.errors,t){switch(t.type){case Dt.CreateCustomerRequested:case Dt.CreateCustomerSucceeded:return Sv(e,"createError",void 0);case Dt.CreateCustomerFailed:return Sv(e,"createError",t.payload);case Dt.CreateCustomerAddressRequested:case Dt.CreateCustomerAddressSucceeded:return Sv(e,"createAddressError",void 0);case Dt.CreateCustomerAddressFailed:return Sv(e,"createAddressError",t.payload);default:return e}}function sf(e=nf.statuses,t){switch(t.type){case Dt.CreateCustomerRequested:return Sv(e,"isCreating",!0);case Dt.CreateCustomerFailed:case Dt.CreateCustomerSucceeded:return Sv(e,"isCreating",!1);case Dt.CreateCustomerAddressRequested:return Sv(e,"isCreatingAddress",!0);case Dt.CreateCustomerAddressFailed:case Dt.CreateCustomerAddressSucceeded:return Sv(e,"isCreatingAddress",!1);default:return e}}const df={data:{},errors:{},statuses:{}};function cf(e=df,t){return d({data:lf,errors:c(uf,gv),statuses:hf})(e,t)}function lf(e=df.data,t){switch(t.type){case qt.InitializeSucceeded:return Ov(e,{[t.meta&&t.meta.methodId]:{isInitialized:!0}});case qt.DeinitializeSucceeded:return Ov(e,{[t.meta&&t.meta.methodId]:{isInitialized:!1}})}return e}function uf(e=df.errors,t){switch(t.type){case qt.InitializeRequested:case qt.InitializeSucceeded:return Ov(e,{initializeErrors:Object.assign({},e.initializeErrors),initializeMethodId:e.initializeMethodId?e.initializeMethodId:void 0});case qt.InitializeFailed:return Ov(e,{initializeErrors:Object.assign(Object.assign({},e.initializeErrors),{[t.meta&&t.meta.methodId]:t.payload}),initializeMethodId:t.meta&&t.meta.methodId});case qt.DeinitializeRequested:case qt.DeinitializeSucceeded:return Ov(e,{deinitializeError:void 0,deinitializeMethodId:void 0});case qt.DeinitializeFailed:return Ov(e,{deinitializeError:t.payload,deinitializeMethodId:t.meta&&t.meta.methodId});case qt.SignInRequested:case qt.SignInSucceeded:return Ov(e,{signInError:void 0,signInMethodId:void 0});case qt.SignInFailed:return Ov(e,{signInError:t.payload,signInMethodId:t.meta&&t.meta.methodId});case qt.SignOutRequested:case qt.SignOutSucceeded:return Ov(e,{signOutError:void 0,signOutMethodId:void 0});case qt.SignOutFailed:return Ov(e,{signOutError:t.payload,signOutMethodId:t.meta&&t.meta.methodId});case qt.ExecutePaymentMethodCheckoutRequested:case qt.ExecutePaymentMethodCheckoutSucceeded:return Ov(e,{executePaymentMethodCheckoutError:void 0,executePaymentMethodCheckoutMethodId:void 0});case qt.ExecutePaymentMethodCheckoutFailed:return Ov(e,{executePaymentMethodCheckoutError:t.payload,executePaymentMethodCheckoutMethodId:t.meta&&t.meta.methodId});case qt.WidgetInteractionStarted:case qt.WidgetInteractionFinished:return Ov(e,{widgetInteractionError:void 0,widgetInteractionMethodId:void 0});case qt.WidgetInteractionFailed:return Ov(e,{widgetInteractionError:t.payload,widgetInteractionMethodId:t.meta.methodId});default:return e}}function hf(e=df.statuses,t){switch(t.type){case qt.InitializeRequested:return Ov(e,{isInitializing:!0,initializeMethodId:t.meta&&t.meta.methodId});case qt.InitializeFailed:case qt.InitializeSucceeded:return Ov(e,{isInitializing:!1,initializeMethodId:void 0});case qt.DeinitializeRequested:return Ov(e,{isDeinitializing:!0,deinitializeMethodId:t.meta&&t.meta.methodId});case qt.DeinitializeFailed:case qt.DeinitializeSucceeded:return Ov(e,{isDeinitializing:!1,deinitializeMethodId:void 0});case qt.SignInRequested:return Ov(e,{isSigningIn:!0,signInMethodId:t.meta&&t.meta.methodId});case qt.SignInFailed:case qt.SignInSucceeded:return Ov(e,{isSigningIn:!1,signInMethodId:void 0});case qt.SignOutRequested:return Ov(e,{isSigningOut:!0,signOutMethodId:t.meta&&t.meta.methodId});case qt.SignOutFailed:case qt.SignOutSucceeded:return Ov(e,{isSigningOut:!1,signOutMethodId:void 0});case qt.ExecutePaymentMethodCheckoutRequested:return Ov(e,{isExecutingPaymentMethodCheckout:!0,executePaymentMethodCheckoutMethodId:t.meta&&t.meta.methodId});case qt.ExecutePaymentMethodCheckoutFailed:case qt.ExecutePaymentMethodCheckoutSucceeded:return Ov(e,{isExecutingPaymentMethodCheckout:!1,executePaymentMethodCheckoutMethodId:void 0});case qt.WidgetInteractionStarted:return Ov(e,{isWidgetInteracting:!0,widgetInteractionMethodId:t.meta.methodId});case qt.WidgetInteractionFinished:case qt.WidgetInteractionFailed:return Ov(e,{isWidgetInteracting:!1,widgetInteractionMethodId:void 0});default:return e}}const pf={errors:{},statuses:{}};function mf(e=pf,t){return d({data:yf,errors:c(gf,gv),statuses:vf})(e,t)}function yf(e,t){var n;return t.type===Nn.LoadExtensionsSucceeded?Pv(e,t.payload):t.type===Gt.HydrateInitialState?Pv(e,null===(n=t.payload)||void 0===n?void 0:n.extensions):e}function gf(e=pf.errors,t){switch(t.type){case Nn.LoadExtensionsRequested:case Nn.LoadExtensionsSucceeded:return Sv(e,"loadError",void 0);case Nn.RenderExtensionRequested:case Nn.RenderExtensionSucceeded:return Sv(e,"renderError",void 0);case Nn.LoadExtensionsFailed:return Sv(e,"loadError",t.payload);case Nn.RenderExtensionFailed:return Sv(e,"renderError",t.payload);default:return e}}function vf(e=pf.statuses,t){switch(t.type){case Nn.LoadExtensionsRequested:return Sv(e,"isLoading",!0);case Nn.LoadExtensionsSucceeded:case Nn.LoadExtensionsFailed:return Sv(e,"isLoading",!1);default:return e}}const ff={errors:{},statuses:{}};function Sf(e=ff,t){return d({data:wf,errors:c(_f,gv),statuses:Cf})(e,t)}function wf(e,t){var n;switch(t.type){case Xt.LoadFormFieldsSucceeded:return Ov(e,t.payload);case Gt.HydrateInitialState:return Ov(e,null===(n=t.payload)||void 0===n?void 0:n.formFields);default:return e}}function _f(e=ff.errors,t){switch(t.type){case Xt.LoadFormFieldsSucceeded:return Sv(e,"loadError",void 0);case Xt.LoadFormFieldsFailed:return Sv(e,"loadError",t.payload);default:return e}}function Cf(e=ff.statuses,t){switch(t.type){case Xt.LoadFormFieldsRequested:return Sv(e,"isLoading",!0);case Xt.LoadFormFieldsSucceeded:case Xt.LoadFormFieldsFailed:return Sv(e,"isLoading",!1);default:return e}}const If={errors:{},statuses:{}};function bf(e=If,t){return d({data:Pf,errors:c(Of,gv),statuses:Ef})(e,t)}function Pf(e,t){return t.type===mm.LoadCountriesSucceeded?Pv(e,t.payload):e}function Of(e=If.errors,t){switch(t.type){case mm.LoadCountriesRequested:case mm.LoadCountriesSucceeded:return Sv(e,"loadError",void 0);case mm.LoadCountriesFailed:return Sv(e,"loadError",t.payload);default:return e}}function Ef(e=If.statuses,t){switch(t.type){case mm.LoadCountriesRequested:return Sv(e,"isLoading",!0);case mm.LoadCountriesSucceeded:case mm.LoadCountriesFailed:return Sv(e,"isLoading",!1);default:return e}}const Af={errors:{},meta:{},statuses:{}};function kf(e=Af,t){return d({data:Tf,errors:c(Mf,gv),meta:Df,statuses:zf})(e,t)}function Tf(e,t){switch(t.type){case ym.LoadOrderSucceeded:case ym.LoadOrderPaymentsSucceeded:return Ov(e,G(t.payload,["billingAddress","coupons"]));default:return e}}function Df(e,t){switch(t.type){case ym.FinalizeOrderSucceeded:case ym.SubmitOrderSucceeded:return Ov(e,Object.assign(Object.assign({},t.meta),{callbackUrl:t.payload&&t.payload.order.callbackUrl,orderToken:t.payload&&t.payload.order.token,payment:t.payload&&t.payload.order&&t.payload.order.payment}));default:return e}}function Mf(e=Af.errors,t){switch(t.type){case ym.LoadOrderRequested:case ym.LoadOrderSucceeded:case ym.LoadOrderPaymentsSucceeded:case ym.LoadOrderPaymentsRequested:return Sv(e,"loadError",void 0);case ym.LoadOrderFailed:case ym.LoadOrderPaymentsFailed:return Sv(e,"loadError",t.payload);default:return e}}function zf(e=Af.statuses,t){switch(t.type){case ym.LoadOrderRequested:case ym.LoadOrderPaymentsRequested:return Sv(e,"isLoading",!0);case ym.LoadOrderSucceeded:case ym.LoadOrderFailed:case ym.LoadOrderPaymentsSucceeded:case ym.LoadOrderPaymentsFailed:return Sv(e,"isLoading",!1);default:return e}}const Nf={};function xf(e=Nf,t){return d({data:Ff})(e,t)}function Ff(e,t){switch(t.type){case ym.LoadOrderPaymentsSucceeded:case ym.LoadOrderSucceeded:return fv(e,t.payload&&t.payload.billingAddress);default:return e}}function Rf(e={},t){return d({data:Lf})(e,t)}function Lf(e,t){return t.type===Km.SubmitPaymentSucceeded?t.payload:e}const Bf={errors:{},statuses:{}};function jf(e=Bf,t){return d({data:Uf,errors:c(Vf,gv),meta:qf,statuses:Gf})(e,t)}function Uf(e,t){switch(t.type){case tn.LoadPaymentMethodSucceeded:return function(e,t,n){if(!t)return e;const i=W(t,"id"),r="object"==typeof n?Y(n):n||i,o=w(e,r),a=[...e];if(-1===o)a.push(t);else{const n=e[o];a[o]=mg(n)&&mg(t)?Ov(n,t):t}return a}(e||[],t.payload,t.payload&&{id:t.payload.id,gateway:t.payload.gateway});case tn.LoadPaymentMethodsSucceeded:return Pv(e,t.payload,{matchObject:(e,t)=>e.id===t.id&&e.gateway===t.gateway});default:return e}}function qf(e,t){return t.type===tn.LoadPaymentMethodsSucceeded?Ov(e,t.meta):e}function Vf(e=Bf.errors,t){switch(t.type){case tn.LoadPaymentMethodsRequested:case tn.LoadPaymentMethodsSucceeded:return Sv(e,"loadError",void 0);case tn.LoadPaymentMethodsFailed:return Sv(e,"loadError",t.payload);case tn.LoadPaymentMethodRequested:case tn.LoadPaymentMethodSucceeded:return Ov(e,{loadMethodId:void 0,loadMethodError:void 0});case tn.LoadPaymentMethodFailed:return Ov(e,{loadMethodId:t.meta.methodId,loadMethodError:t.payload});default:return e}}function Gf(e=Bf.statuses,t){switch(t.type){case tn.LoadPaymentMethodsRequested:return Sv(e,"isLoading",!0);case tn.LoadPaymentMethodsSucceeded:case tn.LoadPaymentMethodsFailed:return Sv(e,"isLoading",!1);case tn.LoadPaymentMethodRequested:return Ov(e,{isLoadingMethod:!0,loadMethodId:t.meta.methodId});case tn.LoadPaymentMethodSucceeded:case tn.LoadPaymentMethodFailed:return Ov(e,{isLoadingMethod:!1,loadMethodId:void 0});default:return e}}const Hf={data:{},errors:{},statuses:{}};function $f(e=Hf,t){return d({data:Wf,errors:c(Yf,gv),statuses:Kf})(e,t)}function Wf(e=Hf.data,t){switch(t.type){case bm.InitializeSucceeded:if(t.meta){const{methodId:n,gatewayId:i}=t.meta,r=i?`${n}.${i}`:n;return Ov(e,{[r]:{isInitialized:!0}})}break;case bm.DeinitializeSucceeded:if(t.meta){const{methodId:n,gatewayId:i}=t.meta,r=i?`${n}.${i}`:n;return Ov(e,{[r]:{isInitialized:!1}})}}return e}function Yf(e=Hf.errors,t){switch(t.type){case bm.InitializeRequested:case bm.InitializeSucceeded:return Ov(e,{initializeError:void 0,initializeMethodId:void 0});case bm.InitializeFailed:{let n=t.meta&&t.meta.methodId;if(t.meta){const{methodId:e,gatewayId:i}=t.meta;n=i?`${e}.${i}`:e}return Ov(e,{initializeError:t.payload,initializeMethodId:n})}case bm.DeinitializeRequested:case bm.DeinitializeSucceeded:return Ov(e,{deinitializeError:void 0,deinitializeMethodId:void 0});case bm.DeinitializeFailed:{let n=t.meta&&t.meta.methodId;if(t.meta){const{methodId:e,gatewayId:i}=t.meta;n=i?`${e}.${i}`:e}return Ov(e,{deinitializeError:t.payload,deinitializeMethodId:n})}case bm.ExecuteRequested:case bm.ExecuteSucceeded:return Ov(e,{executeError:void 0,executeMethodId:void 0});case bm.ExecuteFailed:return Ov(e,{executeError:t.payload,executeMethodId:t.meta&&t.meta.methodId});case bm.FinalizeRequested:case bm.FinalizeSucceeded:return Ov(e,{finalizeError:void 0,finalizeMethodId:void 0});case bm.FinalizeFailed:return Ov(e,{finalizeError:t.payload,finalizeMethodId:t.meta&&t.meta.methodId});case bm.WidgetInteractionStarted:case bm.WidgetInteractionFinished:return Ov(e,{widgetInteractionError:void 0,widgetInteractionMethodId:void 0});case bm.WidgetInteractionFailed:return Ov(e,{widgetInteractionError:t.payload,widgetInteractionMethodId:t.meta.methodId});default:return e}}function Kf(e=Hf.statuses,t){switch(t.type){case bm.InitializeRequested:{let n=t.meta&&t.meta.methodId;if(t.meta){const{methodId:e,gatewayId:i}=t.meta;n=i?`${e}.${i}`:e}return Ov(e,{isInitializing:!0,initializeMethodId:n})}case bm.InitializeFailed:case bm.InitializeSucceeded:return Ov(e,{isInitializing:!1,initializeMethodId:void 0});case bm.DeinitializeRequested:{let n=t.meta&&t.meta.methodId;if(t.meta){const{methodId:e,gatewayId:i}=t.meta;n=i?`${e}.${i}`:e}return Ov(e,{isDeinitializing:!0,deinitializeMethodId:n})}case bm.DeinitializeFailed:case bm.DeinitializeSucceeded:return Ov(e,{isDeinitializing:!1,deinitializeMethodId:void 0});case bm.ExecuteRequested:return Ov(e,{isExecuting:!0,executeMethodId:t.meta&&t.meta.methodId});case bm.ExecuteFailed:case bm.ExecuteSucceeded:return Ov(e,{isExecuting:!1,executeMethodId:void 0});case bm.FinalizeRequested:return Ov(e,{isFinalizing:!0,finalizeMethodId:t.meta&&t.meta.methodId});case bm.FinalizeFailed:case bm.FinalizeSucceeded:return Ov(e,{isFinalizing:!1,finalizeMethodId:void 0});case bm.WidgetInteractionStarted:return Ov(e,{isWidgetInteracting:!0,widgetInteractionMethodId:t.meta.methodId});case bm.WidgetInteractionFinished:case bm.WidgetInteractionFailed:return Ov(e,{isWidgetInteracting:!1,widgetInteractionMethodId:void 0});default:return e}}const Jf={data:{}};function Zf(e=Jf,t){return d({data:Qf})(e,t)}function Qf(e=Jf.data,t){return t.type===Wy.UpdatePaymentProviderCustomer?Ov(e,t.payload):e}const Xf={data:[],errors:{},statuses:{}};function eS(e=Xf,t){return d({data:tS,errors:c(iS,gv),meta:nS,statuses:rS})(e,t)}function tS(e=Xf.data,t){return t.type===Sg.LoadInstrumentsSucceeded?Pv(e,t.payload&&t.payload.vaultedInstruments||[]):e}function nS(e,t){switch(t.type){case Sg.LoadInstrumentsSucceeded:case Sg.DeleteInstrumentSucceeded:return Ov(e,t.meta);default:return e}}function iS(e=Xf.errors,t){switch(t.type){case Sg.LoadInstrumentsRequested:case Sg.LoadInstrumentsSucceeded:return Sv(e,"loadError",void 0);case Sg.DeleteInstrumentRequested:case Sg.DeleteInstrumentSucceeded:return Ov(e,{deleteError:void 0,failedInstrument:void 0});case Sg.LoadInstrumentsFailed:return Sv(e,"loadError",t.payload);case Sg.DeleteInstrumentFailed:return Ov(e,{deleteError:t.payload,failedInstrument:t.meta.instrumentId});default:return e}}function rS(e=Xf.statuses,t){switch(t.type){case Sg.LoadInstrumentsRequested:return Sv(e,"isLoading",!0);case Sg.DeleteInstrumentRequested:return Ov(e,{isDeleting:!0,deletingInstrument:t.meta.instrumentId});case Sg.LoadInstrumentsSucceeded:case Sg.LoadInstrumentsFailed:return Sv(e,"isLoading",!1);case Sg.DeleteInstrumentSucceeded:case Sg.DeleteInstrumentFailed:return Ov(e,{isDeleting:!1,deletingInstrument:void 0});default:return e}}const oS={data:{}};function aS(e=oS,t){return t.meta&&t.meta.methodId?d({data:d({[t.meta.methodId]:sS})})(e,t):e}function sS(e,t){switch(t.type){case cn.InitializeRemoteBillingSucceeded:return Sv(e,"billing",t.payload&&t.payload.billing);case cn.InitializeRemoteShippingSucceeded:return Sv(e,"shipping",t.payload&&t.payload.shipping);case cn.LoadRemoteSettingsSucceeded:return Sv(e,"settings",t.payload);case cn.UpdateRemoteCheckout:return Ov(e,t.payload);default:return e}}const dS={errors:{updateShippingOptionError:{},updateError:{},deleteError:{}},statuses:{isUpdating:{},isUpdatingShippingOption:{},isDeleting:{}}};function cS(e=dS,t){return d({data:lS,errors:c(uS,gv),statuses:hS})(e,t)}function lS(e,t){var n,i;switch(t.type){case Vt.LoadCheckoutSucceeded:case Yy.LoadShippingOptionsSucceeded:case Yy.CreateConsignmentsSucceeded:case Yy.UpdateConsignmentSucceeded:case Yy.DeleteConsignmentSucceeded:case Yy.UpdateShippingOptionSucceeded:case Pt.ApplyCouponSucceeded:case Pt.RemoveCouponSucceeded:return Pv(e,t.payload&&t.payload.consignments);case Dt.SignOutCustomerSucceeded:return Pv(e,[]);case Gt.HydrateInitialState:return Pv(e,null===(i=null===(n=t.payload)||void 0===n?void 0:n.checkout)||void 0===i?void 0:i.consignments);default:return e}}function uS(e=dS.errors,t){switch(t.type){case Vt.LoadCheckoutRequested:case Vt.LoadCheckoutSucceeded:case Yy.LoadShippingOptionsSucceeded:case Yy.LoadShippingOptionsRequested:return Sv(e,"loadError",void 0);case Vt.LoadCheckoutFailed:case Yy.LoadShippingOptionsFailed:return Sv(e,"loadError",t.payload);case Yy.CreateConsignmentsRequested:case Yy.CreateConsignmentsSucceeded:return Sv(e,"createError",void 0);case Yy.CreateConsignmentsFailed:return Sv(e,"createError",t.payload);case Yy.UpdateConsignmentSucceeded:case Yy.UpdateConsignmentRequested:return t.meta?Ov(e,{updateError:{[t.meta.id]:void 0}}):e;case Yy.UpdateConsignmentFailed:return t.meta?Ov(e,{updateError:{[t.meta.id]:t.payload}}):e;case Yy.DeleteConsignmentSucceeded:case Yy.DeleteConsignmentRequested:return t.meta?Ov(e,{deleteError:{[t.meta.id]:void 0}}):e;case Yy.DeleteConsignmentFailed:return t.meta?Ov(e,{deleteError:{[t.meta.id]:t.payload}}):e;case Yy.UpdateShippingOptionRequested:case Yy.UpdateShippingOptionSucceeded:return t.meta?Ov(e,{updateShippingOptionError:{[t.meta.id]:void 0}}):e;case Yy.UpdateShippingOptionFailed:return t.meta?Ov(e,{updateShippingOptionError:{[t.meta.id]:t.payload}}):e;default:return e}}function hS(e=dS.statuses,t){switch(t.type){case Vt.LoadCheckoutRequested:return Sv(e,"isLoading",!0);case Yy.LoadShippingOptionsRequested:return Sv(e,"isLoadingShippingOptions",!0);case Vt.LoadCheckoutSucceeded:case Vt.LoadCheckoutFailed:return Sv(e,"isLoading",!1);case Yy.LoadShippingOptionsSucceeded:case Yy.LoadShippingOptionsFailed:return Sv(e,"isLoadingShippingOptions",!1);case Yy.CreateConsignmentsRequested:return Sv(e,"isCreating",!0);case Yy.CreateConsignmentsSucceeded:case Yy.CreateConsignmentsFailed:return Sv(e,"isCreating",!1);case Yy.UpdateConsignmentRequested:return t.meta?Ov(e,{isUpdating:{[t.meta.id]:!0}}):e;case Yy.UpdateConsignmentSucceeded:case Yy.UpdateConsignmentFailed:return t.meta?Ov(e,{isUpdating:{[t.meta.id]:!1}}):e;case Yy.DeleteConsignmentRequested:return t.meta?Ov(e,{isDeleting:{[t.meta.id]:!0}}):e;case Yy.DeleteConsignmentSucceeded:case Yy.DeleteConsignmentFailed:return t.meta?Ov(e,{isDeleting:{[t.meta.id]:!1}}):e;case Yy.UpdateShippingOptionRequested:return t.meta?Ov(e,{isUpdatingShippingOption:{[t.meta.id]:!0}}):e;case Yy.UpdateShippingOptionSucceeded:case Yy.UpdateShippingOptionFailed:return t.meta?Ov(e,{isUpdatingShippingOption:{[t.meta.id]:!1}}):e;default:return e}}function pS(e,t){const n={};return Object.keys(e).forEach(i=>{const r=e[i],o=t?`${t}.${i}`:i;"object"==typeof r?Object.assign(n,pS(r,o)):n[o]=r}),n}function mS(e){return Object.keys(e).sort().reduce((t,n)=>Object.assign(Object.assign({},t),{[n]:e[n]}),{})}const yS={errors:{},statuses:{}};function gS(e=yS,t){return d({data:vS,errors:c(fS,gv),statuses:SS})(e,t)}function vS(e,t){if(t.type!==Pg.LoadPickupOptionsSucceeded)return e;if(t.meta){const n=mS(pS({consignmentId:t.meta.consignmentId,searchArea:t.meta.searchArea}));return Sv(e,btoa(`${JSON.stringify(n)}`),t.payload)}}function fS(e=yS.errors,t){switch(t.type){case Pg.LoadPickupOptionsRequested:case Pg.LoadPickupOptionsSucceeded:return Sv(e,"loadError",void 0);case Pg.LoadPickupOptionsFailed:return Sv(e,"loadError",t.payload);default:return e}}function SS(e=yS.statuses,t){switch(t.type){case Pg.LoadPickupOptionsRequested:return Sv(e,"isLoading",!0);case Pg.LoadPickupOptionsSucceeded:case Pg.LoadPickupOptionsFailed:return Sv(e,"isLoading",!1);default:return e}}const wS={errors:{},statuses:{}};function _S(e=wS,t){return d({data:CS,errors:c(IS,gv),statuses:bS})(e,t)}function CS(e,t){return t.type===rg.LoadShippingCountriesSucceeded?Pv(e,t.payload):e}function IS(e=wS.errors,t){switch(t.type){case rg.LoadShippingCountriesRequested:case rg.LoadShippingCountriesSucceeded:return Sv(e,"loadError",void 0);case rg.LoadShippingCountriesFailed:return Sv(e,"loadError",t.payload);default:return e}}function bS(e=wS.statuses,t){switch(t.type){case rg.LoadShippingCountriesRequested:return Sv(e,"isLoading",!0);case rg.LoadShippingCountriesSucceeded:case rg.LoadShippingCountriesFailed:return Sv(e,"isLoading",!1);default:return e}}const PS={data:{},errors:{},statuses:{}};function OS(e=PS,t){return d({data:ES,errors:c(AS,gv),statuses:kS})(e,t)}function ES(e=PS.data,t){switch(t.type){case Og.InitializeSucceeded:return Ov(e,{[t.meta&&t.meta.methodId]:{isInitialized:!0}});case Og.DeinitializeSucceeded:return Ov(e,{[t.meta&&t.meta.methodId]:{isInitialized:!1}})}return e}function AS(e=PS.errors,t){switch(t.type){case Og.InitializeRequested:case Og.InitializeSucceeded:return Ov(e,{initializeError:void 0,initializeMethodId:void 0});case Og.InitializeFailed:return Ov(e,{initializeError:t.payload,initializeMethodId:t.meta&&t.meta.methodId});case Og.DeinitializeRequested:case Og.DeinitializeSucceeded:return Ov(e,{deinitializeError:void 0,deinitializeMethodId:void 0});case Og.DeinitializeFailed:return Ov(e,{deinitializeError:t.payload,deinitializeMethodId:t.meta&&t.meta.methodId});case Og.UpdateAddressRequested:case Og.UpdateAddressSucceeded:return Ov(e,{updateAddressError:void 0,updateAddressMethodId:void 0});case Og.UpdateAddressFailed:return Ov(e,{updateAddressError:t.payload,updateAddressMethodId:t.meta&&t.meta.methodId});case Og.SelectOptionRequested:case Og.SelectOptionSucceeded:return Ov(e,{selectOptionError:void 0,selectOptionMethodId:void 0});case Og.SelectOptionFailed:return Ov(e,{selectOptionError:t.payload,selectOptionMethodId:t.meta&&t.meta.methodId});case Og.WidgetInteractionStarted:case Og.WidgetInteractionFinished:return Ov(e,{widgetInteractionError:void 0,widgetInteractionMethodId:void 0});case Og.WidgetInteractionFailed:return Ov(e,{widgetInteractionError:t.payload,widgetInteractionMethodId:t.meta&&t.meta.methodId});default:return e}}function kS(e=PS.statuses,t){switch(t.type){case Og.InitializeRequested:return Ov(e,{isInitializing:!0,initializeMethodId:t.meta&&t.meta.methodId});case Og.InitializeFailed:case Og.InitializeSucceeded:return Ov(e,{isInitializing:!1,initializeMethodId:void 0});case Og.DeinitializeRequested:return Ov(e,{isDeinitializing:!0,deinitializeMethodId:t.meta&&t.meta.methodId});case Og.DeinitializeFailed:case Og.DeinitializeSucceeded:return Ov(e,{isDeinitializing:!1,deinitializeMethodId:void 0});case Og.UpdateAddressRequested:return Ov(e,{isUpdatingAddress:!0,updateAddressMethodId:t.meta&&t.meta.methodId});case Og.UpdateAddressFailed:case Og.UpdateAddressSucceeded:return Ov(e,{isUpdatingAddress:!1,updateAddressMethodId:void 0});case Og.SelectOptionRequested:return Ov(e,{isSelectingOption:!0,selectOptionMethodId:t.meta&&t.meta.methodId});case Og.SelectOptionFailed:case Og.SelectOptionSucceeded:return Ov(e,{isSelectingOption:!1,selectOptionMethodId:void 0});case Og.WidgetInteractionStarted:return Ov(e,{isWidgetInteracting:!0,widgetInteractionMethodId:t.meta&&t.meta.methodId});case Og.WidgetInteractionFinished:case Og.WidgetInteractionFailed:return Ov(e,{isWidgetInteracting:!1,widgetInteractionMethodId:void 0});default:return e}}const TS={errors:{},statuses:{}};function DS(e=TS,t){return d({data:MS,errors:c(zS,gv),statuses:NS})(e,t)}function MS(e,t){return t.type===tv.SendSignInEmailSucceeded?Ov(e,t.payload):e}function zS(e=TS.errors,t){switch(t.type){case tv.SendSignInEmailRequested:case tv.SendSignInEmailSucceeded:return Sv(e,"sendError",void 0);case tv.SendSignInEmailFailed:return Sv(e,"sendError",t.payload);default:return e}}function NS(e=TS.statuses,t){switch(t.type){case tv.SendSignInEmailRequested:return Sv(e,"isSending",!0);case tv.SendSignInEmailFailed:case tv.SendSignInEmailSucceeded:return Sv(e,"isSending",!1);default:return e}}const xS={errors:{},statuses:{}};function FS(e=xS,t){return d({errors:c(RS,gv),statuses:LS})(e,t)}function RS(e=xS.errors,t){switch(t.type){case og.ApplyStoreCreditRequested:case og.ApplyStoreCreditSucceeded:return Sv(e,"applyError",void 0);case og.ApplyStoreCreditFailed:return Sv(e,"applyError",t.payload);default:return e}}function LS(e=xS.statuses,t){switch(t.type){case og.ApplyStoreCreditRequested:return Sv(e,"isApplying",!0);case og.ApplyStoreCreditSucceeded:case og.ApplyStoreCreditFailed:return Sv(e,"isApplying",!1);default:return e}}const BS={errors:{},statuses:{}};function jS(e=BS,t){return d({errors:c(US,gv),statuses:qS})(e,t)}function US(e=BS.errors,t){switch(t.type){case dg.UpdateSubscriptionsRequested:case dg.UpdateSubscriptionsSucceeded:return Sv(e,"updateError",void 0);case dg.UpdateSubscriptionsFailed:return Sv(e,"updateError",t.payload);default:return e}}function qS(e=BS.statuses,t){switch(t.type){case dg.UpdateSubscriptionsRequested:return Sv(e,"isUpdating",!0);case dg.UpdateSubscriptionsFailed:case dg.UpdateSubscriptionsSucceeded:return Sv(e,"isUpdating",!1);default:return e}}const VS={errors:{},statuses:{}};function GS(e=VS,t){return d({data:HS,errors:c($S,gv),statuses:WS})(e,t)}function HS(e,t){var n;switch(t.type){case Vt.LoadCheckoutSucceeded:case Vt.UpdateCheckoutSucceeded:case og.ApplyStoreCreditSucceeded:case Ye.UpdateBillingAddressSucceeded:case Pt.ApplyCouponSucceeded:case Pt.RemoveCouponSucceeded:case Yy.CreateConsignmentsSucceeded:case Yy.UpdateConsignmentSucceeded:case Yy.DeleteConsignmentSucceeded:case Yy.UpdateShippingOptionSucceeded:case Yy.LoadShippingOptionsSucceeded:case kt.ApplyGiftCertificateSucceeded:case kt.RemoveGiftCertificateSucceeded:case hn.VerifyCheckoutSucceeded:return Ov(e,G(t.payload,["billingAddress","cart","consignments","customer","coupons","giftCertificates"]));case ym.SubmitOrderSucceeded:return Sv(e,"orderId",t.payload&&t.payload.order.orderId);case Gt.HydrateInitialState:return Ov(e,G(null===(n=t.payload)||void 0===n?void 0:n.checkout,["billingAddress","cart","consignments","customer","coupons","giftCertificates"]));default:return e}}function $S(e=VS.errors,t){switch(t.type){case Vt.LoadCheckoutRequested:case Vt.LoadCheckoutSucceeded:return Sv(e,"loadError",void 0);case Vt.LoadCheckoutFailed:return Sv(e,"loadError",t.payload);case Vt.UpdateCheckoutRequested:case Vt.UpdateCheckoutSucceeded:return Sv(e,"updateError",void 0);case Vt.UpdateCheckoutFailed:return Sv(e,"updateError",t.payload);default:return e}}function WS(e=VS.statuses,t){switch(t.type){case Vt.LoadCheckoutRequested:return Sv(e,"isLoading",!0);case Vt.LoadCheckoutFailed:case Vt.LoadCheckoutSucceeded:return Sv(e,"isLoading",!1);case Vt.UpdateCheckoutRequested:return Sv(e,"isUpdating",!0);case Vt.UpdateCheckoutFailed:case Vt.UpdateCheckoutSucceeded:return Sv(e,"isUpdating",!1);case hn.ExecuteRequested:return Sv(e,"isExecutingSpamCheck",!0);case hn.ExecuteFailed:case hn.ExecuteSucceeded:return Sv(e,"isExecutingSpamCheck",!1);default:return e}}function YS(e,t){if(null==e)throw t?t():new Error("An unexpected error has occurred.");return e}function KS(e){return function(e){const t=Object.create(e);return function(e,t){let n=Object.getPrototypeOf(e);for(;n;)t(n),n=Object.getPrototypeOf(n)}(e,n=>{Object.getOwnPropertyNames(n).forEach(n=>{"constructor"!==n&&"function"==typeof t[n]&&"_"!==n.charAt(0)&&(t[n]=((e,t)=>(...n)=>p(e[t].call(e,...n)))(e,n))})}),t}(e)}const JS={"mollie.credit_card":{provider:"mollie",method:"credit_card"},"adyenv2.scheme":{provider:"adyenv2",method:"scheme"},"adyenv3.scheme":{provider:"adyenv3",method:"scheme"},"adyenv2.bcmc":{provider:"adyenv2",method:"bcmc"},"adyenv2.ideal":{provider:"adyenv2",method:"ideal"},"adyenv2.sepadirectdebit":{provider:"adyenv2",method:"sepadirectdebit"},"adyenv2.directEbanking":{provider:"adyenv2",method:"directEbanking"},"adyenv2.giropay":{provider:"adyenv2",method:"giropay"},barclays:{provider:"barclays",method:"credit_card"},braintree:{provider:"braintree",method:"credit_card"},braintreepaypal:{provider:"braintree",method:"paypal"},braintreeach:{provider:"braintree",method:"ach"},authorizenet:{provider:"authorizenet",method:"credit_card"},elavon:{provider:"elavon",method:"credit_card"},checkoutcom:{provider:"checkoutcom",method:"credit_card"},"checkoutcom.credit_card":{provider:"checkoutcom",method:"credit_card"},"checkoutcom.card":{provider:"checkoutcom",method:"card"},sagepay:{provider:"sagepay",method:"credit_card"},stripe:{provider:"stripe",method:"credit_card"},"stripev3.card":{provider:"stripev3",method:"card"},"stripeupe.card":{provider:"stripeupe",method:"card"},cybersource:{provider:"cybersource",method:"credit_card"},cybersourcev2:{provider:"cybersourcev2",method:"credit_card"},bnz:{provider:"bnz",method:"credit_card"},converge:{provider:"converge",method:"credit_card"},bluesnapv2:{provider:"bluesnapv2",method:"credit_card"},"bluesnapdirect.credit_card":{provider:"bluesnapdirect",method:"credit_card"},"bluesnapdirect.ecp":{provider:"bluesnapdirect",method:"ecp"},"bluesnapdirect.sepa_direct_debit":{provider:"bluesnapdirect",method:"sepa_direct_debit"},orbital:{provider:"orbital",method:"credit_card"},paymetric:{provider:"paymetric",method:"credit_card"},bolt:{provider:"bolt",method:"credit_card"},"barclaycard.credit_card":{provider:"barclaycard",method:"credit_card"},moneris:{provider:"moneris",method:"credit_card"},cba_mpgs:{provider:"cba_mpgs",method:"credit_card"},worldpayaccess:{provider:"worldpayaccess",method:"credit_card"},squarev2:{provider:"squarev2",method:"credit_card"},paypalcommercecreditcards:{provider:"paypalcommerce",method:"credit_card"},paypalcommerce:{provider:"paypalcommerce",method:"paypal"},bigcommerce_payments_creditcards:{provider:"bigcommerce_payments",method:"credit_card"},bigcommerce_payments:{provider:"bigcommerce_payments",method:"paypal"},tdonlinemart:{provider:"tdonlinemart",method:"credit_card"}};function ZS(e){return Y({firstName:e.firstName,lastName:e.lastName,company:e.company,address1:e.address1,address2:e.address2,city:e.city,stateOrProvince:e.stateOrProvince,countryCode:e.countryCode,postalCode:e.postalCode,phone:e.phone,customFields:e.customFields},b)}const QS={errors:{},statuses:{}};function XS(){const e=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e,e=>()=>YS(e(),()=>new Qe(We.MissingBillingAddress))),n=cv(e=>e.errors.updateError,e=>()=>e),i=cv(e=>e.errors.continueAsGuestError,e=>()=>e),r=cv(e=>e.errors.loadError,e=>()=>e),o=cv(e=>!!e.statuses.isUpdating,e=>()=>e),a=cv(e=>!!e.statuses.isContinuingAsGuest,e=>()=>e),s=cv(e=>!!e.statuses.isLoading,e=>()=>e);return Oe((d=wv)=>({getBillingAddress:e(d),getBillingAddressOrThrow:t(d),getUpdateError:n(d),getContinueAsGuestError:i(d),getLoadError:r(d),isUpdating:o(d),isContinuingAsGuest:a(d),isLoading:s(d)}))}(),t=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e,e=>()=>YS(e(),()=>new Qe(We.MissingCart))),n=cv(e=>e.errors.loadError,e=>()=>e),i=cv(e=>!!e.statuses.isLoading,e=>()=>e);return Oe((r=Ev)=>({getCart:e(r),getCartOrThrow:t(r),getLoadError:n(r),isLoading:i(r)}))}(),n=function(){const e=cv(e=>e,e=>()=>e),t=cv(e=>e.statuses,e=>Pe(t=>{if(t){const n=e[t];return!0===(n&&n.isInitializing)}return Z(e,{isInitializing:!0})})),n=cv(e=>e.data,e=>Pe((t,n)=>{const i=e[t];return!!i&&(n?!0===i.initializedContainers[n]:Z(i.initializedContainers,e=>!0===e))})),i=cv(e=>e.statuses,e=>Pe(t=>{if(t){const n=e[t];return!0===(n&&n.isDeinitializing)}return Z(e,{isDeinitializing:!0})})),r=cv(e=>e.errors,e=>Pe(t=>{const n=t?e[t]:S(ie(e),e=>!(!e||!e.initializeError));return n&&n.initializeError})),o=cv(e=>e.errors,e=>Pe(t=>{const n=t?e[t]:S(ie(e),e=>!(!e||!e.deinitializeError));return n&&n.deinitializeError}));return Oe((a=zv)=>({getState:e(a),isInitializing:t(a),isInitialized:n(a),isDeinitializing:i(a),getInitializeError:r(a),getDeinitializeError:o(a)}))}(),i=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e=>e.data,e=>t=>{if(!e)return;const{flashMessages:n}=e.context;return n?void 0!==t?n.filter(({type:e})=>t===e):n:void 0}),n=cv(e=>e.data,(e,{formState:t})=>t&&t.data,(e,t={customerAccount:[],shippingAddress:[],billingAddress:[]})=>()=>e?Object.assign(Object.assign({},e.storeConfig),{formFields:t}):void 0),i=cv(n,e=>()=>YS(e(),()=>new Qe(We.MissingCheckoutConfig))),r=cv(e=>e.data&&e.data.context,e=>()=>e),o=cv(e=>e.meta&&e.meta.externalSource,e=>()=>e),a=cv(e=>{var t;return null===(t=e.meta)||void 0===t?void 0:t.host},e=>()=>e),s=cv(e=>{var t;return null===(t=e.meta)||void 0===t?void 0:t.locale},e=>()=>e),d=cv(e=>e.meta&&e.meta.variantIdentificationToken,e=>()=>e),c=cv(e=>e.errors.loadError,e=>()=>e),l=cv(e=>!!e.statuses.isLoading,e=>()=>e);return Oe((u=Uv,h)=>({getConfig:e(u),getFlashMessages:t(u),getStoreConfig:n(u,{formState:h}),getStoreConfigOrThrow:i(u,{formState:h}),getContextConfig:r(u),getExternalSource:o(u),getHost:a(u),getLocale:s(u),getVariantIdentificationToken:d(u),getLoadError:c(u),isLoading:l(u)}))}(),r=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e=>e.errors.loadError,e=>()=>e),n=cv(e=>!!e.statuses.isLoading,e=>()=>e);return Oe((i=If)=>({getCountries:e(i),getLoadError:t(i),isLoading:n(i)}))}(),o=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e=>e.errors.removeCouponError,e=>()=>e),n=cv(e=>e.errors.applyCouponError,e=>()=>e),i=cv(e=>!!e.statuses.isApplyingCoupon,e=>()=>e),r=cv(e=>!!e.statuses.isRemovingCoupon,e=>()=>e);return Oe((o=$v)=>({getCoupons:e(o),getRemoveError:t(o),getApplyError:n(o),isApplying:i(o),isRemoving:r(o)}))}(),a=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e,e=>()=>YS(e(),()=>new Qe(We.MissingCustomer))),n=cv(e=>e.errors.createError,e=>()=>e),i=cv(e=>!!e.statuses.isCreating,e=>()=>e),r=cv(e=>e.errors.createAddressError,e=>()=>e),o=cv(e=>!!e.statuses.isCreatingAddress,e=>()=>e);return Oe((a=nf)=>({getCustomer:e(a),getCustomerOrThrow:t(a),getCreateAccountError:n(a),isCreatingCustomerAccount:i(a),getCreateAddressError:r(a),isCreatingCustomerAddress:o(a)}))}(),s=function(){const e=cv(e=>e.errors.signInMethodId,e=>e.errors.signInError,(e,t)=>n=>{if(!n||e===n)return t}),t=cv(e=>e.errors.signOutMethodId,e=>e.errors.signOutError,(e,t)=>n=>{if(!n||e===n)return t}),n=cv(e=>e.errors.executePaymentMethodCheckoutMethodId,e=>e.errors.executePaymentMethodCheckoutError,(e,t)=>n=>{if(!n||e===n)return t}),i=cv(e=>e.errors.initializeMethodId,e=>e.errors.initializeErrors,(e,t)=>n=>{if(e&&t)return n?t[n]:t[e]}),r=cv(e=>e.errors.widgetInteractionMethodId,e=>e.errors.widgetInteractionError,(e,t)=>n=>{if(!n||e===n)return t}),o=cv(e=>e.statuses.signInMethodId,e=>e.statuses.isSigningIn,(e,t)=>n=>!(n&&e!==n||!t)),a=cv(e=>e.statuses.signOutMethodId,e=>e.statuses.isSigningOut,(e,t)=>n=>!(n&&e!==n||!t)),s=cv(e=>e.statuses.executePaymentMethodCheckoutMethodId,e=>e.statuses.isExecutingPaymentMethodCheckout,(e,t)=>n=>!(n&&e!==n||!t)),d=cv(e=>e.statuses.initializeMethodId,e=>e.statuses.isInitializing,(e,t)=>n=>!(n&&e!==n||!t)),c=cv(e=>e.data,e=>t=>!(!e[t]||!e[t].isInitialized)),l=cv(e=>e.statuses.widgetInteractionMethodId,e=>e.statuses.isWidgetInteracting,(e,t)=>n=>!(n&&e!==n||!t));return Oe((u=df)=>({getSignInError:e(u),getSignOutError:t(u),getExecutePaymentMethodCheckoutError:n(u),getInitializeError:i(u),getWidgetInteractionError:r(u),isSigningIn:o(u),isSigningOut:a(u),isExecutingPaymentMethodCheckout:s(u),isInitializing:d(u),isInitialized:c(u),isWidgetInteracting:l(u)}))}(),d=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e=>e.errors.removeGiftCertificateError,e=>()=>e),n=cv(e=>e.errors.applyGiftCertificateError,e=>()=>e),i=cv(e=>!!e.statuses.isApplyingGiftCertificate,e=>()=>e),r=cv(e=>!!e.statuses.isRemovingGiftCertificate,e=>()=>e);return Oe((o=Zv)=>({getGiftCertificates:e(o),getRemoveError:t(o),getApplyError:n(o),isApplying:i(o),isRemoving:r(o)}))}(),c=function(){const e=cv(e=>e.data,e=>t=>{if(!e)return;const n=t.gateway?`${t.gateway}.${t.id}`:t.id,i=JS[n];return i?f(e,i):[]}),t=cv(e=>e.data,(e=[])=>t=>{const n=ie(JS);return e.find(e=>e.bigpayToken===t&&"card"===e.type&&n.some(t=>k(e,t)))}),n=cv(t,e=>t=>YS(e(t),()=>new Qe(We.MissingPaymentInstrument))),i=cv(e=>e.data,e=>()=>{if(e)return _(JS,t=>f(e,e=>k(e,t)))}),r=cv(e=>e.meta,e=>()=>e),o=cv(e=>e.errors.loadError,e=>()=>e),a=cv(e=>e.errors.failedInstrument,e=>e.errors.deleteError,(e,t)=>n=>{if(!n||e===n)return t}),s=cv(e=>e.statuses.isLoading,e=>()=>!!e),d=cv(e=>e.statuses.deletingInstrument,e=>e.statuses.isDeleting,(e,t)=>n=>!(n&&e!==n||!t));return Oe((c=Xf)=>({getCardInstrument:t(c),getCardInstrumentOrThrow:n(c),getInstruments:i(c),getInstrumentsByPaymentMethod:e(c),getInstrumentsMeta:r(c),getLoadError:o(c),getDeleteError:a(c),isLoading:s(c),isDeleting:d(c)}))}(),l=function(){const e=cv(e=>e.data,e=>(t=[],n)=>{const i=S(t,{code:n});return(e?e.shippingAddress:[]).map(e=>o(e,t,i))}),t=cv(e=>e.data,e=>(t=[],n)=>{const i=S(t,{code:n});return(e?e.billingAddress:[]).map(e=>o(e,t,i))}),n=cv(e=>e.data,e=>()=>e?e.customerAccount:[]),i=cv(e=>e.errors.loadError,e=>()=>e),r=cv(e=>!!e.statuses.isLoading,e=>()=>e);function o(e,t,n){return"countryCode"===e.name?function(e,t=[],n){if(!t.length)return e;const{code:i=""}=n||{},r=t.map(({code:e,name:t})=>({value:e,label:t}));return Object.assign(Object.assign({},e),{options:{items:r},default:i,type:"array",fieldType:"dropdown",itemtype:"string"})}(e,t,n):"stateOrProvince"===e.name?function(e,t){const{subdivisions:n=[],requiresState:i}=t||{};if(!n.length)return Object.assign(Object.assign({},e),{required:null!=i&&i});const r=n.map(({code:e,name:t})=>({value:e,label:t}));return Object.assign(Object.assign({},e),{name:"stateOrProvinceCode",options:{items:r},required:null==i||i,type:"array",fieldType:"dropdown",itemtype:"string"})}(e,n):"postalCode"===e.name?function(e,t){const{hasPostalCodes:n=[]}=t||{};return void 0===n?e:Object.assign(Object.assign({},e),{required:Boolean(n)})}(e,n):e}return Oe((o=ff)=>({getShippingAddressFields:e(o),getBillingAddressFields:t(o),getCustomerAccountFields:n(o),getLoadError:i(o),isLoading:r(o)}))}(),u=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e=>e.meta,e=>()=>e),n=cv(e=>e.data,e=>(t,n)=>S(e,n?{id:t,gateway:n}:{id:t})),i=cv(n,e=>(t,n)=>YS(e(t,n),()=>new Qe(We.MissingPaymentMethod))),r=cv(e=>e.errors.loadError,e=>()=>e),o=cv(e=>e.errors.loadMethodId,e=>e.errors.loadMethodError,(e,t)=>n=>{if(!n||e===n)return t}),a=cv(e=>e.statuses.isLoading,e=>()=>!!e),s=cv(e=>e.statuses.loadMethodId,e=>e.statuses.isLoadingMethod,(e,t)=>n=>!(n&&e!==n||!t));return Oe((d=Bf)=>({getPaymentMethods:e(d),getPaymentMethodsMeta:t(d),getPaymentMethod:n(d),getPaymentMethodOrThrow:i(d),getLoadError:r(d),getLoadMethodError:o(d),isLoading:a(d),isLoadingMethod:s(d)}))}(),h=function(){const e=cv(e=>e.errors.initializeMethodId,e=>e.errors.initializeError,(e,t)=>n=>{if(!n||e===n)return t}),t=cv(e=>e.errors.executeMethodId,e=>e.errors.executeError,(e,t)=>n=>{if(!n||e===n)return t}),n=cv(e=>e.errors.finalizeMethodId,e=>e.errors.finalizeError,(e,t)=>n=>{if(!n||e===n)return t}),i=cv(e=>e.errors.widgetInteractionMethodId,e=>e.errors.widgetInteractionError,(e,t)=>n=>{if(!n||e===n)return t}),r=cv(e=>e.statuses.initializeMethodId,e=>e.statuses.isInitializing,(e,t)=>n=>!(n&&e!==n||!t)),o=cv(e=>e.data,e=>t=>{const n=t.gatewayId?`${t.methodId}.${t.gatewayId}`:t.methodId;return!(!e[n]||!e[n].isInitialized)}),a=cv(e=>e.statuses.executeMethodId,e=>e.statuses.isExecuting,(e,t)=>n=>!(n&&e!==n||!t)),s=cv(e=>e.statuses.finalizeMethodId,e=>e.statuses.isFinalizing,(e,t)=>n=>!(n&&e!==n||!t)),d=cv(e=>e.statuses.widgetInteractionMethodId,e=>e.statuses.isWidgetInteracting,(e,t)=>n=>!(n&&e!==n||!t));return Oe((c=Hf)=>({getInitializeError:e(c),getExecuteError:t(c),getFinalizeError:n(c),getWidgetInteractingError:i(c),isInitializing:r(c),isInitialized:o(c),isExecuting:a(c),isFinalizing:s(c),isWidgetInteracting:d(c)}))}(),p=function(){const e=cv(e=>e.data,e=>(t,n)=>{if(!e)return;const i=mS(pS({consignmentId:t,searchArea:n})),r=btoa(`${JSON.stringify(i)}`);return e[r]}),t=cv(e=>e.errors.loadError,e=>()=>e),n=cv(e=>!!e.statuses.isLoading,e=>()=>e);return Oe((i=yS)=>({getPickupOptions:e(i),getLoadError:t(i),isLoading:n(i)}))}(),m=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e,e=>()=>YS(e(),()=>new Qe(We.MissingPaymentProviderCustomer)));return Oe((n=Jf)=>({getPaymentProviderCustomer:e(n),getPaymentProviderCustomerOrThrow:t(n)}))}(),y=function(){const e=cv(e=>e.data,e=>t=>e[t]);return Oe((t=oS)=>({getCheckout:e(t)}))}(),g=function(){const e=cv(e=>e.data,e=>()=>{const t=null==e?void 0:e.find(e=>!e.selectedPickupOption);return null==t?void 0:t.shippingAddress}),t=cv(e,e=>()=>YS(e(),()=>new Qe(We.MissingShippingAddress))),n=cv(e=>e.data,e=>()=>{const t=null==e?void 0:e.filter(e=>!e.selectedPickupOption);return t?t.map(e=>e.shippingAddress):[]}),i=cv(n,e=>()=>YS(e(),()=>new Qe(We.MissingShippingAddress)));return Oe((r=dS)=>({getShippingAddress:e(r),getShippingAddressOrThrow:t(r),getShippingAddresses:n(r),getShippingAddressesOrThrow:i(r)}))}(),v=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e=>e.errors.loadError,e=>()=>e),n=cv(e=>e.statuses.isLoading,e=>()=>!!e);return Oe((i=wS)=>({getShippingCountries:e(i),getLoadError:t(i),isLoading:n(i)}))}(),w=function(){const e=cv(e=>e.errors.updateAddressMethodId,e=>e.errors.updateAddressError,(e,t)=>n=>{if(!n||e===n)return t}),t=cv(e=>e.errors.selectOptionMethodId,e=>e.errors.selectOptionError,(e,t)=>n=>{if(!n||e===n)return t}),n=cv(e=>e.errors.initializeMethodId,e=>e.errors.initializeError,(e,t)=>n=>{if(!n||e===n)return t}),i=cv(e=>e.errors.widgetInteractionMethodId,e=>e.errors.widgetInteractionError,(e,t)=>n=>{if(!n||e===n)return t}),r=cv(e=>e.statuses.updateAddressMethodId,e=>e.statuses.isUpdatingAddress,(e,t)=>n=>!(n&&e!==n||!t)),o=cv(e=>e.statuses.selectOptionMethodId,e=>e.statuses.isSelectingOption,(e,t)=>n=>!(n&&e!==n||!t)),a=cv(e=>e.statuses.initializeMethodId,e=>e.statuses.isInitializing,(e,t)=>n=>!(n&&e!==n||!t)),s=cv(e=>e.data,e=>t=>!(!e[t]||!e[t].isInitialized)),d=cv(e=>e.statuses.widgetInteractionMethodId,e=>e.statuses.isWidgetInteracting,(e,t)=>n=>!(n&&e!==n||!t));return Oe((c=PS)=>({getUpdateAddressError:e(c),getSelectOptionError:t(c),getInitializeError:n(c),getWidgetInteractionError:i(c),isUpdatingAddress:r(c),isSelectingOption:o(c),isInitializing:a(c),isInitialized:s(c),isWidgetInteracting:d(c)}))}(),C=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e,e=>()=>YS(e(),()=>new Qe(We.MissingConsignments))),n=cv(e=>e.data,e=>t=>{if(e&&e.length)return S(e,{id:t})}),i=cv(e=>e.data,e=>t=>{if(e&&e.length)return S(e,e=>{return n=e.shippingAddress,i=t,A(ZS(n),ZS(i));var n,i})}),r=cv(e=>e.data,e=>()=>{if(e&&e.length)return e[0].selectedShippingOption}),o=cv(e=>e.errors.loadError,e=>()=>e),a=cv(e=>e.errors.createError,e=>()=>e),s=cv(e=>e.errors.loadShippingOptionsError,e=>()=>e),d=cv(e,(e,{cart:t})=>t.getCart,(e,t)=>()=>{const n=t();if(!n)return[];const i=(e()||[]).reduce((e,t)=>e.concat(t.lineItemIds),[]);return(n.lineItems.physicalItems||[]).filter(e=>i.indexOf(e.id)<0)}),c=cv(e=>e.errors.updateError,e=>t=>t?e[t]:S(e)),l=cv(e=>e.errors.deleteError,e=>t=>t?e[t]:S(e)),u=cv(i,c,a,(e,t,n)=>i=>{const r=e(i);return r?t(r.id):n()}),h=cv(e=>e.errors.updateShippingOptionError,e=>t=>t?e[t]:S(e)),p=cv(e=>e.statuses.isLoading,e=>()=>!0===e),m=cv(e=>e.statuses.isLoadingShippingOptions,e=>()=>!0===e),y=cv(e=>e.statuses.isCreating,e=>()=>!0===e),g=cv(e=>e.statuses.isUpdating,e=>t=>t?!0===e[t]:!0===S(e)),v=cv(e=>e.statuses.isDeleting,e=>t=>t?!0===e[t]:!0===S(e)),f=cv(i,g,y,(e,t,n)=>i=>{const r=e(i);return r?t(r.id):n()}),w=cv(e=>e.statuses.isUpdatingShippingOption,e=>t=>t?!0===e[t]:!0===S(e));return Oe((S=dS,_)=>({getConsignments:e(S),getConsignmentsOrThrow:t(S),getConsignmentById:n(S),getConsignmentByAddress:i(S),getShippingOption:r(S),getLoadError:o(S),getCreateError:a(S),getLoadShippingOptionsError:s(S),getUnassignedItems:d(S,{cart:_}),getUpdateError:c(S),getDeleteError:l(S),getItemAssignmentError:u(S),getUpdateShippingOptionError:h(S),isLoading:p(S),isLoadingShippingOptions:m(S),isCreating:y(S),isUpdating:g(S),isDeleting:v(S),isAssigningItems:f(S),isUpdatingShippingOption:w(S)}))}(),I=function(){const e=cv(e=>e.data,(e,{billingAddress:t})=>t.getBillingAddress,(e,{cart:t})=>t.getCart,(e,{customer:t})=>t.getCustomer,(e,{consignments:t})=>t.getConsignments,(e,{coupons:t})=>t.getCoupons,(e,{giftCertificates:t})=>t.getGiftCertificates,(e,t,n,i,r,o,a)=>()=>{const s=t(),d=n(),c=i(),l=r()||[],u=o()||[],h=a()||[];if(e&&d&&c)return Object.assign(Object.assign({},e),{billingAddress:s,cart:d,customer:c,consignments:l,coupons:u,giftCertificates:h})}),t=cv(e,e=>()=>YS(e(),()=>new Qe(We.MissingCheckout))),n=cv(e,e=>t=>{const n=e();if(!n)return;const i=n.grandTotal||0,r=n.customer.storeCredit||0;return t?Math.max(i-r,0):n.outstandingBalance}),i=cv(e=>e.errors.loadError,e=>()=>e),r=cv(e=>e.errors.updateError,e=>()=>e),o=cv(e=>e.statuses.isExecutingSpamCheck,e=>()=>!0===e),a=cv(e=>e.statuses.isLoading,e=>()=>!0===e),s=cv(e=>e.statuses.isUpdating,e=>()=>!0===e);return Oe((d=VS,c,l,u,h,p,m)=>({getCheckout:e(d,{billingAddress:c,cart:l,consignments:u,coupons:h,customer:p,giftCertificates:m}),getCheckoutOrThrow:t(d,{billingAddress:c,cart:l,consignments:u,coupons:h,customer:p,giftCertificates:m}),getOutstandingBalance:n(d,{billingAddress:c,cart:l,consignments:u,coupons:h,customer:p,giftCertificates:m}),getLoadError:i(d),getUpdateError:r(d),isExecutingSpamCheck:o(d),isLoading:a(d),isUpdating:s(d)}))}(),b=function(){const e=cv(e=>e.data,(e,{billingAddress:t})=>t.getOrderBillingAddress(),(e,{coupons:t})=>t.getCoupons(),(e,t,n=[])=>()=>{if(e&&t)return Object.assign(Object.assign({},e),{billingAddress:t,coupons:n})}),t=cv(e,e=>()=>YS(e(),()=>new Qe(We.MissingOrder))),n=cv(e=>e.meta,e=>()=>e),i=cv(e=>e.errors.loadError,e=>()=>e),r=cv(e=>{var t;return null===(t=e.data)||void 0===t?void 0:t.payments},(e=[])=>t=>{const n=e.find(({providerId:e})=>e===t);return null==n?void 0:n.paymentId}),o=cv(e=>!!e.statuses.isLoading,e=>()=>e);return Oe((a=Af,s,d)=>({getOrder:e(a,{billingAddress:s,coupons:d}),getOrderOrThrow:t(a,{billingAddress:s,coupons:d}),getOrderMeta:n(a),getLoadError:i(a),getPaymentId:r(a),isLoading:o(a)}))}(),P=function(){const e=cv(e=>e.data,e=>()=>e);return Oe((t=Nf)=>({getOrderBillingAddress:e(t)}))}(),O=function(){const e=cv(({order:e})=>e.getOrderMeta,e=>()=>{const t=e();return t&&t.payment}),t=cv(({order:e})=>e.getOrder,e=>()=>{const t=e();return S(t&&t.payments,({providerId:e})=>"giftcertificate"!==e&&"storecredit"!==e)}),n=cv(({checkout:e})=>e.getCheckout,e=>()=>{const t=e();return S(t&&t.payments,({providerType:e})=>"PAYMENT_TYPE_HOSTED"===e)}),i=cv(e,n,t,(e,t,n)=>()=>{const i=e();if(i&&i.id)return{providerId:i.id,gatewayId:i.gateway};const r=t()||n();return r&&r.providerId?{providerId:r.providerId,gatewayId:r.gatewayId}:void 0}),r=cv(i,e=>()=>YS(e(),()=>new Qe(We.MissingPaymentId))),o=cv(e,n,t,(e,t,n)=>()=>{const i=e();if(i&&i.status)return i.status.replace("PAYMENT_STATUS_","");const r=t()||n();return r?r.detail.step:void 0}),a=cv(o,e=>()=>YS(e(),()=>new Qe(We.MissingPaymentStatus))),s=cv(({order:e})=>e.getOrderMeta,e=>()=>{const t=e();return t&&t.token}),d=cv(s,e=>()=>YS(e(),()=>new Qe(We.MissingPaymentToken))),c=cv(e,e=>()=>{const t=e();return t&&t.redirectUrl}),l=cv(c,e=>()=>YS(e(),()=>new Qe(We.MissingPaymentRedirectUrl))),u=cv(({checkout:e})=>e.getOutstandingBalance,e=>(t=!1)=>{const n=e(t);return!!n&&n>0}),h=cv(o,e=>t=>!(!t||!t.nonce)||"ACKNOWLEDGE"===e()||e()===Py);return Oe((e,t)=>({getPaymentId:i({checkout:e,order:t}),getPaymentIdOrThrow:r({checkout:e,order:t}),getPaymentStatus:o({checkout:e,order:t}),getPaymentStatusOrThrow:a({checkout:e,order:t}),getPaymentToken:s({checkout:e,order:t}),getPaymentTokenOrThrow:d({checkout:e,order:t}),getPaymentRedirectUrl:c({checkout:e,order:t}),getPaymentRedirectUrlOrThrow:l({checkout:e,order:t}),isPaymentDataRequired:u({checkout:e,order:t}),isPaymentDataSubmitted:h({checkout:e,order:t})}))}(),E=function(){const e=cv(e=>e.errors.applyError,e=>()=>e),t=cv(e=>!!e.statuses.isApplying,e=>()=>e);return Oe((n=QS)=>({getApplyError:e(n),isApplying:t(n)}))}(),T=function(){const e=cv(e=>e.errors.updateError,e=>()=>e),t=cv(e=>!!e.statuses.isUpdating,e=>()=>e);return Oe((n=BS)=>({getUpdateError:e(n),isUpdating:t(n)}))}(),D=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e=>e.errors.sendError,e=>()=>e),n=cv(e=>!!e.statuses.isSending,e=>()=>e);return Oe((i=TS)=>({getEmail:e(i),getSendError:t(i),isSending:n(i)}))}(),M=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e=>e.data,e=>t=>null==e?void 0:e.find(e=>e.region===t)),n=cv(e=>e.errors.loadError,e=>()=>e),i=cv(e=>e.statuses.isLoading,e=>()=>!!e);return Oe((r=pf)=>({getExtensions:e(r),getExtensionByRegion:t(r),getLoadError:n(r),isLoading:i(r)}))}();return(f,S={})=>{const _=e(f.billingAddress),A=t(f.cart),k=n(f.checkoutButton),z=r(f.countries),N=o(f.coupons),x=a(f.customer),F=s(f.customerStrategies),R=M(f.extensions),L=l(f.formFields),B=d(f.giftCertificates),j=c(f.instruments),U=P(f.orderBillingAddress),q=u(f.paymentMethods),V=m(f.paymentProviderCustomer),G=h(f.paymentStrategies),H=p(f.pickupOptions),$=y(f.remoteCheckout),W=g(f.consignments),Y=v(f.shippingCountries),K=w(f.shippingStrategies),J=T(f.subscriptions),Z=E(f.storeCredit),Q=D(f.signInEmail),X=C(f.consignments,A),ee=I(f.checkout,_,A,X,N,x,B),te=b(f.order,U,N),ne=O(ee,te),ie={billingAddress:_,cart:A,checkout:ee,checkoutButton:k,config:i(f.config,f.formFields),consignments:X,countries:z,coupons:N,customer:x,customerStrategies:F,extensions:R,form:L,giftCertificates:B,instruments:j,order:te,orderBillingAddress:U,payment:ne,paymentMethods:q,paymentProviderCustomer:V,paymentStrategies:G,pickupOptions:H,remoteCheckout:$,shippingAddress:W,shippingCountries:Y,shippingStrategies:K,signInEmail:Q,subscriptions:J,storeCredit:Z};return S.shouldWarnMutation?function(e){return Object.keys(e).reduce((t,n)=>(t[n]=KS(e[n]),t),{})}(ie):ie}}function ew(e={},t){const n=(o=function(){const e=new mv;return["catalog_only","empty_cart","invalid_order_id","invalid_order_token","missing_order_token","missing_provider_token","missing_shipping_method","order_completion_error","order_could_not_be_finalized_error","order_create_failed","provider_fatal_error","provider_setup_error","stock_too_low"].forEach(t=>{e.register(t,(e,t)=>new uv(e,t))}),e.register("invalid_payment_provider",e=>new co(e)),e.register("payment_config_not_found",e=>new co(e)),e}(),e=>le(e).pipe(ge(e=>{if(e instanceof Error||e.payload instanceof Error)throw e;if((t=e.payload)&&"object"==typeof t&&["body","headers","status","statusText"].every(e=>Object.prototype.hasOwnProperty.call(t,e))){const t=e.payload.body&&e.payload.body.detail;throw Object.assign(Object.assign({},e),{payload:o.createError(e.payload,t)})}var t;throw e}))),i=XS(),r=d({billingAddress:_v,cart:Av,checkout:GS,checkoutButton:Rv,config:qv,consignments:cS,countries:bf,coupons:Wv,customer:rf,customerStrategies:cf,extensions:mf,formFields:Sf,giftCertificates:Qv,instruments:eS,orderBillingAddress:xf,order:kf,payment:Rf,paymentMethods:jf,paymentStrategies:$f,pickupOptions:gS,paymentProviderCustomer:Zf,remoteCheckout:aS,shippingCountries:_S,shippingStrategies:OS,signInEmail:DS,subscriptions:jS,storeCredit:FS});var o;return u(r,e,Object.assign({actionTransformer:n,stateTransformer:e=>i(e)},t))}function tw(e){"https:"!==document.location.protocol&&gt().warn("The BigCommerce Checkout SDK should not be used on a non-HTTPS page"),"production"!==ht()&&gt().warn("Note that the development build is not optimized. To create a production build, set process​.env.NODE_ENV to `production`.");const t={meta:{externalSource:e&&e.externalSource,host:null==e?void 0:e.host,locale:null==e?void 0:e.locale,variantIdentificationToken:window.checkoutVariantIdentificationToken},errors:{},statuses:{}},{locale:i="",shouldWarnMutation:r=!0,errorLogger:s=new lt}=e||{},d=n({host:e&&e.host}),c=ew({config:t},{shouldWarnMutation:r}),l=Em(c),u=new Cm(d),h=new Qt(d),p=new St(new bt(d)),m=bn(o()),y=new Pn(d),g=new fn(m,y),v=new Om(u,new Nm(h)),f=new hg(new pg(d)),S=new nn(new rn(d)),w=new en(h,p,S),_=Ig(c),C=function(e,t,n={useFallback:!1}){const{useFallback:i}=n,r=new jt(i);for(const[,n]of Object.entries(t))if(Ft(n))for(const t of n.resolveIds){const i=Rt(()=>n(e),n.resolveIds);r.register(t,i)}return r}(_,$e,{useFallback:!0}),I=function(e,t){const n=new jt;for(const[,i]of Object.entries(t))if(Ft(i))for(const t of i.resolveIds){const r=Rt(()=>i(e),i.resolveIds);n.register(t,r)}return n}(_,He),b=new Wn(new Yn(d)),P=new ii,O=new si(c,P),E=ct(c,function(){const e=function(){const e=cv(({checkout:e})=>e.getCheckout,e=>vg(e)),t=cv(({order:e})=>e.getOrder,e=>vg(e)),n=cv(({config:e})=>e.getStoreConfig,e=>vg(e)),i=cv(({shippingAddress:e})=>e.getShippingAddress,({config:e})=>e.getContextConfig,(e,t)=>vg(()=>{const n=e(),i=t();if(!n){if(!i||!i.geoCountryCode)return;return{firstName:"",lastName:"",company:"",address1:"",address2:"",city:"",stateOrProvince:"",stateOrProvinceCode:"",postalCode:"",country:"",phone:"",customFields:[],countryCode:i.geoCountryCode}}return n})),r=cv(({consignments:e})=>e.getConsignments,e=>vg(()=>{const t=e(),n=null==t?void 0:t.find(e=>!e.selectedPickupOption);return null==n?void 0:n.availableShippingOptions})),o=cv(({consignments:e})=>e.getConsignments,e=>vg(e)),a=cv(({consignments:e})=>e.getConsignments,e=>vg(()=>{const t=e(),n=null==t?void 0:t.find(e=>!e.selectedPickupOption);return null==n?void 0:n.selectedShippingOption})),s=cv(({shippingCountries:e})=>e.getShippingCountries,e=>vg(e)),d=cv(({billingAddress:e})=>e.getBillingAddress,({config:e})=>e.getContextConfig,(e,t)=>vg(()=>{const n=e(),i=t();return(!n||ie(G(n,"shouldSaveAddress","email","id")).every(e=>!e||!e.length))&&i&&i.geoCountryCode?{id:n?n.id:"",firstName:"",lastName:"",company:"",address1:"",address2:"",city:"",email:n?n.email:"",stateOrProvince:"",stateOrProvinceCode:"",postalCode:"",country:"",phone:"",customFields:[],countryCode:i.geoCountryCode}:n})),c=cv(({countries:e})=>e.getCountries,e=>vg(e)),l=cv(({paymentMethods:e})=>e.getPaymentMethods,e=>vg(e)),u=cv(({paymentMethods:e})=>e.getPaymentMethod,e=>vg(e)),h=cv(({payment:e})=>e.getPaymentId,({paymentMethods:e})=>e.getPaymentMethod,(e,t)=>vg(()=>{const n=e();return n&&t(n.providerId,n.gatewayId)})),p=cv(({cart:e})=>e.getCart,e=>vg(e)),m=cv(({coupons:e})=>e.getCoupons,e=>vg(e)),y=cv(({giftCertificates:e})=>e.getGiftCertificates,e=>vg(e)),g=cv(({customer:e})=>e.getCustomer,e=>vg(e)),v=cv(({signInEmail:e})=>e.getEmail,e=>vg(e)),f=cv(({payment:e})=>e.isPaymentDataRequired,e=>vg(e)),S=cv(({payment:e})=>e.isPaymentDataSubmitted,({paymentMethods:e})=>e.getPaymentMethod,(e,t)=>vg((n,i)=>e(t(n,i)))),w=cv(({instruments:e})=>e.getInstruments,({instruments:e})=>e.getInstrumentsByPaymentMethod,(e,t)=>vg(function(n){return n?t(n):e()})),_=cv(({form:e})=>e.getCustomerAccountFields,e=>vg(e)),C=cv(({form:e})=>e.getBillingAddressFields,({countries:e})=>e.getCountries,(e,t)=>vg(n=>e(t(),n))),I=cv(({form:e})=>e.getShippingAddressFields,({shippingCountries:e})=>e.getShippingCountries,(e,t)=>vg(n=>e(t(),n))),b=cv(({config:e})=>e.getFlashMessages,e=>vg(e)),P=cv(({pickupOptions:e})=>e.getPickupOptions,e=>vg(e)),O=cv(({config:e})=>e.getStoreConfig,e=>vg(()=>{const t=e();if(t)return t.checkoutSettings.checkoutUserExperienceSettings})),E=cv(({extensions:e})=>e.getExtensions,e=>vg(e)),A=cv(({paymentProviderCustomer:e})=>e.getPaymentProviderCustomer,e=>vg(e)),k=cv(({extensions:e})=>e.getExtensionByRegion,e=>vg(e));return Oe(T=>({getCheckout:e(T),getOrder:t(T),getConfig:n(T),getExtensions:E(T),getExtensionByRegion:k(T),getFlashMessages:b(T),getShippingAddress:i(T),getShippingOptions:r(T),getConsignments:o(T),getSelectedShippingOption:a(T),getShippingCountries:s(T),getBillingAddress:d(T),getBillingCountries:c(T),getPaymentMethods:l(T),getPaymentMethod:u(T),getSelectedPaymentMethod:h(T),getCart:p(T),getCoupons:m(T),getGiftCertificates:y(T),getCustomer:g(T),isPaymentDataRequired:f(T),isPaymentDataSubmitted:S(T),getSignInEmail:v(T),getInstruments:w(T),getCustomerAccountFields:_(T),getBillingAddressFields:C(T),getShippingAddressFields:I(T),getPickupOptions:P(T),getUserExperienceSettings:O(T),getPaymentProviderCustomer:A(T)}))}(),t=function(){const e=lv(e=>e,e=>()=>{for(const t of Object.keys(e)){const n=e[t]();if(n)return n}}),t=cv(({shippingStrategies:e})=>e.getSelectOptionError,({consignments:e})=>e.getUpdateShippingOptionError,(e,t)=>n=>e()||t(n));return Oe(n=>{const i={getLoadCheckoutError:n.checkout.getLoadError,getUpdateCheckoutError:n.checkout.getUpdateError,getSubmitOrderError:n.paymentStrategies.getExecuteError,getFinalizeOrderError:n.paymentStrategies.getFinalizeError,getLoadOrderError:n.order.getLoadError,getLoadCartError:n.cart.getLoadError,getLoadBillingCountriesError:n.countries.getLoadError,getLoadShippingCountriesError:n.shippingCountries.getLoadError,getLoadPaymentMethodsError:n.paymentMethods.getLoadError,getLoadPaymentMethodError:n.paymentMethods.getLoadMethodError,getInitializePaymentError:n.paymentStrategies.getInitializeError,getSignInError:n.customerStrategies.getSignInError,getSignOutError:n.customerStrategies.getSignOutError,getInitializeCustomerError:n.customerStrategies.getInitializeError,getLoadShippingOptionsError:n.consignments.getLoadShippingOptionsError,getSelectShippingOptionError:t(n),getContinueAsGuestError:n.billingAddress.getContinueAsGuestError,getUpdateBillingAddressError:n.billingAddress.getUpdateError,getUpdateSubscriptionsError:n.subscriptions.getUpdateError,getUpdateShippingAddressError:n.shippingStrategies.getUpdateAddressError,getDeleteConsignmentError:n.consignments.getDeleteError,getUpdateConsignmentError:n.consignments.getUpdateError,getCreateConsignmentsError:n.consignments.getCreateError,getInitializeShippingError:n.shippingStrategies.getInitializeError,getApplyStoreCreditError:n.storeCredit.getApplyError,getApplyCouponError:n.coupons.getApplyError,getRemoveCouponError:n.coupons.getRemoveError,getApplyGiftCertificateError:n.giftCertificates.getApplyError,getRemoveGiftCertificateError:n.giftCertificates.getRemoveError,getLoadInstrumentsError:n.instruments.getLoadError,getDeleteInstrumentError:n.instruments.getDeleteError,getLoadConfigError:n.config.getLoadError,getSignInEmailError:n.signInEmail.getSendError,getCreateCustomerAccountError:n.customer.getCreateAccountError,getCreateCustomerAddressError:n.customer.getCreateAddressError,getPickupOptionsError:n.pickupOptions.getLoadError,getLoadExtensionsError:n.extensions.getLoadError};return Object.assign({getError:e(i)},i)})}(),n=function(){const e=lv(e=>e,e=>()=>Object.keys(e).some(t=>e[t]())),t=cv(({shippingStrategies:e})=>e.isSelectingOption,({consignments:e})=>e.isUpdatingShippingOption,(e,t)=>n=>e()||t(n)),n=cv(({customerStrategies:e})=>e.isInitializing,({customerStrategies:e})=>e.isSigningIn,({customerStrategies:e})=>e.isSigningOut,({customerStrategies:e})=>e.isExecutingPaymentMethodCheckout,({customerStrategies:e})=>e.isWidgetInteracting,(e,t,n,i,r)=>o=>e(o)||t(o)||n(o)||i(o)||r(o)),i=cv(({shippingStrategies:e})=>e.isInitializing,({shippingStrategies:e})=>e.isUpdatingAddress,({shippingStrategies:e})=>e.isSelectingOption,({shippingStrategies:e})=>e.isWidgetInteracting,(e,t,n,i)=>r=>e(r)||t(r)||n(r)||i(r)),r=cv(({paymentStrategies:e})=>e.isInitializing,({paymentStrategies:e})=>e.isExecuting,({paymentStrategies:e})=>e.isFinalizing,({paymentStrategies:e})=>e.isWidgetInteracting,(e,t,n,i)=>r=>e(r)||t(r)||n(r)||i(r)),o=cv(({paymentStrategies:e})=>e.isExecuting,({checkout:e})=>e.isExecutingSpamCheck,(e,t)=>n=>e(n)||t());return Oe(a=>{const s={isLoadingCheckout:a.checkout.isLoading,isUpdatingCheckout:a.checkout.isUpdating,isExecutingSpamCheck:a.checkout.isExecutingSpamCheck,isSubmittingOrder:o(a),isFinalizingOrder:a.paymentStrategies.isFinalizing,isLoadingOrder:a.order.isLoading,isLoadingCart:a.cart.isLoading,isLoadingBillingCountries:a.countries.isLoading,isLoadingShippingCountries:a.shippingCountries.isLoading,isLoadingPaymentMethods:a.paymentMethods.isLoading,isLoadingPaymentMethod:a.paymentMethods.isLoadingMethod,isInitializingPayment:a.paymentStrategies.isInitializing,isSigningIn:a.customerStrategies.isSigningIn,isSigningOut:a.customerStrategies.isSigningOut,isExecutingPaymentMethodCheckout:a.customerStrategies.isExecutingPaymentMethodCheckout,isInitializingCustomer:a.customerStrategies.isInitializing,isInitializedCustomer:a.customerStrategies.isInitialized,isLoadingShippingOptions:a.consignments.isLoadingShippingOptions,isSelectingShippingOption:t(a),isUpdatingBillingAddress:a.billingAddress.isUpdating,isUpdatingSubscriptions:a.subscriptions.isUpdating,isCreatingCustomerAccount:a.customer.isCreatingCustomerAccount,isCreatingCustomerAddress:a.customer.isCreatingCustomerAddress,isContinuingAsGuest:a.billingAddress.isContinuingAsGuest,isUpdatingShippingAddress:a.shippingStrategies.isUpdatingAddress,isUpdatingConsignment:a.consignments.isUpdating,isDeletingConsignment:a.consignments.isDeleting,isCreatingConsignments:a.consignments.isCreating,isInitializingShipping:a.shippingStrategies.isInitializing,isApplyingStoreCredit:a.storeCredit.isApplying,isApplyingCoupon:a.coupons.isApplying,isRemovingCoupon:a.coupons.isRemoving,isApplyingGiftCertificate:a.giftCertificates.isApplying,isRemovingGiftCertificate:a.giftCertificates.isRemoving,isLoadingInstruments:a.instruments.isLoading,isDeletingInstrument:a.instruments.isDeleting,isLoadingConfig:a.config.isLoading,isSendingSignInEmail:a.signInEmail.isSending,isCustomerStepPending:n(a),isShippingStepPending:i(a),isPaymentStepPending:r(a),isLoadingPickupOptions:a.pickupOptions.isLoading};return Object.assign({isPending:e(s)},s)})}();return i=>({data:e(i),errors:t(i),statuses:n(i)})}());return new sv(c,E,O,function(e,t){const n={[oi.ConsignmentsChanged]:ci};return new di(e,t,n)}(E,O),new tt(new at(d),f),w,p,new Ht(new $t(d),w,g),new tg(new ig(d),h),new gm(new vm(d,{locale:i})),new Ot(new zt(d)),new Jt(function(e,t,n){const i=new Bt,r=a(),o=new Qt(t),s=new en(o,new St(new bt(t)),new nn(new rn(t))),d=new an(new sn(t)),c=new un(t),l=new pn(c,s),u=new fn(bn(r),new Pn(t)),h=new Ht(new $t(t),s,u);return i.register("masterpass",()=>new Dn(e,d,l,new ln(r),n)),i.register("default",()=>new On(e,h)),i}(c,d,i),I,_,s),new ut,new Nt(new xt(d)),new bg(new kg(l,d)),v,new an(new sn(d)),new Dm(function(e,t,n,i){const r=new by({defaultToken:km.CREDIT_CARD}),s=a(),d=new Cy,c=new ny(t),l=new Qt(n),u=new Nm(l),h=new Om(new Cm(n),u),p=new Um(bn(o())),m=new ty(c,h,d,p),y=Ee(),g=((e,t)=>new Fy(new xy(e,t)))(y,p),v=new ey(e);return r.register(km.CONVERGE,()=>new ky(e,h,m,v,y)),r.register(km.MASTERPASS,()=>new Ty(e,h,m,new ln(s),i)),r.register(km.PPSDK,()=>new Uy(e,h,((e,t,n,i,r)=>{const o=new Vy;return o.register(By.CARD,()=>new Hy(e,t,r,i)),o.register(By.NONE,()=>new $y(n,i)),o.register(By.UNSUPPORTED,()=>{}),o})(e,h,n,g,v),new Jy(n,g),new xm("PPSDK"))),r.register(km.WE_PAY,()=>new Zy(e,h,m,v,new Qy(s))),r}(c,l,d,i),C,v,g,_,s),new Tg(new Dg(d)),new ag(new sg(d,{locale:i}),c),new Mg(function(e,t){const n=new Bt,i=Ig(e),r=new Qt(t),s=new ig(t),d=new tg(s,r),c=new an(new sn(t)),l=a(),u=new hg(new pg(t)),h=new tt(new at(t),u),p=window,m=new Ri(i);return n.register("amazonpay",()=>new Yg(e,d,new an(new sn(t)),Ai(),new Mg(n))),n.register("stripeupe",()=>new nv(e,new Us(l),d,c)),n.register("braintreeacceleratedcheckout",()=>new Jg(e,h,d,c,new eg,new Ao(new tr(a(),p,m),p))),n.register("paypalcommerceacceleratedcheckout",()=>new ev(e,h,d,c,new eg,new Vg(o()),new Hg)),n.register("default",()=>new Zg(e,d)),n}(c,d)),new iv(new rv(d)),g,new cg(new lg(d)),f,S,b,P)}class nw extends li{constructor(e){super(e||"An unexpected error has occurred during config creation process. Please try again later."),this.name="AmazonPayV2ConfigCreationError",this.type="amazon_pay_v2_config_creation_error"}}function iw(e){return e instanceof Object&&"buyNowInitializeOptions"in e}var rw=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class ow{constructor(e,t,n){this.paymentIntegrationService=e,this.amazonPayV2PaymentProcessor=t,this.amazonPayV2ConfigRequestSender=n}initialize(e){var t;return rw(this,void 0,void 0,function*(){const{methodId:n,containerId:i,amazonpay:r}=e,{buttonColor:o}=r||{};if(!n||!i)throw new ki('Unable to proceed because "methodId" or "containerId" argument is not provided.');const{getPaymentMethodOrThrow:a}=this.paymentIntegrationService.getState(),s=a(n),{initializationData:d}=s;yield this.amazonPayV2PaymentProcessor.initialize(s),r||(yield this.paymentIntegrationService.loadDefaultCheckout());const c=iw(r)?void 0:r;iw(r)&&"function"==typeof(null===(t=r.buyNowInitializeOptions)||void 0===t?void 0:t.getBuyNowCartRequestBody)&&(this._buyNowInitializeOptions=r.buyNowInitializeOptions,this.amazonPayV2PaymentProcessor.updateBuyNowFlowFlag(!0)),this.amazonPayV2PaymentProcessor.renderAmazonPayButton({checkoutState:this.paymentIntegrationService.getState(),containerId:i,methodId:n,options:c,placement:Si.Cart,buttonColor:o,isButtonMicroTextDisabled:null==d?void 0:d.isButtonMicroTextDisabled}),this._buyNowInitializeOptions&&this.amazonPayV2PaymentProcessor.prepareCheckoutWithCreationRequestConfig(this._getCheckoutCreationRequestConfig.bind(this))})}deinitialize(){return this.amazonPayV2PaymentProcessor.deinitialize()}_createBuyNowCartOrThrow(){var e,t;return rw(this,void 0,void 0,function*(){const n=null===(t=null===(e=this._buyNowInitializeOptions)||void 0===e?void 0:e.getBuyNowCartRequestBody)||void 0===t?void 0:t.call(e);if(!n)throw new pi(ui.MissingCart);try{return yield this.paymentIntegrationService.createBuyNowCart(n)}catch(e){throw new lr}})}_createCheckoutConfig(e){return rw(this,void 0,void 0,function*(){try{const t=(yield this.amazonPayV2ConfigRequestSender.createCheckoutConfig(e)).body,{payload:n,public_key:i}=t,r=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(t,["payload","public_key"]);return Object.assign({payloadJSON:n,publicKeyId:i},r)}catch(e){throw new nw}})}_getCheckoutCreationRequestConfig(){return rw(this,void 0,void 0,function*(){const e=yield this._createBuyNowCartOrThrow(),t={amount:String(e.baseAmount),currencyCode:e.currency.code};return{createCheckoutSessionConfig:yield this._createCheckoutConfig(e.id),estimatedOrderAmount:t,productType:0===mi(e)?_i.PayOnly:_i.PayAndShip}})}}class aw{constructor(e){this._requestSender=e}createCheckoutConfig(e){const t={cartId:e},n=Object.assign({"X-API-INTERNAL":Cr,"Content-Type":br.Json},Pr);return this._requestSender.post("/api/storefront/payment/amazonpay",{headers:n,body:t})}}const sw=Rt(e=>{const t=n(),i=new aw(t),r=Ai();return new ow(e,r,i)},[{id:"amazonpay"}]);var dw,cw,lw=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};!function(e){e.Subtotal="Subtotal",e.Shipping="Shipping"}(dw||(dw={})),function(e){e.Black="black",e.White="white",e.WhiteBorder="white-border"}(cw||(cw={}));class uw{constructor(e,t,n,i,r){this._requestSender=e,this._paymentIntegrationService=t,this._sessionFactory=n,this._braintreeSdk=i,this._applePayScriptLoader=r,this._onAuthorizeCallback=V,this._subTotalLabel=dw.Subtotal,this._shippingLabel=dw.Shipping}initialize(e){var t,n;return lw(this,void 0,void 0,function*(){const{methodId:i,containerId:r,applepay:o}=e;if(!i||!o)throw new pi(ui.MissingPaymentMethod);yield this._applePayScriptLoader.loadSdk();const{onPaymentAuthorize:a,buyNowInitializeOptions:s,requiresShipping:d}=o;this._requiresShipping=d,this._buyNowInitializeOptions=s,this._onAuthorizeCallback=a,s||(yield this._paymentIntegrationService.loadDefaultCheckout()),yield this._paymentIntegrationService.loadPaymentMethod(i);const c=this._paymentIntegrationService.getState();return this._paymentMethod=c.getPaymentMethodOrThrow(i),c.getCart()&&(yield this._paymentIntegrationService.verifyCheckoutSpamProtection()),(null===(t=this._paymentMethod.initializationData)||void 0===t?void 0:t.gateway)===Xi.BRAINTREE&&(yield this._initializeBraintreeSdk()),this._applePayButton=this._createButton(r,null===(n=this._paymentMethod.initializationData)||void 0===n?void 0:n.styleOption),this._applePayButton.addEventListener("click",this._handleWalletButtonClick.bind(this)),Promise.resolve()})}deinitialize(){return Promise.resolve()}_createButton(e,t){const n=document.getElementById(e);if(!n)throw new ki("Unable to create wallet button without valid container ID.");const i=this._createApplePayButtonElement(t);return n.appendChild(i),i}_createApplePayButtonElement(e){const t=document.createElement("apple-pay-button");return t.setAttribute("buttonstyle",(e=>{switch(e){case cw.White:return"white";case cw.WhiteBorder:return"white-outline";case cw.Black:default:return"black"}})(e)),t.setAttribute("type","plain"),t.setAttribute("style","--apple-pay-button-width: 100%; --apple-pay-button-height: 40px; --apple-pay-button-border-radius: 4px;"),t}_handleWalletButtonClick(e){var t;return lw(this,void 0,void 0,function*(){if(e.preventDefault(),!this._paymentMethod||!this._paymentMethod.initializationData)throw new pi(ui.MissingPaymentMethod);if(this._buyNowInitializeOptions&&"function"==typeof this._buyNowInitializeOptions.getBuyNowCartRequestBody){const{countryCode:e,currencyCode:n,merchantCapabilities:i,supportedNetworks:r,storeName:o}=this._paymentMethod.initializationData,a=this._getRequestWithEmptyTotal(e,n,r,i);this._requiresShipping&&(null===(t=a.requiredShippingContactFields)||void 0===t||t.push("postalAddress"));const s=this._sessionFactory.create(a);this._handleApplePayEvents(s,this._paymentMethod,o),s.begin()}else{const e=this._paymentIntegrationService.getState(),t=e.getCartOrThrow(),n=e.getStoreConfigOrThrow(),i=e.getCheckoutOrThrow(),r=this._getBaseRequest(t,i,n,this._paymentMethod),o=this._sessionFactory.create(r);this._handleApplePayEvents(o,this._paymentMethod,n.storeProfile.storeName),o.begin()}})}_getRequestWithEmptyTotal(e,t,n,i){return{countryCode:e,currencyCode:t,supportedNetworks:n,merchantCapabilities:i,total:{label:"",amount:"0",type:"pending"},requiredBillingContactFields:["postalAddress"],requiredShippingContactFields:["email","phone"]}}_getBaseRequest(e,t,n,i){var r;const{storeProfile:{storeCountryCode:o,storeName:a}}=n,{currency:{code:s,decimalPlaces:d}}=e,{initializationData:{merchantCapabilities:c,supportedNetworks:l}}=i,u=e.lineItems.physicalItems.length>0,h={requiredBillingContactFields:["postalAddress"],requiredShippingContactFields:["email","phone"],countryCode:o,currencyCode:s,merchantCapabilities:c,supportedNetworks:l,lineItems:[],total:u?{label:a,amount:`${t.grandTotal.toFixed(d)}`,type:"pending"}:{label:a,amount:`${t.grandTotal.toFixed(d)}`,type:"final"}};if(u)null===(r=h.requiredShippingContactFields)||void 0===r||r.push("postalAddress");else{const e=[{label:this._subTotalLabel,amount:`${t.subtotal.toFixed(d)}`}];t.taxes.forEach(t=>e.push({label:t.name,amount:`${t.amount.toFixed(d)}`})),h.lineItems=e}return h}_handleApplePayEvents(e,t,n){e.onvalidatemerchant=n=>lw(this,void 0,void 0,function*(){try{const{body:i}=yield this._onValidateMerchant(t,n);e.completeMerchantValidation(i)}catch(e){throw new Error("Merchant validation failed")}}),this._buyNowInitializeOptions&&!this._requiresShipping&&(e.onpaymentmethodselected=()=>lw(this,void 0,void 0,function*(){yield this._createBuyNowCart(),this._handlePaymentMethodSelected(e)})),e.onshippingcontactselected=t=>lw(this,void 0,void 0,function*(){this._buyNowInitializeOptions&&this._requiresShipping&&(yield this._createBuyNowCart()),yield this._handleShippingContactSelected(e,n,t)}),e.onshippingmethodselected=t=>lw(this,void 0,void 0,function*(){yield this._handleShippingMethodSelected(e,n,t)}),e.oncancel=()=>lw(this,void 0,void 0,function*(){try{const e=`/remote-checkout/${t.id}/signout`;return yield this._requestSender.get(e),yield this._paymentIntegrationService.loadCheckout()}catch(e){throw new nr}}),e.onpaymentauthorized=n=>lw(this,void 0,void 0,function*(){return this._onPaymentAuthorized(n,e,t)})}_createBuyNowCart(){var e,t;return lw(this,void 0,void 0,function*(){try{const n=null===(t=null===(e=this._buyNowInitializeOptions)||void 0===e?void 0:e.getBuyNowCartRequestBody)||void 0===t?void 0:t.call(e);if(!n)throw new pi(ui.MissingCart);const i=yield this._paymentIntegrationService.createBuyNowCart(n);yield this._paymentIntegrationService.loadCheckout(i.id);const r=this._paymentIntegrationService.getState(),{shouldExecuteSpamCheck:o}=r.getCheckoutOrThrow();o&&(yield this._paymentIntegrationService.verifyCheckoutSpamProtection())}catch(e){throw new lr}})}_handlePaymentMethodSelected(e){const t=this._paymentIntegrationService.getState(),n=t.getCartOrThrow(),i=t.getStoreConfigOrThrow(),r=t.getCheckoutOrThrow();if(!this._paymentMethod||!this._paymentMethod.initializationData)throw new pi(ui.MissingPaymentMethod);const o=this._getBaseRequest(n,r,i,this._paymentMethod);delete o.total.type,e.completePaymentMethodSelection({newTotal:o.total,newLineItems:o.lineItems})}_handleShippingContactSelected(e,t,n){var i;return lw(this,void 0,void 0,function*(){const r=this._transformContactToAddress(n.shippingContact);try{yield this._paymentIntegrationService.updateShippingAddress(r)}catch(t){throw e.abort(),new Error("Shipping address update failed")}let o=this._paymentIntegrationService.getState();const{currency:{decimalPlaces:a}}=o.getCartOrThrow();let s=o.getCheckoutOrThrow();const d=null===(i=s.consignments[0].selectedShippingOption)||void 0===i?void 0:i.id,c=s.consignments[0].availableShippingOptions,l=null==c?void 0:c.find(({id:e})=>e===d),u=null==c?void 0:c.filter(e=>e.id!==d),h=l?[{label:l.description,amount:`${l.cost.toFixed(a)}`,detail:l.additionalDescription,identifier:l.id}]:[];if(u&&[...u.filter(e=>e.isRecommended),...u.filter(e=>!e.isRecommended)].forEach(e=>h.push({label:e.description,amount:`${e.cost.toFixed(a)}`,detail:e.additionalDescription,identifier:e.id})),!(c instanceof Array))throw new Error("Shipping options not available.");if(0===c.length)return void e.completeShippingContactSelection(ApplePaySession.STATUS_INVALID_SHIPPING_POSTAL_ADDRESS,[],{type:"pending",label:t,amount:`${s.grandTotal.toFixed(a)}`},[]);const p=c.find(e=>e.isRecommended),m=p?p.id:c[0].id,y=l?l.id:m;try{yield this._updateShippingOption(y)}catch(e){throw new Error("Shipping options update failed")}o=this._paymentIntegrationService.getState(),s=o.getCheckoutOrThrow(),e.completeShippingContactSelection({newShippingMethods:h,newTotal:{type:"final",label:t,amount:`${s.grandTotal.toFixed(a)}`},newLineItems:this._getUpdatedLineItems(s,a)})})}_handleShippingMethodSelected(e,t,n){return lw(this,void 0,void 0,function*(){const{shippingMethod:{identifier:i}}=n;try{yield this._updateShippingOption(i)}catch(t){throw e.abort(),new Error("Shipping option selection update failed.")}const r=this._paymentIntegrationService.getState(),{currency:{decimalPlaces:o}}=r.getCartOrThrow(),a=r.getCheckoutOrThrow();e.completeShippingMethodSelection({newTotal:{type:"final",label:t,amount:`${a.grandTotal.toFixed(o)}`},newLineItems:this._getUpdatedLineItems(a,o)})})}_getUpdatedLineItems(e,t){const n=[{label:this._subTotalLabel,amount:`${e.subtotal.toFixed(t)}`}];return e.taxes.forEach(e=>n.push({label:e.name,amount:`${e.amount.toFixed(t)}`})),n.push({label:this._shippingLabel,amount:`${e.shippingCostTotal.toFixed(t)}`}),n}_updateShippingOption(e){return lw(this,void 0,void 0,function*(){return this._paymentIntegrationService.selectShippingOption(e)})}_onValidateMerchant(e,t){return lw(this,void 0,void 0,function*(){const n=[`validationUrl=${t.validationURL}`,`merchantIdentifier=${e.initializationData.merchantId}`,`displayName=${e.initializationData.storeName}`,`domainName=${window.location.hostname}`].join("&");return this._requestSender.post(`${e.initializationData.paymentsUrl}/api/public/v1/payments/applepay/validate_merchant`,{credentials:!1,headers:{Accept:"application/json","Content-Type":"application/x-www-form-urlencoded","X-XSRF-TOKEN":null},body:n})})}_onPaymentAuthorized(e,t,n){var i;return lw(this,void 0,void 0,function*(){const{token:r,billingContact:o,shippingContact:a}=e.payment,s=this._paymentIntegrationService.getState().getCartOrThrow().lineItems.physicalItems.length>0;let d;(null===(i=n.initializationData)||void 0===i?void 0:i.gateway)===Xi.BRAINTREE&&(d=yield this._getBraintreeDeviceData());const c={methodId:n.id,paymentData:{deviceSessionId:d,formattedPayload:{apple_pay_token:{payment_data:r.paymentData,payment_method:r.paymentMethod,transaction_id:r.transactionIdentifier}}}},l=this._transformContactToAddress(o),u=this._transformContactToAddress(a),h=null==a?void 0:a.emailAddress,p=(null==a?void 0:a.phoneNumber)||"";try{return yield this._paymentIntegrationService.updateBillingAddress(Object.assign(Object.assign({},l),{email:h,phone:p})),s&&(yield this._paymentIntegrationService.updateShippingAddress(u)),yield this._paymentIntegrationService.submitOrder({useStoreCredit:!1}),yield this._paymentIntegrationService.submitPayment(c),t.completePayment(ApplePaySession.STATUS_SUCCESS),this._onAuthorizeCallback()}catch(e){throw t.completePayment(ApplePaySession.STATUS_FAILURE),new Error("Payment cannot complete")}})}_transformContactToAddress(e){return{firstName:(null==e?void 0:e.givenName)||"",lastName:(null==e?void 0:e.familyName)||"",city:(null==e?void 0:e.locality)||"",company:"",address1:(null==e?void 0:e.addressLines)&&e.addressLines[0]||"",address2:(null==e?void 0:e.addressLines)&&e.addressLines[1]||"",postalCode:(null==e?void 0:e.postalCode)||"",countryCode:(null==e?void 0:e.countryCode)||"",phone:(null==e?void 0:e.phoneNumber)||"",stateOrProvince:(null==e?void 0:e.administrativeArea)||"",stateOrProvinceCode:(null==e?void 0:e.administrativeArea)||"",customFields:[]}}_getBraintreeDeviceData(){return lw(this,void 0,void 0,function*(){try{const{deviceData:e}=yield this._braintreeSdk.getDataCollectorOrThrow();return e}catch(e){}})}_initializeBraintreeSdk(){return lw(this,void 0,void 0,function*(){yield this._paymentIntegrationService.loadPaymentMethod(Xi.BRAINTREE);const e=this._paymentIntegrationService.getState().getPaymentMethod(Xi.BRAINTREE);e&&e.clientToken&&e.initializationData&&this._braintreeSdk.initialize(e.clientToken)})}}const hw=Rt(e=>{const{getHost:t}=e.getState(),i=new Ri(e);return new uw(n({host:t()}),e,new sr,new Zi(new tr(a(),window,i)),new dr(new r))},[{id:"applepay"}]);var pw=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class mw{constructor(e,t){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t}initialize(e){var t;return pw(this,void 0,void 0,function*(){const{bigcommerce_payments:n,containerId:i,methodId:r}=e,o=Boolean(null==n?void 0:n.buyNowInitializeOptions);if(!r)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!i)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');if(!n)throw new ki('Unable to initialize payment because "options.bigcommerce_payments" argument is not provided.');if(o&&!n.currencyCode)throw new ki('Unable to initialize payment because "options.bigcommerce_payments.currencyCode" argument is not provided.');if(o&&"function"!=typeof(null===(t=n.buyNowInitializeOptions)||void 0===t?void 0:t.getBuyNowCartRequestBody))throw new ki('Unable to initialize payment because "options.bigcommerce_payments.buyNowInitializeOptions.getBuyNowCartRequestBody" argument is not provided or it is not a function.');o||(yield this.paymentIntegrationService.loadDefaultCheckout());const a=o?n.currencyCode:this.paymentIntegrationService.getState().getCartOrThrow().currency.code;yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(r,a,!1),this.renderButton(i,r,n)})}deinitialize(){return Promise.resolve()}renderButton(e,t,n){const{buyNowInitializeOptions:i,style:r,onComplete:o,onEligibilityFailure:a}=n,s=this.bigCommercePaymentsIntegrationService.getPayPalSdkOrThrow(),d=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(t),{isHostedCheckoutEnabled:c}=d.initializationData||{},l={createOrder:()=>this.bigCommercePaymentsIntegrationService.createOrder("bigcommerce_payments"),onApprove:({orderID:e})=>this.bigCommercePaymentsIntegrationService.tokenizePayment(t,e)},u={onClick:()=>this.handleClick(i),onCancel:()=>this.paymentIntegrationService.loadDefaultCheckout()},h={onShippingAddressChange:e=>this.onShippingAddressChange(e),onShippingOptionsChange:e=>this.onShippingOptionsChange(e),onApprove:(e,n)=>this.onHostedCheckoutApprove(e,n,t,o)},p=Object.assign(Object.assign(Object.assign({fundingSource:s.FUNDING.PAYPAL,style:this.bigCommercePaymentsIntegrationService.getValidButtonStyle(r)},l),i&&u),c&&h),m=s.Buttons(p);m.isEligible()?m.render(`#${e}`):a&&"function"==typeof a?a():this.bigCommercePaymentsIntegrationService.removeElement(e)}handleClick(e){return pw(this,void 0,void 0,function*(){if(e){const t=yield this.bigCommercePaymentsIntegrationService.createBuyNowCartOrThrow(e);yield this.paymentIntegrationService.loadCheckout(t.id)}})}onHostedCheckoutApprove(e,t,n,i){return pw(this,void 0,void 0,function*(){if(!e.orderID)throw new pi(ui.MissingOrderId);const r=this.paymentIntegrationService.getState().getCartOrThrow(),o=yield t.order.get();try{const t=this.bigCommercePaymentsIntegrationService.getBillingAddressFromOrderDetails(o);if(yield this.paymentIntegrationService.updateBillingAddress(t),r.lineItems.physicalItems.length>0){const e=this.bigCommercePaymentsIntegrationService.getShippingAddressFromOrderDetails(o);yield this.paymentIntegrationService.updateShippingAddress(e),yield this.bigCommercePaymentsIntegrationService.updateOrder()}return yield this.paymentIntegrationService.submitOrder({},{params:{methodId:n}}),yield this.bigCommercePaymentsIntegrationService.submitPayment(n,e.orderID),i&&"function"==typeof i&&i(),!0}catch(e){if("string"==typeof e)throw new Error(e);throw e}})}onShippingAddressChange(e){return pw(this,void 0,void 0,function*(){const t=this.bigCommercePaymentsIntegrationService.getAddress({city:e.shippingAddress.city,countryCode:e.shippingAddress.countryCode,postalCode:e.shippingAddress.postalCode,stateOrProvinceCode:e.shippingAddress.state});try{yield this.paymentIntegrationService.updateBillingAddress(t),yield this.paymentIntegrationService.updateShippingAddress(t);const e=this.bigCommercePaymentsIntegrationService.getShippingOptionOrThrow();yield this.paymentIntegrationService.selectShippingOption(e.id),yield this.bigCommercePaymentsIntegrationService.updateOrder()}catch(e){if("string"==typeof e)throw new Error(e);throw e}})}onShippingOptionsChange(e){return pw(this,void 0,void 0,function*(){const t=this.bigCommercePaymentsIntegrationService.getShippingOptionOrThrow(e.selectedShippingOption.id);try{yield this.paymentIntegrationService.selectShippingOption(t.id),yield this.bigCommercePaymentsIntegrationService.updateOrder()}catch(e){if("string"==typeof e)throw new Error(e);throw e}})}}const yw=Rt(e=>new mw(e,Tr(e)),[{id:"bigcommerce_payments"}]);var gw=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class vw{constructor(e,t,n){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t,this.payPalSdkHelper=n}initialize(e){return gw(this,void 0,void 0,function*(){const{bigcommerce_payments_paylater:t,containerId:n,methodId:i}=e,{buyNowInitializeOptions:r,currencyCode:o,messagingContainerId:a}=t||{},s=!!r;if(!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!n)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_paylater" argument is not provided.');if(s&&!o)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_paylater.currencyCode" argument is not provided.');if(s&&"function"!=typeof(null==r?void 0:r.getBuyNowCartRequestBody))throw new ki('Unable to initialize payment because "options.bigcommerce_payments_paylater.buyNowInitializeOptions.getBuyNowCartRequestBody" argument is not provided or it is not a function.');s||(yield this.paymentIntegrationService.loadDefaultCheckout());const d=this.paymentIntegrationService.getState(),c=s?o:d.getCartOrThrow().currency.code;yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(i,c,!1),this.renderButton(n,i,t);const l=a&&document.getElementById(a);if(c&&l){const e=d.getPaymentMethodOrThrow(i),{paypalBNPLConfiguration:t=[]}=e.initializationData||{},n=t&&t.find(({id:e})=>"cart"===e);if(!(null==n?void 0:n.status))return;l.removeAttribute("data-pp-style-logo-type"),l.removeAttribute("data-pp-style-logo-position"),l.removeAttribute("data-pp-style-text-color"),l.removeAttribute("data-pp-style-text-size");const r=yield this.payPalSdkHelper.getPayPalMessages(e,c);this.renderMessages(r,a,n)}})}deinitialize(){return Promise.resolve()}renderButton(e,t,n){const{buyNowInitializeOptions:i,style:r,onComplete:o,onEligibilityFailure:a}=n,s=this.bigCommercePaymentsIntegrationService.getPayPalSdkOrThrow(),d=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(t),{isHostedCheckoutEnabled:c}=d.initializationData||{},l={createOrder:()=>this.bigCommercePaymentsIntegrationService.createOrder("bigcommerce_payments_paylater"),onApprove:({orderID:e})=>this.bigCommercePaymentsIntegrationService.tokenizePayment(t,e)},u={onClick:()=>this.handleClick(i),onCancel:()=>this.paymentIntegrationService.loadDefaultCheckout()},h={onShippingAddressChange:e=>this.onShippingAddressChange(e),onShippingOptionsChange:e=>this.onShippingOptionsChange(e),onApprove:(e,n)=>this.onHostedCheckoutApprove(e,n,t,o)},p=[s.FUNDING.PAYLATER,s.FUNDING.CREDIT];let m=!1;p.forEach(t=>{if(!m){const n=Object.assign(Object.assign(Object.assign({fundingSource:t,style:this.bigCommercePaymentsIntegrationService.getValidButtonStyle(r)},l),i&&u),c&&h),o=s.Buttons(n);o.isEligible()?(o.render(`#${e}`),m=!0):a&&"function"==typeof a&&a()}}),m||this.bigCommercePaymentsIntegrationService.removeElement(e)}handleClick(e){return gw(this,void 0,void 0,function*(){if(e){const t=yield this.bigCommercePaymentsIntegrationService.createBuyNowCartOrThrow(e);yield this.paymentIntegrationService.loadCheckout(t.id)}})}onHostedCheckoutApprove(e,t,n,i){return gw(this,void 0,void 0,function*(){if(!e.orderID)throw new pi(ui.MissingOrderId);const r=this.paymentIntegrationService.getState().getCartOrThrow(),o=yield t.order.get();try{const t=this.bigCommercePaymentsIntegrationService.getBillingAddressFromOrderDetails(o);if(yield this.paymentIntegrationService.updateBillingAddress(t),r.lineItems.physicalItems.length>0){const e=this.bigCommercePaymentsIntegrationService.getShippingAddressFromOrderDetails(o);yield this.paymentIntegrationService.updateShippingAddress(e),yield this.bigCommercePaymentsIntegrationService.updateOrder()}return yield this.paymentIntegrationService.submitOrder({},{params:{methodId:n}}),yield this.bigCommercePaymentsIntegrationService.submitPayment(n,e.orderID),i&&"function"==typeof i&&i(),!0}catch(e){if("string"==typeof e)throw new Error(e);throw e}})}onShippingAddressChange(e){return gw(this,void 0,void 0,function*(){const t=this.bigCommercePaymentsIntegrationService.getAddress({city:e.shippingAddress.city,countryCode:e.shippingAddress.countryCode,postalCode:e.shippingAddress.postalCode,stateOrProvinceCode:e.shippingAddress.state});try{yield this.paymentIntegrationService.updateBillingAddress(t),yield this.paymentIntegrationService.updateShippingAddress(t);const e=this.bigCommercePaymentsIntegrationService.getShippingOptionOrThrow();yield this.paymentIntegrationService.selectShippingOption(e.id),yield this.bigCommercePaymentsIntegrationService.updateOrder()}catch(e){if("string"==typeof e)throw new Error(e);throw e}})}onShippingOptionsChange(e){return gw(this,void 0,void 0,function*(){const t=this.bigCommercePaymentsIntegrationService.getShippingOptionOrThrow(e.selectedShippingOption.id);try{yield this.paymentIntegrationService.selectShippingOption(t.id),yield this.bigCommercePaymentsIntegrationService.updateOrder()}catch(e){if("string"==typeof e)throw new Error(e);throw e}})}renderMessages(e,t,n){const i={amount:this.paymentIntegrationService.getState().getCheckoutOrThrow().outstandingBalance,placement:"cart",style:ac(n)};e.Messages(i).render(`#${t}`)}}const fw=Rt(e=>new vw(e,Tr(e),Hr()),[{id:"bigcommerce_payments_paylater"}]);var Sw=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class ww{constructor(e,t){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t}initialize(e){return Sw(this,void 0,void 0,function*(){const{bigcommerce_payments_apms:t,containerId:n,methodId:i}=e,{apm:r,buyNowInitializeOptions:o,currencyCode:a}=t||{},s=!!o;if(!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!n)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_apms" argument is not provided.');if(!r)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_apms.apm" argument is not provided.');if(s&&!a)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_apms.currencyCode" argument is not provided.');if(s&&"function"!=typeof(null==o?void 0:o.getBuyNowCartRequestBody))throw new ki('Unable to initialize payment because "options.bigcommerce_payments_apms.buyNowInitializeOptions.getBuyNowCartRequestBody" argument is not provided or it is not a function.');s||(yield this.paymentIntegrationService.loadDefaultCheckout());const d=s?a:this.paymentIntegrationService.getState().getCartOrThrow().currency.code;yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(i,d,!1),this.renderButton(n,i,t)})}deinitialize(){return Promise.resolve()}renderButton(e,t,n){const{apm:i,buyNowInitializeOptions:r,style:o,onEligibilityFailure:a}=n,s=this.bigCommercePaymentsIntegrationService.getPayPalSdkOrThrow();if(!Object.values(s.FUNDING).includes(i))throw new ki('Unable to initialize PayPal button because "options.bigcommerce_payments_apms.apm" argument is not valid funding source.');const d={createOrder:()=>this.bigCommercePaymentsIntegrationService.createOrder("bigcommerce_payments_apms"),onApprove:({orderID:e})=>this.bigCommercePaymentsIntegrationService.tokenizePayment(t,e)},c={onClick:()=>this.handleClick(r),onCancel:()=>this.paymentIntegrationService.loadDefaultCheckout()},l=Object.assign(Object.assign({fundingSource:i,style:this.bigCommercePaymentsIntegrationService.getValidButtonStyle(o)},d),r&&c),u=s.Buttons(l);u.isEligible()?u.render(`#${e}`):a&&"function"==typeof a?a():this.bigCommercePaymentsIntegrationService.removeElement(e)}handleClick(e){return Sw(this,void 0,void 0,function*(){if(e){const t=yield this.bigCommercePaymentsIntegrationService.createBuyNowCartOrThrow(e);yield this.paymentIntegrationService.loadCheckout(t.id)}})}}const _w=Rt(e=>new ww(e,Tr(e)),[{id:"bigcommerce_payments_apms"}]);var Cw=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Iw{constructor(e,t){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t}initialize(e){return Cw(this,void 0,void 0,function*(){const{bigcommerce_payments_venmo:t,containerId:n,methodId:i}=e,{buyNowInitializeOptions:r,currencyCode:o}=t||{},a=!!r;if(!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!n)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_venmo" argument is not provided.');if(a&&!o)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_venmo.currencyCode" argument is not provided.');if(a&&"function"!=typeof(null==r?void 0:r.getBuyNowCartRequestBody))throw new ki('Unable to initialize payment because "options.bigcommerce_payments_venmo.buyNowInitializeOptions.getBuyNowCartRequestBody" argument is not provided or it is not a function.');a||(yield this.paymentIntegrationService.loadDefaultCheckout());const s=a?o:this.paymentIntegrationService.getState().getCartOrThrow().currency.code;yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(i,s,!1),this.renderButton(n,i,t)})}deinitialize(){return Promise.resolve()}renderButton(e,t,n){const{buyNowInitializeOptions:i,style:r,onEligibilityFailure:o}=n,a=this.bigCommercePaymentsIntegrationService.getPayPalSdkOrThrow(),s=a.FUNDING.VENMO,d={createOrder:()=>this.bigCommercePaymentsIntegrationService.createOrder("bigcommerce_payments_venmo"),onApprove:({orderID:e})=>this.bigCommercePaymentsIntegrationService.tokenizePayment(t,e)},c={onClick:()=>this.handleClick(i),onCancel:()=>this.paymentIntegrationService.loadDefaultCheckout()},l=Object.assign(Object.assign({fundingSource:s,style:this.getValidVenmoButtonStyles(r)},d),i&&c),u=a.Buttons(l);u.isEligible()?u.render(`#${e}`):o&&"function"==typeof o?o():this.bigCommercePaymentsIntegrationService.removeElement(e)}getValidVenmoButtonStyles(e){const t=this.bigCommercePaymentsIntegrationService.getValidButtonStyle(e);return t.color===gr.gold?Object.assign(Object.assign({},t),{color:void 0}):t}handleClick(e){return Cw(this,void 0,void 0,function*(){if(e){const t=yield this.bigCommercePaymentsIntegrationService.createBuyNowCartOrThrow(e);yield this.paymentIntegrationService.loadCheckout(t.id)}})}}const bw=Rt(e=>new Iw(e,Tr(e)),[{id:"bigcommerce_payments_venmo"}]);class Pw{constructor(e,t,n=window){this.paymentIntegrationService=e,this.boltScriptLoader=t,this.boltHostWindow=n}initialize(e){return t=this,n=void 0,r=function*(){const{bolt:t,containerId:n,methodId:i}=e,{buyNowInitializeOptions:r,style:o}=t||{};if(!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!n)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.bolt" argument is not provided.');if(!Boolean(r))throw new Ti("Only buy now flow is implemented for Bolt button");if(!(null==r?void 0:r.storefrontApiToken)||"string"!=typeof r.storefrontApiToken)throw new ki('Unable to initialize payment because "options.storefrontApiToken" argument is not provided.');const a=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(i),{initializationData:s,config:d}=a,{publishableKey:c,developerConfig:l}=s||{};yield this.boltScriptLoader.loadBoltClient(c,d.testMode,l,"BigCommerce",r.storefrontApiToken),this.renderButton(n,a,o)},new((i=void 0)||(i=Promise))(function(e,o){function a(e){try{d(r.next(e))}catch(e){o(e)}}function s(e){try{d(r.throw(e))}catch(e){o(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((r=r.apply(t,n||[])).next())});var t,n,i,r}deinitialize(){return Promise.resolve()}renderButton(e,t,n){var i;"function"==typeof(null===(i=this.boltHostWindow.BoltConnect)||void 0===i?void 0:i.setupProductPageCheckout)&&(this.addButtonContainer(e,t,n),this.boltHostWindow.BoltConnect.setupProductPageCheckout())}addButtonContainer(e,t,n){const i=document.getElementById(e);if(!i)return;const r=document.createElement("div"),o=document.createElement("object");r.setAttribute("id","product-page-checkout-wrapper"),r.setAttribute("class","bolt-button-wrapper"),r.setAttribute("style","display:none"),r.setAttribute("data-tid","product-page-checkout-wrapper"),o.setAttribute("data",this.getBoltObjectData(t,n)),o.setAttribute("class","bolt-product-checkout-button"),r.append(o),i.innerHTML="",i.append(r)}getBoltObjectData(e,t){const{initializationData:n,config:i}=e,{publishableKey:r,developerConfig:o}=n||{},a=this.boltScriptLoader.getDomainURL(!!i.testMode,o),s=this.getButtonHeight(null==t?void 0:t.size),d=this.getButtonBorderRadius(null==t?void 0:t.shape,s);return xe({url:`https://${a}/v1/checkout_button`,query:{publishable_key:r,variant:"ppc",height:s,border_radius:d}})}getButtonHeight(e){if(e)switch(e){case uo.Small:return 25;case uo.Large:return 45;case uo.Medium:default:return 40}}getButtonBorderRadius(e,t){if(e)switch(e){case ho.Pill:return t?Math.round(t/2):void 0;case ho.Rect:default:return 4}}}const Ow=Rt(e=>new Pw(e,new go(a())),[{id:"bolt"}]);function Ew(e){const{color:t,fundingicons:n,height:i=40,layout:r,shape:o,size:a,tagline:s}=e||{},d={color:t,fundingicons:n,height:Aw(i),layout:r,shape:o||"rect",size:a,tagline:s};return H(d,T)}function Aw(e){const t=Number(e);return!t||Number.isNaN(t)?40:t>55?55:t<25?25:t}var kw=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Tw{constructor(e,t,n,i){this.paymentIntegrationService=e,this.formPoster=t,this.braintreeIntegrationService=n,this.braintreeHostWindow=i}initialize(e){return kw(this,void 0,void 0,function*(){const{braintreepaypal:t,containerId:n,methodId:i}=e;if(!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!n)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.braintreepaypal" argument is not provided.');let r,o=this.paymentIntegrationService.getState();if(t.buyNowInitializeOptions){if(!t.currencyCode)throw new ki('Unable to initialize payment because "options.braintreepaypalcredit.currencyCode" argument is not provided.');r=t.currencyCode}else yield this.paymentIntegrationService.loadDefaultCheckout(),o=this.paymentIntegrationService.getState(),r=o.getCartOrThrow().currency.code;const a=o.getPaymentMethodOrThrow(i),{clientToken:s,config:d,initializationData:c}=a;if(!s||!c)throw new pi(ui.MissingPaymentMethod);const l={currency:r,intent:c.intent,isCreditEnabled:c.isCreditEnabled};this.braintreeIntegrationService.initialize(s),yield this.braintreeIntegrationService.getPaypalCheckout(l,e=>{this.renderPayPalButton(e,t,n,i,!!d.testMode)},e=>this.handleError(e,n,t.onError))})}deinitialize(){return kw(this,void 0,void 0,function*(){yield this.braintreeIntegrationService.teardown()})}renderPayPalButton(e,t,n,i,r){const{style:o,shouldProcessPayment:a,onAuthorizeError:s,onEligibilityFailure:d}=t,{paypal:c}=this.braintreeHostWindow;if(c){const l=c.Buttons({env:r?"sandbox":"production",fundingSource:c.FUNDING.PAYPAL,style:Ew(o),createOrder:()=>this.setupPayment(e,t,i),onApprove:t=>this.tokenizePayment(t,e,i,a,s)});l.isEligible()?l.render(`#${n}`):d&&"function"==typeof d&&d()}else this.braintreeIntegrationService.removeElement(n)}setupPayment(e,t,n){var i;return kw(this,void 0,void 0,function*(){const{onPaymentError:r,shippingAddress:o,buyNowInitializeOptions:a}=t;try{const r="function"==typeof(null==a?void 0:a.getBuyNowCartRequestBody)?yield this.createBuyNowCart(a.getBuyNowCartRequestBody()):void 0;this.buyNowCartId=null==r?void 0:r.id;const s=this.paymentIntegrationService.getState(),d=s.getCustomer(),c=s.getPaymentMethodOrThrow(n),l=r?r.cartAmount:s.getCartOrThrow().cartAmount,u=r?t.currencyCode:s.getCartOrThrow().currency.code,h=o||(null==d?void 0:d.addresses[0]),p=h?pl(h):void 0;return yield e.createPayment({flow:"checkout",enableShippingAddress:!0,shippingAddressEditable:!1,shippingAddressOverride:p,amount:l,currency:u,offerCredit:!1,intent:null===(i=c.initializationData)||void 0===i?void 0:i.intent})}catch(e){throw r&&($i(e)||e instanceof li)&&r(e),e}})}tokenizePayment(e,t,n,i,r){return kw(this,void 0,void 0,function*(){try{const{deviceData:r}=yield this.braintreeIntegrationService.getDataCollector({paypal:!0}),o=yield t.tokenizePayment(e),{details:a,nonce:s}=o,d=this.braintreeIntegrationService.mapToLegacyBillingAddress(a),c=this.braintreeIntegrationService.mapToLegacyShippingAddress(a);return this.formPoster.postForm("/checkout.php",Object.assign({payment_type:"paypal",provider:n,action:i?"process_payment":"set_external_checkout",nonce:s,device_data:r,billing_address:JSON.stringify(d),shipping_address:JSON.stringify(c)},this.buyNowCartId&&{cart_id:this.buyNowCartId})),o}catch(e){throw r&&($i(e)||e instanceof li)&&r(e),e}})}createBuyNowCart(e){return kw(this,void 0,void 0,function*(){if(!e)throw new pi(ui.MissingCart);try{return yield this.paymentIntegrationService.createBuyNowCart(e)}catch(e){throw new lr}})}handleError(e,t,n){if(this.braintreeIntegrationService.removeElement(t),!n||!$i(e))throw e;n(e)}}const Dw=Rt(e=>{const t=window,n=new Ri(e),i=new Ao(new tr(a(),t,n),t);return new Tw(e,Ee(),i,t)},[{id:"braintreepaypal"}]);var Mw=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class zw{constructor(e,t,n,i,r){this.paymentIntegrationService=e,this.formPoster=t,this.braintreeIntegrationService=n,this.braintreeMessages=i,this.braintreeHostWindow=r}initialize(e){var t,n;return Mw(this,void 0,void 0,function*(){const{braintreepaypalcredit:i,containerId:r,methodId:o}=e;if(!o)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!r)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');if(!i)throw new ki('Unable to initialize payment because "options.braintreepaypalcredit" argument is not provided.');let a,s=this.paymentIntegrationService.getState();if(i.buyNowInitializeOptions){if(!i.currencyCode)throw new ki('Unable to initialize payment because "options.braintreepaypalcredit.currencyCode" argument is not provided.');a=i.currencyCode}else yield this.paymentIntegrationService.loadDefaultCheckout(),s=this.paymentIntegrationService.getState(),a=s.getCartOrThrow().currency.code;const d=s.getPaymentMethodOrThrow(o),{clientToken:c,config:l,initializationData:u}=d;if(!c||!u)throw new pi(ui.MissingPaymentMethod);const h={currency:a,intent:u.intent,isCreditEnabled:u.isCreditEnabled},p=Wt(null!==(n=null===(t=s.getStoreConfig())||void 0===t?void 0:t.checkoutSettings.features)&&void 0!==n?n:{},"PAYPAL-5663.hide_braintree_card_banner_implementation_in_checkout_sdk");this.braintreeIntegrationService.initialize(c),yield this.braintreeIntegrationService.getPaypalCheckout(h,e=>{!p&&i.messagingContainerId&&this.renderPayPalMessages(o,i.messagingContainerId),this.renderPayPalButton(e,i,r,o,!!l.testMode)},e=>this.handleError(e,r,i.onError))})}deinitialize(){return Mw(this,void 0,void 0,function*(){yield this.braintreeIntegrationService.teardown()})}renderPayPalMessages(e,t){this.braintreeMessages.render(e,t,Oo.CART)}renderPayPalButton(e,t,n,i,r){const{style:o,shouldProcessPayment:a,onAuthorizeError:s,onEligibilityFailure:d}=t,{paypal:c}=this.braintreeHostWindow;let l=!1;c&&[c.FUNDING.PAYLATER,c.FUNDING.CREDIT].forEach(u=>{const h=u===c.FUNDING.CREDIT?Object.assign({label:bo.CREDIT},Ew(o)):Ew(o);if(!l){const o=c.Buttons({env:r?"sandbox":"production",fundingSource:u,style:h,createOrder:()=>this.setupPayment(e,t,i),onApprove:t=>this.tokenizePayment(t,e,i,a,s)});o.isEligible()?(o.render(`#${n}`),l=!0):c.FUNDING.CREDIT&&d&&"function"==typeof d&&d()}}),c&&l||this.braintreeIntegrationService.removeElement(n)}setupPayment(e,t,n){var i;return Mw(this,void 0,void 0,function*(){const{onPaymentError:r,shippingAddress:o,buyNowInitializeOptions:a}=t;try{const r="function"==typeof(null==a?void 0:a.getBuyNowCartRequestBody)?yield this.createBuyNowCart(a.getBuyNowCartRequestBody()):void 0;this.buyNowCartId=null==r?void 0:r.id;const s=this.paymentIntegrationService.getState(),d=s.getCustomer(),c=s.getPaymentMethodOrThrow(n),l=r?r.cartAmount:s.getCartOrThrow().cartAmount,u=r?t.currencyCode:s.getCartOrThrow().currency.code,h=o||(null==d?void 0:d.addresses[0]),p=h?pl(h):void 0;return yield e.createPayment({flow:"checkout",enableShippingAddress:!0,shippingAddressEditable:!1,shippingAddressOverride:p,amount:l,currency:u,offerCredit:!0,intent:null===(i=c.initializationData)||void 0===i?void 0:i.intent})}catch(e){throw r&&($i(e)||e instanceof li)&&r(e),e}})}tokenizePayment(e,t,n,i,r){return Mw(this,void 0,void 0,function*(){try{const{deviceData:r}=yield this.braintreeIntegrationService.getDataCollector({paypal:!0}),o=yield t.tokenizePayment(e),{details:a,nonce:s}=o,d=this.braintreeIntegrationService.mapToLegacyBillingAddress(a),c=this.braintreeIntegrationService.mapToLegacyShippingAddress(a);return this.formPoster.postForm("/checkout.php",Object.assign({payment_type:"paypal",provider:n,action:i?"process_payment":"set_external_checkout",nonce:s,device_data:r,billing_address:JSON.stringify(d),shipping_address:JSON.stringify(c)},this.buyNowCartId&&{cart_id:this.buyNowCartId})),o}catch(e){throw r&&($i(e)||e instanceof li)&&r(e),e}})}createBuyNowCart(e){return Mw(this,void 0,void 0,function*(){if(!e)throw new pi(ui.MissingCart);try{return yield this.paymentIntegrationService.createBuyNowCart(e)}catch(e){throw new lr}})}handleError(e,t,n){if(this.braintreeIntegrationService.removeElement(t),!n||!$i(e))throw e;n(e)}}const Nw=Rt(e=>{const t=window,n=new Ri(e),i=new Ao(new tr(a(),t,n),t),r=new cl(e);return new zw(e,Ee(),i,r,t)},[{id:"braintreepaypalcredit"}]);var xw=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Fw{constructor(e,t,n){this.paymentIntegrationService=e,this.formPoster=t,this.braintreeSdk=n}initialize(e){return xw(this,void 0,void 0,function*(){const{containerId:t,methodId:n}=e;if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');yield this.paymentIntegrationService.loadPaymentMethod(n);const i=this.paymentIntegrationService.getState(),{clientToken:r,initializationData:o,config:a}=i.getPaymentMethodOrThrow(n);if(!r||!o)throw new pi(ui.MissingPaymentMethod);this.braintreeSdk.initialize(r);const s=yield this.braintreeSdk.getBraintreeVisaCheckout(),{currency:{code:d},cartAmount:c}=i.getCartOrThrow(),l=yield this.braintreeSdk.getVisaCheckoutSdk(a.testMode),u=s.createInitOptions({paymentRequest:{currencyCode:d,subtotal:String(c)},settings:{shipping:{collectShipping:!0}}});this.createSignInButton(t),yield l.init(u),l.on("payment.success",e=>xw(this,void 0,void 0,function*(){yield this.paymentSuccess(s,e)}))})}deinitialize(){return Promise.resolve()}paymentSuccess(e,t){return xw(this,void 0,void 0,function*(){return Promise.all([e.tokenize(t),this.braintreeSdk.getDataCollectorOrThrow()]).then(([e,t])=>{const n=this.paymentIntegrationService.getState(),i=n.getShippingAddress(),r=n.getBillingAddress(),{shippingAddress:o=this.toVisaCheckoutAddress(i),billingAddress:a=this.toVisaCheckoutAddress(r)}=e;return this.postForm(Object.assign(Object.assign({},e),{shippingAddress:o,billingAddress:a}),t)})})}postForm(e,t){const{userData:n,billingAddress:i,shippingAddress:r,details:o}=e,{userEmail:a}=n,{deviceData:s}=t;return this.formPoster.postForm("/checkout.php",{payment_type:e.type,nonce:e.nonce,provider:"braintreevisacheckout",action:"set_external_checkout",device_data:s,card_information:JSON.stringify({type:o.cardType,number:o.lastTwo}),billing_address:JSON.stringify(this.getAddress(a,i)),shipping_address:JSON.stringify(this.getAddress(a,r))})}toVisaCheckoutAddress(e){return e?{firstName:e.firstName,lastName:e.lastName,phoneNumber:e.phone,streetAddress:e.address1,extendedAddress:e.address2,locality:e.city,region:e.stateOrProvinceCode,countryCode:e.countryCode,postalCode:e.postalCode}:{}}getAddress(e,t={}){return{email:e,first_name:t.firstName,last_name:t.lastName,phone_number:t.phoneNumber,address_line_1:t.streetAddress,address_line_2:t.extendedAddress,city:t.locality,state:t.region,country_code:t.countryCode,postal_code:t.postalCode}}createSignInButton(e){const t=document.querySelector(`#${e}`);if(!t)throw new Error("Need a container to place the button");return this.insertVisaCheckoutButton(t)}insertVisaCheckoutButton(e){const t=document.createElement("div");return t.style.display="flex",t.style.flexDirection="column",t.style.alignItems="flex-end",t.innerHTML='\n <img\n alt="Visa Checkout"\n class="v-button"\n role="button"\n src="https://secure.checkout.visa.com/wallet-services-web/xo/button.png?acceptCanadianVisaDebit=false&cobrand=true&height=34&width=178"\n />\n <a class="v-learn v-learn-default" style="text-align: right; display: block; font-size: 10px; color: #003366;" href="#" data-locale="en_US">Tell Me More</a>',e.appendChild(t),t}}const Rw=Rt(e=>{const t=window,n=new Ri(e),i=new Zi(new tr(a(),t,n));return new Fw(e,Ee(),i)},[{id:"braintreevisacheckout"}]);function Lw(e){const{billingAddress:t,email:n,firstName:i,lastName:r,phone:o,shippingAddress:a}=e,s=t||a;return{email:n,first_name:i,last_name:r,phone_number:o,address_line_1:null==s?void 0:s.line1,address_line_2:null==s?void 0:s.line2,city:null==s?void 0:s.city,state:null==s?void 0:s.state,country_code:null==s?void 0:s.countryCode,postal_code:null==s?void 0:s.postalCode}}function Bw(e){const{email:t,phone:n,shippingAddress:i}=e,r=(null==i?void 0:i.recipientName)||"",[o,a]=r.split(" ");return{email:t,first_name:o||"",last_name:a||"",phone_number:n,address_line_1:null==i?void 0:i.line1,address_line_2:null==i?void 0:i.line2,city:null==i?void 0:i.city,state:null==i?void 0:i.state,country_code:null==i?void 0:i.countryCode,postal_code:null==i?void 0:i.postalCode}}var jw=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};const Uw=e=>{const{color:t,height:n}=e;return{backgroundColor:(i=t||"",i===Io.WHITE?"#FFFFFF":"#3D95CE"),backgroundPosition:"50% 50%",backgroundSize:"80px auto",backgroundImage:`url("/app/assets/img/payment-providers/venmo-logo-${t===Io.WHITE?Io.BLUE:Io.WHITE}.svg")`,backgroundRepeat:"no-repeat",borderRadius:"4px",cursor:"pointer",transition:"0.2s ease",minHeight:`${n||40}px`,minWidth:"150px",height:"100%",width:"100%",border:t===Io.WHITE?"1px solid black":"none"};var i};class qw{constructor(e,t,n){this.paymentIntegrationService=e,this.formPoster=t,this.braintreeSdk=n,this.onError=V}initialize(e){return jw(this,void 0,void 0,function*(){const{braintreevenmo:t,containerId:n,methodId:i}=e;if(!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');const r=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(i),{clientToken:o,initializationData:a}=r,{paymentButtonStyles:s}=a,{cartButtonStyles:d}=s||{},c=(null==t?void 0:t.style)||d;if(!o||!a)throw new pi(ui.MissingPaymentMethod);if(!n)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');yield this.paymentIntegrationService.loadDefaultCheckout(),this.onError=(null==t?void 0:t.onError)||this.handleError,this.braintreeSdk.initialize(o);try{const e=yield this.braintreeSdk.getVenmoCheckoutOrThrow();this.renderVenmoButton(e,n,null==t?void 0:t.buyNowInitializeOptions,c)}catch(e){(hl(e)||function(e){return e instanceof Li}(e))&&this.handleInitializationVenmoError(e,n)}})}deinitialize(){return jw(this,void 0,void 0,function*(){return yield this.braintreeSdk.deinitialize(),Promise.resolve()})}handleError(e){throw new Error(e.message)}createBuyNowCart(e){return jw(this,void 0,void 0,function*(){if("function"==typeof(null==e?void 0:e.getBuyNowCartRequestBody)){const t=null==e?void 0:e.getBuyNowCartRequestBody();if(!t)throw new pi(ui.MissingCart);try{return yield this.paymentIntegrationService.createBuyNowCart(t)}catch(e){throw new lr}}})}handleInitializationVenmoError(e,t){return this.removeVenmoContainer(t),this.onError(e)}removeVenmoContainer(e){const t=document.getElementById(e);t&&t.remove()}renderVenmoButton(e,t,n,i){const r=document.getElementById(t),{color:o}=i||{};if(!r)throw new ki("Unable to create wallet button without valid container ID.");r.setAttribute("aria-label","Venmo"),Object.assign(r.style,Uw(i||{})),r.addEventListener("click",()=>jw(this,void 0,void 0,function*(){r.setAttribute("disabled","true");const t=yield this.createBuyNowCart(n);e.tokenize&&e.tokenize((e,n)=>jw(this,void 0,void 0,function*(){r.removeAttribute("disabled"),e&&this.onError(e),yield this.handlePostForm(n,null==t?void 0:t.id)}))})),o===Io.BLUE&&(r.addEventListener("mouseenter",()=>{r.style.backgroundColor="#0a7fc2"}),r.addEventListener("mouseleave",()=>{r.style.backgroundColor=Uw(i||{}).backgroundColor}))}handlePostForm(e,t){return jw(this,void 0,void 0,function*(){const{deviceData:n}=yield this.braintreeSdk.getDataCollectorOrThrow(),{nonce:i,details:r}=e;this.formPoster.postForm("/checkout.php",Object.assign({nonce:i,provider:"braintreevenmo",payment_type:"paypal",device_data:n,action:"set_external_checkout",billing_address:JSON.stringify(Lw(r)),shipping_address:JSON.stringify(Bw(r))},t&&{cart_id:t}))})}}const Vw=Rt(e=>{const t=window,n=a(),i=new Ri(e),r=new tr(n,t,i),o=new Zi(r);return new qw(e,Ee(),o)},[{id:"braintreevenmo"}]);var Gw=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Hw{constructor(e,t){this._paymentIntegrationService=e,this._googlePayPaymentProcessor=t}initialize(e){var t,n;return Gw(this,void 0,void 0,function*(){if(!e.methodId||!ca(e.methodId))throw new ki('Unable to proceed because "methodId" is not a valid key.');if(this._methodId=e.methodId,!e.containerId)throw new ki('Unable to proceed because "containerId" is not a valid key.');const i=e[this._getMethodOrThrow()];if(!i)throw new ki("Unable to proceed without valid options.");const{buyNowInitializeOptions:r,currencyCode:o,buttonColor:a,buttonType:s,onError:d}=i;let c,l=this._paymentIntegrationService.getState();try{c=l.getPaymentMethodOrThrow(this._getMethodOrThrow())}catch(e){l=yield this._paymentIntegrationService.loadPaymentMethod(this._getMethodOrThrow()),c=l.getPaymentMethodOrThrow(this._getMethodOrThrow())}if(this._countryCode=null===(t=c.initializationData)||void 0===t?void 0:t.storeCountry,r){if(!o)throw new ki('Unable to initialize payment because "options.currencyCode" argument is not provided.');this._currencyCode=o,this._buyNowInitializeOptions=r,yield this._googlePayPaymentProcessor.initialize(()=>c,this._getGooglePayClientOptions(),!!r,o)}else yield this._paymentIntegrationService.loadDefaultCheckout(),yield this._googlePayPaymentProcessor.initialize(()=>c,this._getGooglePayClientOptions());this._paymentButton=null!==(n=this._paymentButton)&&void 0!==n?n:this._googlePayPaymentProcessor.addPaymentButton(e.containerId,{buttonColor:null!=a?a:"default",buttonType:null!=s?s:"plain",onClick:this._handleClick(d)})})}deinitialize(){var e;return null===(e=this._paymentButton)||void 0===e||e.remove(),this._paymentButton=void 0,this._methodId=void 0,Promise.resolve()}_handleClick(e){return t=>Gw(this,void 0,void 0,function*(){t.preventDefault();try{this._buyNowInitializeOptions?yield this._createBuyNowCartOrThrow(this._buyNowInitializeOptions):yield this._paymentIntegrationService.loadDefaultCheckout(),yield this._googlePayPaymentProcessor.initializeWidget(),yield this._interactWithPaymentSheet()}catch(t){let n=t;if(da(t)){if("CANCELED"===t.statusCode)throw new nr;n=new so(JSON.stringify(t))}throw null==e||e(new so("An error occurred while requesting your Google Pay payment details.")),n}})}_interactWithPaymentSheet(){var e;return Gw(this,void 0,void 0,function*(){const t=yield this._googlePayPaymentProcessor.showPaymentSheet(),n=this._googlePayPaymentProcessor.mapToBillingAddressRequestBody(t),i=this._googlePayPaymentProcessor.mapToShippingAddressRequestBody(t),r="/embedded-checkout"===window.location.pathname?this._paymentIntegrationService.getState().getStoreConfigOrThrow().links.siteLink:void 0;n&&(yield this._paymentIntegrationService.updateBillingAddress(n)),i&&!(null===(e=this._buyNowCart)||void 0===e?void 0:e.lineItems.digitalItems.length)&&(yield this._paymentIntegrationService.updateShippingAddress(i)),yield this._googlePayPaymentProcessor.setExternalCheckoutForm(this._getMethodOrThrow(),t,r)})}_getGooglePayClientOptions(){return{paymentDataCallbacks:{onPaymentDataChanged:({callbackTrigger:e,shippingAddress:t,shippingOptionData:n,offerData:i})=>Gw(this,void 0,void 0,function*(){const{availableTriggers:r,addressChangeTriggers:o,shippingOptionsChangeTriggers:a,offerChangeTriggers:s}=this._googlePayPaymentProcessor.getCallbackTriggers();if(!r.includes(e))return;const d=o.includes(e)?yield this._googlePayPaymentProcessor.handleShippingAddressChange(t):void 0;a.includes(e)&&(yield this._googlePayPaymentProcessor.handleShippingOptionChange(n.id));const{newOfferInfo:c,error:l}=s.includes(e)?yield this._googlePayPaymentProcessor.handleCoupons(i):{},u=l;return this._buyNowInitializeOptions?this._getBuyNowTransactionInfo(d,c,u):this._getTransactionInfo(d,c,u)})}}}_createBuyNowCartOrThrow(e){return Gw(this,void 0,void 0,function*(){if("function"==typeof(null==e?void 0:e.getBuyNowCartRequestBody)){const t=e.getBuyNowCartRequestBody();try{this._buyNowCart=yield this._paymentIntegrationService.createBuyNowCart(t),yield this._paymentIntegrationService.loadCheckout(this._buyNowCart.id)}catch(e){if("string"==typeof e)throw new lr(e);throw e}}})}_getBuyNowTransactionInfo(e,t,n){if(!this._buyNowCart)return;const{cartAmount:i}=this._buyNowCart,r=this._googlePayPaymentProcessor.getTotalPrice();return Object.assign(Object.assign(Object.assign({newTransactionInfo:Object.assign(Object.assign({},this._countryCode&&{countryCode:this._countryCode}),{currencyCode:this._getCurrencyCodeOrThrow(),totalPrice:r||String(i),totalPriceStatus:Xo.FINAL})},e&&{newShippingOptionParameters:e}),t&&{newOfferInfo:t}),n&&{error:n})}_getTransactionInfo(e,t,n){return Gw(this,void 0,void 0,function*(){yield this._paymentIntegrationService.loadCheckout();const i=this._googlePayPaymentProcessor.getTotalPrice(),{code:r}=this._paymentIntegrationService.getState().getCartOrThrow().currency;return Object.assign(Object.assign(Object.assign({newTransactionInfo:Object.assign(Object.assign({},this._countryCode&&{countryCode:this._countryCode}),{currencyCode:r,totalPriceStatus:Xo.FINAL,totalPrice:i})},e&&{newShippingOptionParameters:e}),t&&{newOfferInfo:t}),n&&{error:n})})}_getMethodOrThrow(){return yi(this._methodId,()=>new gi(hi.PaymentNotInitialized))}_getCurrencyCodeOrThrow(){return yi(this._currencyCode,()=>new ki('Unable to initialize payment because "options.currencyCode" argument is not provided.'))}}const $w=Rt(e=>{const t=n(),i=window,r=new Ri(e),o=new Zi(new tr(a(),i,r));return new Hw(e,new pa(ya(),new ja(e,o),t,Ee()))},[{id:"googlepaybraintree"}]),Ww=Rt(e=>new Hw(e,new pa(ya(),new $a(e,new Va(a())),n(),Ee())),[{id:"googlepaypaypalcommerce"}]),Yw=Rt(e=>new Hw(e,new pa(ya(),new Ka(e,new Gr(a())),n(),Ee())),[{id:"googlepay_bigcommerce_payments"}]),Kw=Rt(e=>{const t=n();return new Hw(e,new pa(ya(),new sa("adyen",e),t,Ee()))},[{id:"googlepayadyenv2"}]),Jw=Rt(e=>{const t=n();return new Hw(e,new pa(ya(),new sa("adyen",e),t,Ee()))},[{id:"googlepayadyenv3"}]),Zw=Rt(e=>new Hw(e,new pa(ya(),new fa(e),n(),Ee())),[{id:"googlepayauthorizenet"}]),Qw=Rt(e=>{const t=n();return new Hw(e,new pa(ya(),new Ia(e,t),t,Ee()))},[{id:"googlepaycheckoutcom"}]),Xw=Rt(e=>new Hw(e,new pa(ya(),new Pa(e),n(),Ee())),[{id:"googlepaycybersourcev2"},{id:"googlepaybnz"}]),e_=Rt(e=>new Hw(e,new pa(ya(),new Aa(e),n(),Ee())),[{id:"googlepayorbital"}]),t_=Rt(e=>new Hw(e,new pa(ya(),new Ma(e,new Na(a())),n(),Ee())),[{id:"googlepaystripe"},{id:"googlepaystripeupe"},{id:"googlepaystripeocs"}]),n_=Rt(e=>new Hw(e,new pa(ya(),new Ra(e),n(),Ee())),[{id:"googlepayworldpayaccess"}]),i_=Rt(e=>new Hw(e,new pa(ya(),new Xa(e,Ee()),n(),Ee())),[{id:"googlepaytdonlinemart"}]);var r_=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class o_{constructor(e,t){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t}initialize(e){var t;return r_(this,void 0,void 0,function*(){const{paypalcommerce:n,containerId:i,methodId:r}=e,o=Boolean(null==n?void 0:n.buyNowInitializeOptions);if(!r)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!i)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');if(!n)throw new ki('Unable to initialize payment because "options.paypalcommerce" argument is not provided.');if(o&&!n.currencyCode)throw new ki('Unable to initialize payment because "options.paypalcommerce.currencyCode" argument is not provided.');if(o&&"function"!=typeof(null===(t=n.buyNowInitializeOptions)||void 0===t?void 0:t.getBuyNowCartRequestBody))throw new ki('Unable to initialize payment because "options.paypalcommerce.buyNowInitializeOptions.getBuyNowCartRequestBody" argument is not provided or it is not a function.');o||(yield this.paymentIntegrationService.loadDefaultCheckout());const a=o?n.currencyCode:this.paymentIntegrationService.getState().getCartOrThrow().currency.code;yield this.paypalCommerceIntegrationService.loadPayPalSdk(r,a,!1),this.renderButton(i,r,n,o)})}deinitialize(){return Promise.resolve()}renderButton(e,t,n,i){var r,o;const{buyNowInitializeOptions:a,style:s,onComplete:d,onEligibilityFailure:c}=n,l=this.paypalCommerceIntegrationService.getPayPalSdkOrThrow(),u=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(t),{isHostedCheckoutEnabled:h,isAppSwitchEnabled:p}=u.initializationData||{},m=Object.assign(Object.assign({},!i&&this.isPaypalCommerceAppSwitchEnabled(t)&&{appSwitchWhenAvailable:!0}),{createOrder:()=>this.paypalCommerceIntegrationService.createOrder("paypalcommerce"),onApprove:({orderID:e})=>this.paypalCommerceIntegrationService.tokenizePayment(t,e)}),y={onClick:()=>this.handleClick(a),onCancel:()=>this.paymentIntegrationService.loadDefaultCheckout()},g=Object.assign(Object.assign({},!p&&{onShippingAddressChange:e=>this.onShippingAddressChange(e),onShippingOptionsChange:e=>this.onShippingOptionsChange(e)}),{onApprove:(e,n)=>this.onHostedCheckoutApprove(e,n,t,d)}),v=Object.assign(Object.assign(Object.assign({fundingSource:l.FUNDING.PAYPAL,style:this.paypalCommerceIntegrationService.getValidButtonStyle(s)},m),a&&y),h&&g),f=l.Buttons(v);f.isEligible()?(null===(r=f.hasReturned)||void 0===r?void 0:r.call(f))&&this.isPaypalCommerceAppSwitchEnabled(t)?null===(o=f.resume)||void 0===o||o.call(f):f.render(`#${e}`):c&&"function"==typeof c?c():this.paypalCommerceIntegrationService.removeElement(e)}handleClick(e){return r_(this,void 0,void 0,function*(){if(e){const t=yield this.paypalCommerceIntegrationService.createBuyNowCartOrThrow(e);yield this.paymentIntegrationService.loadCheckout(t.id)}})}onHostedCheckoutApprove(e,t,n,i){return r_(this,void 0,void 0,function*(){if(!e.orderID)throw new pi(ui.MissingOrderId);const r=this.paymentIntegrationService.getState().getCartOrThrow(),o=yield t.order.get();try{const t=this.paypalCommerceIntegrationService.getBillingAddressFromOrderDetails(o);if(yield this.paymentIntegrationService.updateBillingAddress(t),r.lineItems.physicalItems.length>0){const e=this.paypalCommerceIntegrationService.getShippingAddressFromOrderDetails(o);yield this.paymentIntegrationService.updateShippingAddress(e),yield this.paypalCommerceIntegrationService.updateOrder()}return yield this.paymentIntegrationService.submitOrder({},{params:{methodId:n}}),yield this.paypalCommerceIntegrationService.submitPayment(n,e.orderID),i&&"function"==typeof i&&i(),!0}catch(e){if("string"==typeof e)throw new Error(e);throw e}})}onShippingAddressChange(e){return r_(this,void 0,void 0,function*(){const t=this.paypalCommerceIntegrationService.getAddress({city:e.shippingAddress.city,countryCode:e.shippingAddress.countryCode,postalCode:e.shippingAddress.postalCode,stateOrProvinceCode:e.shippingAddress.state});try{yield this.paymentIntegrationService.updateBillingAddress(t),yield this.paymentIntegrationService.updateShippingAddress(t);const e=this.paypalCommerceIntegrationService.getShippingOptionOrThrow();yield this.paymentIntegrationService.selectShippingOption(e.id),yield this.paypalCommerceIntegrationService.updateOrder()}catch(e){if("string"==typeof e)throw new Error(e);throw e}})}onShippingOptionsChange(e){return r_(this,void 0,void 0,function*(){const t=this.paypalCommerceIntegrationService.getShippingOptionOrThrow(e.selectedShippingOption.id);try{yield this.paymentIntegrationService.selectShippingOption(t.id),yield this.paypalCommerceIntegrationService.updateOrder()}catch(e){if("string"==typeof e)throw new Error(e);throw e}})}isPaypalCommerceAppSwitchEnabled(e){var t;return(null===(t=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e).initializationData)||void 0===t?void 0:t.isAppSwitchEnabled)||!1}}const a_=Rt(e=>new o_(e,ms(e)),[{id:"paypalcommerce"}]);var s_=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class d_{constructor(e,t,n){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t,this.paypalCommerceSdk=n}initialize(e){var t;return s_(this,void 0,void 0,function*(){const{paypalcommercecredit:n,containerId:i,methodId:r}=e,{buyNowInitializeOptions:o,currencyCode:a,messagingContainerId:s}=n||{},d=!!o;if(!r)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!i)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');if(!n)throw new ki('Unable to initialize payment because "options.paypalcommercecredit" argument is not provided.');if(d&&!a)throw new ki('Unable to initialize payment because "options.paypalcommercecredit.currencyCode" argument is not provided.');if(d&&"function"!=typeof(null==o?void 0:o.getBuyNowCartRequestBody))throw new ki('Unable to initialize payment because "options.paypalcommercecredit.buyNowInitializeOptions.getBuyNowCartRequestBody" argument is not provided or it is not a function.');d||(yield this.paymentIntegrationService.loadDefaultCheckout());const c=this.paymentIntegrationService.getState(),l=d?a:c.getCartOrThrow().currency.code;yield this.paypalCommerceIntegrationService.loadPayPalSdk(r,l,!1),this.renderButton(i,r,n);const u=c.getStoreConfigOrThrow().checkoutSettings.features;if(null!==(t=u["PAYPAL-5557.Hide_ppc_banner_implementation"])&&void 0!==t&&t)return;const h=s&&document.getElementById(s);if(l&&h){const e=c.getPaymentMethodOrThrow(r),{paypalBNPLConfiguration:t=[]}=e.initializationData||{},n=t&&t.find(({id:e})=>"cart"===e);if(!(null==n?void 0:n.status))return;h.removeAttribute("data-pp-style-logo-type"),h.removeAttribute("data-pp-style-logo-position"),h.removeAttribute("data-pp-style-text-color"),h.removeAttribute("data-pp-style-text-size");const i=yield this.paypalCommerceSdk.getPayPalMessages(e,l);this.renderMessages(i,s,n)}})}deinitialize(){return Promise.resolve()}renderButton(e,t,n){const{buyNowInitializeOptions:i,style:r,onComplete:o,onEligibilityFailure:a}=n,s=this.paypalCommerceIntegrationService.getPayPalSdkOrThrow(),d=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(t),{isHostedCheckoutEnabled:c,isAppSwitchEnabled:l}=d.initializationData||{},u={createOrder:()=>this.paypalCommerceIntegrationService.createOrder("paypalcommercecredit"),onApprove:({orderID:e})=>this.paypalCommerceIntegrationService.tokenizePayment(t,e)},h={onClick:()=>this.handleClick(i),onCancel:()=>this.paymentIntegrationService.loadDefaultCheckout()},p=Object.assign(Object.assign({},!l&&{onShippingAddressChange:e=>this.onShippingAddressChange(e),onShippingOptionsChange:e=>this.onShippingOptionsChange(e)}),{onApprove:(e,n)=>this.onHostedCheckoutApprove(e,n,t,o)}),m=[s.FUNDING.PAYLATER,s.FUNDING.CREDIT];let y=!1;m.forEach(t=>{if(!y){const n=Object.assign(Object.assign(Object.assign({fundingSource:t,style:this.paypalCommerceIntegrationService.getValidButtonStyle(r)},u),i&&h),c&&p),o=s.Buttons(n);o.isEligible()?(o.render(`#${e}`),y=!0):a&&"function"==typeof a&&a()}}),y||this.paypalCommerceIntegrationService.removeElement(e)}handleClick(e){return s_(this,void 0,void 0,function*(){if(e){const t=yield this.paypalCommerceIntegrationService.createBuyNowCartOrThrow(e);yield this.paymentIntegrationService.loadCheckout(t.id)}})}onHostedCheckoutApprove(e,t,n,i){return s_(this,void 0,void 0,function*(){if(!e.orderID)throw new pi(ui.MissingOrderId);const r=this.paymentIntegrationService.getState().getCartOrThrow(),o=yield t.order.get();try{const t=this.paypalCommerceIntegrationService.getBillingAddressFromOrderDetails(o);if(yield this.paymentIntegrationService.updateBillingAddress(t),r.lineItems.physicalItems.length>0){const e=this.paypalCommerceIntegrationService.getShippingAddressFromOrderDetails(o);yield this.paymentIntegrationService.updateShippingAddress(e),yield this.paypalCommerceIntegrationService.updateOrder()}return yield this.paymentIntegrationService.submitOrder({},{params:{methodId:n}}),yield this.paypalCommerceIntegrationService.submitPayment(n,e.orderID),i&&"function"==typeof i&&i(),!0}catch(e){if("string"==typeof e)throw new Error(e);throw e}})}onShippingAddressChange(e){return s_(this,void 0,void 0,function*(){const t=this.paypalCommerceIntegrationService.getAddress({city:e.shippingAddress.city,countryCode:e.shippingAddress.countryCode,postalCode:e.shippingAddress.postalCode,stateOrProvinceCode:e.shippingAddress.state});try{yield this.paymentIntegrationService.updateBillingAddress(t),yield this.paymentIntegrationService.updateShippingAddress(t);const e=this.paypalCommerceIntegrationService.getShippingOptionOrThrow();yield this.paymentIntegrationService.selectShippingOption(e.id),yield this.paypalCommerceIntegrationService.updateOrder()}catch(e){if("string"==typeof e)throw new Error(e);throw e}})}onShippingOptionsChange(e){return s_(this,void 0,void 0,function*(){const t=this.paypalCommerceIntegrationService.getShippingOptionOrThrow(e.selectedShippingOption.id);try{yield this.paymentIntegrationService.selectShippingOption(t.id),yield this.paypalCommerceIntegrationService.updateOrder()}catch(e){if("string"==typeof e)throw new Error(e);throw e}})}renderMessages(e,t,n){const i={amount:this.paymentIntegrationService.getState().getCheckoutOrThrow().outstandingBalance,placement:"cart",style:qh(n)};e.Messages(i).render(`#${t}`)}}const c_=Rt(e=>new d_(e,ms(e),bs()),[{id:"paypalcommercecredit"}]);var l_=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class u_{constructor(e,t){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t}initialize(e){return l_(this,void 0,void 0,function*(){const{paypalcommercevenmo:t,containerId:n,methodId:i}=e,{buyNowInitializeOptions:r,currencyCode:o}=t||{},a=!!r;if(!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!n)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.paypalcommercevenmo" argument is not provided.');if(a&&!o)throw new ki('Unable to initialize payment because "options.paypalcommercevenmo.currencyCode" argument is not provided.');if(a&&"function"!=typeof(null==r?void 0:r.getBuyNowCartRequestBody))throw new ki('Unable to initialize payment because "options.paypalcommercevenmo.buyNowInitializeOptions.getBuyNowCartRequestBody" argument is not provided or it is not a function.');a||(yield this.paymentIntegrationService.loadDefaultCheckout());const s=a?o:this.paymentIntegrationService.getState().getCartOrThrow().currency.code;yield this.paypalCommerceIntegrationService.loadPayPalSdk(i,s,!1),this.renderButton(n,i,t)})}deinitialize(){return Promise.resolve()}renderButton(e,t,n){const{buyNowInitializeOptions:i,style:r,onEligibilityFailure:o}=n,a=this.paypalCommerceIntegrationService.getPayPalSdkOrThrow(),s=a.FUNDING.VENMO,d={createOrder:()=>this.paypalCommerceIntegrationService.createOrder("paypalcommercevenmo"),onApprove:({orderID:e})=>this.paypalCommerceIntegrationService.tokenizePayment(t,e)},c={onClick:()=>this.handleClick(i),onCancel:()=>this.paymentIntegrationService.loadDefaultCheckout()},l=Object.assign(Object.assign({fundingSource:s,style:this.getValidVenmoButtonStyles(r)},d),i&&c),u=a.Buttons(l);u.isEligible()?u.render(`#${e}`):o&&"function"==typeof o?o():this.paypalCommerceIntegrationService.removeElement(e)}getValidVenmoButtonStyles(e){const t=this.paypalCommerceIntegrationService.getValidButtonStyle(e);return t.color===rs.gold?Object.assign(Object.assign({},t),{color:void 0}):t}handleClick(e){return l_(this,void 0,void 0,function*(){if(e){const t=yield this.paypalCommerceIntegrationService.createBuyNowCartOrThrow(e);yield this.paymentIntegrationService.loadCheckout(t.id)}})}}const h_=Rt(e=>new u_(e,ms(e)),[{id:"paypalcommercevenmo"}]);var p_=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class m_{constructor(e,t){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t}initialize(e){return p_(this,void 0,void 0,function*(){const{paypalcommercealternativemethods:t,containerId:n,methodId:i}=e,{apm:r,buyNowInitializeOptions:o,currencyCode:a}=t||{},s=!!o;if(!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!n)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.paypalcommercealternativemethods" argument is not provided.');if(!r)throw new ki('Unable to initialize payment because "options.paypalcommercealternativemethods.apm" argument is not provided.');if(s&&!a)throw new ki('Unable to initialize payment because "options.paypalcommercealternativemethods.currencyCode" argument is not provided.');if(s&&"function"!=typeof(null==o?void 0:o.getBuyNowCartRequestBody))throw new ki('Unable to initialize payment because "options.paypalcommercealternativemethods.buyNowInitializeOptions.getBuyNowCartRequestBody" argument is not provided or it is not a function.');s||(yield this.paymentIntegrationService.loadDefaultCheckout());const d=s?a:this.paymentIntegrationService.getState().getCartOrThrow().currency.code;yield this.paypalCommerceIntegrationService.loadPayPalSdk(i,d,!1),this.renderButton(n,i,t)})}deinitialize(){return Promise.resolve()}renderButton(e,t,n){const{apm:i,buyNowInitializeOptions:r,style:o,onEligibilityFailure:a}=n,s=this.paypalCommerceIntegrationService.getPayPalSdkOrThrow();if(!Object.values(s.FUNDING).includes(i))throw new ki('Unable to initialize PayPal button because "options.paypalcommercealternativemethods.apm" argument is not valid funding source.');const d={createOrder:()=>this.paypalCommerceIntegrationService.createOrder("paypalcommercealternativemethod"),onApprove:({orderID:e})=>this.paypalCommerceIntegrationService.tokenizePayment(t,e)},c={onClick:()=>this.handleClick(r),onCancel:()=>this.paymentIntegrationService.loadDefaultCheckout()},l=Object.assign(Object.assign({fundingSource:i,style:this.paypalCommerceIntegrationService.getValidButtonStyle(o)},d),r&&c),u=s.Buttons(l);u.isEligible()?u.render(`#${e}`):a&&"function"==typeof a?a():this.paypalCommerceIntegrationService.removeElement(e)}handleClick(e){return p_(this,void 0,void 0,function*(){if(e){const t=yield this.paypalCommerceIntegrationService.createBuyNowCartOrThrow(e);yield this.paymentIntegrationService.loadCheckout(t.id)}})}}const y_=Rt(e=>new m_(e,ms(e)),[{id:"paypalcommercealternativemethods"}]);var g_=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class v_{constructor(e,t,n){this.paymentIntegrationService=e,this.paypalExpressScriptLoader=t,this.formPoster=n}initialize(e){return g_(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e.methodId);if(!e.paypal)throw new ki;if(!t.config.merchantId)throw new pi(ui.MissingPaymentMethod);const n=yield this.paypalExpressScriptLoader.loadPaypalSDK(t.config.merchantId);this.renderButton(e,n)})}deinitialize(){return Promise.resolve()}renderButton(e,t){const{containerId:n,methodId:i,paypal:r}=e,{allowCredit:o,clientId:a,onPaymentError:s,shouldProcessPayment:d,style:c}=r,l=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e.methodId);if(!l.config.merchantId)throw new pi(ui.MissingPaymentMethod);const u=l.config.merchantId,h=l.config.testMode?"sandbox":"production",p={[h]:a},m=t.FUNDING.CREDIT||"credit",y=o?[m]:[],g=o?[]:[m];return t.Button.render({env:h,client:p,commit:d,funding:{allowed:y,disallowed:g},style:this.getStyle(c),payment:(e,t)=>this.setupPayment(u,t,s),onAuthorize:(e,t)=>this.tokenizePayment(e,i,t,d)},n)}getStyle(e){const{color:t,fundingicons:n,label:i,layout:r,shape:o,size:a,tagline:s}=e||{};return{color:t,fundingicons:n,label:i,layout:r,shape:o||yp.RECT,size:"small"===a?hp.RESPONSIVE:a,tagline:s}}setupPayment(e,t,n){return g_(this,void 0,void 0,function*(){if(!t)throw new gi(hi.CheckoutButtonNotInitialized);try{const n=yield this.paymentIntegrationService.loadDefaultCheckout(),{id:i}=n.getCartOrThrow(),r=n.getHost()||"";return(yield t.request.post(`${r}/api/storefront/payment/paypalexpress`,{merchantId:e,cartId:i},{headers:Object.assign({"X-API-INTERNAL":Cr},Pr)})).id}catch(e){throw n&&e instanceof li&&n(e),e}})}tokenizePayment(e,t,n,i){return g_(this,void 0,void 0,function*(){if(!n)throw new gi(hi.CheckoutButtonNotInitialized);if(!e.paymentID||!e.payerID)throw new pi(ui.MissingPayment);const r=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(t),o=yield n.payment.get(e.paymentID);return this.formPoster.postForm("/checkout.php",{payment_type:"paypal",provider:r.id,action:i?"process_payment":"set_external_checkout",paymentId:e.paymentID,payerId:e.payerID,payerInfo:JSON.stringify(o.payer.payer_info)})})}}const f_=Rt(e=>new v_(e,new Sp(a()),Ee()),[{id:"paypalexpress"}]),S_=e=>{const t=ne(e);return document.getElementById(t)?S_(e):t};function w_(e){return Object.prototype.hasOwnProperty.call(e,"cacheKey")}class __{constructor(e){this._lastId=0,this._map={maps:[]},this._usedMaps=[],this._options=Object.assign({maxSize:0,isEqual:Be,onExpire:V},e)}getKey(...e){const t=this._resolveMap(...e),{index:n,parentMap:i}=t;let{map:r}=t;return r&&r.cacheKey?r.usedCount++:r=this._generateMap(i,e.slice(n)),this._removeLeastUsedMap(r),r.cacheKey}getUsedCount(...e){const{map:t}=this._resolveMap(...e);return t?t.usedCount:0}_resolveMap(...e){let t=0,n=this._map;for(;n.maps.length;){let i=!1;for(let r=0;r<n.maps.length;r++){const o=n.maps[r];if(this._options.isEqual(o.value,e[t])){if(n.maps.unshift(...n.maps.splice(r,1)),(0===e.length||t===e.length-1)&&w_(o))return{index:t,map:o,parentMap:n};i=!0,n=o,t++;break}}if(!i)break}return{index:t,parentMap:n}}_generateMap(e,t){let n,i=0,r=e;do{n={maps:[],parentMap:r,usedCount:1,value:t[i]},r.maps.unshift(n),r=n,i++}while(i<t.length);const o=n;return o.cacheKey=""+ ++this._lastId,o}_removeLeastUsedMap(e){if(!this._options.maxSize)return;const t=this._usedMaps.indexOf(e);if(this._usedMaps.splice(-1===t?0:t,-1===t?0:1,e),this._usedMaps.length<=this._options.maxSize)return;const n=this._usedMaps.pop();n&&(this._removeMap(n),this._options.onExpire(n.cacheKey))}_removeMap(e){e.parentMap&&(e.parentMap.maps.splice(e.parentMap.maps.indexOf(e),1),function(e){return Object.prototype.hasOwnProperty.call(e,"parentMap")}(e.parentMap)||this._removeMap(e.parentMap))}}function C_(e){const t=class extends e{};return Object.getOwnPropertyNames(e.prototype).forEach(n=>{const i=Object.getOwnPropertyDescriptor(e.prototype,n);i&&"constructor"!==n&&Object.defineProperty(t.prototype,n,function(e,t,n){if("function"!=typeof n.value)return n;let i=new __,r=n.value,o=Pe(r);return Kn(e,t,{get(){const e=(...e)=>{const t=o.call(this,...e);if(1===i.getUsedCount(...e))return t;const n=r.call(this,...e);return vv(n,t,{keyFilter:e=>!function(e){return 0===`${e}`.indexOf("$$")||0===`${e}`.indexOf("_")}(e)})?t:(o.cache.set(i.getKey(...e),n),n)};return Object.defineProperty(this,t,Object.assign(Object.assign({},n),{value:e})),e},set(e){i=new __,r=e,o=Pe(r)}})}(e.prototype,n,i))}),t}let I_=class{constructor(e){this._checkoutButton=e.checkoutButton}getInitializeButtonError(e){return this._checkoutButton.getInitializeError(e)}getDeinitializeButtonError(e){return this._checkoutButton.getDeinitializeError(e)}};I_=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([C_],I_);const b_=I_;let P_=class{constructor(e){this._checkoutButton=e.checkoutButton}isInitializingButton(e){return this._checkoutButton.isInitializing(e)}isDeinitializingButton(e){return this._checkoutButton.isDeinitializing(e)}};P_=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([C_],P_);const O_=P_;function E_(e){return{errors:new b_(e),statuses:new O_(e)}}let A_=class{constructor(e,t){this._store=e,this._buttonStrategyActionCreator=t,this._state=E_(this._store.getState()),this._store.subscribe(e=>{this._state=E_(e)})}getState(){return this._state}subscribe(e,...t){return this._store.subscribe(()=>e(this.getState()),e=>e.checkoutButton.getState(),...t.map(e=>t=>e(E_(t))))}initializeButton(e){const t=(n=e.containerId,/^\w[\w\-\:\.]*$/.test(n)?[e.containerId]:function(e,t){const n=document.querySelectorAll(e);if(!n.length)throw new Lt(`Unable to find any element with the specified selector: ${e}`);return Array.prototype.slice.call(n).map(e=>(e.id||(e.id=S_(t)),e.id))}(e.containerId,`${e.methodId}-container`));var n;return Promise.all(t.map(t=>{const n=this._buttonStrategyActionCreator.initialize(Object.assign(Object.assign({},e),{containerId:t})),i=`checkoutButtonStrategy:${e.methodId}:${t}`;return this._store.dispatch(n,{queueId:i})})).then(()=>this.getState())}deinitializeButton(e){const t=this._buttonStrategyActionCreator.deinitialize(e),n=`checkoutButtonStrategy:${e.methodId}`;return this._store.dispatch(t,{queueId:n}).then(()=>this.getState())}};A_=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([Kn],A_);const k_=A_;class T_{constructor(e,t,n){this._registry=e,this._registryV2=t,this._paymentMethodActionCreator=n}initialize(e){return t=>{const n={methodId:e.methodId,containerId:e.containerId};if(t.getState().checkoutButton.isInitialized(e.methodId,e.containerId))return ce();const i=e.currencyCode?{params:{currencyCode:e.currencyCode}}:{},r=Object.assign(Object.assign({},i),{timeout:e.timeout,useCache:!0});return se(me(l(Mv.InitializeButtonRequested,void 0,n)),this._paymentMethodActionCreator.loadPaymentMethod(e.methodId,r)(t),de(()=>this._getStrategy(e.methodId).initialize(e).then(()=>l(Mv.InitializeButtonSucceeded,void 0,n)))).pipe(ge(e=>Je(Mv.InitializeButtonFailed,e,n)))}}deinitialize(e){return t=>{const n={methodId:e.methodId};return t.getState().checkoutButton.isInitialized(e.methodId)?se(me(l(Mv.DeinitializeButtonRequested,void 0,n)),de(()=>this._getStrategy(e.methodId).deinitialize().then(()=>l(Mv.DeinitializeButtonSucceeded,void 0,n)))).pipe(ge(e=>Je(Mv.DeinitializeButtonFailed,e,n))):ce()}}_getStrategy(e){let t;try{t=this._registryV2.get({id:e})}catch(n){t=this._registry.get(e)}return t}}class D_{constructor(e){this._scriptLoader=e,this._window=window}loadPaypal(e=""){return t=this,n=void 0,r=function*(){const t="//www.paypalobjects.com/api/checkout.min.js",n={async:!0,attributes:{"data-merchant-id":e}};if(e?yield this._scriptLoader.loadScript(t,n):yield this._scriptLoader.loadScript(t),!this._window.paypal)throw new dn;return this._window.paypal},new((i=void 0)||(i=Promise))(function(e,o){function a(e){try{d(r.next(e))}catch(e){o(e)}}function s(e){try{d(r.throw(e))}catch(e){o(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((r=r.apply(t,n||[])).next())});var t,n,i,r}}var M_,z_,N_,x_,F_,R_,L_,B_;class j_{constructor(e,t,n,i){this._store=e,this._checkoutActionCreator=t,this._masterpassScriptLoader=n,this._locale=i}initialize(e){const{containerId:t,methodId:n}=e;if(!t||!n)throw new Lt('Unable to proceed because "containerId" argument is not provided.');return this._methodId=n,this._store.dispatch(this._checkoutActionCreator.loadDefaultCheckout()).then(e=>{const t=e.paymentMethods.getPaymentMethod(n);if(!t||!t.initializationData.checkoutId)throw new Qe(We.MissingPaymentMethod);const i={useMasterpassSrc:t.initializationData.isMasterpassSrcEnabled,language:Tn(this._locale),testMode:t.config.testMode,checkoutId:t.initializationData.checkoutId};return this._masterpassScriptLoader.load(i)}).then(e=>{this._masterpassClient=e,this._signInButton=this._createSignInButton(t)})}deinitialize(){return this._signInButton&&this._signInButton.parentNode&&(this._signInButton.removeEventListener("click",this._handleWalletButtonClick),this._signInButton.parentNode.removeChild(this._signInButton),this._signInButton=void 0),Promise.resolve()}_createSignInButton(e){const t=document.getElementById(e),n=this._store.getState(),i=this._methodId?n.paymentMethods.getPaymentMethod(this._methodId):null,r=n.config.getStoreConfig();if(!t)throw new Error("Need a container to place the button");if(!i)throw new Qe(We.MissingPaymentMethod);if(!r)throw new Lt("Unable to retrieve store configuration");const o=document.createElement("input");if(o.type="image",i.initializationData.isMasterpassSrcEnabled){const e=i.config.testMode?"sandbox.":"",{checkoutId:t}=i.initializationData,n=[`locale=${Tn(this._locale)}`,"paymentmethod=master,visa,amex,discover",`checkoutid=${t}`];o.src=[`https://${e}src.mastercard.com/assets/img/btn/src_chk_btn_126x030px.svg`,n.join("&")].join("?")}else o.src="https://static.masterpass.com/dyn/img/btn/global/mp_chk_btn_160x037px.svg";return t.appendChild(o),o.addEventListener("click",this._handleWalletButtonClick),o}_createMasterpassPayload(){const e=this._store.getState(),t=e.checkout.getCheckout(),n=this._methodId?e.paymentMethods.getPaymentMethod(this._methodId):null;if(!t)throw new Qe(We.MissingCheckout);if(!n)throw new Qe(We.MissingPaymentMethod);return{checkoutId:n.initializationData.checkoutId,allowedCardTypes:n.initializationData.allowedCardTypes,amount:t.cart.cartAmount.toString(),currency:t.cart.currency.code,cartId:t.cart.id,callbackUrl:An("cart")}}_handleWalletButtonClick(){if(!this._masterpassClient)throw new wn(gn.CheckoutButtonNotInitialized);this._masterpassClient.checkout(this._createMasterpassPayload())}}(function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);o>3&&a&&Object.defineProperty(t,n,a)})([Kn],j_.prototype,"_handleWalletButtonClick",null),function(e){e.HORIZONTAL="horizontal",e.VERTICAL="vertical"}(M_||(M_={})),function(e){e.SMALL="small",e.MEDIUM="medium",e.LARGE="large",e.RESPONSIVE="responsive"}(z_||(z_={})),function(e){e.GOLD="gold",e.BLUE="blue",e.SIlVER="silver",e.BLACK="black",e.WHITE="white"}(N_||(N_={})),function(e){e.CHECKOUT="checkout",e.PAY="pay",e.BUYNOW="buynow",e.PAYPAL="paypal",e.CREDIT="credit"}(x_||(x_={})),function(e){e.PILL="pill",e.RECT="rect"}(F_||(F_={}));class U_{constructor(e,t,n,i,r=""){this._store=e,this._checkoutActionCreator=t,this._paypalScriptLoader=n,this._formPoster=i,this._host=r}initialize(e){const t=e.paypal,n=this._store.getState(),i=this._paymentMethod=n.paymentMethods.getPaymentMethod(e.methodId);if(!t)throw new Lt;if(!i)throw new Qe(We.MissingPaymentMethod);return this._paypalScriptLoader.loadPaypal(i.config.merchantId).then(n=>{var r,o;if(!i||!i.config.merchantId)throw new Qe(We.MissingPaymentMethod);const a=i.config.merchantId,s=i.config.testMode?"sandbox":"production",d={[s]:t.clientId},c=n.FUNDING.CREDIT||"credit",l=t.allowCredit?[c]:[],u=t.allowCredit?[]:[c];return n.Button.render({env:s,client:d,commit:t.shouldProcessPayment,funding:{allowed:l,disallowed:u},style:Object.assign(Object.assign({shape:F_.RECT},W(t.style,"layout","color","label","shape","tagline","fundingicons")),{size:"paypalexpress"===i.id&&"small"===(null===(r=t.style)||void 0===r?void 0:r.size)?z_.RESPONSIVE:null===(o=t.style)||void 0===o?void 0:o.size}),payment:(e,n)=>this._setupPayment(a,n,t.onPaymentError),onAuthorize:(e,n)=>this._tokenizePayment(e,n,t.shouldProcessPayment,t.onAuthorizeError)},e.containerId)})}deinitialize(){return this._paymentMethod=void 0,Promise.resolve()}_setupPayment(e,t,n){if(!t)throw new wn(gn.CheckoutButtonNotInitialized);return this._store.dispatch(this._checkoutActionCreator.loadDefaultCheckout()).then(n=>{const i=n.cart.getCart(),r=i?i.id:"";return t.request.post(`${this._host}/api/storefront/payment/paypalexpress`,{merchantId:e,cartId:r},{headers:Object.assign({"X-API-INTERNAL":It},rt)})}).then(e=>e.id).catch(e=>{throw n&&n(e),e})}_tokenizePayment(e,t,n,i){if(!this._paymentMethod)throw new wn(gn.CheckoutButtonNotInitialized);if(!t)throw new wn(gn.CheckoutButtonNotInitialized);if(!e.paymentID||!e.payerID)throw new Qe(We.MissingPayment);const r=this._paymentMethod.id;return t.payment.get(e.paymentID).then(t=>{this._formPoster.postForm("/checkout.php",{payment_type:"paypal",provider:r,action:n?"process_payment":"set_external_checkout",paymentId:e.paymentID,payerId:e.payerID,payerInfo:JSON.stringify(t.payer.payer_info)})})}}function q_(e){const{host:t,locale:i="en"}=null!=e?e:{},r=ew({config:{meta:{host:null==e?void 0:e.host,locale:null==e?void 0:e.locale},errors:{},statuses:{}}}),o=n({host:t}),s=Ee({host:t}),d=function(e,t){const n=new jt;for(const[,i]of Object.entries(t))if(Ft(i))for(const t of i.resolveIds)n.register(t,()=>i(e));return n}(Ig(r),Ke);return new k_(r,new T_(function(e,t,n,i,r){const o=new Bt,s=a(),d=new Qt(t),c=new en(d,new St(new bt(t)),new nn(new rn(t)));return o.register(uy.MASTERPASS,()=>new j_(e,c,new ln(s),i)),o.register(uy.PAYPALEXPRESS,()=>new U_(e,c,new D_(s),n,r)),o}(r,o,s,i,t),d,new an(new sn(o))))}!function(e){e.CheckoutComplete="CHECKOUT_COMPLETE",e.CheckoutError="CHECKOUT_ERROR",e.CheckoutLoaded="CHECKOUT_LOADED",e.FrameError="FRAME_ERROR",e.FrameLoaded="FRAME_LOADED",e.SignedOut="SIGNED_OUT"}(R_||(R_={}));class V_ extends _t{constructor(e){super(e,{message:e.body.title}),this.name="InvalidLoginTokenError",this.type="invalid_login_token"}}!function(e){e.MissingContainer="missing_container",e.MissingContent="missing_content",e.UnknownError="unknown_error"}(L_||(L_={}));class G_ extends Ze{constructor(e,t=L_.UnknownError){super(e||"Unable to embed the checkout form."),this.subtype=t,this.name="NotEmbeddableError",this.type="not_embeddable"}}!function(e){e.StyleConfigured="STYLE_CONFIGURED"}(B_||(B_={}));const H_="isCookieAllowed",$_="lastAllowCookieAttempt";let W_=class{constructor(e,t,n,i,r,o,a,s){this._iframeCreator=e,this._messageListener=t,this._messagePoster=n,this._loadingIndicator=i,this._requestSender=r,this._storage=o,this._location=a,this._options=s,this._isAttached=!1,this._options.onComplete&&this._messageListener.addListener(R_.CheckoutComplete,this._options.onComplete),this._options.onError&&this._messageListener.addListener(R_.CheckoutError,this._options.onError),this._options.onLoad&&this._messageListener.addListener(R_.CheckoutLoaded,this._options.onLoad),this._options.onFrameLoad&&this._messageListener.addListener(R_.FrameLoaded,this._options.onFrameLoad),this._options.onSignOut&&this._messageListener.addListener(R_.SignedOut,this._options.onSignOut),this._messageListener.addListener(R_.FrameLoaded,()=>this._configureStyles())}attach(){return this._isAttached?Promise.resolve(this):(this._isAttached=!0,this._messageListener.listen(),this._loadingIndicator.show(this._options.containerId),this._allowCookie().then(()=>this._attemptLogin()).then(e=>this._iframeCreator.createFrame(e,this._options.containerId)).then(e=>{this._iframe=e,this._configureStyles(),this._loadingIndicator.hide()}).catch(e=>(this._isAttached=!1,this._retryAllowCookie(e).catch(()=>{throw this._messageListener.trigger({type:R_.FrameError,payload:e}),this._loadingIndicator.hide(),e}))).then(()=>this))}detach(){this._isAttached&&(this._isAttached=!1,this._messageListener.stopListen(),this._iframe&&this._iframe.parentNode&&(this._iframe.parentNode.removeChild(this._iframe),this._iframe.iFrameResizer.close()))}_configureStyles(){this._iframe&&this._iframe.contentWindow&&this._options.styles&&(this._messagePoster.setTarget(this._iframe.contentWindow),this._messagePoster.post({type:B_.StyleConfigured,payload:this._options.styles}))}_attemptLogin(){return/^\/login\/token/.test(Mn(this._options.url).pathname)?this._requestSender.post(this._options.url).then(({body:{redirectUrl:e}})=>e).catch(e=>Promise.reject(new V_(e))):Promise.resolve(this._options.url)}_allowCookie(){if(this._storage.getItem(H_))return Promise.resolve();this._storage.setItem(H_,!0),this._storage.setItem($_,Date.now());const{origin:e}=Mn(this._options.url),t=`${e}/embedded-checkout/allow-cookie?returnUrl=${encodeURIComponent(this._location.href)}`;return document.body.style.visibility="hidden",this._location.replace(t),new Promise(()=>{})}_retryAllowCookie(e){const t=Number(this._storage.getItem($_));return(!t||Date.now()-t>6e5)&&e instanceof G_&&e.subtype===L_.MissingContent?(this._storage.removeItem($_),this._storage.removeItem(H_),this._allowCookie()):Promise.reject()}};W_=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([Kn],W_);const Y_=W_;class K_{constructor(e){this._options=e}createFrame(e,t){const n=document.getElementById(t),{timeout:i=6e4}=this._options||{};if(!n)throw new G_("Unable to embed the iframe because the container element could not be found.",L_.MissingContainer);const r=document.createElement("iframe");return r.src=e,r.style.border="none",r.style.display="none",r.style.width="100%",r.allowPaymentRequest=!0,r.allow="payment",n.appendChild(r),this._toResizableFrame(r,i).catch(e=>{throw n.removeChild(r),e})}_toResizableFrame(e,t){return new Promise((n,i)=>{const r=window.setTimeout(()=>{i(new G_("Unable to embed the iframe because the content could not be loaded."))},t),o=t=>{if((t.origin===Mn(e.src).origin||t.origin===ri(Mn(e.src)).origin)&&(Fn(t.data,R_.FrameError)&&(a(),i(new G_(t.data.payload.message,L_.MissingContent))),Fn(t.data,R_.FrameLoaded))){e.style.display="";const i=Vn({scrolling:!1,sizeWidth:!1,heightCalculationMethod:t.data.payload&&t.data.payload.contentId?"taggedElement":"lowestElement"},e);a(),n(i[i.length-1])}},a=()=>{window.removeEventListener("message",o),window.clearTimeout(r)};window.addEventListener("message",o)})}}function J_(e){const t=Mn(e.url).origin;return new Y_(new K_,new ai(t),new Rn(t),new sd({styles:e.styles&&e.styles.loadingIndicator}),n(),new xm("BigCommerce.EmbeddedCheckout"),window.location,e).attach()}function Z_(e){if(!e.payload||!e.payload.contentId)return;const t=document.getElementById(e.payload.contentId);t&&!t.hasAttribute("data-iframe-height")&&t.setAttribute("data-iframe-height","")}function Q_(e){return"object"==typeof e&&null!==e&&"message"in e&&"type"in e}let X_=class{constructor(e,t,n,i={}){this._messageListener=e,this._messagePoster=t,this._untargetedMessagePoster=n,this._messageHandlers=i,this._messageListener.listen()}postComplete(){const e={type:R_.CheckoutComplete};this._postMessage(e)}postError(e){const t={type:R_.CheckoutError,payload:this._transformError(e)};this._postMessage(t)}postFrameError(e){const t={type:R_.FrameError,payload:this._transformError(e)};this._postMessage(t,{untargeted:!0})}postFrameLoaded(e){const t={type:R_.FrameLoaded,payload:e};this._postMessage(t)}postLoaded(){const e={type:R_.CheckoutLoaded};this._postMessage(e)}postSignedOut(){const e={type:R_.SignedOut};this._postMessage(e)}receiveStyles(e){this._messageListener.addListener(B_.StyleConfigured,({payload:t})=>{e(t)})}_postMessage(e,t){if(this._notifyMessageHandlers(e),t&&t.untargeted)return this._untargetedMessagePoster.post(e);this._messagePoster.post(e)}_notifyMessageHandlers(e){Object.keys(this._messageHandlers).forEach(t=>{if(e.type!==t)return;const n=this._messageHandlers[t];n&&n.call(null,e)})}_transformError(e){return{message:e.message,type:Q_(e)?e.type:void 0,subtype:Q_(e)?e.subtype:void 0}}};X_=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([Kn],X_);const eC=X_;let tC=class{postComplete(){}postError(){}postFrameError(){}postFrameLoaded(){}postLoaded(){}postSignedOut(){}receiveStyles(){}};tC=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([Kn],tC);const nC=tC;function iC(e){Ge(939);const t=e.parentWindow||window.parent;return window===t?new nC:new eC(new ai(e.parentOrigin),new Rn(e.parentOrigin,t),new Rn("*",t),{[R_.FrameLoaded]:Z_})}const rC="en",oC="optimized_checkout";let aC=class{constructor(e,t){var n;this._logger=t;const{locale:i,locales:r,translations:o}=this._transformConfig(e);this._locale=i,this._locales=r,this._translations=o,this._formatters={},this._isCspNonceExperimentEnabled=null===(n=e.isCspNonceExperimentEnabled)||void 0===n||n}mapKeys(e){Object.keys(e).forEach(t=>{const n=`${oC}.${e[t]}`;this._translations[`${oC}.${t}`]=this._translations[n]})}getLocale(){return this._hasTranslations()?this._locale:rC}translate(e,t={}){var n;const i=`${oC}.${e}`;if("string"!=typeof this._translations[i])return this._logger.warn(`Translation key "${i}" is missing`),i;if(this._isCspNonceExperimentEnabled){this._formatters[i]||(this._formatters[i]=new je(this._escapeSpecialCharacters(this._translations[i]||""),this._locales[i],void 0,{ignoreTag:!0}));try{return this._formatters[i].format(this._transformData(t))}catch(e){if(this._isFormatError(e))return null!==(n=e.originalMessage)&&void 0!==n?n:"";throw e}}if(!this._formatters[i]){const e=new Ue(this._locales[i]);this._formatters[i]=e.compile(this._translations[i]||"")}return this._formatters[i](this._transformData(t))}_transformConfig(e={}){const t={defaultLocale:"",defaultTranslations:{},translations:{},locales:{},locale:e.locale||rC},n=e.locales||{},i=this._flattenObject(e.translations||{}),r=this._flattenObject(e.defaultTranslations||{}),o=this._flattenObject(e.fallbackTranslations||{});return ee(Object.keys(o),Object.keys(r),Object.keys(i)).forEach(a=>{var s,d;i&&i[a]?(t.translations[a]=i[a],t.locales[a]=n[a]||t.locale):r[a]?(t.translations[a]=r[a],t.locales[a]=null!==(s=e.defaultLocale)&&void 0!==s?s:rC):(t.translations[a]=o[a],t.locales[a]=null!==(d=e.fallbackLocale)&&void 0!==d?d:rC)}),t}_flattenObject(e,t={},n=""){try{Object.keys(e).forEach(i=>{const r=e[i],o=n?`${n}.${i}`:i;if(D(r))return this._flattenObject(r,t,o);t[o]=r})}catch(e){this._logger.warn(`Unable to parse object: ${e}`)}return t}_transformData(e){return Object.keys(e).reduce((t,n)=>{const i=e[n];return t[n]=null==i?"":i,t},{})}_hasTranslations(){return Object.keys(this._locales).map(e=>this._locales[e]).filter(e=>e.split("-")[0]===this._locale.split("-")[0]).length>0}_isFormatError(e){return"object"==typeof e&&null!==e&&"originalMessage"in e}_escapeSpecialCharacters(e){return e.replace(/(\w+)='([^']*)'/g,"$1=''$2''")}};aC=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([Kn],aC);const sC=aC;function dC(e={}){return new sC(e,gt())}let cC=class{constructor(e){this._storeConfig=e,this._customerFormatter=new Ho(this._storeConfig.shopperCurrency),this._storeFormatter=new Ho(this._storeConfig.currency)}toCustomerCurrency(e){const t=this._storeConfig.shopperCurrency.exchangeRate;return this._customerFormatter.format(e*t)}toStoreCurrency(e){return this._storeFormatter.format(e)}};cC=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([Kn],cC);const lC=cC;function uC(e){return new lC(e)}function hC(e){return e&&"ga"in e&&"function"==typeof e.ga}function pC(e,t){hC(window)&&window.ga("send",e,Object.assign(Object.assign({},t),{nonInteraction:!1}))}function mC(e){return yC(e).length>=8096}function yC(e){return Object.keys(e).reduce((t,n)=>{const i=typeof e[n];return"string"===i||"number"===i?[...t,`${n}=${e[n]}`]:"object"===i&&null!==e[n]?[...t,yC(e[n])]:t},[]).join("&")}var gC;!function(e){e[e.CUSTOMER=1]="CUSTOMER",e[e.SHIPPING=2]="SHIPPING",e[e.BILLING=3]="BILLING",e[e.PAYMENT=4]="PAYMENT"}(gC||(gC={}));const vC={customer:gC.CUSTOMER,shipping:gC.SHIPPING,billing:gC.BILLING,payment:gC.PAYMENT};class fC{constructor(e,t,n,{checkoutSteps:i}={}){if(this.checkoutService=e,this.analyticsExtraItemsManager=t,this.analytics=n,this._checkoutStarted=!1,this._completedSteps={},this._viewedSteps={},this._analyticStepOrder=["customer","shipping","billing","payment"],void 0!==i){if(i.some(e=>!(e in vC)))throw new Lt(`Invalid checkout steps provided. Valid values are: ${R(vC).join(", ")}.`);this._analyticStepOrder=i}}trackCheckoutStarted(){if(this._checkoutStarted)return;const e=this.getCheckout();if(!e)return;const{coupons:t,grandTotal:n,shippingCostTotal:i,taxTotal:r,cart:{lineItems:o,discountAmount:a,id:s}}=e,d=this.analyticsExtraItemsManager.saveExtraItemsData(s,o);this.analytics.track("Checkout Started",this.getTrackingPayload({revenue:n,shipping:i,tax:r,discount:a,coupons:t,lineItems:o,extraItemsData:d})),this._checkoutStarted=!0}trackOrderComplete(){var e;const t=this.getOrder();if(!t)return;const{isComplete:n,orderId:i,orderAmount:r,shippingCostTotal:o,taxTotal:a,discountAmount:s,coupons:d,lineItems:c,cartId:l}=t;if(!n)return;const u=this.analyticsExtraItemsManager.readExtraItemsData(l);if(null===u)return;const h=null===(e=this.checkoutService.getState().data.getConfig())||void 0===e?void 0:e.checkoutSettings.features["DATA-6891.missing_orders_within_GA"],p=this.getTrackingPayload({orderId:i,revenue:r,shipping:o,tax:a,discount:s,coupons:d,extraItemsData:u,lineItems:c});if(h&&Xc(window)&&hC(window)&&mC(p))return pC("transaction",{"&ti":p.order_id,"&ta":p.affiliation,"&tr":p.revenue,"&ts":p.shipping,"&tt":p.tax,"&tcc":p.coupon,"&cu":p.currency}),p.products.forEach(e=>{pC("item",{"&ti":p.order_id,"&in":e.name,"&ic":e.sku,"&iv":`${e.category}`,"&ip":e.price,"&iq":e.quantity})}),this.analyticsExtraItemsManager.clearExtraItemData(l);this.analytics.track("Order Completed",p),this.analyticsExtraItemsManager.clearExtraItemData(l)}trackStepViewed(e){const t=this.getIdFromStep(e);t&&!this.hasStepViewed(t)&&(this.trackViewed(t),this.backfill(t))}trackStepCompleted(e){const t=this.getIdFromStep(e);t&&!this.hasStepCompleted(t)&&(this.backfill(t),this.trackCompleted(t))}backfill(e){for(const t of this._analyticStepOrder){const n=this.getIdFromStep(t);if(!n)break;if(this.hasStepViewed(n)||this.trackViewed(n),n===e)break;this.hasStepCompleted(n)||this.trackCompleted(n)}}trackCompleted(e){const t=this.getSelectedShippingOption(),{code:n=""}=this.getShopperCurrency()||{},i=this.getPaymentMethodName(),r={step:e,currency:n};t&&(r.shipping_method=t.description),i&&(r.payment_method=i),r.shipping_method||r.payment_method||(r.shipping_method=" "),this.analytics.track("Checkout Step Completed",r);const o=t?t.id:"",a=e===gC.SHIPPING?`${e}-${o}`:e;this._completedSteps[a]=!0}getTrackingPayload({orderId:e,revenue:t,shipping:n,tax:i,discount:r,coupons:o,extraItemsData:a,lineItems:s}){const{code:d=""}=this.getShopperCurrency()||{},{storeName:c=""}=this.getStoreProfile()||{};return{order_id:String(e),affiliation:c,revenue:this.toShopperCurrency(t),shipping:this.toShopperCurrency(n),tax:this.toShopperCurrency(i),discount:this.toShopperCurrency(r),coupon:(o||[]).map(e=>e.code.toUpperCase()).join(","),currency:d,products:this.getProducts(a,s)}}hasStepCompleted(e){const t=this.getSelectedShippingOption(),n=t?t.id:"";return Object.prototype.hasOwnProperty.call(this._completedSteps,e)||e===gC.SHIPPING&&Object.prototype.hasOwnProperty.call(this._completedSteps,`${e}-${n}`)}hasStepViewed(e){return!!this._viewedSteps[e]}getIdFromStep(e){const t=e.split(".");return vC[t[0]]||null}trackViewed(e){const t=this.getShopperCurrency();this.analytics.track("Checkout Step Viewed",{step:e,currency:t?t.code:""}),this._viewedSteps[e]=!0}getOrder(){const{data:{getOrder:e}}=this.checkoutService.getState();return e()}getCheckout(){const{data:{getCheckout:e}}=this.checkoutService.getState();return e()}getShopperCurrency(){const{data:{getConfig:e}}=this.checkoutService.getState(),t=e();return t&&t.shopperCurrency}getStoreProfile(){const{data:{getConfig:e}}=this.checkoutService.getState(),t=e();return t&&t.storeProfile}toShopperCurrency(e){const{exchangeRate:t=1}=this.getShopperCurrency()||{};return Math.round(e*t*100)/100}getSelectedShippingOption(){const{data:e}=this.checkoutService.getState(),t=e.getSelectedShippingOption();return t&&t.id&&t.description?t:null}getPaymentMethodName(){const{data:e}=this.checkoutService.getState(),t=e.getSelectedPaymentMethod();return t&&t.config&&t.config.displayName||""}getProducts(e,t){const n=(t.customItems||[]).map(e=>({product_id:e.id,sku:e.sku,price:e.listPrice,quantity:e.quantity,name:e.name})),i=t.giftCertificates.map(e=>({product_id:e.id,price:this.toShopperCurrency(e.amount),name:e.name,quantity:1}));return[...n,...[...t.physicalItems,...t.digitalItems].map(t=>{let n;t.options&&t.options.length&&(n=t.options.map(e=>`${e.name}:${e.value}`),n.sort());const i=Array.isArray(n)&&n.length?n.join(", "):"single-product-option",r=e[t.productId]&&e[t.productId].brand;return Object.assign({product_id:String(t.productId),sku:t.sku,price:t.salePrice,image_url:t.imageUrl,name:t.name,quantity:t.quantity,category:e[t.productId]?e[t.productId].category:"",variant:i},r&&{brand:r})}),...i]}}class SC{trackCheckoutStarted(){}trackOrderComplete(){}trackStepViewed(){}trackStepCompleted(){}}function wC(e,t){const{data:n}=e.getState(),i=n.getConfig();if(!i)throw new Qe(We.MissingCheckoutConfig);const{isAnalyticsEnabled:r}=i.checkoutSettings;return r&&Xc(window)?new fC(e,new Qc(ke),window.analytics,t):new SC}function _C(e){return Boolean(e.hasOwnProperty("braintreeFastlane"))}class CC{constructor(e){this.checkoutService=e,this._selectedPaymentMethodId=""}customerPaymentMethodExecuted(){this._shouldTrackFastlaneEvent()&&this._trackEmailSubmitted()}paymentComplete(){this._shouldTrackFastlaneEvent()&&this._trackOrderPlaced(this._selectedPaymentMethodId)}selectedPaymentMethod(e){this._shouldTrackFastlaneEvent()&&e&&(this._selectedPaymentMethodId=e,this._trackApmSelected(e,!1))}walletButtonClick(e){this._shouldTrackFastlaneEvent()&&e&&(this._selectedPaymentMethodId=e,this._trackApmSelected(e,!0))}_shouldTrackFastlaneEvent(){const e=this.checkoutService.getState(),t=e.data.getPaymentMethod("braintree")||e.data.getPaymentMethod("braintreeacceleratedcheckout"),n=null==t?void 0:t.initializationData.isBraintreeAnalyticsV2Enabled,i=_C(window)&&window.braintreeFastlane.events;return n&&i}_getBraintreeEventsOrThrow(){if(_C(window))return window.braintreeFastlane.events;throw new Oi}_trackEmailSubmitted(){const{emailSubmitted:e}=this._getBraintreeEventsOrThrow();e(this._getEmailSubmittedEventOptions())}_trackApmSelected(e,t){const{apmSelected:n}=this._getBraintreeEventsOrThrow();n(this._getApmSelectedEventOptions(e,t))}_trackOrderPlaced(e){const{orderPlaced:t}=this._getBraintreeEventsOrThrow();t(this._getOrderPlacedEventOptions(e))}_getEventCommonOptions(){var e,t;const n=this.checkoutService.getState(),i=n.data.getCart(),r=null===(e=n.data.getConfig())||void 0===e?void 0:e.storeProfile,o=null===(t=n.data.getCustomer())||void 0===t?void 0:t.isGuest,a=n.data.getPaymentMethod("braintreeacceleratedcheckout"),s=[{treatment_group:!n.errors.getLoadPaymentMethodError("braintreeacceleratedcheckout")&&(null==a?void 0:a.initializationData.shouldRunAcceleratedCheckout)?"test":"control"}];return{context_type:"cs_id",context_id:(null==i?void 0:i.id)||"",page_type:"checkout_page",page_name:window.document.title,partner_name:"bigc",user_type:o?"store_guest":"store_member",store_id:(null==r?void 0:r.storeId)||"",merchant_name:(null==r?void 0:r.storeName)||"",experiment:JSON.stringify(s)}}_getEmailSubmittedEventOptions(){const e=(this.checkoutService.getState().data.getPaymentMethods()||[]).map(({id:e})=>e);return Object.assign(Object.assign({},this._getEventCommonOptions()),{user_email_saved:!1,apm_shown:e.length>1?"1":"0",apm_list:e.join(",")})}_getApmSelectedEventOptions(e,t){const n=(this.checkoutService.getState().data.getPaymentMethods()||[]).map(({id:e})=>e);return Object.assign(Object.assign({},this._getEventCommonOptions()),{apm_shown:n.length>1?"1":"0",apm_list:n.join(","),apm_selected:e,apm_location:t?"pre-email section":"payment section"})}_getOrderPlacedEventOptions(e){const t=this.checkoutService.getState().data.getCart();return Object.assign(Object.assign({},this._getEventCommonOptions()),{selected_payment_method:e,currency_code:(null==t?void 0:t.currency.code)||""})}}function IC(e){return new CC(e)}class bC{constructor(e){this._checkoutService=e,this._selectedPaymentMethodId=""}customerPaymentMethodExecuted(){this._shouldTrackFastlaneEvent()&&this._trackEmailSubmitted()}paymentComplete(){this._shouldTrackFastlaneEvent()&&this._trackOrderPlaced(this._selectedPaymentMethodId)}selectedPaymentMethod(e){this._shouldTrackFastlaneEvent()&&e&&(this._selectedPaymentMethodId=e,this._trackApmSelected(e,!1))}walletButtonClick(e){this._shouldTrackFastlaneEvent()&&e&&(this._selectedPaymentMethodId=e,this._trackApmSelected(e,!0))}_shouldTrackFastlaneEvent(){const e=this._checkoutService.getState().data.getPaymentMethod("paypalcommerce"),t=((null==e?void 0:e.initializationData)||{}).isPayPalCommerceAnalyticsV2Enabled,n=window,i=!!n.paypalFastlane&&!!n.paypalFastlane.events;return t&&i}_getPayPalEventsOrThrow(){const e=window;if(e.paypalFastlane&&e.paypalFastlane.events)return e.paypalFastlane.events;throw new Oi}_trackEmailSubmitted(){const{emailSubmitted:e}=this._getPayPalEventsOrThrow();e(this._getEmailSubmittedEventOptions())}_trackApmSelected(e,t){const{apmSelected:n}=this._getPayPalEventsOrThrow();n(this._getApmSelectedEventOptions(e,t))}_trackOrderPlaced(e){const{orderPlaced:t}=this._getPayPalEventsOrThrow();t(this._getOrderPlacedEventOptions(e))}_getEventCommonOptions(){var e,t;const n=this._checkoutService.getState(),i=n.data.getCart(),r=null===(e=n.data.getConfig())||void 0===e?void 0:e.storeProfile,o=null===(t=n.data.getCustomer())||void 0===t?void 0:t.isGuest,a="paypalcommerceacceleratedcheckout",s=n.data.getPaymentMethod(a),d=[{treatment_group:!n.errors.getLoadPaymentMethodError(a)&&(null==s?void 0:s.initializationData.shouldRunAcceleratedCheckout)?"test":"control"}];return{context_type:"cs_id",context_id:(null==i?void 0:i.id.replace(/-/g,""))||"",page_type:"checkout_page",page_name:window.document.title,partner_name:"bigc",user_type:o?"store_guest":"store_member",store_id:(null==r?void 0:r.storeId)||"",merchant_name:(null==r?void 0:r.storeName)||"",experiment:JSON.stringify(d)}}_getEmailSubmittedEventOptions(){const e=(this._checkoutService.getState().data.getPaymentMethods()||[]).map(({id:e})=>e);return Object.assign(Object.assign({},this._getEventCommonOptions()),{user_email_saved:!1,apm_shown:e.length>1?"1":"0",apm_list:e.join(",")})}_getApmSelectedEventOptions(e,t){const n=(this._checkoutService.getState().data.getPaymentMethods()||[]).map(({id:e})=>e);return Object.assign(Object.assign({},this._getEventCommonOptions()),{apm_shown:n.length>1?"1":"0",apm_list:n.join(","),apm_selected:e,apm_location:t?"pre-email section":"payment section"})}_getOrderPlacedEventOptions(e){const t=this._checkoutService.getState().data.getCart();return Object.assign(Object.assign({},this._getEventCommonOptions()),{selected_payment_method:e,currency_code:(null==t?void 0:t.currency.code)||""})}}function PC(e){return new bC(e)}var OC;class EC{constructor(e,t){this._host=e,this._hostedFormFactory=t}submitStoredCard(e,t){return n=this,i=void 0,o=function*(){const n=this._hostedForm;if(!n)throw new wn(gn.PaymentNotInitialized);yield n.validate().then(()=>n.submitStoredCard({fields:e,data:t}))},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}initialize(e){const t=this._hostedFormFactory.create(this._host,e);return t.attach().then(()=>{this._hostedForm=t})}deinitialize(){this._hostedForm&&this._hostedForm.detach()}}function AC(e){const t=ew();return new EC(e,new ey(t))}!function(e){e.CUSTOMER="customer",e.SHIPPING="shipping",e.BILLING="billing",e.PAYMENT="payment"}(OC||(OC={}));const kC=[OC.CUSTOMER,OC.SHIPPING,OC.BILLING,OC.PAYMENT];class TC{constructor(e,t){this.subscribe=e,this.bodlEvents=t,this._checkoutStarted=!1,this._emailEntryBegan=!1,this._shippingOptionsShown=!1,this._completedSteps={},this.subscribe(e=>{var t;if(this.setState(e.data),!(null===(t=this.state)||void 0===t?void 0:t.getConfig()))throw new Qe(We.MissingCheckoutConfig)})}setState(e){this.state=e}checkoutBegin(){const e=this._getCommonCheckoutData();!this._checkoutStarted&&e&&(this.bodlEvents.emitCheckoutBeginEvent(e),this._checkoutStarted=!0)}orderPurchased(){var e;const t=null===(e=this.state)||void 0===e?void 0:e.getOrder();if(!t)return;const{currency:n,isComplete:i,orderId:r,orderAmount:o,shippingCostTotal:a,lineItems:s,cartId:d,coupons:c,channelId:l,taxTotal:u}=t;i&&this.bodlEvents.emitOrderPurchasedEvent({event_id:d,currency:n.code,order_id:r,tax:u,channel_id:l,cart_value:o,coupon_codes:c.map(e=>e.code.toUpperCase()),shipping_cost:a,line_items:this._getProducts(s,n.code)})}stepCompleted(e){e&&kC.some(t=>(this._hasStepCompleted(t)||this._trackCompletedStep(t),t===e))}customerEmailEntry(e){!this._emailEntryBegan&&(null==e?void 0:e.length)&&(this._emailEntryBegan=!0,this.bodlEvents.emit("bodl_checkout_email_entry_began"))}customerSuggestionInit(e){this.bodlEvents.emit("bodl_checkout_customer_suggestion_initialization",e)}customerSuggestionExecute(){this.bodlEvents.emit("bodl_checkout_customer_suggestion_execute")}customerPaymentMethodExecuted(e){this.bodlEvents.emit("bodl_checkout_customer_payment_method_executed",e)}showShippingMethods(){this._shippingOptionsShown||(this._shippingOptionsShown=!0,this.bodlEvents.emit("bodl_checkout_show_shipping_options"))}selectedPaymentMethod(e){const t=this._getCommonCheckoutData();t&&e&&this.bodlEvents.emitPaymentDetailsProvidedEvent(Object.assign(Object.assign({},t),{payment_type:e}))}clickPayButton(e){this.bodlEvents.emit("bodl_checkout_click_pay_button",e)}paymentRejected(){this.bodlEvents.emit("bodl_checkout_payment_rejected")}paymentComplete(){this.bodlEvents.emit("bodl_checkout_payment_complete")}exitCheckout(){this.bodlEvents.emit("bodl_checkout_exit")}_trackCompletedStep(e){this._completedSteps[e]=!0;const t={[OC.SHIPPING]:this._trackShippingStepCompleted.bind(this)}[e];t?t():this.bodlEvents.emit("bodl_checkout_step_completed",{step:e})}_trackShippingStepCompleted(){var e,t;const n=null===(t=null===(e=this.state)||void 0===e?void 0:e.getSelectedShippingOption())||void 0===t?void 0:t.description,i=this._getCommonCheckoutData();i&&n&&this.bodlEvents.emitShippingDetailsProvidedEvent(Object.assign(Object.assign({},i),{shipping_method:n}))}_getCommonCheckoutData(){var e;const t=null===(e=this.state)||void 0===e?void 0:e.getCheckout();if(!t)return null;const{cart:{cartAmount:n,currency:i,lineItems:r,id:o,coupons:a},channelId:s}=t;return{event_id:o,currency:i.code,cart_value:n,coupon_codes:a.map(e=>e.code.toUpperCase()),line_items:this._getProducts(r,i.code),channel_id:s}}_getProducts(e,t){const n=(e.customItems||[]).map(e=>({product_id:e.id,sku:e.sku,base_price:e.listPrice,sale_price:e.listPrice,purchase_price:e.listPrice,quantity:e.quantity,product_name:e.name,currency:t})),i=e.giftCertificates.map(e=>({product_id:e.id,gift_certificate_id:e.id,base_price:e.amount,sale_price:e.amount,purchase_price:e.amount,product_name:e.name,gift_certificate_name:e.name,gift_certificate_theme:e.theme,quantity:1,currency:t}));return[...n,...[...e.physicalItems,...e.digitalItems].map(e=>{let n;return e.options&&e.options.length&&(n=e.options.map(e=>`${e.name}:${e.value}`),n.sort()),{product_id:e.productId,quantity:e.quantity,product_name:e.name,base_price:e.listPrice,sale_price:e.salePrice,purchase_price:e.salePrice>0?e.salePrice:e.listPrice,sku:e.sku,variant_id:e.variantId,discount:e.discountAmount,coupon_amount:e.couponAmount,brand_name:e.brand,currency:t,category_names:(i=e,Array.isArray(i.categoryNames)?i.categoryNames:Array.isArray(i.categories)?C(i.categories).map(({name:e})=>e):[]),retail_price:e.retailPrice};var i}),...i].map(e=>Object.assign(Object.assign({},e),{product_id:String(e.product_id)}))}_hasStepCompleted(e){return this._completedSteps[e]}}class DC{checkoutBegin(){}orderPurchased(){}stepCompleted(){}customerEmailEntry(){}customerSuggestionInit(){}customerSuggestionExecute(){}customerPaymentMethodExecuted(){}showShippingMethods(){}selectedPaymentMethod(){}clickPayButton(){}paymentRejected(){}paymentComplete(){}exitCheckout(){}}function MC(e){return function(e){return"bodlEvents"in e}(window)?new TC(e,window.bodlEvents.checkout):new DC}export{Zn as ExtensionCommandType,Qn as ExtensionQueryType,MC as createBodlService,IC as createBraintreeAnalyticTracker,q_ as createCheckoutButtonInitializer,tw as createCheckoutService,uC as createCurrencyService,iC as createEmbeddedCheckoutMessenger,dC as createLanguageService,PC as createPayPalCommerceAnalyticTracker,wC as createStepTracker,AC as createStoredCardHostedFormService,i as createTimeout,J_ as embedCheckout};
1
+ import*as e from"iframe-resizer";import*as t from"iframe-resizer/js/iframeResizer.contentWindow";import{createRequestSender as n,createTimeout as i}from"@bigcommerce/request-sender";import{ScriptLoader as r,createScriptLoader as o,getScriptLoader as a,getStylesheetLoader as s}from"@bigcommerce/script-loader";import{combineReducers as d,composeReducers as c,createAction as l,createDataStore as u,createErrorAction as h,deepFreeze as p}from"@bigcommerce/data-store";import{cond as m,constant as y,difference as g,each as v,filter as f,find as S,findIndex as w,flatMap as _,flatten as C,get as I,identity as b,includes as P,isArray as O,isEmpty as E,isEqual as A,isMatch as k,isNil as T,isObject as D,isPlainObject as M,isString as z,isUndefined as N,kebabCase as x,keyBy as F,keys as R,last as L,map as B,max as j,memoize as U,merge as q,noop as V,omit as G,omitBy as H,overSome as $,pick as W,pickBy as Y,reduce as K,round as J,some as Z,stubTrue as Q,transform as X,union as ee,uniq as te,uniqueId as ne,values as ie,without as re}from"lodash";import{Observable as oe,Subject as ae,concat as se,defer as de,empty as ce,from as le,fromEvent as ue,merge as he,noop as pe,of as me,throwError as ye}from"rxjs";import{catchError as ge,delay as ve,distinctUntilChanged as fe,filter as Se,map as we,retryWhen as _e,shareReplay as Ce,switchMap as Ie,take as be}from"rxjs/operators";import{memoize as Pe,memoizeOne as Oe}from"@bigcommerce/memoize";import{createFormPoster as Ee}from"@bigcommerce/form-poster";import{supportsPopups as Ae}from"@braintree/browser-detection";import{default as ke}from"local-storage-fallback";import{createClient as Te}from"@bigcommerce/bigpay-client";import{creditCardType as De,number as Me}from"card-validator";import{exclude as ze,parseUrl as Ne,stringifyUrl as xe}from"query-string";import{createSelector as Fe,createSelectorCreator as Re,defaultMemoize as Le}from"reselect";import{default as Be}from"shallowequal";import{IntlMessageFormat as je}from"intl-messageformat";import{default as Ue}from"messageformat";var qe={785:t=>{t.exports=e},939:e=>{e.exports=t}},Ve={};function Ge(e){var t=Ve[e];if(void 0!==t)return t.exports;var n=Ve[e]={exports:{}};return qe[e](n,n.exports,Ge),n.exports}Ge.d=(e,t)=>{for(var n in t)Ge.o(t,n)&&!Ge.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},Ge.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Ge.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var He={};Ge.r(He),Ge.d(He,{createAmazonPayV2CustomerStrategy:()=>zi,createApplePayCustomerStrategy:()=>cr,createBigCommercePaymentsCustomerStrategy:()=>Nr,createBigCommercePaymentsFastlaneCustomerStrategy:()=>eo,createBigCommercePaymentsPayLaterCustomerStrategy:()=>io,createBigCommercePaymentsVenmoCustomerStrategy:()=>ao,createBoltCustomerStrategy:()=>vo,createBraintreeFastlaneCustomerStrategy:()=>Uo,createBraintreePaypalCreditCustomerStrategy:()=>No,createBraintreePaypalCustomerStrategy:()=>Do,createBraintreeVisaCheckoutCustomerStrategy:()=>Go,createGooglePayAdyenV2CustomerStrategy:()=>ga,createGooglePayAdyenV3CustomerStrategy:()=>va,createGooglePayAuthorizeDotNetCustomerStrategy:()=>Sa,createGooglePayBigCommercePaymentsCustomerStrategy:()=>Ja,createGooglePayBnzCustomerStrategy:()=>Ea,createGooglePayBraintreeCustomerStrategy:()=>Ua,createGooglePayCheckoutComCustomerStrategy:()=>ba,createGooglePayCybersourceCustomerStrategy:()=>Oa,createGooglePayOrbitalCustomerStrategy:()=>ka,createGooglePayPayPalCommerceCustomerStrategy:()=>Wa,createGooglePayStripeCustomerStrategy:()=>xa,createGooglePayStripeUpeCustomerStrategy:()=>Fa,createGooglePayTdOnlineMartCustomerStrategy:()=>es,createGooglePayWorldpayAccessCustomerStrategy:()=>La,createPayPalCommerceCreditCustomerStrategy:()=>ws,createPayPalCommerceCustomerStrategy:()=>vs,createPayPalCommerceFastlaneCustomerStrategy:()=>Bs,createPayPalCommerceVenmoCustomerStrategy:()=>Is,createStripeLinkV2CustomerStrategy:()=>hd,createStripeUPECustomerStrategy:()=>td});var $e={};Ge.r($e),Ge.d($e,{createAdyenV2PaymentStrategy:()=>Od,createAdyenV3PaymentStrategy:()=>Dd,createAffirmPaymentStrategy:()=>Fd,createAfterpayPaymentStrategy:()=>Vd,createAmazonPayV2PaymentStrategy:()=>$d,createApplePayPaymentStrategy:()=>Jd,createBigCommercePaymentsAlternativeMethodsPaymentStrategy:()=>Ic,createBigCommercePaymentsCreditCardsPaymentStrategy:()=>wc,createBigCommercePaymentsFastlanePaymentStrategy:()=>oc,createBigCommercePaymentsPayLaterPaymentStrategy:()=>cc,createBigCommercePaymentsPaymentStrategy:()=>tc,createBigCommercePaymentsRatePayPayPaymentStrategy:()=>pc,createBigCommercePaymentsVenmoPaymentStrategy:()=>Oc,createBlueSnapDirectAPMPaymentStrategy:()=>$c,createBlueSnapDirectCreditCardPaymentStrategy:()=>Gc,createBlueSnapV2PaymentStrategy:()=>Zc,createBoltPaymentStrategy:()=>rl,createBraintreeAchPaymentStrategy:()=>dl,createBraintreeCreditCardPaymentStrategy:()=>Ll,createBraintreeFastlanePaymentStrategy:()=>bl,createBraintreeLocalMethodsPaymentStrategy:()=>wl,createBraintreePaypalPaymentStrategy:()=>gl,createBraintreeVenmoPaymentStrategy:()=>Tl,createBraintreeVisaCheckoutPaymentStrategy:()=>El,createCBAMPGSPaymentStrategy:()=>Hl,createCheckoutComAPMPaymentStrategy:()=>su,createCheckoutComCreditCardPaymentStrategy:()=>eu,createCheckoutComFawryPaymentStrategy:()=>Kl,createCheckoutComIdealPaymentStrategy:()=>ru,createCheckoutComSepaPaymentStrategy:()=>nu,createClearpayPaymentStrategy:()=>uu,createCreditCardPaymentStrategy:()=>hu,createCyberSourcePaymentStrategy:()=>Eu,createCyberSourceV2PaymentStrategy:()=>Mu,createExternalPaymentStrategy:()=>Nu,createGooglePayAdyenV2PaymentStrategy:()=>ju,createGooglePayAdyenV3PaymentStrategy:()=>Vu,createGooglePayAuthorizeNetPaymentStrategy:()=>Gu,createGooglePayBigCommercePaymentsPaymentStrategy:()=>ah,createGooglePayBraintreePaymentStrategy:()=>Ju,createGooglePayCheckoutComPaymentStrategy:()=>Hu,createGooglePayCybersourcePaymentStrategy:()=>$u,createGooglePayOrbitalPaymentStrategy:()=>Wu,createGooglePayPPCPPaymentStrategy:()=>th,createGooglePayStripePaymentStrategy:()=>Yu,createGooglePayTdOnlineMartPaymentStrategy:()=>sh,createGooglePayWorldpayAccessPaymentStrategy:()=>Ku,createHummPaymentStrategy:()=>lh,createKlarnaPaymentStrategy:()=>gh,createKlarnaV2PaymentStrategy:()=>_h,createLegacyPaymentStrategy:()=>Ih,createMolliePaymentStrategy:()=>kh,createMonerisPaymentStrategy:()=>zh,createNoPaymentStrategy:()=>xh,createOfflinePaymentStrategy:()=>Rh,createOffsitePaymentStrategy:()=>jh,createPayPalCommerceAlternativeMethodsPaymentStrategy:()=>ep,createPayPalCommerceCreditCardsPaymentStrategy:()=>ip,createPayPalCommerceCreditPaymentStrategy:()=>Yh,createPayPalCommerceFastlanePaymentStrategy:()=>lp,createPayPalCommercePaymentStrategy:()=>Hh,createPayPalCommerceRatePayPaymentStrategy:()=>ap,createPayPalCommerceVenmoPaymentStrategy:()=>Zh,createPayPalProPaymentStrategy:()=>Ip,createPaypalExpressPaymentStrategy:()=>wp,createSagePayPaymentStrategy:()=>Pp,createSezzlePaymentStrategy:()=>Ep,createSquareV2PaymentStrategy:()=>xp,createStripeOCSPaymentStrategy:()=>em,createStripeUPEPaymentStrategy:()=>Zp,createStripeV3PaymentStrategy:()=>$p,createTDOnlineMartPaymentStrategy:()=>om,createWorldpayAccessPaymentStrategy:()=>lm,createZipPaymentStrategy:()=>pm});var We,Ye,Ke={};function Je(e,t,n){return(i=t)&&i.type&&i.error?se(me(t),ye(h(e,t.payload,n))):ye(h(e,t,n));var i}Ge.r(Ke),Ge.d(Ke,{createAmazonPayV2ButtonStrategy:()=>sw,createApplePayButtonStrategy:()=>hw,createBigCommercePaymentsAlternativeMethodsButtonStrategy:()=>_w,createBigCommercePaymentsButtonStrategy:()=>yw,createBigCommercePaymentsPayLaterButtonStrategy:()=>fw,createBigCommercePaymentsVenmoButtonStrategy:()=>bw,createBoltButtonStrategy:()=>Ow,createBraintreePaypalButtonStrategy:()=>Dw,createBraintreePaypalCreditButtonStrategy:()=>Nw,createBraintreeVenmoButtonStrategy:()=>Vw,createBraintreeVisaCheckoutButtonStrategy:()=>Rw,createGooglePayAdyenV2ButtonStrategy:()=>Kw,createGooglePayAdyenV3ButtonStrategy:()=>Jw,createGooglePayAuthorizeDotNetButtonStrategy:()=>Zw,createGooglePayBigCommercePaymentsButtonStrategy:()=>Yw,createGooglePayBraintreeButtonStrategy:()=>$w,createGooglePayCheckoutComButtonStrategy:()=>Qw,createGooglePayCybersourceButtonStrategy:()=>Xw,createGooglePayOrbitalButtonStrategy:()=>e_,createGooglePayPayPalCommerceButtonStrategy:()=>Ww,createGooglePayStripeButtonStrategy:()=>t_,createGooglePayTdOnlineMartButtonStrategy:()=>i_,createGooglePayWorldpayAccessButtonStrategy:()=>n_,createPayPalCommerceAlternativeMethodsButtonStrategy:()=>y_,createPayPalCommerceButtonStrategy:()=>a_,createPayPalCommerceCreditButtonStrategy:()=>c_,createPayPalCommerceVenmoButtonStrategy:()=>h_,createPaypalExpressButtonStrategy:()=>f_});class Ze extends Error{constructor(e){var t;super(e||"An unexpected error has occurred."),this.name="StandardError",this.type="standard",t=new.target.prototype,Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,"function"==typeof Error.captureStackTrace?Error.captureStackTrace(this,new.target):this.stack=new Error(this.message).stack}}!function(e){e[e.MissingBillingAddress=0]="MissingBillingAddress",e[e.MissingCart=1]="MissingCart",e[e.MissingCheckout=2]="MissingCheckout",e[e.MissingConsignments=3]="MissingConsignments",e[e.MissingCustomer=4]="MissingCustomer",e[e.MissingCheckoutConfig=5]="MissingCheckoutConfig",e[e.MissingOrder=6]="MissingOrder",e[e.MissingOrderConfig=7]="MissingOrderConfig",e[e.MissingOrderId=8]="MissingOrderId",e[e.MissingPayment=9]="MissingPayment",e[e.MissingPaymentId=10]="MissingPaymentId",e[e.MissingPaymentInstrument=11]="MissingPaymentInstrument",e[e.MissingPaymentMethod=12]="MissingPaymentMethod",e[e.MissingPaymentProviderCustomer=13]="MissingPaymentProviderCustomer",e[e.MissingPaymentRedirectUrl=14]="MissingPaymentRedirectUrl",e[e.MissingPaymentStatus=15]="MissingPaymentStatus",e[e.MissingPaymentToken=16]="MissingPaymentToken",e[e.MissingShippingAddress=17]="MissingShippingAddress"}(We||(We={}));class Qe extends Ze{constructor(e){super(function(e){switch(e){case We.MissingBillingAddress:return"Unable to proceed because billing address data is unavailable.";case We.MissingCart:return"Unable to proceed because cart data is unavailable.";case We.MissingConsignments:return"Unable to proceed because consignments data is unavailable.";case We.MissingCheckout:return"Unable to proceed because checkout data is unavailable.";case We.MissingCustomer:return"Unable to proceed because customer data is unavailable.";case We.MissingCheckoutConfig:case We.MissingOrderConfig:return"Unable to proceed because configuration data is unavailable.";case We.MissingOrder:return"Unable to proceed because order data is unavailable.";case We.MissingOrderId:return"Unable to proceed because order ID is unavailable or not generated yet.";case We.MissingPayment:return"Unable to proceed because payment data is unavailable.";case We.MissingPaymentToken:return"Unable to proceed because the token required to submit a payment is missing.";case We.MissingPaymentMethod:return"Unable to proceed because payment method data is unavailable or not properly configured.";case We.MissingPaymentProviderCustomer:return"Unable to proceed because payment provider customer is unavailable.";case We.MissingShippingAddress:return"Unable to proceed because shipping address data is unavailable.";default:return"Unable to proceed because the required data is unavailable."}}(e)),this.subtype=e,this.name="MissingDataError",this.type="missing_data"}}!function(e){e.UpdateBillingAddressRequested="UPDATE_BILLING_ADDRESS_REQUESTED",e.UpdateBillingAddressSucceeded="UPDATE_BILLING_ADDRESS_SUCCEEDED",e.UpdateBillingAddressFailed="UPDATE_BILLING_ADDRESS_FAILED",e.ContinueAsGuestRequested="CONTINUE_AS_GUEST_REQUESTED",e.ContinueAsGuestSucceeded="CONTINUE_AS_GUEST_SUCCEEDED",e.ContinueAsGuestFailed="CONTINUE_AS_GUEST_FAILED"}(Ye||(Ye={}));class Xe extends Ze{constructor(e){super(e||"Unable to continue as a guest because the customer is already signed in."),this.name="UnableToContinueAsGuestError",this.type="unable_to_continue_as_guest"}}var et;class tt{constructor(e,t){this._requestSender=e,this._subscriptionActionCreator=t}continueAsGuest(e,t){return n=>{const i=n.getState(),r=i.checkout.getCheckout();if(!r)throw new Qe(We.MissingCheckout);const o=i.customer.getCustomer();if(o&&!o.isGuest)throw new Xe;const a=i.billingAddress.getBillingAddress();let s;if(a){const{country:t}=a,n=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(a,["country"]);s=Object.assign(Object.assign({},n),e)}else s=e;const d=!E(a);return he(se(me(l(Ye.ContinueAsGuestRequested)),de(()=>{return e=this,n=void 0,o=function*(){const{body:e}=yield this._createOrUpdateBillingAddress(r.id,s,d,t);return l(Ye.ContinueAsGuestSucceeded,e)},new((i=void 0)||(i=Promise))(function(t,r){function a(e){try{d(o.next(e))}catch(e){r(e)}}function s(e){try{d(o.throw(e))}catch(e){r(e)}}function d(e){var n;e.done?t(e.value):(n=e.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((o=o.apply(e,n||[])).next())});var e,n,i,o})).pipe(ge(e=>Je(Ye.ContinueAsGuestFailed,e))),this._updateCustomerConsent(e,t))}}updateAddress(e,t){return n=>oe.create(i=>{const r=n.getState(),o=r.checkout.getCheckout();if(!o)throw new Qe(We.MissingCheckout);i.next(l(Ye.UpdateBillingAddressRequested));const a=r.billingAddress.getBillingAddress(),s=!E(a),d=Object.assign(Object.assign({},e),{email:void 0===e.email&&a?a.email:e.email});a&&a.id&&(d.id=a.id),this._createOrUpdateBillingAddress(o.id,d,s,t).then(({body:e})=>{i.next(l(Ye.UpdateBillingAddressSucceeded,e)),i.complete()}).catch(e=>{i.error(h(Ye.UpdateBillingAddressFailed,e))})})}_updateCustomerConsent({email:e,acceptsAbandonedCartEmails:t,acceptsMarketingNewsletter:n},i){return null==t&&null==n?ce():this._subscriptionActionCreator.updateSubscriptions({email:e,acceptsMarketingNewsletter:n||!1,acceptsAbandonedCartEmails:t||!1},i)}_createOrUpdateBillingAddress(e,t,n,i){return n?this._requestSender.updateAddress(e,t,i):this._requestSender.createAddress(e,t,i)}}class nt extends Ze{constructor(e){super(e||"Your checkout could not be processed because your cart is empty. Please add items to your cart and try again."),this.name="EmptyCartError",this.type="empty_cart"}}!function(e){e.Json="application/json",e.JsonV1="application/vnd.bc.v1+json"}(et||(et={}));const it=et,rt={"X-Checkout-SDK-Version":"1.819.0"};const ot={include:["cart.lineItems.physicalItems.options","cart.lineItems.digitalItems.options","customer","promotions.banners"].join(",")};class at{constructor(e){this._requestSender=e}createAddress(e,t,{timeout:n}={}){const i=`/api/storefront/checkouts/${e}/billing-address`,r=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.post(i,{body:t,params:ot,headers:r,timeout:n}).catch(e=>{if("empty_cart"===e.body.type)throw new nt;throw e})}updateAddress(e,t,{timeout:n}={}){const{id:i}=t,r=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(t,["id"]),o=`/api/storefront/checkouts/${e}/billing-address/${i}`,a=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.put(o,{params:ot,body:r,headers:a,timeout:n}).catch(e=>{if("empty_cart"===e.body.type)throw new nt;throw e})}}var st,dt;function ct(e,t){const n=u((e,t)=>t.type===st.Synchronize?t.payload:e,e.getState(),{stateTransformer:t});return e.subscribe(e=>{n.dispatch(l(st.Synchronize,e))},{initial:!1}),n}!function(e){e.Synchronize="SYNCHRONIZE"}(st||(st={}));class lt{log(e){console.error(e)}}!function(e){e.ClearError="CLEAR_ERROR"}(dt||(dt={}));class ut{clearError(e){return{type:dt.ClearError,payload:e}}}function ht(){try{return"production"}catch(e){return"development"}}class pt{constructor(e){this._console=e}log(...e){this._logToConsole("log",...e)}info(...e){this._logToConsole("info",...e)}warn(...e){this._logToConsole("warn",...e)}error(...e){this._logToConsole("error",...e)}debug(...e){this._logToConsole("debug",...e)}_logToConsole(e,...t){this._console&&this._console[e]&&this._console[e].call(this._console,...t)}}class mt{log(){}info(){}warn(){}error(){}debug(){}}const yt=function(e=!0){return e?new pt(console):new mt}("test"!==ht());function gt(){return yt}function vt(e,t,n){const i=new WeakMap;function r(e){return(...n)=>{const r=n[n.length-1],{useCache:o}=(a=r)&&"boolean"==typeof a.useCache?r:{useCache:!1};var a;if(!o)return e.call(this,...n);const s=i.get(this)||{};var d;return i.get(this)||i.set(this,s),s[t]||(s[t]=(d=e,Pe(function(...e){const t=d.call(this,...e);return t instanceof oe?le(t).pipe(Ce()):"function"==typeof t?Pe(e=>le(t(e)).pipe(Ce()),{isEqual:A}):t},{isEqual:A}))),s[t].call(this,...n)}}return{get(){if("function"!=typeof n.value)throw new Error("Decorator should be used in functions");const e=r.call(this,n.value);return Object.defineProperty(this,t,Object.assign(Object.assign({},n),{value:e})),e}}}var ft;!function(e){e.LoadConfigRequested="LOAD_CONFIG_REQUESTED",e.LoadConfigSucceeded="LOAD_CONFIG_SUCCEEDED",e.LoadConfigFailed="LOAD_CONFIG_FAILED"}(ft||(ft={}));class St{constructor(e){this._configRequestSender=e}loadConfig(e){return oe.create(t=>{t.next(l(ft.LoadConfigRequested)),this._configRequestSender.loadConfig(e).then(e=>{t.next(l(ft.LoadConfigSucceeded,e.body)),t.complete()}).catch(e=>{t.error(h(ft.LoadConfigFailed,e))})})}}!function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);o>3&&a&&Object.defineProperty(t,n,a)}([vt],St.prototype,"loadConfig",null);const wt={body:{},headers:{},status:0};class _t extends Ze{constructor(e,{message:t,errors:n}={}){const{body:i,headers:r,status:o}=e||wt;super(t||"An unexpected error has occurred."),this.name="RequestError",this.type="request",this.body=i,this.headers=r,this.status=o,this.errors=n||[]}}class Ct extends _t{constructor(e){super(e,{message:e.body.title}),this.name="CheckoutNotAvailableError",this.type="checkout_not_available"}}const It="This API endpoint is for internal use only and may change in the future";class bt{constructor(e){this._requestSender=e}loadConfig({timeout:e,params:t}={}){return this._requestSender.get("/api/storefront/checkout-settings",{timeout:e,headers:Object.assign({Accept:it.JsonV1,"X-API-INTERNAL":It},rt),params:t}).catch(e=>{if(e.status>=400&&e.status<500)throw new Ct(e);throw e})}}var Pt;!function(e){e.ApplyCouponRequested="APPLY_COUPON_REQUESTED",e.ApplyCouponSucceeded="APPLY_COUPON_SUCCEEDED",e.ApplyCouponFailed="APPLY_COUPON_FAILED",e.RemoveCouponRequested="REMOVE_COUPON_REQUESTED",e.RemoveCouponSucceeded="REMOVE_COUPON_SUCCEEDED",e.RemoveCouponFailed="REMOVE_COUPON_FAILED"}(Pt||(Pt={}));class Ot{constructor(e){this._couponRequestSender=e}applyCoupon(e,t){return n=>oe.create(i=>{const r=n.getState().checkout.getCheckout();if(!r)throw new Qe(We.MissingCheckout);i.next(l(Pt.ApplyCouponRequested)),this._couponRequestSender.applyCoupon(r.id,e,t).then(({body:e})=>{i.next(l(Pt.ApplyCouponSucceeded,e)),i.complete()}).catch(e=>{i.error(h(Pt.ApplyCouponFailed,e))})})}removeCoupon(e,t){return n=>oe.create(i=>{const r=n.getState().checkout.getCheckout();if(!r)throw new Qe(We.MissingCheckout);i.next(l(Pt.RemoveCouponRequested)),this._couponRequestSender.removeCoupon(r.id,e,t).then(({body:e})=>{i.next(l(Pt.RemoveCouponSucceeded,e)),i.complete()}).catch(e=>{i.error(h(Pt.RemoveCouponFailed,e))})})}}const Et=["cart.lineItems.physicalItems.options","cart.lineItems.digitalItems.options","customer","customer.customerGroup","payments","promotions.banners"];var At,kt,Tt,Dt;function Mt(e){return te(e).join(",")}!function(e){e.AvailableShippingOptions="consignments.availableShippingOptions",e.PhysicalItemsCategoryNames="cart.lineItems.physicalItems.categoryNames",e.DigitalItemsCategoryNames="cart.lineItems.digitalItems.categoryNames"}(At||(At={}));class zt{constructor(e){this._requestSender=e}applyCoupon(e,t,{timeout:n}={}){const i=`/api/storefront/checkouts/${e}/coupons`,r=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.post(i,{headers:r,timeout:n,params:{include:Mt([...Et,At.AvailableShippingOptions])},body:{couponCode:t}}).catch(e=>{if("empty_cart"===e.body.type)throw new nt;throw e})}removeCoupon(e,t,{timeout:n}={}){const i=`/api/storefront/checkouts/${e}/coupons/${t}`,r=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.delete(i,{headers:r,timeout:n,params:{include:Mt([...Et,At.AvailableShippingOptions])}}).catch(e=>{if("empty_cart"===e.body.type)throw new nt;throw e})}}!function(e){e.ApplyGiftCertificateRequested="APPLY_GIFT_CERTIFICATE_REQUESTED",e.ApplyGiftCertificateSucceeded="APPLY_GIFT_CERTIFICATE_SUCCEEDED",e.ApplyGiftCertificateFailed="APPLY_GIFT_CERTIFICATE_FAILED",e.RemoveGiftCertificateRequested="REMOVE_GIFT_CERTIFICATE_REQUESTED",e.RemoveGiftCertificateSucceeded="REMOVE_GIFT_CERTIFICATE_SUCCEEDED",e.RemoveGiftCertificateFailed="REMOVE_GIFT_CERTIFICATE_FAILED"}(kt||(kt={}));class Nt{constructor(e){this._giftCertificateRequestSender=e}applyGiftCertificate(e,t){return n=>oe.create(i=>{const r=n.getState().checkout.getCheckout();if(!r)throw new Qe(We.MissingCheckout);i.next(l(kt.ApplyGiftCertificateRequested)),this._giftCertificateRequestSender.applyGiftCertificate(r.id,e,t).then(({body:e})=>{i.next(l(kt.ApplyGiftCertificateSucceeded,e)),i.complete()}).catch(e=>{i.error(h(kt.ApplyGiftCertificateFailed,e))})})}removeGiftCertificate(e,t){return n=>oe.create(i=>{const r=n.getState().checkout.getCheckout();if(!r)throw new Qe(We.MissingCheckout);i.next(l(kt.RemoveGiftCertificateRequested)),this._giftCertificateRequestSender.removeGiftCertificate(r.id,e,t).then(({body:e})=>{i.next(l(kt.RemoveGiftCertificateSucceeded,e)),i.complete()}).catch(e=>{i.error(h(kt.RemoveGiftCertificateFailed,e))})})}}class xt{constructor(e){this._requestSender=e}applyGiftCertificate(e,t,{timeout:n}={}){const i=`/api/storefront/checkouts/${e}/gift-certificates`,r=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.post(i,{headers:r,timeout:n,params:{include:Mt(Et)},body:{giftCertificateCode:t}}).catch(e=>{if("empty_cart"===e.body.type)throw new nt;throw e})}removeGiftCertificate(e,t,{timeout:n}={}){const i=`/api/storefront/checkouts/${e}/gift-certificates/${t}`,r=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.delete(i,{headers:r,timeout:n,params:{include:Mt(Et)}}).catch(e=>{if("empty_cart"===e.body.type)throw new nt;throw e})}}function Ft(e){return e&&"resolveIds"in e}function Rt(e,t){return Object.assign(e,{resolveIds:t})}class Lt extends Ze{constructor(e){super(e||"Invalid arguments have been provided."),this.name="InvalidArgumentError",this.type="invalid_argument"}}class Bt{constructor(e){var t,n,i;this._factories={},this._instances={},this._defaultToken=null!==(t=null==e?void 0:e.defaultToken)&&void 0!==t?t:"default",this._useFallback=null===(n=null==e?void 0:e.useFallback)||void 0===n||n,this._tokenResolver=null!==(i=null==e?void 0:e.tokenResolver)&&void 0!==i?i:e=>e}get(e,t){try{return this._getInstance(e||this._defaultToken,t||e||this._defaultToken)}catch(e){if(!this._useFallback)throw e;return this._getInstance(this._defaultToken,t||this._defaultToken)}}getFactory(e){const t=this._tokenResolver(e,Object.keys(this._factories));return t?this._factories[t]:void 0}register(e,t){if(this._hasFactory(e))throw new Lt(`'${e}' is already registered.`);this._factories[e]=t}_hasFactory(e){return!!this._factories[e]}_hasInstance(e){return!!this._instances[e]}_getInstance(e,t){if(!this._hasInstance(t)){const n=this.getFactory(e);if(!n)throw new Lt(`'${e}' is not registered.`);this._instances[t]=n()}return this._instances[t]}}class jt{constructor(e=!1){this._useFallback=e,this._registry=new Bt({tokenResolver:this._resolveToken.bind(this),useFallback:this._useFallback})}get(e){return this._registry.get(this._encodeToken(e))}getFactory(e){try{return this._registry.getFactory(this._encodeToken(e))}catch(e){return}}register(e,t){this._registry.register(this._encodeToken(e),t)}_encodeToken(e){return btoa(JSON.stringify(e))}_decodeToken(e){return JSON.parse(atob(e))}_resolveToken(e,t){var n;const i=this._decodeToken(e),r=[];t.forEach(e=>{const t=this._decodeToken(e),n={token:e,matches:0,default:!1};for(const[e,r]of Object.entries(t)){if(e in i&&i[e]!==r){n.matches=0;break}e in i&&i[e]===r&&n.matches++,"default"===e&&!0===r&&(n.default=!0)}r.push(n)});const o=r.sort((e,t)=>t.matches-e.matches).filter(e=>e.matches>0);o.length>1&&o[0].matches===o[1].matches&&"development"===ht()&&gt().warn("The provided query matches at least two strategies with the same specificity. This warning can be resolved by making their resolve ID more specific.");const a=o[0];if(a&&a.token)return a.token;if(this._useFallback){const e=null===(n=r.find(e=>e.default))||void 0===n?void 0:n.token;if(e)return e}throw new Error("Unable to resolve to a registered token with the provided token.")}}function Ut(e){const t=e;return"object"==typeof t&&"object"==typeof t.payload&&"string"==typeof t.payload.token}!function(e){e.BuyNow="BUY_NOW"}(Tt||(Tt={})),function(e){e.SignInCustomerRequested="SIGN_IN_CUSTOMER_REQUESTED",e.SignInCustomerSucceeded="SIGN_IN_CUSTOMER_SUCCEEDED",e.SignInCustomerFailed="SIGN_IN_CUSTOMER_FAILED",e.SignOutCustomerRequested="SIGN_OUT_CUSTOMER_REQUESTED",e.SignOutCustomerSucceeded="SIGN_OUT_CUSTOMER_SUCCEEDED",e.SignOutCustomerFailed="SIGN_OUT_CUSTOMER_FAILED",e.CreateCustomerRequested="CREATE_CUSTOMER_REQUESTED",e.CreateCustomerSucceeded="CREATE_CUSTOMER_SUCCEEDED",e.CreateCustomerFailed="CREATE_CUSTOMER_FAILED",e.CreateCustomerAddressRequested="CREATE_CUSTOMER_ADDRESS_REQUESTED",e.CreateCustomerAddressSucceeded="CREATE_CUSTOMER_ADDRESS_SUCCEEDED",e.CreateCustomerAddressFailed="CREATE_CUSTOMER_ADDRESS_FAILED",e.StripeLinkAuthenticated="STRIPE_LINK_AUTHENTICATED"}(Dt||(Dt={}));var qt,Vt,Gt;class Ht{constructor(e,t,n){this._customerRequestSender=e,this._checkoutActionCreator=t,this._spamProtectionActionCreator=n}createCustomer(e,t){return n=>{const i=n.getState().config.getStoreConfigOrThrow(),{isStorefrontSpamProtectionEnabled:r}=i.checkoutSettings,o=i=>le(this._customerRequestSender.createAccount(Object.assign(Object.assign({},e),{token:i}),t)).pipe(Ie(()=>se(this._checkoutActionCreator.loadCurrentCheckout(t)(n),me(l(Dt.CreateCustomerSucceeded)))));return se(me(l(Dt.CreateCustomerRequested)),r?le(this._spamProtectionActionCreator.execute()(n)).pipe(Ie(e=>{var t;return Ut(e)?se(me(e),o(null===(t=e.payload)||void 0===t?void 0:t.token)):me(e)})):o()).pipe(ge(e=>Je(Dt.CreateCustomerFailed,e)))}}createAddress(e,t){return se(me(l(Dt.CreateCustomerAddressRequested)),de(()=>{return n=this,i=void 0,o=function*(){const{body:n}=yield this._customerRequestSender.createAddress(e,t);return l(Dt.CreateCustomerAddressSucceeded,n)},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o})).pipe(ge(e=>Je(Dt.CreateCustomerAddressFailed,e)))}signInCustomer(e,t){return n=>{const i=n.getState().checkout.getCheckoutOrThrow(),r=i.cart.source===Tt.BuyNow?i.id:void 0;return se(me(l(Dt.SignInCustomerRequested)),le(this._customerRequestSender.signInCustomer(Object.assign(Object.assign({},e),{cartId:r}),t)).pipe(Ie(({body:e})=>e.data.persistentCartRetrievalInformation?se(this._checkoutActionCreator.loadCheckout(e.data.persistentCartRetrievalInformation.id,t)(n),me(l(Dt.SignInCustomerSucceeded,e.data))):se(this._checkoutActionCreator.loadCurrentCheckout(t)(n),me(l(Dt.SignInCustomerSucceeded,e.data)))))).pipe(ge(e=>Je(Dt.SignInCustomerFailed,e)))}}signOutCustomer(e){return t=>{const n=t.getState().checkout.getCheckoutOrThrow(),i=n.cart.source===Tt.BuyNow?n.id:void 0;return se(me(l(Dt.SignOutCustomerRequested)),le(this._customerRequestSender.signOutCustomer(e,i)).pipe(Ie(({body:n})=>se(this._checkoutActionCreator.loadCurrentCheckout(e)(t),me(l(Dt.SignOutCustomerSucceeded,n.data)))))).pipe(ge(e=>Je(Dt.SignOutCustomerFailed,e)))}}}class $t{constructor(e){this._requestSender=e}createAccount(e,{timeout:t}={}){return this._requestSender.post("/api/storefront/customer",{timeout:t,headers:rt,body:e})}createAddress(e,{timeout:t}={}){return this._requestSender.post("/api/storefront/customer-address",{timeout:t,headers:rt,body:e})}signInCustomer(e,{timeout:t}={}){return this._requestSender.post("/internalapi/v1/checkout/customer",{timeout:t,headers:rt,body:e})}signOutCustomer({timeout:e}={},t){return this._requestSender.delete("/internalapi/v1/checkout/customer",Object.assign({timeout:e,headers:rt},t&&{body:{cartId:t}}))}}function Wt(e,t,n=!0){var i;return null!==(i=e[t])&&void 0!==i?i:n}function Yt(e,t,n){t.forEach(t=>{Ft(t)&&t.resolveIds.forEach(i=>{if(e.getFactory(i))return;const r=Rt(()=>t(n),t.resolveIds);e.register(i,r)})})}function Kt(e,t,n,i){const r=e.getFactory(n),o=t.some(e=>Ft(r)&&Ft(e)&&A(r.resolveIds,e.resolveIds));if(r&&!o){const e=`A different strategy is registered for ${JSON.stringify(n)}.`;i.log(new Error(e))}return o}!function(e){e.SignInFailed="CUSTOMER_STRATEGY_SIGN_IN_FAILED",e.SignInRequested="CUSTOMER_STRATEGY_SIGN_IN_REQUESTED",e.SignInSucceeded="CUSTOMER_STRATEGY_SIGN_IN_SUCCEEDED",e.SignOutFailed="CUSTOMER_STRATEGY_SIGN_OUT_FAILED",e.SignOutRequested="CUSTOMER_STRATEGY_SIGN_OUT_REQUESTED",e.SignOutSucceeded="CUSTOMER_STRATEGY_SIGN_OUT_SUCCEEDED",e.ExecutePaymentMethodCheckoutFailed="CUSTOMER_STRATEGY_EXECUTE_PAYMENT_METHOD_CHECKOUT_FAILED",e.ExecutePaymentMethodCheckoutRequested="CUSTOMER_STRATEGY_EXECUTE_PAYMENT_METHOD_CHECKOUT_REQUESTED",e.ExecutePaymentMethodCheckoutSucceeded="CUSTOMER_STRATEGY_EXECUTE_PAYMENT_METHOD_CHECKOUT_SUCCEEDED",e.InitializeFailed="CUSTOMER_STRATEGY_INITIALIZE_FAILED",e.InitializeRequested="CUSTOMER_STRATEGY_INITIALIZE_REQUESTED",e.InitializeSucceeded="CUSTOMER_STRATEGY_INITIALIZE_SUCCEEDED",e.DeinitializeFailed="CUSTOMER_STRATEGY_DEINITIALIZE_FAILED",e.DeinitializeRequested="CUSTOMER_STRATEGY_DEINITIALIZE_REQUESTED",e.DeinitializeSucceeded="CUSTOMER_STRATEGY_DEINITIALIZE_SUCCEEDED",e.WidgetInteractionStarted="CUSTOMER_STRATEGY_WIDGET_INTERACTION_STARTED",e.WidgetInteractionFinished="CUSTOMER_STRATEGY_WIDGET_INTERACTION_FINISHED",e.WidgetInteractionFailed="CUSTOMER_STRATEGY_WIDGET_INTERACTION_FAILED"}(qt||(qt={}));class Jt{constructor(e,t,n,i){this._strategyRegistry=e,this._strategyRegistryV2=t,this._paymentIntegrationService=n,this._errorLogger=i}signIn(e,t){return oe.create(n=>{const i=t&&t.methodId,r={methodId:i};n.next(l(qt.SignInRequested,void 0,r)),this._getStrategy(i).signIn(e,t).then(()=>{n.next(l(qt.SignInSucceeded,void 0,r)),n.complete()}).catch(e=>{n.error(h(qt.SignInFailed,e,r))})})}signOut(e){return oe.create(t=>{const n=e&&e.methodId,i={methodId:n};t.next(l(qt.SignOutRequested,void 0,i)),this._getStrategy(n).signOut(e).then(()=>{t.next(l(qt.SignOutSucceeded,void 0,i)),t.complete()}).catch(e=>{t.error(h(qt.SignOutFailed,e,i))})})}executePaymentMethodCheckout(e){return oe.create(t=>{const n=e&&e.methodId,i={methodId:n};t.next(l(qt.ExecutePaymentMethodCheckoutRequested,void 0,i)),this._getStrategy(n).executePaymentMethodCheckout(e).then(()=>{t.next(l(qt.ExecutePaymentMethodCheckoutSucceeded,void 0,i)),t.complete()}).catch(e=>{t.error(h(qt.ExecutePaymentMethodCheckoutFailed,e,i))})})}initialize(e){return t=>oe.create(n=>{var i,r;const o=t.getState(),a=e&&e.methodId,s={methodId:a},{features:d}=o.config.getStoreConfigOrThrow().checkoutSettings;if(Wt(d,"CHECKOUT-9450.lazy_load_payment_strategies",!1)){const t={id:a||""};Kt(this._strategyRegistryV2,null!==(i=null==e?void 0:e.integrations)&&void 0!==i?i:[],t,this._errorLogger),Yt(this._strategyRegistryV2,null!==(r=null==e?void 0:e.integrations)&&void 0!==r?r:[],this._paymentIntegrationService)}if(a&&o.customerStrategies.isInitialized(a))return n.complete();n.next(l(qt.InitializeRequested,void 0,s)),this._getStrategy(a).initialize(e).then(()=>{n.next(l(qt.InitializeSucceeded,void 0,s)),n.complete()}).catch(e=>{n.error(h(qt.InitializeFailed,e,s))})})}deinitialize(e){return t=>oe.create(n=>{const i=t.getState(),r=e&&e.methodId,o={methodId:r};if(r&&!i.customerStrategies.isInitialized(r))return n.complete();n.next(l(qt.DeinitializeRequested,void 0,o)),this._getStrategy(r).deinitialize(e).then(()=>{n.next(l(qt.DeinitializeSucceeded,void 0,o)),n.complete()}).catch(e=>{n.error(h(qt.DeinitializeFailed,e,o))})})}widgetInteraction(e,t){return oe.create(n=>{const i={methodId:t&&t.methodId};n.next(l(qt.WidgetInteractionStarted,void 0,i)),e().then(()=>{n.next(l(qt.WidgetInteractionFinished,void 0,i)),n.complete()}).catch(e=>{n.error(h(qt.WidgetInteractionFailed,e,i))})})}_getStrategy(e){let t;try{t=this._strategyRegistryV2.get({id:e||""})}catch(n){t=this._strategyRegistry.get(e)}return t}}function Zt(e,t=[]){return Array.isArray(t)?Mt([...e,...t]):function(e,t){const n=R(Y(t,e=>!e)),i=R(f(t));return Mt([...g(e,n),...i])}(e,t)}class Qt{constructor(e){this._requestSender=e}loadCheckout(e,{params:{include:t}={},timeout:n}={}){const i=`/api/storefront/checkout/${e}`,r=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.get(i,{params:{include:Zt(Et,t)},headers:r,timeout:n}).catch(e=>{if(e.status>=400&&e.status<500)throw new Ct(e);throw e})}updateCheckout(e,t,{params:{include:n}={},timeout:i}={}){const r=`/api/storefront/checkout/${e}`,o=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.put(r,{params:{include:Zt(Et,n)},body:t,headers:o,timeout:i})}}!function(e){e.LoadCheckoutRequested="LOAD_CHECKOUT_REQUESTED",e.LoadCheckoutSucceeded="LOAD_CHECKOUT_SUCCEEDED",e.LoadCheckoutFailed="LOAD_CHECKOUT_FAILED",e.UpdateCheckoutRequested="UPDATE_CHECKOUT_REQUESTED",e.UpdateCheckoutSucceeded="UPDATE_CHECKOUT_SUCCEEDED",e.UpdateCheckoutFailed="UPDATE_CHECKOUT_FAILED"}(Vt||(Vt={})),function(e){e.HydrateInitialState="HYDRATE_INITIAL_STATE"}(Gt||(Gt={}));var Xt;class en{constructor(e,t,n){this._checkoutRequestSender=e,this._configActionCreator=t,this._formFieldsActionCreator=n}loadCheckout(e,t){return()=>se(me(l(Vt.LoadCheckoutRequested)),he(this._configActionCreator.loadConfig({useCache:!0,timeout:null==t?void 0:t.timeout,params:{checkoutId:e}}),this._formFieldsActionCreator.loadFormFields({useCache:!0,timeout:null==t?void 0:t.timeout})),de(()=>this._checkoutRequestSender.loadCheckout(e,t).then(({body:e})=>l(Vt.LoadCheckoutSucceeded,this._transformCustomerAddresses(e))))).pipe(ge(e=>Je(Vt.LoadCheckoutFailed,e)))}loadDefaultCheckout(e){return t=>se(me(l(Vt.LoadCheckoutRequested)),he(this._configActionCreator.loadConfig({useCache:!0,timeout:null==e?void 0:e.timeout}),this._formFieldsActionCreator.loadFormFields({useCache:!0,timeout:null==e?void 0:e.timeout})),de(()=>{return n=this,i=void 0,o=function*(){const n=t.getState().config.getContextConfig();if(!n||!n.checkoutId)throw new Qe(We.MissingCheckoutConfig);const{body:i}=yield this._checkoutRequestSender.loadCheckout(n.checkoutId,e);return l(Vt.LoadCheckoutSucceeded,this._transformCustomerAddresses(i))},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o})).pipe(ge(e=>Je(Vt.LoadCheckoutFailed,e)))}updateCheckout(e,t){return n=>new oe(i=>{const r=n.getState().checkout.getCheckout();if(!r)throw new Qe(We.MissingCheckout);i.next(l(Vt.UpdateCheckoutRequested)),this._checkoutRequestSender.updateCheckout(r.id,e,t).then(({body:e})=>{i.next(l(Vt.UpdateCheckoutSucceeded,e)),i.complete()}).catch(e=>{i.error(h(Vt.UpdateCheckoutFailed,e))})})}loadCurrentCheckout(e){return t=>{const n=t.getState().checkout.getCheckout();if(!n)throw new Qe(We.MissingCheckout);return this.loadCheckout(n.id,e)(t)}}hydrateInitialState(e){return{type:Gt.HydrateInitialState,payload:e}}_transformCustomerAddresses(e){return Object.assign(Object.assign({},e),{customer:Object.assign(Object.assign({},e.customer),{addresses:e.customer.addresses.map(e=>Object.assign(Object.assign({},e),{shouldSaveAddress:!1}))})})}}!function(e){e.LoadFormFieldsRequested="LOAD_FORM_FIELDS_REQUESTED",e.LoadFormFieldsSucceeded="LOAD_FORM_FIELDS_SUCCEEDED",e.LoadFormFieldsFailed="LOAD_FORM_FIELDS_FAILED"}(Xt||(Xt={}));var tn;class nn{constructor(e){this._formFieldsRequestSender=e}loadFormFields(e){return se(me(l(Xt.LoadFormFieldsRequested)),de(()=>{return t=this,n=void 0,r=function*(){const{body:t}=yield this._formFieldsRequestSender.loadFields(e);return l(Xt.LoadFormFieldsSucceeded,t)},new((i=void 0)||(i=Promise))(function(e,o){function a(e){try{d(r.next(e))}catch(e){o(e)}}function s(e){try{d(r.throw(e))}catch(e){o(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((r=r.apply(t,n||[])).next())});var t,n,i,r})).pipe(ge(e=>Je(Xt.LoadFormFieldsFailed,e)))}}!function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);o>3&&a&&Object.defineProperty(t,n,a)}([vt],nn.prototype,"loadFormFields",null);class rn{constructor(e){this._requestSender=e}loadFields({timeout:e}={}){return this._requestSender.get("/api/storefront/form-fields",{timeout:e,headers:Object.assign({Accept:it.JsonV1,"X-API-INTERNAL":It},rt)})}}!function(e){e.LoadPaymentMethodRequested="LOAD_PAYMENT_METHOD_REQUESTED",e.LoadPaymentMethodSucceeded="LOAD_PAYMENT_METHOD_SUCCEEDED",e.LoadPaymentMethodFailed="LOAD_PAYMENT_METHOD_FAILED",e.LoadPaymentMethodsRequested="LOAD_PAYMENT_METHODS_REQUESTED",e.LoadPaymentMethodsSucceeded="LOAD_PAYMENT_METHODS_SUCCEEDED",e.LoadPaymentMethodsFailed="LOAD_PAYMENT_METHODS_FAILED"}(tn||(tn={}));const on=e=>!!e;class an{constructor(e){this._requestSender=e}loadPaymentMethodsById(e,t){return n=>new oe(i=>{var r;const o=null===(r=n.getState().cart.getCart())||void 0===r?void 0:r.id,a=o?Object.assign(Object.assign({},null==t?void 0:t.params),{cartId:o}):Object.assign({},null==t?void 0:t.params);i.next(l(tn.LoadPaymentMethodsRequested)),Promise.all(e.map(e=>{return n=this,i=void 0,o=function*(){try{return(yield this._requestSender.loadPaymentMethod(e,Object.assign(Object.assign({},t),{params:a}))).body}catch(e){return}},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o})).then(e=>{const t=e.filter(on);i.next(l(tn.LoadPaymentMethodsSucceeded,t)),i.complete()}).catch(e=>{i.next(l(tn.LoadPaymentMethodsFailed,e)),i.complete()})})}loadPaymentMethods(e){return t=>oe.create(n=>{const i=t.getState().cart.getCartOrThrow();n.next(l(tn.LoadPaymentMethodsRequested)),this._requestSender.loadPaymentMethods(Object.assign(Object.assign({},e),{params:Object.assign(Object.assign({},null==e?void 0:e.params),{cartId:i.id})})).then(e=>{const t={deviceSessionId:e.headers["x-device-session-id"],sessionHash:e.headers["x-session-hash"]},i=e.body;n.next(l(tn.LoadPaymentMethodsSucceeded,i,t)),n.complete()}).catch(e=>{n.error(h(tn.LoadPaymentMethodsFailed,e))})})}loadPaymentMethod(e,t){return n=>oe.create(i=>{var r;const o=null===(r=n.getState().cart.getCart())||void 0===r?void 0:r.id,a=o?Object.assign(Object.assign({},null==t?void 0:t.params),{cartId:o}):Object.assign({},null==t?void 0:t.params);i.next(l(tn.LoadPaymentMethodRequested,void 0,{methodId:e})),this._requestSender.loadPaymentMethod(e,Object.assign(Object.assign({},t),{params:a})).then(t=>{i.next(l(tn.LoadPaymentMethodSucceeded,t.body,{methodId:e})),i.complete()}).catch(t=>{i.error(h(tn.LoadPaymentMethodFailed,t,{methodId:e}))})})}}!function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);o>3&&a&&Object.defineProperty(t,n,a)}([vt],an.prototype,"loadPaymentMethod",null);class sn{constructor(e){this._requestSender=e}loadPaymentMethods({timeout:e,params:t}={}){return this._requestSender.get("/api/storefront/payments",{timeout:e,headers:Object.assign({Accept:it.JsonV1,"X-API-INTERNAL":It},rt),params:t})}loadPaymentMethod(e,{timeout:t,params:n}={}){const i=`/api/storefront/payments/${e}`;return this._requestSender.get(i,{timeout:t,headers:Object.assign({Accept:it.JsonV1,"X-API-INTERNAL":It},rt),params:n})}}class dn extends Ze{constructor(e){super(e||"Unable to proceed because the client library of a payment method is not loaded or ready to be used."),this.name="PaymentMethodClientUnavailableError",this.type="payment_method_client_unavailable"}}var cn;class ln{constructor(e,t=window){this._scriptLoader=e,this._window=t}load({useMasterpassSrc:e,language:t,testMode:n,checkoutId:i}){return r=this,o=void 0,s=function*(){if(e){const e=[`https://${n?"sandbox.":""}src.mastercard.com/srci/integration/merchant.js`,[`locale=${t}`,`checkoutid=${i}`].join("&")].join("?");if(yield this._scriptLoader.loadScript(e),!this._window.masterpass)throw new dn;return this._window.masterpass}if(yield this._scriptLoader.loadScript(`//${n?"sandbox.":""}masterpass.com/integration/merchant.js`),!this._window.masterpass)throw new dn;return this._window.masterpass},new((a=void 0)||(a=Promise))(function(e,t){function n(e){try{d(s.next(e))}catch(e){t(e)}}function i(e){try{d(s.throw(e))}catch(e){t(e)}}function d(t){var r;t.done?e(t.value):(r=t.value,r instanceof a?r:new a(function(e){e(r)})).then(n,i)}d((s=s.apply(r,o||[])).next())});var r,o,a,s}}class un{constructor(e){this._requestSender=e}initializeBilling(e,t,{timeout:n}={}){const i=`/remote-checkout/${e}/billing`;return this._requestSender.get(i,{params:t,timeout:n,headers:rt})}initializeShipping(e,t,{timeout:n}={}){const i=`/remote-checkout/${e}/shipping`;return this._requestSender.get(i,{params:t,timeout:n,headers:rt})}initializePayment(e,t,{timeout:n}={}){const i=`/remote-checkout/${e}/payment`;return this._requestSender.get(i,{params:t,timeout:n,headers:rt})}loadSettings(e,{timeout:t}={}){const n=`/remote-checkout/${e}/settings`;return this._requestSender.get(n,{timeout:t,headers:rt})}signOut(e,{timeout:t}={}){const n=`/remote-checkout/${e}/signout`;return this._requestSender.get(n,{timeout:t,headers:rt})}generateToken({timeout:e}={}){return this._requestSender.get("/remote-checkout-token",{timeout:e,headers:rt})}trackAuthorizationEvent({timeout:e}={}){return this._requestSender.post("/remote-checkout/events/shopper-checkout-service-provider-authorization-requested",{timeout:e,headers:rt})}forgetCheckout({timeout:e}={}){return this._requestSender.post("/remote-checkout/forget-checkout",{timeout:e,headers:rt})}}!function(e){e.ForgetCheckoutRemoteCustomerRequested="FORGET_CHECKOUT_REMOTE_CUSTOMER_REQUESTED",e.ForgetCheckoutRemoteCustomerSucceeded="FORGET_CHECKOUT_REMOTE_CUSTOMER_SUCCEEDED",e.ForgetCheckoutRemoteCustomerFailed="FORGET_CHECKOUT_REMOTE_CUSTOMER_FAILED",e.InitializeRemoteBillingRequested="INITIALIZE_REMOTE_BILLING_REQUESTED",e.InitializeRemoteBillingSucceeded="INITIALIZE_REMOTE_BILLING_SUCCEEDED",e.InitializeRemoteBillingFailed="INITIALIZE_REMOTE_BILLING_FAILED",e.InitializeRemoteShippingRequested="INITIALIZE_REMOTE_SHIPPING_REQUESTED",e.InitializeRemoteShippingSucceeded="INITIALIZE_REMOTE_SHIPPING_SUCCEEDED",e.InitializeRemoteShippingFailed="INITIALIZE_REMOTE_SHIPPING_FAILED",e.InitializeRemotePaymentRequested="INITIALIZE_REMOTE_PAYMENT_REQUESTED",e.InitializeRemotePaymentSucceeded="INITIALIZE_REMOTE_PAYMENT_SUCCEEDED",e.InitializeRemotePaymentFailed="INITIALIZE_REMOTE_PAYMENT_FAILED",e.LoadRemoteSettingsRequested="LOAD_REMOTE_SETTINGS_REQUESTED",e.LoadRemoteSettingsSucceeded="LOAD_REMOTE_SETTINGS_SUCCEEDED",e.LoadRemoteSettingsFailed="LOAD_REMOTE_SETTINGS_FAILED",e.SignOutRemoteCustomerRequested="SIGN_OUT_REMOTE_CUSTOMER_REQUESTED",e.SignOutRemoteCustomerSucceeded="SIGN_OUT_REMOTE_CUSTOMER_SUCCEEDED",e.SignOutRemoteCustomerFailed="SIGN_OUT_REMOTE_CUSTOMER_FAILED",e.UpdateRemoteCheckout="UPDATE_REMOTE_CHECKOUT"}(cn||(cn={}));var hn;class pn{constructor(e,t){this._remoteCheckoutRequestSender=e,this._checkoutActionCreator=t}initializeBilling(e,t,n){return oe.create(i=>{i.next(l(cn.InitializeRemoteBillingRequested,void 0,{methodId:e})),this._remoteCheckoutRequestSender.initializeBilling(e,t,n).then(({body:t={}})=>{i.next(l(cn.InitializeRemoteBillingSucceeded,t,{methodId:e})),i.complete()}).catch(t=>{i.error(h(cn.InitializeRemoteBillingFailed,t,{methodId:e}))})})}initializeShipping(e,t,n){return oe.create(i=>{i.next(l(cn.InitializeRemoteShippingRequested,void 0,{methodId:e})),this._remoteCheckoutRequestSender.initializeShipping(e,t,n).then(({body:t={}})=>{i.next(l(cn.InitializeRemoteShippingSucceeded,t,{methodId:e})),i.complete()}).catch(t=>{i.error(h(cn.InitializeRemoteShippingFailed,t,{methodId:e}))})})}initializePayment(e,t,n){return oe.create(i=>{i.next(l(cn.InitializeRemotePaymentRequested,void 0,{methodId:e})),this._remoteCheckoutRequestSender.initializePayment(e,t,n).then(({body:t={}})=>{i.next(l(cn.InitializeRemotePaymentSucceeded,t,{methodId:e})),i.complete()}).catch(t=>{i.error(h(cn.InitializeRemotePaymentFailed,t,{methodId:e}))})})}loadSettings(e,t){return oe.create(n=>{n.next(l(cn.LoadRemoteSettingsRequested,void 0,{methodId:e})),this._remoteCheckoutRequestSender.loadSettings(e,t).then(({body:t})=>{n.next(l(cn.LoadRemoteSettingsSucceeded,t,{methodId:e})),n.complete()}).catch(t=>{n.error(h(cn.LoadRemoteSettingsFailed,t,{methodId:e}))})})}signOut(e,t){return oe.create(n=>{n.next(l(cn.SignOutRemoteCustomerRequested,void 0,{methodId:e})),this._remoteCheckoutRequestSender.signOut(e,t).then(()=>{n.next(l(cn.SignOutRemoteCustomerSucceeded,void 0,{methodId:e})),n.complete()}).catch(t=>{n.error(h(cn.SignOutRemoteCustomerFailed,t,{methodId:e}))})})}forgetCheckout(e,t){return se(me(l(cn.ForgetCheckoutRemoteCustomerRequested,void 0,{methodId:e})),de(()=>{return n=this,i=void 0,o=function*(){return yield this._remoteCheckoutRequestSender.forgetCheckout(t),yield this._checkoutActionCreator.loadCurrentCheckout(),l(cn.ForgetCheckoutRemoteCustomerSucceeded,void 0,{methodId:e})},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o})).pipe(ge(t=>Je(cn.ForgetCheckoutRemoteCustomerFailed,t,{methodId:e})))}updateCheckout(e,t){return l(cn.UpdateRemoteCheckout,t,{methodId:e})}}class mn extends Ze{constructor(){super("You haven't complete our spam protection challenge. Please try again."),this.name="SpamProtectionChallengeNotCompletedError",this.type="spam_protection_challenge_not_completed"}}class yn extends Ze{constructor(){super("We were not able to complete your spam protection verification. Please try again."),this.name="SpamProtectionFailedError",this.type="spam_protection_failed"}}!function(e){e.InitializeFailed="SPAM_PROTECTION_INITIALIZE_FAILED",e.InitializeSucceeded="SPAM_PROTECTION_INITIALIZE_SUCCEEDED",e.InitializeRequested="SPAM_PROTECTION_INITIALIZE_REQUESTED",e.VerifyCheckoutRequested="SPAM_PROTECTION_CHECKOUT_VERIFY_REQUESTED",e.VerifyCheckoutSucceeded="SPAM_PROTECTION_CHECKOUT_VERIFY_SUCCEEDED",e.VerifyCheckoutFailed="SPAM_PROTECTION_CHECKOUT_VERIFY_FAILED",e.ExecuteRequested="SPAM_PROTECTION_EXECUTE_REQUESTED",e.ExecuteSucceeded="SPAM_PROTECTION_EXECUTE_SUCCEEDED",e.ExecuteFailed="SPAM_PROTECTION_EXECUTE_FAILED"}(hn||(hn={}));var gn,vn=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class fn{constructor(e,t){this._googleRecaptcha=e,this._requestSender=t}initialize(e){return t=>se(me(l(hn.InitializeRequested,void 0)),de(()=>vn(this,void 0,void 0,function*(){const n=e?e.containerId:"spamProtectionContainer";if(document.getElementById(n)&&this._googleRecaptcha.reset(n),!e&&!document.getElementById(n)){const e=document.createElement("div");e.setAttribute("id",n),document.body.appendChild(e)}const i=t.getState().config.getStoreConfigOrThrow().checkoutSettings.googleRecaptchaSitekey;return yield this._googleRecaptcha.load(n,i),l(hn.InitializeSucceeded)}))).pipe(ge(e=>Je(hn.InitializeFailed,e)))}verifyCheckoutSpamProtection(){return e=>de(()=>{const t=e.getState().checkout.getCheckout();if(!t)throw new Qe(We.MissingCheckout);return se(me(l(hn.VerifyCheckoutRequested)),le(this.execute()(e)).pipe(Ie(e=>Ut(e)&&e.payload?le(this._requestSender.validate(t.id,e.payload.token)).pipe(Ie(({body:t})=>se(me(e),me(l(hn.VerifyCheckoutSucceeded,t))))):me(e)))).pipe(ge(e=>Je(hn.VerifyCheckoutFailed,e)))})}execute(){return e=>se(me(l(hn.ExecuteRequested)),this.initialize()(e),this._googleRecaptcha.execute().pipe(be(1)).pipe(Ie(({error:e,token:t})=>vn(this,void 0,void 0,function*(){if(e instanceof mn)throw e;if(e||!t)throw new yn;return l(hn.ExecuteSucceeded,{token:t})})))).pipe(ge(e=>Je(hn.ExecuteFailed,e)))}}class Sn{constructor(e=window){this._window=e}create(e){return new this._window.MutationObserver(e)}}!function(e){e[e.CheckoutButtonNotInitialized=0]="CheckoutButtonNotInitialized",e[e.CustomerNotInitialized=1]="CustomerNotInitialized",e[e.PaymentNotInitialized=2]="PaymentNotInitialized",e[e.ShippingNotInitialized=3]="ShippingNotInitialized",e[e.SpamProtectionNotInitialized=4]="SpamProtectionNotInitialized"}(gn||(gn={}));class wn extends Ze{constructor(e){super(function(e){switch(e){case gn.CustomerNotInitialized:return"Unable to proceed because the customer step of checkout has not been initialized.";case gn.PaymentNotInitialized:return"Unable to proceed because the payment step of checkout has not been initialized.";case gn.ShippingNotInitialized:return"Unable to proceed because the shipping step of checkout has not been initialized.";case gn.SpamProtectionNotInitialized:return"Unable to proceed because the checkout spam protection has not been initialized.";default:return"Unable to proceed because the required component has not been initialized."}}(e)),this.subtype=e,this.name="NotInitializedError",this.type="not_initialized"}}class _n extends Ze{constructor(){super("Spam protection is not loaded. Please try again."),this.name="SpamProtectionNotLoadedError",this.type="spam_protection_failed"}}class Cn{constructor(e,t){this.googleRecaptchaScriptLoader=e,this.mutationObserverFactory=t,this._memoized=Pe((e,t,n)=>{const i=new ae;if(!n)throw new Error;return this._widgetId=e.render(n.id,{sitekey:t,size:"invisible",callback:()=>{i.next({token:e.getResponse(this._widgetId)}),e.reset(this._widgetId)},"error-callback":()=>{i.next({error:new yn})}}),i},{isEqual:(e,t)=>e===t})}load(e,t){return this.googleRecaptchaScriptLoader.load().then(n=>{n&&(this._event$=this._memoized(n,t,document.getElementById(e)),this._recaptcha=n)}).catch(e=>{throw e})}reset(e){var t;const n=document.getElementById(e);null==n||n.remove(),null===(t=this._recaptcha)||void 0===t||t.reset(this._widgetId)}execute(){return de(()=>{const e=this._event$,t=this._recaptcha;if(!e||!t)throw new wn(gn.SpamProtectionNotInitialized);return de(()=>{const e=document.querySelector('iframe[src*="bframe"]');return e?me(e):ye(new _n)}).pipe(_e(e=>e.pipe(ve(250),Ie((e,t)=>t<28?me(e):ye(e)))),Ie(n=>(this._watchRecaptchaChallengeWindow(e,n),t.execute(this._widgetId),e)),ge(e=>me({error:e})))})}_watchRecaptchaChallengeWindow(e,t){const n=t.parentElement;if(!n)throw new _n;const i=n.parentElement;if(!i)throw new _n;this.mutationObserverFactory.create(()=>{"hidden"===i.style.visibility&&e.next({error:new mn})}).observe(i,{attributes:!0,attributeFilter:["style"]})}}class In{constructor(e,t=window){this._scriptLoader=e,this._window=t}load(){return this._loadPromise||(this._loadPromise=this._loadScript()),this._loadPromise}_loadScript(){const e="initRecaptcha",t=[`onload=${e}`,"render=explicit"].join("&");return new Promise((n,i)=>{this._window[e]=()=>n(this._window.grecaptcha),this._scriptLoader.loadScript(`//www.google.com/recaptcha/api.js?${t}`).catch(e=>{this._loadPromise=void 0,i(e)})})}}function bn(e){return new Cn(new In(e),new Sn)}class Pn{constructor(e){this._requestSender=e}validate(e,t,{timeout:n}={}){const i=`/api/storefront/checkouts/${e}/spam-protection`,r=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.post(i,{body:{token:t},headers:r,timeout:n}).catch(e=>{if("empty_cart"===e.body.type)throw new nt;throw e})}}class On{constructor(e,t){this._store=e,this._customerActionCreator=t}signIn(e,t){return this._store.dispatch(this._customerActionCreator.signInCustomer(e,t))}signOut(e){return this._store.dispatch(this._customerActionCreator.signOutCustomer(e))}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve(this._store.getState())}initialize(){return Promise.resolve(this._store.getState())}deinitialize(){return Promise.resolve(this._store.getState())}}class En extends Ze{constructor(e){super(e||"Not implemented."),this.name="NotImplementedError",this.type="not_implemented"}}function An(e){return`${window.location.origin}/checkout.php?action=set_external_checkout&provider=masterpass&gateway=stripe&origin=${e}`}const kn={es:["es_es","es_mx","es_pe","es_co","es_ar","es_cl"],en:["en_us","en_gb","en_ca","en_es","en_fr","en_ie","en_sg","en_au","en_nz","en_my","en_hk","en_th","en_ae","en_sa","en_qa","en_kw","en_za"],pt:["pt_br"],zu:["zu_za"],ar:["ar_sa","ar_ae","ar_qa","ar_kw"],zh:["zh_sg","zh_hk"],ms:["ms_my"],uk:["uk_ua"],sv:["sv_se"],hr:["hr_hr"],pl:["pl_pl"],nl:["nl_be"],it:["it_it"],de:["de_de"],fr:["fr_fr","fr_ca"]};function Tn(e){const[t,n]=e.replace("-","_").toLowerCase().split("_"),i=`${t}_${n}`,r=kn[t];return r?r.indexOf(i)>-1?i:r[0]:"en_us"}class Dn{constructor(e,t,n,i,r){this._store=e,this._paymentMethodActionCreator=t,this._remoteCheckoutActionCreator=n,this._masterpassScriptLoader=i,this._locale=r}initialize(e){const{masterpass:t,methodId:n}=e;if(!t||!n)throw new Lt('Unable to proceed because "options.masterpass" argument is not provided.');return this._store.dispatch(this._paymentMethodActionCreator.loadPaymentMethod(n)).then(e=>{if(this._paymentMethod=e.paymentMethods.getPaymentMethod(n),!this._paymentMethod||!this._paymentMethod.initializationData.checkoutId)throw new Qe(We.MissingPaymentMethod);const i=e.cart.getCart();if(!i)throw new Qe(We.MissingCart);const{container:r}=t,o={checkoutId:this._paymentMethod.initializationData.checkoutId,allowedCardTypes:this._paymentMethod.initializationData.allowedCardTypes,amount:i.cartAmount.toString(),currency:i.currency.code,cartId:i.id,suppressShippingAddress:!1,callbackUrl:An("checkout")},a={useMasterpassSrc:this._paymentMethod.initializationData.isMasterpassSrcEnabled,language:Tn(this._locale),testMode:this._paymentMethod.config.testMode,checkoutId:this._paymentMethod.initializationData.checkoutId};return this._masterpassScriptLoader.load(a).then(e=>{this._signInButton=this._createSignInButton(r),this._signInButton.addEventListener("click",()=>{e.checkout(o)})})}).then(()=>this._store.getState())}deinitialize(){return this._paymentMethod=void 0,this._signInButton&&this._signInButton.parentNode&&(this._signInButton.parentNode.removeChild(this._signInButton),this._signInButton=void 0),Promise.resolve(this._store.getState())}signIn(){throw new En('In order to sign in via Masterpass, the shopper must click on "Masterpass" button.')}signOut(e){const t=this._store.getState().payment.getPaymentId();return t?this._store.dispatch(this._remoteCheckoutActionCreator.signOut(t.providerId,e)):Promise.resolve(this._store.getState())}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve(this._store.getState())}_createSignInButton(e){const t=document.querySelector(`#${e}`);if(!this._paymentMethod||!this._paymentMethod.initializationData.checkoutId)throw new Qe(We.MissingPaymentMethod);if(!t)throw new Lt("Unable to create sign-in button without valid container ID.");const n=document.createElement("input");if(n.type="image",this._paymentMethod.initializationData.isMasterpassSrcEnabled){const e=this._paymentMethod.config.testMode?"sandbox.":"",{checkoutId:t}=this._paymentMethod.initializationData,i=[`locale=${Tn(this._locale)}`,"paymentmethod=master,visa,amex,discover",`checkoutid=${t}`];n.src=[`https://${e}src.mastercard.com/assets/img/btn/src_chk_btn_126x030px.svg`,i.join("&")].join("?")}else n.src="https://static.masterpass.com/dyn/img/btn/global/mp_chk_btn_160x037px.svg";return t.appendChild(n),n}}function Mn(e){if(!/^(https?:)?\/\//.test(e))throw new Lt("The provided URL must be absolute.");const t=document.createElement("a");t.href=e;const n=t.port&&-1!==e.indexOf(`${t.hostname}:${t.port}`)?t.port:"";return{hash:t.hash,hostname:t.hostname,href:t.href,origin:`${t.protocol}//${t.hostname}${n?`:${n}`:""}`,pathname:t.pathname,port:n,protocol:t.protocol,search:t.search}}class zn extends Ze{constructor(e){super(e||"Unable to proceed due to no extension configured for this region."),this.name="ExtensionNotFoundError",this.type="extension_not_found"}}var Nn,xn;function Fn(e,t){return e.type===t}!function(e){e.LoadExtensionsRequested="LOAD_EXTENSIONS_REQUESTED",e.LoadExtensionsSucceeded="LOAD_EXTENSIONS_SUCCEEDED",e.LoadExtensionsFailed="LOAD_EXTENSIONS_FAILED",e.RenderExtensionRequested="RENDER_EXTENSION_REQUESTED",e.RenderExtensionSucceeded="RENDER_EXTENSION_SUCCEEDED",e.RenderExtensionFailed="RENDER_EXTENSION_FAILED"}(Nn||(Nn={}));class Rn{constructor(e,t,n){this._targetWindow=t,this._context=n,this._targetOrigin="*"===e?"*":Mn(e).origin}post(e,t){const n=this._targetWindow;if(window===n)return;if(!n)throw new Error("Unable to post message because target window is not set.");const i=t&&ue(window,"message").pipe(Se(e=>e.origin===this._targetOrigin&&Fn(e.data,e.data.type)&&-1!==[t.successType,t.errorType].indexOf(e.data.type)),we(e=>{if(t.errorType===e.data.type)throw e.data;return e.data}),be(1)).toPromise();return n.postMessage(Object.assign(Object.assign({},e),{context:this._context}),this._targetOrigin),i}setTarget(e){this._targetWindow=e}setContext(e){this._context=e}}function Ln(e){var t;const n=null===(t=document.querySelector(`[data-extension-id="${e.id}"]`))||void 0===t?void 0:t.querySelector("iframe");if(!(null==n?void 0:n.contentWindow))throw new zn(`Unable to post due to no extension rendered for ID: ${e.id}.`);return new Rn(e.url,n.contentWindow)}!function(e){e.ExtensionReady="EXTENSION:READY",e.ExtensionFailed="EXTENSION:FAILED"}(xn||(xn={}));class Bn{constructor(e){const t=new Promise((e,t)=>{this.cancel=t});this.promise=Promise.race([e,t])}}class jn extends Ze{constructor(e){super(e||"Unable to proceed because the required element is unexpectedly detached from the page."),this.name="UnexpectedDetachmentError",this.type="unexpected_detachment"}}var Un;class qn{constructor(e){this._mutationObserver=e}ensurePresence(e,t){return n=this,i=void 0,o=function*(){const n=new Bn(t),i=this._mutationObserver.create(t=>{t.forEach(t=>{0!==Array.from(t.removedNodes).filter(t=>e.some(e=>t===e||t.contains(e))).length&&n.cancel(new jn)})});i.observe(document.body,{childList:!0,subtree:!0});try{const e=yield n.promise;return i.disconnect(),e}catch(e){throw i.disconnect(),e}},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}}function Vn(e,t){const{iframeResizer:n}=Ge(785);return n(e,t)}class Gn extends Ze{constructor(e){super(e||"Unable to load an extension"),this.name="ExtensionNotLoadedError",this.type="extension_not_loaded"}}!function(e){e.Subscribe="EXTENSION_INTERNAL:SUBSCRIBE",e.Unsubscribe="EXTENSION_INTERNAL:UNSUBSCRIBE",e.ResizeIframe="EXTENSION_INTERNAL:RESIZE_IFRAME"}(Un||(Un={}));class Hn{constructor(e){this._options=e}createFrame(e,t,n,i){const r=document.getElementById(t),{timeout:o=6e4}=this._options||{};if(!r)throw new Gn("Unable to embed the iframe because the container element could not be found.");const a=document.createElement("iframe");return a.src=e,a.style.border="none",a.style.display="none",a.style.width="100%",r.appendChild(a),this._toResizableFrame(a,o,n,i).catch(e=>{throw r.removeChild(a),e})}_toResizableFrame(e,t,n,i){return r=this,o=void 0,s=function*(){const r=new qn(new Sn),o=new Promise((r,o)=>{const a=window.setTimeout(()=>{try{i()}catch(e){e instanceof Error&&console.error(`Extension rendering timed out after ${t}ms, and the callback function could not be executed. Error: ${e.message}`)}o(new Gn("Unable to load the extension because the content could not be loaded."))},t),s=t=>{if(t.origin===Mn(e.src).origin&&Fn(t.data,Un.ResizeIframe)){e.style.display="";const t=Vn({autoResize:!1,scrolling:!1,sizeWidth:!1,heightCalculationMethod:"bodyOffset",initCallback:n},e);d(),r(t[t.length-1])}},d=()=>{window.removeEventListener("message",s),window.clearTimeout(a)};window.addEventListener("message",s)});return r.ensurePresence([e],o)},new((a=void 0)||(a=Promise))(function(e,t){function n(e){try{d(s.next(e))}catch(e){t(e)}}function i(e){try{d(s.throw(e))}catch(e){t(e)}}function d(t){var r;t.done?e(t.value):(r=t.value,r instanceof a?r:new a(function(e){e(r)})).then(n,i)}d((s=s.apply(r,o||[])).next())});var r,o,a,s}}class $n{constructor(e,t,n){this._containerId=e,this._extension=t,this._config=n;const{cartId:i,parentOrigin:r}=this._config;this._url=new URL(this._extension.url),this._url.searchParams.set("extensionId",this._extension.id),this._url.searchParams.set("cartId",i),this._url.searchParams.set("parentOrigin",r)}attach(){var e,t,n,i,r;return t=this,n=void 0,r=function*(){if(null===(e=document.querySelector(`[data-extension-id="${this._extension.id}"]`))||void 0===e?void 0:e.querySelector("iframe"))return;const t=new Hn,n=e=>{Ln(this._extension).post({type:e})};this._iframe=yield t.createFrame(this._url.toString(),this._containerId,()=>{n(xn.ExtensionReady)},()=>{n(xn.ExtensionFailed)});const i=document.getElementById(this._containerId);null==i||i.setAttribute("data-extension-id",this._extension.id)},new((i=void 0)||(i=Promise))(function(e,o){function a(e){try{d(r.next(e))}catch(e){o(e)}}function s(e){try{d(r.throw(e))}catch(e){o(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((r=r.apply(t,n||[])).next())})}detach(){this._iframe&&this._iframe.parentElement&&this._iframe.parentElement.removeChild(this._iframe)}}class Wn{constructor(e){this._requestSender=e}loadExtensions(e){return()=>oe.create(t=>{t.next(l(Nn.LoadExtensionsRequested)),this._requestSender.loadExtensions(e).then(e=>{const n=e.body;t.next(l(Nn.LoadExtensionsSucceeded,n)),t.complete()}).catch(e=>{t.error(h(Nn.LoadExtensionsFailed,e))})})}renderExtension(e,t,n){return i=>oe.create(r=>{return o=this,a=void 0,d=function*(){const o=i.getState(),{id:a}=o.cart.getCartOrThrow(),{links:{checkoutLink:s},checkoutSettings:{features:d}}=o.config.getStoreConfigOrThrow();if(!d["PROJECT-5029.checkout_extension"])return r.complete();const c=o.extensions.getExtensionByRegion(t);try{if(!c)throw new zn(`Unable to proceed due to no extension configured for the region: ${t}.`);if(r.next(l(Nn.RenderExtensionRequested)),"worker"===c.type){const e=function(e){if(!window.Worker)throw new Error("Unable to load the extension's web worker: your browser does not support Web Workers.");try{const t=URL.createObjectURL(new Blob([`importScripts=((i)=>(...a)=>i(...a.map((u)=>''+new URL(u,"${e}"))))(importScripts);importScripts("${e}")`],{type:"text/javascript"}));return new Worker(t)}catch(e){throw new Error("Unable to load the extension's web worker")}}(c.url);n.add(c.id,e)}else{const t=new $n(e,c,{cartId:a,parentOrigin:Mn(s).origin});yield t.attach()}r.next(l(Nn.RenderExtensionSucceeded)),r.complete()}catch(e){r.error(h(Nn.RenderExtensionFailed,e))}},new((s=void 0)||(s=Promise))(function(e,t){function n(e){try{r(d.next(e))}catch(e){t(e)}}function i(e){try{r(d.throw(e))}catch(e){t(e)}}function r(t){var r;t.done?e(t.value):(r=t.value,r instanceof s?r:new s(function(e){e(r)})).then(n,i)}r((d=d.apply(o,a||[])).next())});var o,a,s,d})}}class Yn{constructor(e){this._requestSender=e}loadExtensions({timeout:e,params:t}={}){return this._requestSender.get("/api/storefront/checkout-extensions",{timeout:e,headers:Object.assign({Accept:it.JsonV1},rt),params:t})}}const Kn=function(e,t,n){return t&&n?Jn(0,t,n):function(e){const t=class extends e{};return Object.getOwnPropertyNames(e.prototype).forEach(n=>{const i=Object.getOwnPropertyDescriptor(e.prototype,n);i&&"constructor"!==n&&Object.defineProperty(t.prototype,n,Jn(e.prototype,n,i))}),t}(e)};function Jn(e,t,n){if("function"!=typeof n.value)return n;let i=n.value;return{get(){const e=i.bind(this);return Object.defineProperty(this,t,Object.assign(Object.assign({},n),{value:e})),e},set(e){i=e}}}var Zn,Qn;class Xn{constructor(e){this._worker=e,this._isListening=!1,this._listeners={}}listen(){this._isListening||(this._isListening=!0,this._worker.addEventListener("message",this._handleMessage))}stopListen(){this._isListening&&(this._isListening=!1,this._worker.removeEventListener("message",this._handleMessage))}addListener(e,t){let n=this._listeners[e];n||(this._listeners[e]=n=[]),-1===n.indexOf(t)&&n.push(t)}removeListener(e,t){const n=this._listeners[e];if(!n)return;const i=n.indexOf(t);i>=0&&n.splice(i,1)}trigger(e,t){const n=this._listeners[e.type];n&&n.forEach(n=>t?n(e,t):n(e))}_handleMessage(e){const t=e.data,{context:n}=t,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(t,["context"]);this.trigger(i,n)}}!function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);o>3&&a&&Object.defineProperty(t,n,a)}([Kn],Xn.prototype,"_handleMessage",null);class ei{constructor(e,t){this._worker=e,this._context=t}post(e){if(!this._worker)throw new Error("WorkerPoster: Worker is not initialized or creation failed. Cannot post message.");this._worker.postMessage(Object.assign(Object.assign({},e),{context:this._context}))}}class ti extends Ze{constructor(e){super(e||"Unable to proceed due to unsupported extension command."),this.name="UnsupportedExtensionCommandError",this.type="unsupported_extension_command_error"}}class ni extends Ze{constructor(e){super(e||"Unable to proceed due to unsupported extension query."),this.name="UnsupportedExtensionQueryError",this.type="unsupported_extension_query_error"}}!function(e){e.ReloadCheckout="EXTENSION:RELOAD_CHECKOUT",e.ShowLoadingIndicator="EXTENSION:SHOW_LOADING_INDICATOR",e.SetIframeStyle="EXTENSION:SET_IFRAME_STYLE",e.ReRenderShippingForm="EXTENSION:RE_RENDER_SHIPPING_FORM",e.ReRenderShippingStep="EXTENSION:RE_RENDER_SHIPPING_STEP"}(Zn||(Zn={})),function(e){e.GetConsignments="EXTENSION:GET_CONSIGNMENTS"}(Qn||(Qn={}));class ii{constructor(e={},t={},n={}){this._workers=e,this._commandListeners=t,this._queryListeners=n}add(e,t){this._workers[e]=t}listenForCommand(e,t,n){const i=this._getWorkerById(e);this._commandListeners[e]||(this._commandListeners[e]=new Xn(i));const r=this._commandListeners[e];r.listen();const o=this._validateCommand(t),a=(t,i)=>{(null==i?void 0:i.extensionId)===e&&n(t,i)};return r.addListener(o,a),()=>{r.removeListener(o,a)}}listenForQuery(e,t,n){const i=this._getWorkerById(e);this._queryListeners[e]||(this._queryListeners[e]=new Xn(i));const r=this._queryListeners[e];r.listen();const o=this._validateQuery(t),a=(t,i)=>{(null==i?void 0:i.extensionId)===e&&n(t,i)};return r.addListener(o,a),()=>{r.removeListener(o,a)}}stopListen(e){this._commandListeners[e]&&this._commandListeners[e].stopListen(),this._queryListeners[e]&&this._queryListeners[e].stopListen()}post(e,t){if(!this._workers[e])throw new Error(`Worker with extensionId ${e} not found`);new ei(this._workers[e],e).post(t)}clearCacheById(e){delete this._workers[e]}_getWorkerById(e){const t=this._workers[e];if(!t)throw new zn(`Worker with extensionId ${e} not found`);return t}_validateCommand(e){if(Object.values(Zn).includes(e))return e;throw new ti}_validateQuery(e){if(Object.values(Qn).includes(e))return e;throw new ni}}function ri(e){return Mn(0===e.hostname.indexOf("www")?e.href:e.href.replace(e.hostname,`www.${e.hostname}`))}var oi;class ai{constructor(e){this._sourceOrigins=[Mn(e).origin,ri(Mn(e)).origin],this._isListening=!1,this._listeners={}}listen(){this._isListening||(this._isListening=!0,window.addEventListener("message",this._handleMessage))}stopListen(){this._isListening&&(this._isListening=!1,window.removeEventListener("message",this._handleMessage))}addListener(e,t){let n=this._listeners[e];n||(this._listeners[e]=n=[]),-1===n.indexOf(t)&&n.push(t)}removeListener(e,t){const n=this._listeners[e];if(!n)return;const i=n.indexOf(t);i>=0&&n.splice(i,1)}trigger(e,t){const n=this._listeners[e.type];n&&n.forEach(n=>t?n(e,t):n(e))}_handleMessage(e){if(-1===this._sourceOrigins.indexOf(e.origin)||!Fn(e.data,e.data.type))return;const t=e.data,{context:n}=t,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(t,["context"]);this.trigger(i,n)}}!function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);o>3&&a&&Object.defineProperty(t,n,a)}([Kn],ai.prototype,"_handleMessage",null);class si{constructor(e,t,n={},i={},r={}){this._store=e,this._workerExtensionMessenger=t,this._commandListeners=n,this._queryListeners=i,this._posters=r}clearCacheByRegion(e){const t=this._getExtensionByRegion(e);"worker"!==t.type?this.clearCacheById(t.id):this._workerExtensionMessenger.clearCacheById(t.id)}clearCacheById(e){const t=this._getExtensionById(e);"worker"!==t.type?(this._commandListeners[e]&&delete this._commandListeners[e],this._queryListeners[e]&&delete this._queryListeners[e],this._posters[e]&&delete this._posters[e]):this._workerExtensionMessenger.clearCacheById(t.id)}listenForCommand(e,t,n){const i=this._getExtensionById(e);if("worker"===i.type)return this._workerExtensionMessenger.listenForCommand(e,t,n);this._commandListeners[e]||(this._commandListeners[e]=new ai(i.url));const r=this._commandListeners[e];r.listen();const o=this._validateCommand(t),a=(t,i)=>{(null==i?void 0:i.extensionId)===e&&n(t,i)};return r.addListener(o,a),()=>{r.removeListener(o,a)}}listenForQuery(e,t,n){const i=this._getExtensionById(e);if("worker"===i.type)return this._workerExtensionMessenger.listenForQuery(e,t,n);this._queryListeners[e]||(this._queryListeners[e]=new ai(i.url));const r=this._queryListeners[e];r.listen();const o=this._validateQuery(t),a=(t,i)=>{(null==i?void 0:i.extensionId)===e&&n(t,i)};return r.addListener(o,a),()=>{r.removeListener(o,a)}}stopListen(e){"worker"!==this._getExtensionById(e).type?(this._commandListeners[e]&&this._commandListeners[e].stopListen(),this._queryListeners[e]&&this._queryListeners[e].stopListen()):this._workerExtensionMessenger.stopListen(e)}post(e,t){try{const n=this._getExtensionById(e);if("worker"===n.type)return void this._workerExtensionMessenger.post(e,t);this._posters[e]||(this._posters[e]=Ln(n)),this._posters[e].post(t)}catch(n){this.clearCacheById(e),console.log(`Unable to post event to extension(${e}) because extension iframe is not mounted.\nThe event that could not be delivered:`,t)}}_getExtensionById(e){var t;this._getExtensions();const n=null===(t=this._extensions)||void 0===t?void 0:t.find(t=>t.id===e);if(!n)throw new zn(`Unable to proceed due to no extension found for ID: ${e}.`);return n}_getExtensionByRegion(e){var t;this._getExtensions();const n=null===(t=this._extensions)||void 0===t?void 0:t.find(t=>t.region===e);if(!n)throw new zn(`Unable to proceed due to no extension found for region: ${e}.`);return n}_getExtensions(){if(this._extensions)return;const{extensions:{getExtensions:e}}=this._store.getState();if(this._extensions=e(),!this._extensions)throw new zn("Extension configurations not found.")}_validateCommand(e){if(Object.values(Zn).includes(e))return e;throw new ti}_validateQuery(e){if(Object.values(Qn).includes(e))return e;throw new ni}}class di{constructor(e,t,n){this._store=e,this._extensionMessenger=t,this._subscribers=n,this._subscribed={},this._unsubscribers={},this._listeners={}}listen(){var e;const{data:{getExtensions:t}}=this._store.getState();null===(e=t())||void 0===e||e.forEach(e=>{if(this._listeners[e.id])return;const t=new ai(e.url);t.addListener(Un.Subscribe,this._handleSubscribe.bind(this)),t.addListener(Un.Unsubscribe,this._handleUnsubscribe.bind(this)),t.listen(),this._listeners[e.id]=t})}broadcast(e){var t;const{data:{getExtensions:n}}=this._store.getState();null===(t=n())||void 0===t||t.forEach(t=>{this._subscribed[t.id]&&this._extensionMessenger.post(t.id,e)})}_handleSubscribe({payload:{eventType:e,extensionId:t}}){this._subscribed[t]=!0,this._unsubscribers[e]||(this._unsubscribers[e]=this._subscribers[e](this._store,this))}_handleUnsubscribe({payload:{eventType:e,extensionId:t}}){var n,i;delete this._subscribed[t],Object.keys(this._subscribed).length||(null===(i=(n=this._unsubscribers)[e])||void 0===i||i.call(n),delete this._unsubscribers[e])}}!function(e){e.ConsignmentsChanged="EXTENSION:CONSIGNMENTS_CHANGED"}(oi||(oi={}));const ci=(e,t)=>{var n;const{data:{getConsignments:i}}=e.getState();let r=null!==(n=i())&&void 0!==n?n:[];return e.subscribe(({data:{getConsignments:e}})=>{var n;const i=null!==(n=e())&&void 0!==n?n:[];i!==r&&(t.broadcast({type:oi.ConsignmentsChanged,payload:{consignments:i,previousConsignments:r}}),r=i)},({data:{getConsignments:e}})=>e())};class li extends Error{constructor(e){var t;super(e||"An unexpected error has occurred."),this.name="StandardError",this.type="standard",t=new.target.prototype,Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,"function"==typeof Error.captureStackTrace?Error.captureStackTrace(this,new.target):this.stack=new Error(this.message).stack}}var ui,hi;!function(e){e[e.MissingBillingAddress=0]="MissingBillingAddress",e[e.MissingCart=1]="MissingCart",e[e.MissingCheckout=2]="MissingCheckout",e[e.MissingConsignments=3]="MissingConsignments",e[e.MissingCustomer=4]="MissingCustomer",e[e.MissingCheckoutConfig=5]="MissingCheckoutConfig",e[e.MissingOrder=6]="MissingOrder",e[e.MissingOrderConfig=7]="MissingOrderConfig",e[e.MissingOrderId=8]="MissingOrderId",e[e.MissingPayment=9]="MissingPayment",e[e.MissingPaymentId=10]="MissingPaymentId",e[e.MissingPaymentInstrument=11]="MissingPaymentInstrument",e[e.MissingPaymentMethod=12]="MissingPaymentMethod",e[e.MissingPaymentRedirectUrl=13]="MissingPaymentRedirectUrl",e[e.MissingPaymentStatus=14]="MissingPaymentStatus",e[e.MissingPaymentToken=15]="MissingPaymentToken",e[e.MissingShippingAddress=16]="MissingShippingAddress"}(ui||(ui={}));class pi extends li{constructor(e){super(function(e){switch(e){case ui.MissingBillingAddress:return"Unable to proceed because billing address data is unavailable.";case ui.MissingCart:return"Unable to proceed because cart data is unavailable.";case ui.MissingConsignments:return"Unable to proceed because consignments data is unavailable.";case ui.MissingCheckout:return"Unable to proceed because checkout data is unavailable.";case ui.MissingCustomer:return"Unable to proceed because customer data is unavailable.";case ui.MissingCheckoutConfig:case ui.MissingOrderConfig:return"Unable to proceed because configuration data is unavailable.";case ui.MissingOrder:return"Unable to proceed because order data is unavailable.";case ui.MissingOrderId:return"Unable to proceed because order ID is unavailable or not generated yet.";case ui.MissingPayment:return"Unable to proceed because payment data is unavailable.";case ui.MissingPaymentToken:return"Unable to proceed because the token required to submit a payment is missing.";case ui.MissingPaymentMethod:return"Unable to proceed because payment method data is unavailable or not properly configured.";case ui.MissingShippingAddress:return"Unable to proceed because shipping address data is unavailable.";default:return"Unable to proceed because the required data is unavailable."}}(e)),this.subtype=e,this.name="MissingDataError",this.type="missing_data"}}function mi(e){return t=e.lineItems.physicalItems.filter(e=>!e.addedByPromotion),K(t,(e,t)=>e+t.quantity,0);var t}function yi(e,t){if(null==e)throw t?t():new Error("An unexpected error has occurred.");return e}!function(e){e[e.CheckoutButtonNotInitialized=0]="CheckoutButtonNotInitialized",e[e.CustomerNotInitialized=1]="CustomerNotInitialized",e[e.PaymentNotInitialized=2]="PaymentNotInitialized",e[e.ShippingNotInitialized=3]="ShippingNotInitialized",e[e.SpamProtectionNotInitialized=4]="SpamProtectionNotInitialized"}(hi||(hi={}));class gi extends li{constructor(e){super(function(e){switch(e){case hi.CustomerNotInitialized:return"Unable to proceed because the customer step of checkout has not been initialized.";case hi.PaymentNotInitialized:return"Unable to proceed because the payment step of checkout has not been initialized.";case hi.ShippingNotInitialized:return"Unable to proceed because the shipping step of checkout has not been initialized.";case hi.SpamProtectionNotInitialized:return"Unable to proceed because the checkout spam protection has not been initialized.";default:return"Unable to proceed because the required component has not been initialized."}}(e)),this.subtype=e,this.name="NotInitializedError",this.type="not_initialized"}}const vi={de:"eu",jp:"fe",uk:"eu",us:"na"};var fi,Si,wi,_i,Ci,Ii;!function(e){e.en_US="en_US",e.en_GB="en_GB",e.de_DE="de_DE",e.fr_FR="fr_FR",e.it_IT="it_IT",e.es_ES="es_ES",e.ja_JP="ja_JP"}(fi||(fi={})),function(e){e.Home="Home",e.Product="Product",e.Cart="Cart",e.Checkout="Checkout",e.Other="Other"}(Si||(Si={})),function(e){e.USD="USD",e.EUR="EUR",e.GBP="GBP",e.JPY="JPY"}(wi||(wi={})),function(e){e.PayAndShip="PayAndShip",e.PayOnly="PayOnly"}(_i||(_i={})),function(e){e.Gold="Gold",e.LightGray="LightGray",e.DarkGray="DarkGray"}(Ci||(Ci={})),function(e){e.C0001="C0001"}(Ii||(Ii={}));var bi=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Pi{constructor(e){this.amazonPayV2ScriptLoader=e}initialize(e){return bi(this,void 0,void 0,function*(){this.amazonPayV2SDK=yield this.amazonPayV2ScriptLoader.load(e),this.buttonParentContainer=this.buttonParentContainer||this.createAmazonPayButtonParentContainer()})}deinitialize(){var e;return this.amazonPayV2Button=void 0,null===(e=this.buttonParentContainer)||void 0===e||e.remove(),this.buttonParentContainer=void 0,this.amazonPayV2SDK=void 0,Promise.resolve()}bindButton(e,t,n){this.getAmazonPayV2SDK().Pay.bindChangeAction(`#${e}`,{amazonCheckoutSessionId:t,changeAction:n})}createButton(e,t){this.amazonPayV2Button=this.getAmazonPayV2SDK().Pay.renderButton(`#${e}`,t)}prepareCheckout(e){const t=this.prepareRequestConfig(e);this.getAmazonPayV2Button().onClick(()=>{this.getAmazonPayV2Button().initCheckout(t)})}prepareCheckoutWithCreationRequestConfig(e){this.getAmazonPayV2Button().onClick(()=>bi(this,void 0,void 0,function*(){const t=yield e();if(t){const e=this.prepareRequestConfig(t.createCheckoutSessionConfig,t.estimatedOrderAmount,t.productType);this.getAmazonPayV2Button().initCheckout(e)}}))}signout(){return bi(this,void 0,void 0,function*(){return this.amazonPayV2SDK&&this.amazonPayV2SDK.Pay.signout(),Promise.resolve()})}renderAmazonPayButton({buttonColor:e,checkoutState:t,containerId:n,decoupleCheckoutInitiation:i=!1,methodId:r,options:o,placement:a,isButtonMicroTextDisabled:s=!1}){const d=document.querySelector(`#${n}`);if(!d)return;const{id:c}=d.appendChild(this.getButtonParentContainer());o&&s&&(o.design=Ii.C0001);const l=null!=o?o:this.getAmazonPayV2ButtonOptions(t,r,a,i,e);return this.createButton(c,l),this.getButtonParentContainer()}updateBuyNowFlowFlag(e){this.isBuyNowFlow=Boolean(e)}isPh4Enabled(e,t){const n=!!e["PROJECT-3483.amazon_pay_ph4"],i=!!e["INT-6885.amazon_pay_ph4_us_only"];return n&&i?"US"===t:n}prepareRequestConfig(e,t,n){const{publicKeyId:i}=e,r=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["publicKeyId"]);return Object.assign(Object.assign({createCheckoutSessionConfig:this.isEnvironmentSpecific(i)?r:e},t&&{estimatedOrderAmount:t}),n&&{productType:n})}createAmazonPayButtonParentContainer(){const e=Math.random().toString(16).substr(-4),t=document.createElement("div");return t.id=`amazonpay_button_parent_container_${e}`,t}getAmazonPayV2ButtonOptions(e,t,n,i=!1,r=Ci.Gold){var o;const{getCart:a,getCheckout:s,getStoreConfigOrThrow:d,getPaymentMethodOrThrow:c}=this.getCheckoutState(e),{config:{merchantId:l,testMode:u},initializationData:h}=c(t);if(!h)throw new pi(ui.MissingPaymentMethod);const{checkoutLanguage:p,checkoutSessionMethod:m,createCheckoutSessionConfig:y,extractAmazonCheckoutSessionId:g,ledgerCurrency:v,publicKeyId:f="",isButtonMicroTextDisabled:S}=h;if(!l||!v)throw new pi(ui.MissingPaymentMethod);const w=Object.assign({merchantId:l,ledgerCurrency:v,checkoutLanguage:p,placement:n,buttonColor:r},S?{design:Ii.C0001}:{});if(this.isBuyNowFlow)return Object.assign(Object.assign({},w),{sandbox:!!u});const _=a();w.productType=_&&0===mi(_)?_i.PayOnly:_i.PayAndShip;const{checkoutSettings:{features:C},storeProfile:{shopPath:I,storeCountryCode:b}}=d();if(this.isPh4Enabled(C,b)){if(!y)throw new pi(ui.MissingPaymentMethod);const e=null===(o=s())||void 0===o?void 0:o.outstandingBalance.toString(),t=null==_?void 0:_.currency.code,n=Object.assign({},w);let r;return this.isEnvironmentSpecific(f)?(n.publicKeyId=f,r=y):(n.sandbox=!!u,r=Object.assign(Object.assign({},y),{publicKeyId:f})),i||(n.createCheckoutSessionConfig=r),e&&t&&(n.estimatedOrderAmount={amount:e,currencyCode:t}),n}const P={method:m,url:`${I}/remote-checkout/${t}/payment-session`,extractAmazonCheckoutSessionId:g};return Object.assign(Object.assign({},w),{createCheckoutSession:P,sandbox:!!u})}isEnvironmentSpecific(e){return/^(SANDBOX|LIVE)/.test(e)}getAmazonPayV2SDK(){return this.getOrThrow(this.amazonPayV2SDK)}getButtonParentContainer(){return this.getOrThrow(this.buttonParentContainer)}getAmazonPayV2Button(){return this.getOrThrow(this.amazonPayV2Button)}getOrThrow(e){return yi(e,()=>new gi(hi.PaymentNotInitialized))}getCheckoutState(e){return"object"==typeof(t=e)&&null!==t&&"cart"in t&&"checkout"in t&&"config"in t&&"paymentMethods"in t?{getCart:e.cart.getCart,getCheckout:e.checkout.getCheckout,getStoreConfigOrThrow:e.config.getStoreConfigOrThrow,getPaymentMethodOrThrow:t=>e.paymentMethods.getPaymentMethodOrThrow(t)}:e;var t}}class Oi extends li{constructor(e){super(e||"Unable to proceed because the client library of a payment method is not loaded or ready to be used."),this.name="PaymentMethodClientUnavailableError",this.type="payment_method_client_unavailable"}}class Ei{constructor(e,t=window){this.scriptLoader=e,this.windowWithAmazonPay=t}load(e){return t=this,n=void 0,r=function*(){const{initializationData:t}=e,n=(null==t?void 0:t.region)||"us",i=vi[n];if(yield this.scriptLoader.loadScript(`https://static-${i}.payments-amazon.com/checkout.js`),!this.windowWithAmazonPay.amazon)throw new Oi;return this.windowWithAmazonPay.amazon},new((i=void 0)||(i=Promise))(function(e,o){function a(e){try{d(r.next(e))}catch(e){o(e)}}function s(e){try{d(r.throw(e))}catch(e){o(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((r=r.apply(t,n||[])).next())});var t,n,i,r}}function Ai(){return new Pi(new Ei(a()))}class ki extends li{constructor(e){super(e||"Invalid arguments have been provided."),this.name="InvalidArgumentError",this.type="invalid_argument"}}class Ti extends li{constructor(e){super(e||"Not implemented."),this.name="NotImplementedError",this.type="not_implemented"}}var Di=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Mi{constructor(e,t){this.paymentIntegrationService=e,this.amazonPayV2PaymentProcessor=t}initialize(e){return Di(this,void 0,void 0,function*(){const{methodId:t,amazonpay:n}=e;if(!t||!(null==n?void 0:n.container))throw new ki('Unable to proceed because "methodId" or "containerId" argument is not provided.');let i;try{i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(t)}catch(e){yield this.paymentIntegrationService.loadPaymentMethod(t),i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(t)}yield this.amazonPayV2PaymentProcessor.initialize(i),this.amazonPayV2PaymentProcessor.renderAmazonPayButton({checkoutState:this.paymentIntegrationService.getState(),containerId:n.container,methodId:t,placement:Si.Checkout})})}deinitialize(){return Di(this,void 0,void 0,function*(){yield this.amazonPayV2PaymentProcessor.deinitialize()})}signIn(){throw new Ti('In order to sign in via Amazon, the shopper must click on "Amazon Pay" button.')}signOut(e){return Di(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState().getPaymentId();t&&(yield this.amazonPayV2PaymentProcessor.signout(),yield this.paymentIntegrationService.remoteCheckoutSignOut(t.providerId,e))})}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}}const zi=Rt(e=>new Mi(e,Ai()),[{id:"amazonpay"}]),Ni="3.128.0",xi="3.123.2",Fi="3.106.0";class Ri{constructor(e){this.paymentIntegrationService=e,this.braintreeWindow=window}getSDKVersion(){const e=this.paymentIntegrationService.getState().getStoreConfig(),t=(null==e?void 0:e.checkoutSettings.features)||{};return this.getPreloadedSDKVersion()||(Wt(t,"PAYPAL-5809.braintree_hosted_fields_fix_version")?Ni:Wt(t,"PAYPAL-5636.update_braintree_sdk_version")?xi:Fi)}getPreloadedSDKVersion(){const e=this.braintreeWindow.braintree;if(e){const t=S(Object.values(e),e=>!!e.VERSION);return null==t?void 0:t.VERSION}}}class Li extends li{constructor(e){super(e||"Unsupported browser error"),this.name="UnsupportedBrowserError",this.type="unsupported_browser"}}var Bi,ji,Ui,qi,Vi,Gi,Hi;function $i(e){return Boolean("object"==typeof e&&null!==e&&("type"in e||"message"in e||"code"in e))}!function(e){e.ESTIMATED="ESTIMATED",e.FINAL="FINAL",e.NOT_CURRENTLY_KNOWN="NOT_CURRENTLY_KNOWN"}(Bi||(Bi={})),function(e){e.Completed="COMPLETED",e.Pending="PENDING",e.Failed="FAILED"}(ji||(ji={})),function(e){e.TRUSTLY="trustly"}(Ui||(Ui={})),function(e){e.SUCCEEDED="succeeded",e.FAILED="failed",e.CANCELED="cancelled",e.UNRECOGNIZED="unrecognized"}(qi||(qi={})),function(e){e.Customer="CUSTOMER",e.Merchant="MERCHANT",e.Network="NETWORK",e.Internal="INTERNAL",e.Unknown="UNKNOWN"}(Vi||(Vi={})),function(e){e.KountNotEnabled="DATA_COLLECTOR_KOUNT_NOT_ENABLED"}(Gi||(Gi={})),function(e){e.Visa="visa",e.Mastercard="mastercard",e.AmericanExpress="american-express",e.DinersClub="diners-club",e.Discover="discover",e.Jcb="jcb",e.UnionPay="union-pay",e.Maestro="maestro",e.Elo="elo",e.Mir="mir",e.Hiper="hiper",e.Hipercard="hipercard"}(Hi||(Hi={}));var Wi,Yi,Ki,Ji=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Zi{constructor(e){this.braintreeScriptLoader=e}initialize(e){this.setClientToken(e)}deinitialize(){return Ji(this,void 0,void 0,function*(){yield this.teardownModule(this.dataCollector),this.dataCollector=void 0})}getClient(){return Ji(this,void 0,void 0,function*(){if(!this.client){const e=this.getClientTokenOrThrow(),t=yield this.braintreeScriptLoader.loadClient();this.client=yield t.create({authorization:e})}return this.client})}getDataCollectorOrThrow(e){return Ji(this,void 0,void 0,function*(){const t={deviceData:void 0,teardown:()=>Promise.resolve()};if(!this.dataCollector)try{const t=yield this.getClient(),n=yield this.braintreeScriptLoader.loadDataCollector(),i=Object.assign({client:t,kount:!0},e);this.dataCollector=yield n.create(i)}catch(e){if($i(e)&&e.code===Gi.KountNotEnabled)return t;throw e}return this.dataCollector})}getBraintreeGooglePayment(){return Ji(this,void 0,void 0,function*(){if(!this.googlePayment){const[e,t]=yield Promise.all([this.getClient(),this.braintreeScriptLoader.loadGooglePayment()]);this.googlePayment=yield t.create({client:e})}return this.googlePayment})}getBraintreeThreeDS(){return Ji(this,void 0,void 0,function*(){if(!this.threeDS){const[e,t]=yield Promise.all([this.getClient(),this.braintreeScriptLoader.load3DS()]);this.threeDS=yield t.create({client:e,version:2})}return this.threeDS})}getBraintreeLocalPayment(e){return Ji(this,void 0,void 0,function*(){if(!this.braintreeLocalPayment){const[t,n]=yield Promise.all([this.getClient(),this.braintreeScriptLoader.loadLocalPayment()]);this.braintreeLocalPayment=yield new Promise((i,r)=>{n.create({client:t,merchantAccountId:e},(e,t)=>{e&&r(e),i(t)})})}return this.braintreeLocalPayment})}getUsBankAccount(){return Ji(this,void 0,void 0,function*(){if(!this.usBankAccount){const e=yield this.getClient(),t=yield this.braintreeScriptLoader.loadUsBankAccount();this.usBankAccount=yield t.create({client:e})}return this.usBankAccount})}getBraintreeVisaCheckout(){return this.visaCheckout||(this.visaCheckout=Promise.all([this.getClient(),this.braintreeScriptLoader.loadVisaCheckout()]).then(([e,t])=>t.create({client:e}))),this.visaCheckout}getVisaCheckoutSdk(e){return Ji(this,void 0,void 0,function*(){return this.visaCheckoutSDK||(this.visaCheckoutSDK=yield this.braintreeScriptLoader.loadVisaCheckoutSdk(e)),this.visaCheckoutSDK})}getVenmoCheckoutOrThrow(){return Ji(this,void 0,void 0,function*(){if(!this.braintreeVenmo){const e=yield this.getClient(),t=yield this.braintreeScriptLoader.loadVenmoCheckout(),n={client:e,allowDesktop:!0,paymentMethodUsage:"multi_use"},i=yield t.create(n);if(!i.isBrowserSupported())throw new Li;this.braintreeVenmo=i}return this.braintreeVenmo})}setClientToken(e){this.clientToken=e}getClientTokenOrThrow(){if(!this.clientToken)throw new gi(hi.PaymentNotInitialized);return this.clientToken}teardownModule(e){return e?e.teardown():Promise.resolve()}}!function(e){e.Sandbox="sandbox",e.Production="production"}(Wi||(Wi={})),function(e){e.Client="client",e.DataCollector="dataCollector",e.Fastlane="fastlane",e.GooglePayment="googlePayment",e.HostedFields="hostedFields",e.LocalPayment="localPayment",e.Paypal="paypal",e.PaypalCheckout="paypalCheckout",e.ThreeDSecure="threeDSecure",e.UsBankAccount="usBankAccount",e.Venmo="venmo",e.VisaCheckout="visaCheckout"}(Yi||(Yi={})),function(e){e.CardCode="cardCode",e.CardCodeVerification="cardCodeVerification",e.CardExpiry="cardExpiry",e.CardName="cardName",e.CardNumber="cardNumber",e.CardNumberVerification="cardNumberVerification"}(Ki||(Ki={}));const Qi={[Fi]:{[Yi.Client]:"sha384-26BXDNnJI23JYRyFBj4xe4sVNrUSSiSSu11kxVXNM/vEPONm4LuL00w6ZaTgQewt",[Yi.PaypalCheckout]:"sha384-B+vzbZwnQtzWBthpkT4TXKUibO65tyeK7eCxSvpblgprTep2+IAXB2Cxxjrn710O",[Yi.Paypal]:"sha384-uyAGL1/3+XJAHnGoNy4eCoXdzJ4f7Ilzp+6w9PNnEjs6DCCz9WMyJjMN1gzc78U+",[Yi.LocalPayment]:"sha384-LIvOEMkIVEwVuYBdVOQc1AC5YbGGlwyfUheS0ACK218D2STuVYQlZ4FyEPowAEfT",[Yi.DataCollector]:"sha384-1bo9JDz+Kscthc085cCKWur8CLwUoBpoNyxsDi7932mCl0zFq3A5mv+FQLw9GHpV",[Yi.UsBankAccount]:"sha384-xmHBVaU+w74V+OebD3AaPONFxHUGMf+QRs8G/JxVPXNNP7MDa2jL0ICWHIe2tTfJ",[Yi.GooglePayment]:"sha384-WKDJl8mqoP82qZpMGH6AbZxnvXnSW8ILV4M64CyMLiugGMwu7LyP89wjCkHqsiBe",[Yi.ThreeDSecure]:"sha384-VQUlpGHzsGvs5XeiGFip7EXRsvoHWEXDVmgCacfbyieZI9mdBOqq3NSoyo28OCOB",[Yi.VisaCheckout]:"sha384-yx7mADfzTN0T43Q6rlH49LIg1EJ0iUZgBp/EczX9LXsUGkySgxrD+nWHQRBkyfoT",[Yi.Venmo]:"sha384-QX4rPjoj1ZDhuG0aSyKs56lEKDqTMTcjYxUHY1SzO5VZDsqIE2NTkqot7KNSCyov",[Yi.HostedFields]:"sha384-VvYBACfSu0Cr/J32uKmxG7AXcNOJE1AzIIL3kbikyS7YKp5fz5Is+NzNP/lyauNy",[Yi.Fastlane]:"sha384-9oGsZMRZwpGtDEDYa/dFt76dECqj1xAni9gIKgc3KfMIiRnR73nEeeUDLiBzxhFa"},[xi]:{[Yi.Client]:"sha384-o+nbQGcwNNxIBeXeu3+XmbSq+Cg8R3EN3N0l5hXCgMMU2RGY0t1z0LroSEIAbfAO",[Yi.PaypalCheckout]:"sha384-WrfbWPBS4mH86GAoycPSgiH8hQ8KH7A67C93Hjhunv/xhNk2YpBn3wbFA4Fhg9U/",[Yi.Paypal]:"sha384-VF389nvvrRUgDsTXMxTYORDtVegB9IQa3Cxr//DyJnLYnz8/X8VCzEvck2c+Megt",[Yi.LocalPayment]:"sha384-tZKx2rEQbfmZpoPSY5VPmJEhaq4X75dLvwHMs3VE9U+C8lPyw+hWTIL1+GPvWCIH",[Yi.DataCollector]:"sha384-E6k3wOpP7syCDDwaRDLF06942Y00NkbwJvWi2OQXwwKzGwG5fd3E7RFUvCCecfvO",[Yi.UsBankAccount]:"sha384-258FON8LZGG0W9Qaz4Jij83pZHu30YnKjJA7gNulLBh6CclkucgF+tHDQuYFRYfW",[Yi.GooglePayment]:"sha384-taJ2p/0+n0VH328POAoBiuEbL3tnHUTE9S42hK1V+Txs3X+QYjZOyKW35JgHRFfO",[Yi.ThreeDSecure]:"sha384-+NSZH4Zj3sO5bdWvPKhU5N16QDxeueTVTnUVeleeESkhLSaz4Ob1hh/5myecc9Ym",[Yi.VisaCheckout]:"sha384-66DiBjghxk1OmBj8aksN8gbQ+CwoQcx1vPfiXUN08g1iQVM+BwewF0p7toM3i7SS",[Yi.Venmo]:"sha384-B5UwY42kE4RoLoWbQ7YpqosUlUad2/DlGWiw0HhoZbSPk30CQAaSA10ohyLDTkDU",[Yi.HostedFields]:"sha384-Aw9EesSaUeWxe36PqEHiOyOyOq8M6CIb1gw7/yHNVPRzGtFXXcd2OQ8qXrIlOj2P",[Yi.Fastlane]:"sha384-rhBL1hpZ71JqG+2TsT0Dih47mbjx8cjJCpeZjk9tw3df1gFMKfCTmMyZunhr7H4Y"},[Ni]:{[Yi.Client]:"sha384-0WNxksIpRP+fYZiIdr12g6DBUQfLDzYCQJZtR/C8KkcwSGhPHfcFp3tTaGcMyFTq",[Yi.PaypalCheckout]:"sha384-lWM1jk4BOxoDNV6Kop7tVNvQgINlmEVz0c/OwM+HNHK3QC8xqwd54Ovrt2QRDTjh",[Yi.Paypal]:"sha384-fXUmVxC2EMZBDXZ7eTHSTL/LFBrHej/MSXT/vTBXvra4lzgLNGvREAp+x0GYObuH",[Yi.LocalPayment]:"sha384-pha1xGuGSkmZH5x9aqHvRaO4xLea7rmQ/79PFj9zxNzxuFcOWZg7gOP7FibygOEC",[Yi.DataCollector]:"sha384-Q6PI2F9eekWbAxhroybl+aEcvqhdowN/EQlGwBUyJOzPFn9982u9xl6SU6XfGKzc",[Yi.UsBankAccount]:"sha384-W3RLQSKJL1tQ3+Y7mP6tmkamtZ8bV4Yw/XxL9Jj5JtXHraD8loMF8hAIG5m2zK7F",[Yi.GooglePayment]:"sha384-TITQMsFWA3elDNGP2mWz2oKBo4qjt+TlqzovcaPoeBiAh/wPBi6nae50ADdgU1/i",[Yi.ThreeDSecure]:"sha384-YiycYN89ZlL/Evcaq4y1ajW1mhd7JYfZBDuOwHtIn4/Jnm20GL+/XCM+zYAwWD8D",[Yi.VisaCheckout]:"sha384-/OdaTv9qrkKzjObtUe6yzfDhHozFW/+uXlrSl736sOZRJpjGQETvpYXqMFFg69xv",[Yi.Venmo]:"sha384-dA+ojdW9vbJS4JavcXyOs9d5uZHJg5dNtYupoPSH2zsXIiYDVS5amLb/u8qmQ6oz",[Yi.HostedFields]:"sha384-31ZkS58+iaWsW06ftW52zzVZFp43WPd7pNYRiddYynSNg6Oh7WGbSFGorAUH6T1z",[Yi.Fastlane]:"sha384-jlbrwNvL3HvLAUCtLSmrnQ2GH1udCUrRS/bVmReAS5fuIVvcW8Pko/Gkg82tlgtr"}};var Xi,er=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class tr{constructor(e,t,n){this.scriptLoader=e,this.braintreeHostWindow=t,this.braintreeSDKVersionManager=n}loadClient(){return er(this,void 0,void 0,function*(){return this.loadBraintreeModuleOrThrow(Yi.Client,"client.min.js")})}loadFastlane(){return er(this,void 0,void 0,function*(){return this.loadBraintreeModuleOrThrow(Yi.Fastlane,"fastlane.min.js")})}loadPaypalCheckout(){return er(this,void 0,void 0,function*(){return this.loadBraintreeModuleOrThrow(Yi.PaypalCheckout,"paypal-checkout.min.js")})}loadPaypal(){return er(this,void 0,void 0,function*(){return this.loadBraintreeModuleOrThrow(Yi.Paypal,"paypal.min.js")})}loadLocalPayment(){return er(this,void 0,void 0,function*(){return this.loadBraintreeModuleOrThrow(Yi.LocalPayment,"local-payment.min.js")})}loadDataCollector(){return er(this,void 0,void 0,function*(){return this.loadBraintreeModuleOrThrow(Yi.DataCollector,"data-collector.min.js")})}loadUsBankAccount(){return er(this,void 0,void 0,function*(){return this.loadBraintreeModuleOrThrow(Yi.UsBankAccount,"us-bank-account.min.js")})}loadGooglePayment(){return er(this,void 0,void 0,function*(){return this.loadBraintreeModuleOrThrow(Yi.GooglePayment,"google-payment.min.js")})}load3DS(){return er(this,void 0,void 0,function*(){return this.loadBraintreeModuleOrThrow(Yi.ThreeDSecure,"three-d-secure.min.js")})}loadVisaCheckout(){return this.loadBraintreeModuleOrThrow(Yi.VisaCheckout,"visa-checkout.min.js")}loadVenmoCheckout(){return this.loadBraintreeModuleOrThrow(Yi.Venmo,"venmo.min.js")}loadHostedFields(){return er(this,void 0,void 0,function*(){return this.loadBraintreeModuleOrThrow(Yi.HostedFields,"hosted-fields.min.js")})}loadVisaCheckoutSdk(e){return er(this,void 0,void 0,function*(){if(this.braintreeHostWindow.V)return this.braintreeHostWindow.V;const t=e?"sha384-0eu1s1GtqzXlL9DtLgmwzC5WWlEH/ADRM0n38cVQkvtT+W/gey96rcb1LwuUOPDm":"sha384-1f1csvP3ZFxg4dILH1GaY4LHlZ0oX7Rk83rxmLlwbnIi4TM0NYzXoev1VoEiVDS6";return this.scriptLoader.loadScript(`//${e?"sandbox-":""}assets.secure.checkout.visa.com/checkout-widget/resources/js/integration/v1/sdk.js`,{async:!0,attributes:{integrity:t,crossorigin:"anonymous"}}).then(()=>{if(!this.braintreeHostWindow.V)throw new Oi;return this.braintreeHostWindow.V})})}loadBraintreeModuleOrThrow(e,t){return er(this,void 0,void 0,function*(){let n=this.getBraintreeModule(e);if(n)return n;const i=this.braintreeSDKVersionManager.getSDKVersion(),r=`//js.braintreegateway.com/web/${i}/js/${t}`,o=i in Qi?this.getIntegrityValuesByModuleName(e,i):void 0;if(yield this.scriptLoader.loadScript(r,o?{async:!0,attributes:{integrity:o,crossorigin:"anonymous"}}:void 0),n=this.getBraintreeModule(e),!n)throw new Oi;return n})}getBraintreeModule(e){var t;return null===(t=this.braintreeHostWindow.braintree)||void 0===t?void 0:t[e]}getIntegrityValuesByModuleName(e,t){const n=Qi[t][e];if(!n)throw new Error("Unexpected fileName value");return n}}class nr extends li{constructor(e){super(e||"Payment process was cancelled."),this.name="PaymentMethodCancelledError",this.type="payment_cancelled"}}!function(e){e.BRAINTREE="braintree",e.BRAINTREE_FASTLANE="braintreeacceleratedcheckout"}(Xi||(Xi={}));var ir,rr=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};!function(e){e.Subtotal="Subtotal",e.Shipping="Shipping"}(ir||(ir={}));class or{constructor(e,t,n,i,r){this._requestSender=e,this._paymentIntegrationService=t,this._sessionFactory=n,this._braintreeSdk=i,this._applePayScriptLoader=r,this._onAuthorizeCallback=V,this._onError=V,this._onClick=V,this._subTotalLabel=ir.Subtotal,this._shippingLabel=ir.Shipping,this._hasApplePaySession=!1}initialize(e){var t;return rr(this,void 0,void 0,function*(){const{methodId:n,applepay:i}=e;if(!n||!i)throw new pi(ui.MissingPaymentMethod);const{container:r,shippingLabel:o,subtotalLabel:a,onError:s=V,onClick:d=V,onPaymentAuthorize:c}=i;this._shippingLabel=o||ir.Shipping,this._subTotalLabel=a||ir.Subtotal,this._onAuthorizeCallback=c,this._onError=s,this._onClick=d;let l=this._paymentIntegrationService.getState();yield this._applePayScriptLoader.loadSdk();try{this._paymentMethod=l.getPaymentMethodOrThrow(n)}catch(e){l=yield this._paymentIntegrationService.loadPaymentMethod(n),this._paymentMethod=l.getPaymentMethodOrThrow(n)}yield this._paymentIntegrationService.verifyCheckoutSpamProtection(),this._applePayButton=this._createButton(r),this._applePayButton.addEventListener("click",this._handleWalletButtonClick.bind(this)),(null===(t=this._paymentMethod.initializationData)||void 0===t?void 0:t.gateway)===Xi.BRAINTREE&&(yield this._initializeBraintreeSdk())})}deinitialize(){return Promise.resolve()}signIn(){throw new Ti('In order to sign in via Apple, the shopper must click on "Apple Pay" button.')}signOut(){throw new Ti("Need to do signout via apple.")}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}_createButton(e){const t=document.getElementById(e);if(!t)throw new ki("Unable to create sign-in button without valid container ID.");const n=this._createApplePayButtonElement();return t.appendChild(n),n}_createApplePayButtonElement(){const e=document.createElement("apple-pay-button");return e.setAttribute("buttonstyle","black"),e.setAttribute("type","plain"),e.setAttribute("style","--apple-pay-button-width: 100%; --apple-pay-button-height: 36px; --apple-pay-button-border-radius: 4px;"),e}_handleWalletButtonClick(e){if(e.preventDefault(),this._hasApplePaySession)return;this._onClick();const t=this._paymentIntegrationService.getState(),n=t.getCartOrThrow(),i=t.getStoreConfigOrThrow(),r=t.getCheckoutOrThrow();if(!this._paymentMethod||!this._paymentMethod.initializationData)throw new pi(ui.MissingPaymentMethod);const o=this._getBaseRequest(n,r,i,this._paymentMethod),a=this._sessionFactory.create(o);this._handleApplePayEvents(a,this._paymentMethod,i),a.begin(),this._hasApplePaySession=!0}_getBaseRequest(e,t,n,i){var r;const{storeProfile:{storeCountryCode:o,storeName:a}}=n,{currency:{code:s,decimalPlaces:d}}=e,{initializationData:{merchantCapabilities:c,supportedNetworks:l}}=i,u=e.lineItems.physicalItems.length>0,h={requiredBillingContactFields:["postalAddress"],requiredShippingContactFields:["email","phone"],countryCode:o,currencyCode:s,merchantCapabilities:c,supportedNetworks:l,lineItems:[],total:u?{label:a,amount:`${t.grandTotal.toFixed(d)}`,type:"pending"}:{label:a,amount:`${t.grandTotal.toFixed(d)}`,type:"final"}};if(u)null===(r=h.requiredShippingContactFields)||void 0===r||r.push("postalAddress");else{const e=[{label:this._subTotalLabel,amount:`${t.subtotal.toFixed(d)}`}];t.taxes.forEach(t=>e.push({label:t.name,amount:`${t.amount.toFixed(d)}`})),h.lineItems=e}return h}_handleApplePayEvents(e,t,n){e.onvalidatemerchant=n=>rr(this,void 0,void 0,function*(){try{const{body:i}=yield this._onValidateMerchant(t,n);e.completeMerchantValidation(i)}catch(e){this._onError(e)}}),e.onshippingcontactselected=t=>rr(this,void 0,void 0,function*(){return this._handleShippingContactSelected(e,n,t)}),e.onshippingmethodselected=t=>rr(this,void 0,void 0,function*(){return this._handleShippingMethodSelected(e,n,t)}),e.oncancel=()=>rr(this,void 0,void 0,function*(){this._hasApplePaySession=!1;try{const e=`/remote-checkout/${t.id}/signout`;return yield this._requestSender.get(e),yield this._paymentIntegrationService.loadCheckout()}catch(e){return this._onError(new nr)}}),e.onpaymentauthorized=n=>rr(this,void 0,void 0,function*(){return this._onPaymentAuthorized(n,e,t)})}_handleShippingContactSelected(e,t,n){var i;return rr(this,void 0,void 0,function*(){const r=this._transformContactToAddress(n.shippingContact);try{yield this._paymentIntegrationService.updateShippingAddress(r)}catch(t){return e.abort(),this._hasApplePaySession=!1,this._onError(t)}const{storeProfile:{storeName:o}}=t;let a=this._paymentIntegrationService.getState();const{currency:{decimalPlaces:s}}=a.getCartOrThrow();let d=a.getCheckoutOrThrow();const c=null===(i=d.consignments[0].selectedShippingOption)||void 0===i?void 0:i.id,l=d.consignments[0].availableShippingOptions,u=null==l?void 0:l.find(({id:e})=>e===c),h=null==l?void 0:l.filter(e=>e.id!==c),p=u?[{label:u.description,amount:`${u.cost.toFixed(s)}`,detail:u.additionalDescription,identifier:u.id}]:[];if(h&&[...h.filter(e=>e.isRecommended),...h.filter(e=>!e.isRecommended)].forEach(e=>p.push({label:e.description,amount:`${e.cost.toFixed(s)}`,detail:e.additionalDescription,identifier:e.id})),!(l instanceof Array))throw new Error("Shipping options not available.");if(0===l.length)return void e.completeShippingContactSelection(ApplePaySession.STATUS_INVALID_SHIPPING_POSTAL_ADDRESS,[],{type:"pending",label:o,amount:`${d.grandTotal.toFixed(s)}`},[]);const m=l.find(e=>e.isRecommended),y=m?m.id:l[0].id,g=u?u.id:y;try{yield this._updateShippingOption(g)}catch(e){return this._onError(e)}a=this._paymentIntegrationService.getState(),d=a.getCheckoutOrThrow(),e.completeShippingContactSelection({newShippingMethods:p,newTotal:{type:"final",label:o,amount:`${d.grandTotal.toFixed(s)}`},newLineItems:this._getUpdatedLineItems(d,s)})})}_handleShippingMethodSelected(e,t,n){return rr(this,void 0,void 0,function*(){const{storeProfile:{storeName:i}}=t,{shippingMethod:{identifier:r}}=n;try{yield this._updateShippingOption(r)}catch(t){return e.abort(),this._hasApplePaySession=!1,this._onError(t)}const o=this._paymentIntegrationService.getState(),{currency:{decimalPlaces:a}}=o.getCartOrThrow(),s=o.getCheckoutOrThrow();e.completeShippingMethodSelection({newTotal:{type:"final",label:i,amount:`${s.grandTotal.toFixed(a)}`},newLineItems:this._getUpdatedLineItems(s,a)})})}_getUpdatedLineItems(e,t){const n=[{label:this._subTotalLabel,amount:`${e.subtotal.toFixed(t)}`}];return e.taxes.forEach(e=>n.push({label:e.name,amount:`${e.amount.toFixed(t)}`})),n.push({label:this._shippingLabel,amount:`${e.shippingCostTotal.toFixed(t)}`}),n}_updateShippingOption(e){return rr(this,void 0,void 0,function*(){return this._paymentIntegrationService.selectShippingOption(e)})}_onValidateMerchant(e,t){return rr(this,void 0,void 0,function*(){const n=[`validationUrl=${t.validationURL}`,`merchantIdentifier=${e.initializationData.merchantId}`,`displayName=${e.initializationData.storeName}`,`domainName=${window.location.hostname}`].join("&");return this._requestSender.post(`${e.initializationData.paymentsUrl}/api/public/v1/payments/applepay/validate_merchant`,{credentials:!1,headers:{Accept:"application/json","Content-Type":"application/x-www-form-urlencoded","X-XSRF-TOKEN":null},body:n})})}_onPaymentAuthorized(e,t,n){var i;return rr(this,void 0,void 0,function*(){const{token:r,billingContact:o,shippingContact:a}=e.payment,s=this._paymentIntegrationService.getState().getCartOrThrow().lineItems.physicalItems.length>0;let d;(null===(i=n.initializationData)||void 0===i?void 0:i.gateway)===Xi.BRAINTREE&&(d=yield this._getBraintreeDeviceData());const c={methodId:n.id,paymentData:{deviceSessionId:d,formattedPayload:{apple_pay_token:{payment_data:r.paymentData,payment_method:r.paymentMethod,transaction_id:r.transactionIdentifier}}}},l=this._transformContactToAddress(o),u=this._transformContactToAddress(a),h=null==a?void 0:a.emailAddress,p=(null==a?void 0:a.phoneNumber)||"";try{return yield this._paymentIntegrationService.updateBillingAddress(Object.assign(Object.assign({},l),{email:h,phone:p})),s&&(yield this._paymentIntegrationService.updateShippingAddress(u)),yield this._paymentIntegrationService.submitOrder({useStoreCredit:!1}),yield this._paymentIntegrationService.submitPayment(c),t.completePayment(ApplePaySession.STATUS_SUCCESS),this._onAuthorizeCallback()}catch(e){return t.completePayment(ApplePaySession.STATUS_FAILURE),this._onError(e)}})}_transformContactToAddress(e){return{firstName:(null==e?void 0:e.givenName)||"",lastName:(null==e?void 0:e.familyName)||"",city:(null==e?void 0:e.locality)||"",company:"",address1:(null==e?void 0:e.addressLines)&&e.addressLines[0]||"",address2:(null==e?void 0:e.addressLines)&&e.addressLines[1]||"",postalCode:(null==e?void 0:e.postalCode)||"",countryCode:(null==e?void 0:e.countryCode)||"",phone:(null==e?void 0:e.phoneNumber)||"",stateOrProvince:(null==e?void 0:e.administrativeArea)||"",stateOrProvinceCode:(null==e?void 0:e.administrativeArea)||"",customFields:[]}}_getBraintreeDeviceData(){return rr(this,void 0,void 0,function*(){try{const{deviceData:e}=yield this._braintreeSdk.getDataCollectorOrThrow();return e}catch(e){}})}_initializeBraintreeSdk(){return rr(this,void 0,void 0,function*(){yield this._paymentIntegrationService.loadPaymentMethod(Xi.BRAINTREE);const e=this._paymentIntegrationService.getState().getPaymentMethod(Xi.BRAINTREE);e&&e.clientToken&&e.initializationData&&this._braintreeSdk.initialize(e.clientToken)})}}function ar(e){if(!function(e){return"ApplePaySession"in e}(e))throw new Error("Apple pay is not supported")}class sr{create(e){return ar(window),new ApplePaySession(1,e)}}class dr{constructor(e){this.scriptLoader=e,this.sdkVersion="1.latest"}loadSdk(){return e=this,t=void 0,i=function*(){yield this.scriptLoader.loadScript(`https://applepay.cdn-apple.com/jsapi/${this.sdkVersion}/apple-pay-sdk.js`),ar(window)},new((n=void 0)||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())});var e,t,n,i}}const cr=Rt(e=>{const{getHost:t}=e.getState(),i=new Ri(e);return new or(n({host:t()}),e,new sr,new Zi(new tr(a(),window,i)),new dr(new r))},[{id:"applepay"}]);class lr extends li{constructor(e){super(e||"An unexpected error has occurred during buy now cart creation process. Please try again later."),this.name="BuyNowCartCreationError",this.type="buy_now_cart_creation_error"}}const ur={body:{},headers:{},status:0};class hr extends li{constructor(e,{message:t,errors:n}={}){const{body:i,headers:r,status:o}=e||ur;super(t||"An unexpected error has occurred."),this.name="RequestError",this.type="request",this.body=i,this.headers=r,this.status=o,this.errors=n||[]}}var pr,mr,yr,gr,vr,fr,Sr;!function(e){e.Possible="POSSIBLE",e.No="NO",e.Unknown="UNKNOWN",e.Yes="YES"}(pr||(pr={})),function(e){e.AUTHORIZE="authorize",e.CAPTURE="capture"}(mr||(mr={})),function(e){e.paypal="paypal",e.checkout="checkout",e.buynow="buynow",e.pay="pay",e.installment="installment"}(yr||(yr={})),function(e){e.gold="gold",e.blue="blue",e.silver="silver",e.black="black",e.white="white"}(gr||(gr={})),function(e){e.pill="pill",e.rect="rect"}(vr||(vr={})),function(e){e.OXXO="oxxo"}(fr||(fr={})),function(e){e.Approved="APPROVED",e.Created="CREATED",e.PayerActionRequired="PAYER_ACTION_REQUIRED",e.PollingStop="POLLING_STOP",e.PollingError="POLLING_ERROR"}(Sr||(Sr={}));var wr=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class _r{constructor(e,t,n,i){this.formPoster=e,this.paymentIntegrationService=t,this.bigCommercePaymentsRequestSender=n,this.bigCommercePaymentsScriptLoader=i}loadPayPalSdk(e,t,n,i){return wr(this,void 0,void 0,function*(){const r=this.paymentIntegrationService.getState(),o=t||r.getCartOrThrow().currency.code,a=r.getPaymentMethodOrThrow(e);return this.paypalSdk=yield this.bigCommercePaymentsScriptLoader.getPayPalSDK(a,o,n,i),this.paypalSdk})}getPayPalSdkOrThrow(){if(!this.paypalSdk)throw new Oi;return this.paypalSdk}createBuyNowCartOrThrow(e){return wr(this,void 0,void 0,function*(){const t=e.getBuyNowCartRequestBody();if(!t)throw new pi(ui.MissingCart);try{return yield this.paymentIntegrationService.createBuyNowCart(t)}catch(e){throw new lr}})}createOrder(e,t){return wr(this,void 0,void 0,function*(){const n=this.paymentIntegrationService.getState().getCartOrThrow().id,{orderId:i}=yield this.bigCommercePaymentsRequestSender.createOrder(e,Object.assign({cartId:n},t));return i})}createOrderCardFields(e,t){return wr(this,void 0,void 0,function*(){const n=this.paymentIntegrationService.getState().getCartOrThrow().id,{orderId:i,setupToken:r}=yield this.bigCommercePaymentsRequestSender.createOrder(e,Object.assign({cartId:n},t));return Object.assign({orderId:i},r?{setupToken:r}:{})})}updateOrder(){return wr(this,void 0,void 0,function*(){const e=this.paymentIntegrationService.getState(),t=e.getCartOrThrow(),n=e.getConsignmentsOrThrow()[0];try{yield this.bigCommercePaymentsRequestSender.updateOrder({availableShippingOptions:n.availableShippingOptions,cartId:t.id,selectedShippingOption:n.selectedShippingOption})}catch(e){throw new hr}})}getOrderStatus(e,t){return wr(this,void 0,void 0,function*(){try{const{status:n}=yield this.bigCommercePaymentsRequestSender.getOrderStatus(e,t);return n}catch(e){throw new hr}})}tokenizePayment(e,t){const n=this.paymentIntegrationService.getState().getCartOrThrow();if(!t)throw new pi(ui.MissingOrderId);return this.formPoster.postForm("/checkout.php",Object.assign({payment_type:"paypal",action:"set_external_checkout",provider:e,order_id:t},n.source===Tt.BuyNow&&{cart_id:n.id}))}submitPayment(e,t,n){return wr(this,void 0,void 0,function*(){const i={formattedPayload:{vault_payment_instrument:null,set_as_default_stored_instrument:null,device_info:null,method_id:e,paypal_account:{order_id:t}}};yield this.paymentIntegrationService.submitPayment(Object.assign({methodId:e,paymentData:i},n?{gatewayId:n}:{}))})}getShippingOptionOrThrow(e){const t=this.paymentIntegrationService.getState().getConsignmentsOrThrow()[0],n=t.availableShippingOptions||[],i=n.find(e=>e.isRecommended),r=(e?n.find(t=>t.id===e):n.find(e=>{var n;return e.id===(null===(n=t.selectedShippingOption)||void 0===n?void 0:n.id)}))||i||n[0];if(!r)throw new Error("Your order can't be shipped to this address");return r}getAddress(e){return{firstName:(null==e?void 0:e.firstName)||"",lastName:(null==e?void 0:e.lastName)||"",email:(null==e?void 0:e.email)||"",phone:(null==e?void 0:e.phone)||"",company:"",address1:(null==e?void 0:e.address1)||"",address2:(null==e?void 0:e.address2)||"",city:(null==e?void 0:e.city)||"",countryCode:(null==e?void 0:e.countryCode)||"",postalCode:(null==e?void 0:e.postalCode)||"",stateOrProvince:"",stateOrProvinceCode:(null==e?void 0:e.stateOrProvinceCode)||"",customFields:[]}}getBillingAddressFromOrderDetails({payer:e}){var t,n;return this.getAddress({firstName:e.name.given_name,lastName:e.name.surname,email:e.email_address,address1:e.address.address_line_1,address2:e.address.address_line_2,city:e.address.admin_area_2,countryCode:e.address.country_code,postalCode:e.address.postal_code,stateOrProvinceCode:e.address.admin_area_1,phone:null===(n=null===(t=e.phone)||void 0===t?void 0:t.phone_number)||void 0===n?void 0:n.national_number})}getShippingAddressFromOrderDetails(e){const{payer:t,purchase_units:n}=e,{address:i,name:{full_name:r}}=n[0].shipping,[o,...a]=r.split(" ");return this.getAddress({firstName:o,lastName:a.join(" "),email:t.email_address,address1:i.address_line_1,address2:i.address_line_2,city:i.admin_area_2,countryCode:i.country_code,postalCode:i.postal_code,stateOrProvinceCode:i.admin_area_1})}getValidButtonStyle(e){const{color:t,height:n,label:i,shape:r}=e||{},o={color:t&&gr[t]?t:void 0,height:this.getValidHeight(n),label:i&&yr[i]?i:void 0,shape:r&&vr[r]?r:void 0};return H(o,T)}getValidHeight(e){return e&&"number"==typeof e?e>55?55:e<25?25:e:40}removeElement(e){const t=e&&document.getElementById(e);t&&(t.style.display="none")}}const Cr="This API endpoint is for internal use only and may change in the future";var Ir;!function(e){e.Json="application/json",e.JsonV1="application/vnd.bc.v1+json"}(Ir||(Ir={}));const br=Ir,Pr={"X-Checkout-SDK-Version":"1.819.0"};var Or=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Er{constructor(e){this.requestSender=e}createOrder(e,t){return Or(this,void 0,void 0,function*(){const n=`/api/storefront/payment/${e}`,i=t,r=Object.assign({"X-API-INTERNAL":Cr,"Content-Type":br.Json},Pr);return(yield this.requestSender.post(n,{headers:r,body:i})).body})}updateOrder(e){return Or(this,void 0,void 0,function*(){const t=e,n=Object.assign({"X-API-INTERNAL":Cr,"Content-Type":br.Json},Pr);return(yield this.requestSender.put("/api/storefront/initialization/bigcommerce_payments",{headers:n,body:t})).body})}getOrderStatus(e="bigcommerce_payments",t){return Or(this,void 0,void 0,function*(){const n=`/api/storefront/initialization/${e}`,i=Object.assign({"X-API-INTERNAL":Cr,"Content-Type":br.Json},Pr);return(yield this.requestSender.get(n,Object.assign({headers:i},t))).body})}}var Ar=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class kr{constructor(e){this.scriptLoader=e,this.window=window}getPayPalSDK(e,t,n,i){return Ar(this,void 0,void 0,function*(){const r=this.getPayPalSdkScriptConfigOrThrow(e,t,n);return this.loadPayPalSDK(r,i)})}loadPayPalSDK(e,t=!1){return Ar(this,void 0,void 0,function*(){if(!this.window.paypal||t){const t=this.transformConfig(e.options),n=this.transformConfig(e.attributes),i=`https://www.paypal.com/sdk/js?${new URLSearchParams(t).toString()}`;yield this.scriptLoader.loadScript(i,{async:!0,attributes:n})}if(!this.window.paypal)throw new Oi;return this.window.paypal})}getPayPalSdkScriptConfigOrThrow(e,t,n=!0){const{id:i,clientToken:r,initializationData:o}=e;if(!(null==o?void 0:o.clientId))throw new pi(ui.MissingPaymentMethod);const{intent:a,clientId:s,merchantId:d,buyerCountry:c,attributionId:l,isVenmoEnabled:u,isHostedCheckoutEnabled:h,isPayPalCreditAvailable:p,isDeveloperModeApplicable:m,availableAlternativePaymentMethods:y=[],enabledAlternativePaymentMethods:g=[],isGooglePayEnabled:v}=o,f=h||n,S="bigcommerce_payments_creditcards"===i,w=S?["card"]:[],_=S?[]:["card"],C=p?["credit","paylater"]:[],I=p?[]:["credit","paylater"],b=n||!f,P=u?["venmo"]:[],O=u?[]:["venmo"],E=b?g:[],A=b?y.filter(e=>!g.includes(e)):y,k=v?["googlepay"]:[],T=n?["card-fields"]:[],D=this.filterFundingOptions([..._,...I,...O,...A]),M=this.filterFundingOptions([...w,...C,...P,...E]);return{options:Object.assign({"client-id":s,"merchant-id":d,"enable-funding":M.length>0?M:void 0,"disable-funding":D.length>0?D:void 0,commit:f,components:["buttons","hosted-fields","payment-fields","legal",...k,...T],currency:t,intent:a},m&&{"buyer-country":c}),attributes:{"data-partner-attribution-id":l,"data-client-token":r}}}filterFundingOptions(e){const t=["klarna"];return e?e.filter(e=>!t.includes(e)):[]}transformConfig(e){let t={};return Object.keys(e).forEach(n=>{const i=e[n];null==i||""===i||Array.isArray(i)&&0===i.length||(t=Object.assign(Object.assign({},t),{[n]:Array.isArray(i)?i.join(","):i}))}),t}}const Tr=e=>{const{getHost:t}=e.getState();return new _r(Ee(),e,new Er(n({host:t()})),new kr(a()))},Dr=36;var Mr=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class zr{constructor(e,t){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t,this.onError=V}initialize(e){return Mr(this,void 0,void 0,function*(){const{bigcommerce_payments:t,methodId:n}=e;if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.bigcommerce_payments" argument is not provided.');if(!t.container)throw new ki('Unable to initialize payment because "options.bigcommerce_payments.container" argument is not provided.');if(t.onClick&&"function"!=typeof t.onClick)throw new ki('Unable to initialize payment because "options.bigcommerce_payments.onClick" argument is not a function.');this.onError=t.onError||V,this.paymentIntegrationService.getState().getPaymentMethod(n)||(yield this.paymentIntegrationService.loadPaymentMethod(n));const i=yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(n);i&&i.Buttons&&"function"==typeof i.Buttons?this.renderButton(n,t):console.error("[BC PayPal]: PayPal Button could not be rendered, due to issues with loading PayPal SDK")})}deinitialize(){return Promise.resolve()}signIn(e,t){return Mr(this,void 0,void 0,function*(){return yield this.paymentIntegrationService.signInCustomer(e,t),Promise.resolve()})}signOut(e){return Mr(this,void 0,void 0,function*(){return yield this.paymentIntegrationService.signOutCustomer(e),Promise.resolve()})}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}renderButton(e,t){const{container:n,onClick:i,onComplete:r}=t,o=this.bigCommercePaymentsIntegrationService.getPayPalSdkOrThrow(),a=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{isHostedCheckoutEnabled:s,paymentButtonStyles:d}=a.initializationData||{},{checkoutTopButtonStyles:c}=d||{},l=Object.assign({createOrder:()=>this.bigCommercePaymentsIntegrationService.createOrder("bigcommerce_payments"),onApprove:({orderID:t})=>this.bigCommercePaymentsIntegrationService.tokenizePayment(e,t)},i&&{onClick:()=>i()}),u={onShippingAddressChange:e=>this.onShippingAddressChange(e),onShippingOptionsChange:e=>this.onShippingOptionsChange(e),onApprove:(t,n)=>this.onHostedCheckoutApprove(t,n,e,r)},h=Object.assign(Object.assign({fundingSource:o.FUNDING.PAYPAL,style:this.bigCommercePaymentsIntegrationService.getValidButtonStyle(Object.assign(Object.assign({},c),{height:Dr}))},l),s&&u),p=o.Buttons(h);p.isEligible()?p.render(`#${n}`):this.bigCommercePaymentsIntegrationService.removeElement(n)}onHostedCheckoutApprove(e,t,n,i){return Mr(this,void 0,void 0,function*(){if(!e.orderID)throw new pi(ui.MissingOrderId);const r=this.paymentIntegrationService.getState().getCartOrThrow(),o=yield t.order.get();try{const t=this.bigCommercePaymentsIntegrationService.getBillingAddressFromOrderDetails(o);if(yield this.paymentIntegrationService.updateBillingAddress(t),r.lineItems.physicalItems.length>0){const e=this.bigCommercePaymentsIntegrationService.getShippingAddressFromOrderDetails(o);yield this.paymentIntegrationService.updateShippingAddress(e),yield this.bigCommercePaymentsIntegrationService.updateOrder()}yield this.paymentIntegrationService.submitOrder({},{params:{methodId:n}}),yield this.bigCommercePaymentsIntegrationService.submitPayment(n,e.orderID),i&&"function"==typeof i&&i()}catch(e){this.handleError(e)}})}onShippingAddressChange(e){return Mr(this,void 0,void 0,function*(){const t=this.bigCommercePaymentsIntegrationService.getAddress({city:e.shippingAddress.city,countryCode:e.shippingAddress.countryCode,postalCode:e.shippingAddress.postalCode,stateOrProvinceCode:e.shippingAddress.state});try{yield this.paymentIntegrationService.updateBillingAddress(t),yield this.paymentIntegrationService.updateShippingAddress(t);const e=this.bigCommercePaymentsIntegrationService.getShippingOptionOrThrow();yield this.paymentIntegrationService.selectShippingOption(e.id),yield this.bigCommercePaymentsIntegrationService.updateOrder()}catch(e){this.handleError(e)}})}onShippingOptionsChange(e){return Mr(this,void 0,void 0,function*(){const t=this.bigCommercePaymentsIntegrationService.getShippingOptionOrThrow(e.selectedShippingOption.id);try{yield this.paymentIntegrationService.selectShippingOption(t.id),yield this.bigCommercePaymentsIntegrationService.updateOrder()}catch(e){this.handleError(e)}})}handleError(e){if("function"!=typeof this.onError)throw e;this.onError(e)}}const Nr=Rt(e=>new zr(e,Tr(e)),[{id:"bigcommerce_payments"}]);var xr,Fr,Rr,Lr,Br,jr,Ur,qr,Vr=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Gr{constructor(e){this.scriptLoader=e,this.window=window}getPayPalFastlaneSdk(e,t,n){return Vr(this,void 0,void 0,function*(){if(!this.window.paypalFastlaneSdk){const i=this.getPayPalFastlaneSdkConfiguration(e,t,n);if(yield this.loadPayPalSdk(i),!this.window.paypalFastlaneSdk)throw new Oi}return this.window.paypalFastlaneSdk})}getPayPalGooglePaySdk(e,t,n,i){return Vr(this,void 0,void 0,function*(){if(!this.window.paypalGooglePay||i){const i=this.getPayPalGooglePaySdkScriptConfigOrThrow(e,t,n);yield this.loadPayPalSdk(i)}if(!this.window.paypalGooglePay)throw new Oi;return this.window.paypalGooglePay})}getPayPalApmsSdk(e,t){return Vr(this,void 0,void 0,function*(){if(!this.window.paypalApms){const n=this.getPayPalApmSdkConfiguration(e,t);if(yield this.loadPayPalSdk(n),!this.window.paypalApms)throw new Oi}return this.window.paypalApms})}getPayPalMessages(e,t){return Vr(this,void 0,void 0,function*(){if(!this.window.paypalMessages){const n=this.getPayPalSdkMessagesConfiguration(e,t);yield this.loadPayPalSdk(n)}if(!this.window.paypalMessages)throw new Oi;return this.window.paypalMessages})}loadPayPalSdk({options:e,attributes:t}){return Vr(this,void 0,void 0,function*(){const n=this.transformConfig(e),i=this.transformConfig(t),r=`https://www.paypal.com/sdk/js?${new URLSearchParams(n).toString()}`;yield this.scriptLoader.loadScript(r,{async:!0,attributes:i})})}getPayPalFastlaneSdkConfiguration(e,t,n){const{clientToken:i,initializationData:r}=e;if(!r||!r.clientId)throw new pi(ui.MissingPaymentMethod);const{intent:o,clientId:a,merchantId:s,attributionId:d}=r;return{options:{"client-id":a,"merchant-id":s,commit:!0,components:["fastlane","three-domain-secure"],currency:t,intent:o},attributes:{"data-client-metadata-id":n.replace(/-/g,""),"data-namespace":"paypalFastlaneSdk","data-partner-attribution-id":d,"data-sdk-client-token":i}}}getPayPalGooglePaySdkScriptConfigOrThrow(e,t,n=!0){const{clientToken:i,initializationData:r}=e;if(!r||!r.clientId)throw new pi(ui.MissingPaymentMethod);const{intent:o,clientId:a,merchantId:s,buyerCountry:d,attributionId:c,isHostedCheckoutEnabled:l,isDeveloperModeApplicable:u}=r,h=l||n;return{options:Object.assign({"client-id":a,"merchant-id":s,commit:h,components:["googlepay"],currency:t,intent:o},u&&{"buyer-country":d}),attributes:{"data-partner-attribution-id":c,"data-client-token":i,"data-namespace":"paypalGooglePay"}}}getPayPalApmSdkConfiguration(e,t){const{initializationData:n}=e;if(!n||!n.clientId)throw new pi(ui.MissingPaymentMethod);const{intent:i,clientId:r,merchantId:o,buyerCountry:a,attributionId:s,isDeveloperModeApplicable:d,availableAlternativePaymentMethods:c=[],enabledAlternativePaymentMethods:l=[]}=n,u=this.filterFundingOptions(l),h=this.filterFundingOptions(c.filter(e=>!l.includes(e)));return{options:Object.assign({"client-id":r,"merchant-id":o,"enable-funding":u.length>0?u:void 0,"disable-funding":h.length>0?h:void 0,commit:!0,components:["buttons","payment-fields"],currency:t,intent:i},d&&{"buyer-country":a}),attributes:{"data-partner-attribution-id":s,"data-namespace":"paypalApms"}}}getPayPalSdkMessagesConfiguration(e,t){const{initializationData:n}=e;if(!n||!n.clientId)throw new pi(ui.MissingPaymentMethod);const{clientId:i,merchantId:r,attributionId:o,isDeveloperModeApplicable:a,buyerCountry:s}=n;return{options:Object.assign({"client-id":i,"merchant-id":r,components:["messages"],currency:t},a&&{"buyer-country":s}),attributes:{"data-namespace":"paypalMessages","data-partner-attribution-id":o}}}filterFundingOptions(e){const t=["klarna"];return e?e.filter(e=>!t.includes(e)):[]}transformConfig(e){let t={};return Object.keys(e).forEach(n=>{const i=e[n];null==i||""===i||Array.isArray(i)&&0===i.length||(t=Object.assign(Object.assign({},t),{[n]:Array.isArray(i)?i.join(","):i}))}),t}}function Hr(){return new Gr(o())}!function(e){e.CVV="cvv",e.PAN="pan"}(xr||(xr={}));class $r{static get(e){const t=`${encodeURIComponent(`${e}`)}=`,n=document.cookie;let i=null;const r=n.indexOf(t);if(r>-1){let e=n.indexOf(";",r);-1===e&&(e=n.length),i=decodeURIComponent(n.substring(r+t.length,e))}return i}static set(e,t,n={secure:!0}){let i=`${encodeURIComponent(e)}=${encodeURIComponent(t)}`;const{expires:r,path:o,domain:a,secure:s}=n;if(r)i+=`; expires=${r.toUTCString()}`;else{const e=new Date,t=60;e.setTime(e.getTime()+60*t*1e3),i+=`; expires=${e.toUTCString()}`}o&&(i+=`; path=${o}`),a&&(i+=`; domain=${a}`),s&&(i+="; secure"),document.cookie=i}static remove(e,t){$r.set(e,"",Object.assign({expires:new Date(0)},t))}}!function(e){e.AUTHORIZE="authorize",e.CAPTURE="capture"}(Fr||(Fr={})),function(e){e.Possible="POSSIBLE",e.No="NO",e.Unknown="UNKNOWN",e.Yes="YES"}(Rr||(Rr={})),function(e){e.Succeeded="succeeded",e.Cancelled="cancelled",e.Errored="errored"}(Lr||(Lr={})),function(e){e.paypal="paypal",e.checkout="checkout",e.buynow="buynow",e.pay="pay",e.installment="installment"}(Br||(Br={})),function(e){e.gold="gold",e.blue="blue",e.silver="silver",e.black="black",e.white="white"}(jr||(jr={})),function(e){e.pill="pill",e.rect="rect"}(Ur||(Ur={})),function(e){e.SUCCEEDED="succeeded",e.FAILED="failed",e.CANCELED="canceled",e.UNRECOGNIZED="unrecognized"}(qr||(qr={}));var Wr=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Yr{constructor(){this.window=window}initializePayPalFastlane(e,t,n){return Wr(this,void 0,void 0,function*(){if(t&&(window.localStorage.setItem("fastlaneEnv","sandbox"),window.localStorage.setItem("axoEnv","sandbox")),!this.window.paypalFastlane){const t={root:{backgroundColorPrimary:"transparent"}};this.window.paypalFastlane=yield e.Fastlane({styles:n||t})}return this.window.paypalFastlane})}getPayPalFastlaneOrThrow(){if(!this.window.paypalFastlane)throw new Oi;return this.window.paypalFastlane}lookupCustomerOrThrow(e){return Wr(this,void 0,void 0,function*(){return this.getPayPalFastlaneOrThrow().identity.lookupCustomerByEmail(e)})}triggerAuthenticationFlowOrThrow(e){return Wr(this,void 0,void 0,function*(){return e?this.getPayPalFastlaneOrThrow().identity.triggerAuthenticationFlow(e):{}})}updateStorageSessionId(e){const t=new Date;t.setDate(t.getDate()+14);const n={expires:t,secure:!0};$r.set("bc-fastlane-sessionId",e,n)}removeStorageSessionId(){$r.remove("bc-fastlane-sessionId")}getStorageSessionId(){return $r.get("bc-fastlane-sessionId")||""}mapPayPalFastlaneProfileToBcCustomerData(e,t){var n,i,r;const{authenticationState:o,profileData:a}=t,s=null===(r=null===(i=null===(n=null==a?void 0:a.card)||void 0===n?void 0:n.paymentSource)||void 0===i?void 0:i.card)||void 0===r?void 0:r.billingAddress,d=null==a?void 0:a.shippingAddress,c=null==a?void 0:a.name,l=null==a?void 0:a.card,u=d?this.mapPayPalToBcAddress(d.address,d.name,d.phoneNumber):void 0,h=s&&c?this.mapPayPalToBcAddress(s,c,null==d?void 0:d.phoneNumber):void 0,p=l?this.mapPayPalToBcInstrument(e,l):[],m=this.filterAddresses([u,h]);return{authenticationState:o||qr.UNRECOGNIZED,addresses:m,billingAddress:h,shippingAddress:u,instruments:p}}mapPayPalToBcInstrument(e,t){const{id:n,paymentSource:i}=t,{brand:r,expiry:o,lastDigits:a}=i.card,[s,d]=o.split("-");return[{bigpayToken:n,brand:r,defaultInstrument:!1,expiryMonth:d,expiryYear:s,iin:"",last4:a,method:e,provider:e,trustedShippingAddress:!1,untrustedShippingCardVerificationMode:xr.PAN,type:"card"}]}mapBcToPayPalAddress(e){return{company:(null==e?void 0:e.company)||"",addressLine1:(null==e?void 0:e.address1)||"",addressLine2:(null==e?void 0:e.address2)||"",adminArea1:(null==e?void 0:e.stateOrProvinceCode)||(null==e?void 0:e.stateOrProvince)||"",adminArea2:(null==e?void 0:e.city)||"",postalCode:(null==e?void 0:e.postalCode)||"",countryCode:(null==e?void 0:e.countryCode)||""}}mapPayPalToBcAddress(e,t,n,i){const[r,o]=t.fullName.split(" "),a=(null==n?void 0:n.nationalNumber)||"",s=(null==n?void 0:n.countryCode)||"";return{id:Date.now(),type:"paypal-address",firstName:t.firstName||r||"",lastName:t.lastName||o||"",company:e.company||"",address1:e.addressLine1,address2:e.addressLine2||"",city:e.adminArea2,stateOrProvince:e.adminArea1,stateOrProvinceCode:e.adminArea1,country:e.countryCode||"",countryCode:e.countryCode||"",postalCode:e.postalCode,phone:s+a,customFields:i||[]}}filterAddresses(e){return e.reduce((e,t)=>t?e.some(e=>this.isEqualAddresses(e,t))?e:[...e,t]:e,[])}isEqualAddresses(e,t){return A(this.normalizeAddress(e),this.normalizeAddress(t))}normalizeAddress(e){return G(e,["id","phone"])}}function Kr(){return new Yr}function Jr(e){return"string"!=typeof e}function Zr(e,t){if(t||e)return function(e){var t,n;const i={},r=H(e.root,Jr),o=H(e.input,Jr),a=H(e.toggle,Jr),s=H(null===(t=e.text)||void 0===t?void 0:t.body,Jr),d=H(null===(n=e.text)||void 0===n?void 0:n.caption,Jr),c=e.branding;return Object.keys(r).length&&(i.root=r),Object.keys(o).length&&(i.input=o),Object.keys(a).length&&(i.toggle=a),Object.keys(s).length&&(i.text={},i.text.body=s),Object.keys(d).length&&(i.text=Object.assign({},i.text),i.text.caption=d),c&&(i.branding=c),i}(function(e,t){var n,i,r,o,a,s,d,c,l,u,h,p,m,y,g,v,f,S,w,_,C,I;return{root:{backgroundColorPrimary:(null==e?void 0:e.fastlaneRootSettingsBackgroundColor)||(null===(n=null==t?void 0:t.root)||void 0===n?void 0:n.backgroundColorPrimary),errorColor:(null==e?void 0:e.fastlaneRootSettingsErrorColor)||(null===(i=null==t?void 0:t.root)||void 0===i?void 0:i.errorColor),fontFamily:(null==e?void 0:e.fastlaneRootSettingsFontFamily)||(null===(r=null==t?void 0:t.root)||void 0===r?void 0:r.fontFamily),fontSizeBase:(null==e?void 0:e.fastlaneRootSettingsFontSize)||(null===(o=null==t?void 0:t.root)||void 0===o?void 0:o.fontSizeBase),padding:(null==e?void 0:e.fastlaneRootSettingsPadding)||(null===(a=null==t?void 0:t.root)||void 0===a?void 0:a.padding),primaryColor:(null==e?void 0:e.fastlaneRootSettingsPrimaryColor)||(null===(s=null==t?void 0:t.root)||void 0===s?void 0:s.primaryColor)},input:{borderRadius:(null==e?void 0:e.fastlaneInputSettingsBorderRadius)||(null===(d=null==t?void 0:t.input)||void 0===d?void 0:d.borderRadius),borderColor:(null==e?void 0:e.fastlaneInputSettingsBorderColor)||(null===(c=null==t?void 0:t.input)||void 0===c?void 0:c.borderColor),focusBorderColor:(null==e?void 0:e.fastlaneInputSettingsFocusBorderBase)||(null===(l=null==t?void 0:t.input)||void 0===l?void 0:l.focusBorderColor),backgroundColor:(null==e?void 0:e.fastlaneInputSettingsBackgroundColor)||(null===(u=null==t?void 0:t.input)||void 0===u?void 0:u.backgroundColor),borderWidth:(null==e?void 0:e.fastlaneInputSettingsBorderWidth)||(null===(h=null==t?void 0:t.input)||void 0===h?void 0:h.borderWidth),textColorBase:(null==e?void 0:e.fastlaneInputSettingsTextColorBase)||(null===(p=null==t?void 0:t.input)||void 0===p?void 0:p.textColorBase)},toggle:{colorPrimary:(null==e?void 0:e.fastlaneToggleSettingsColorPrimary)||(null===(m=null==t?void 0:t.toggle)||void 0===m?void 0:m.colorPrimary),colorSecondary:(null==e?void 0:e.fastlaneToggleSettingsColorSecondary)||(null===(y=null==t?void 0:t.toggle)||void 0===y?void 0:y.colorSecondary)},text:{body:{color:(null==e?void 0:e.fastlaneTextBodySettingsColor)||(null===(v=null===(g=null==t?void 0:t.text)||void 0===g?void 0:g.body)||void 0===v?void 0:v.color),fontSize:(null==e?void 0:e.fastlaneTextBodySettingsFontSize)||(null===(S=null===(f=null==t?void 0:t.text)||void 0===f?void 0:f.body)||void 0===S?void 0:S.fontSize)},caption:{color:(null==e?void 0:e.fastlaneTextCaptionSettingsColor)||(null===(_=null===(w=null==t?void 0:t.text)||void 0===w?void 0:w.caption)||void 0===_?void 0:_.color),fontSize:(null==e?void 0:e.fastlaneTextCaptionSettingsFontSize)||(null===(I=null===(C=null==t?void 0:t.text)||void 0===C?void 0:C.caption)||void 0===I?void 0:I.fontSize)}},branding:(null==e?void 0:e.fastlaneBrandingSettings)||(null==t?void 0:t.branding)}}(e,t))}var Qr=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Xr{constructor(e,t,n){this.paymentIntegrationService=e,this.bigCommercePaymentsSdk=t,this.bigCommercePaymentsFastlaneUtils=n}initialize(e){var t;return Qr(this,void 0,void 0,function*(){const{methodId:n,bigcommerce_payments_fastlane:i}=e;if(!n)throw new ki('Unable to proceed because "methodId" argument is not provided.');try{yield this.paymentIntegrationService.loadPaymentMethod(n);const e=this.paymentIntegrationService.getState(),r=e.getCartOrThrow(),o=e.getPaymentMethodOrThrow(n),a=!!(null===(t=o.initializationData)||void 0===t?void 0:t.isDeveloperModeApplicable),s=yield this.bigCommercePaymentsSdk.getPayPalFastlaneSdk(o,r.currency.code,r.id);yield this.bigCommercePaymentsFastlaneUtils.initializePayPalFastlane(s,a,this.getFastlaneStyles(n,i))}catch(e){}return Promise.resolve()})}deinitialize(){return Qr(this,void 0,void 0,function*(){return Promise.resolve()})}signIn(e,t){return Qr(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signInCustomer(e,t)})}signOut(e){return Qr(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signOutCustomer(e)})}executePaymentMethodCheckout(e){return Qr(this,void 0,void 0,function*(){const{checkoutPaymentMethodExecuted:t,continueWithCheckoutCallback:n,methodId:i}=e||{};if(!i)throw new ki('Unable to proceed because "methodId" argument is not provided.');if("function"!=typeof n)throw new ki('Unable to proceed because "continueWithCheckoutCallback" argument is not provided and it must be a function.');if(this.paymentIntegrationService.getState().getCustomerOrThrow().isGuest){t&&"function"==typeof t&&t();try{yield this.runPayPalAuthenticationFlowOrThrow(i)}catch(e){}}n()})}runPayPalAuthenticationFlowOrThrow(e){return Qr(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState(),n=t.getCartOrThrow().id,i=t.getCustomer(),r=t.getBillingAddress(),o=(null==i?void 0:i.email)||(null==r?void 0:r.email)||"",{customerContextId:a}=yield this.bigCommercePaymentsFastlaneUtils.lookupCustomerOrThrow(o),s=yield this.bigCommercePaymentsFastlaneUtils.triggerAuthenticationFlowOrThrow(a),d=s.authenticationState===qr.CANCELED;yield this.updateCustomerDataState(e,s),d?this.bigCommercePaymentsFastlaneUtils.removeStorageSessionId():this.bigCommercePaymentsFastlaneUtils.updateStorageSessionId(n)})}updateCustomerDataState(e,t){var n;return Qr(this,void 0,void 0,function*(){const i=this.paymentIntegrationService.getState().getCartOrThrow(),{authenticationState:r,addresses:o,billingAddress:a,shippingAddress:s,instruments:d}=this.bigCommercePaymentsFastlaneUtils.mapPayPalFastlaneProfileToBcCustomerData(e,t);if(yield this.paymentIntegrationService.updatePaymentProviderCustomer({authenticationState:r,addresses:o,instruments:d}),a&&(yield this.paymentIntegrationService.updateBillingAddress(a)),s&&i.lineItems.physicalItems.length>0){const t=yield this.paymentIntegrationService.updateShippingAddress(s),i=t.getPaymentMethodOrThrow(e),{isFastlaneShippingOptionAutoSelectEnabled:r}=i.initializationData||{},o=t.getConsignments()||[],a=(null===(n=o[0])||void 0===n?void 0:n.availableShippingOptions)||[],d=a[0],c=a.find(e=>e.isRecommended);if((c||d)&&r){const e=(null==c?void 0:c.id)||d.id;yield this.paymentIntegrationService.selectShippingOption(e)}}})}getFastlaneStyles(e,t){const n=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{fastlaneStyles:i,isFastlaneStylingEnabled:r}=n.initializationData||{};return Zr(r?i:{},null==t?void 0:t.styles)}}const eo=Rt(e=>new Xr(e,Hr(),Kr()),[{id:"bigcommerce_payments_fastlane"},{id:"bigcommerce_payments_creditcards"}]);var to=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class no{constructor(e,t){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t,this.onError=V}initialize(e){return to(this,void 0,void 0,function*(){const{bigcommerce_payments_paylater:t,methodId:n}=e;if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_paylater" argument is not provided.');if(!t.container)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_paylater.container" argument is not provided.');if(t.onClick&&"function"!=typeof t.onClick)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_paylater.onClick" argument is not a function.');this.onError=t.onError||V,this.paymentIntegrationService.getState().getPaymentMethod(n)||(yield this.paymentIntegrationService.loadPaymentMethod(n));const i=yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(n);i&&i.Buttons&&"function"==typeof i.Buttons?this.renderButton(n,t):console.error("[BC BigCommercePayments PayLater]: button could not be rendered, due to issues with loading PayPal SDK")})}deinitialize(){return Promise.resolve()}signIn(e,t){return to(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signInCustomer(e,t)})}signOut(e){return to(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signOutCustomer(e)})}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}renderButton(e,t){const{container:n,onComplete:i,onClick:r}=t,o=this.bigCommercePaymentsIntegrationService.getPayPalSdkOrThrow(),a=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{isHostedCheckoutEnabled:s,paymentButtonStyles:d}=a.initializationData||{},{checkoutTopButtonStyles:c}=d||{},l=Object.assign({createOrder:()=>this.bigCommercePaymentsIntegrationService.createOrder("bigcommerce_payments_paylater"),onApprove:({orderID:t})=>this.bigCommercePaymentsIntegrationService.tokenizePayment(e,t)},r&&{onClick:()=>r()}),u={onShippingAddressChange:e=>this.onShippingAddressChange(e),onShippingOptionsChange:e=>this.onShippingOptionsChange(e),onApprove:(t,n)=>this.onHostedCheckoutApprove(t,n,e,i)},h=[o.FUNDING.PAYLATER,o.FUNDING.CREDIT];let p=!1;h.forEach(e=>{if(!p){const t=Object.assign(Object.assign({fundingSource:e,style:this.bigCommercePaymentsIntegrationService.getValidButtonStyle(Object.assign(Object.assign({},c),{height:Dr}))},l),s&&u),i=o.Buttons(t);i.isEligible()&&(i.render(`#${n}`),p=!0)}}),p||this.bigCommercePaymentsIntegrationService.removeElement(n)}onHostedCheckoutApprove(e,t,n,i){return to(this,void 0,void 0,function*(){if(!e.orderID)throw new pi(ui.MissingOrderId);const r=this.paymentIntegrationService.getState().getCartOrThrow(),o=yield t.order.get();try{const t=this.bigCommercePaymentsIntegrationService.getBillingAddressFromOrderDetails(o);if(yield this.paymentIntegrationService.updateBillingAddress(t),r.lineItems.physicalItems.length>0){const e=this.bigCommercePaymentsIntegrationService.getShippingAddressFromOrderDetails(o);yield this.paymentIntegrationService.updateShippingAddress(e),yield this.bigCommercePaymentsIntegrationService.updateOrder()}yield this.paymentIntegrationService.submitOrder({},{params:{methodId:n}}),yield this.bigCommercePaymentsIntegrationService.submitPayment(n,e.orderID),i&&"function"==typeof i&&i()}catch(e){this.handleError(e)}})}onShippingAddressChange(e){return to(this,void 0,void 0,function*(){const t=this.bigCommercePaymentsIntegrationService.getAddress({city:e.shippingAddress.city,countryCode:e.shippingAddress.countryCode,postalCode:e.shippingAddress.postalCode,stateOrProvinceCode:e.shippingAddress.state});try{yield this.paymentIntegrationService.updateBillingAddress(t),yield this.paymentIntegrationService.updateShippingAddress(t);const e=this.bigCommercePaymentsIntegrationService.getShippingOptionOrThrow();yield this.paymentIntegrationService.selectShippingOption(e.id),yield this.bigCommercePaymentsIntegrationService.updateOrder()}catch(e){this.handleError(e)}})}onShippingOptionsChange(e){return to(this,void 0,void 0,function*(){const t=this.bigCommercePaymentsIntegrationService.getShippingOptionOrThrow(e.selectedShippingOption.id);try{yield this.paymentIntegrationService.selectShippingOption(t.id),yield this.bigCommercePaymentsIntegrationService.updateOrder()}catch(e){this.handleError(e)}})}handleError(e){if("function"!=typeof this.onError)throw e;this.onError(e)}}const io=Rt(e=>new no(e,Tr(e)),[{id:"bigcommerce_payments_paylater"}]);var ro=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class oo{constructor(e,t){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t}initialize(e){return ro(this,void 0,void 0,function*(){const{bigcommerce_payments_venmo:t,methodId:n}=e;if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_venmo" argument is not provided.');if(!t.container)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_venmo.container" argument is not provided.');if(t.onClick&&"function"!=typeof t.onClick)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_venmo.onClick" argument is not a function.');this.paymentIntegrationService.getState().getPaymentMethod(n)||(yield this.paymentIntegrationService.loadPaymentMethod(n));const i=yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(n);i&&i.Buttons&&"function"==typeof i.Buttons?this.renderButton(n,t):console.error("[BC Payments Venmo]: Button could not be rendered, due to issues with loading PayPal SDK")})}deinitialize(){return Promise.resolve()}signIn(e,t){return ro(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signInCustomer(e,t)})}signOut(e){return ro(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signOutCustomer(e)})}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}renderButton(e,t){const{container:n,onClick:i}=t,r=this.bigCommercePaymentsIntegrationService.getPayPalSdkOrThrow(),o=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{paymentButtonStyles:a}=o.initializationData||{},{checkoutTopButtonStyles:s}=a||{},d=Object.assign({fundingSource:r.FUNDING.VENMO,style:this.bigCommercePaymentsIntegrationService.getValidButtonStyle(Object.assign(Object.assign({},s),{height:Dr})),createOrder:()=>this.bigCommercePaymentsIntegrationService.createOrder("bigcommerce_payments_venmo"),onApprove:({orderID:t})=>this.bigCommercePaymentsIntegrationService.tokenizePayment(e,t)},i&&{onClick:()=>i()}),c=r.Buttons(d);c.isEligible()?c.render(`#${n}`):this.bigCommercePaymentsIntegrationService.removeElement(n)}}const ao=Rt(e=>new oo(e,Tr(e)),[{id:"bigcommerce_payments_venmo"}]);class so extends li{constructor(e){super(e||"Unable to proceed because the client library of a payment method has thrown an unexpected error."),this.name="PaymentMethodFailedError",this.type="payment_method_client_invalid"}}class co extends hr{constructor(e){super(e,{message:"There is a problem processing your payment. Please try again later."}),this.name="PaymentMethodInvalidError",this.type="payment_method_invalid"}}var lo,uo,ho,po=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class mo{constructor(e,t){this.paymentIntegrationService=e,this.boltScriptLoader=t,this.boltHostWindow=window}initialize(e){var t;return po(this,void 0,void 0,function*(){const{methodId:n,bolt:i}=e,{onInit:r}=i||{};if(!n)throw new ki('Unable to proceed because "methodId" argument is not provided.');yield this.paymentIntegrationService.loadPaymentMethod(n);const o=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(n);if(!(null===(t=o.initializationData)||void 0===t?void 0:t.publishableKey))throw new pi(ui.MissingPaymentMethod);const{developerConfig:a,publishableKey:s}=o.initializationData;if(yield this.boltScriptLoader.loadBoltClient(s,o.config.testMode,a),r&&"function"==typeof r){const e=this.getCustomerEmail();r(yield this.hasBoltAccount(e),e)}})}deinitialize(){return Promise.resolve()}signIn(e,t){return po(this,void 0,void 0,function*(){return yield this.paymentIntegrationService.signInCustomer(e,t),Promise.resolve()})}signOut(e){return po(this,void 0,void 0,function*(){return yield this.paymentIntegrationService.signOutCustomer(e),Promise.resolve()})}executePaymentMethodCheckout(e){return po(this,void 0,void 0,function*(){const{continueWithCheckoutCallback:t=pe,checkoutPaymentMethodExecuted:n,methodId:i}=e||{},r=this.getCustomerEmail();if(!i)throw new ki('Unable to proceed because "methodId" argument is not provided.');if("function"!=typeof t)throw new ki('Unable to proceed because "continueWithCheckoutCallback" argument is not provided and it must be a function.');if(r)return this.openBoltCheckoutModalOrThrow(r,i,t,n);t()})}openBoltCheckoutModalOrThrow(e,t,n,i){var r;return po(this,void 0,void 0,function*(){const o=this.getBoltClientOrThrow(),a=this.paymentIntegrationService.getState().getPaymentMethod(t);try{if(null===(r=null==a?void 0:a.initializationData)||void 0===r?void 0:r.embeddedOneClickEnabled){const t=yield this.hasBoltAccount(e);if(t){const t={close:()=>{n()}};yield o.openCheckout(e,t)}else n();"function"==typeof i&&i({hasBoltAccount:t})}else n()}catch(e){if(function(e){return"string"==typeof e.message&&"string"==typeof e.type&&("string"==typeof e.subtype||!e.subtype)&&e instanceof Error}(e)&&"MissingDataError"!==e.name&&"NotInitializedError"!==e.name)throw new so(e.message);throw e}})}getBoltClientOrThrow(){const e=this.boltHostWindow.BoltCheckout;if(!e)throw new gi(hi.PaymentNotInitialized);return e}hasBoltAccount(e){return po(this,void 0,void 0,function*(){const t=this.getBoltClientOrThrow();try{return yield t.hasBoltAccount(e)}catch(e){throw new co}})}getCustomerEmail(){const e=this.paymentIntegrationService.getState(),t=e.getCustomer(),n=e.getBillingAddress();return(null==t?void 0:t.email)||(null==n?void 0:n.email)||""}}!function(e){e.SandboxMode="bolt_sandbox",e.StagingMode="bolt_staging",e.DevelopmentMode="bolt_development"}(lo||(lo={})),function(e){e.Small="small",e.Medium="medium",e.Large="large"}(uo||(uo={})),function(e){e.Pill="pill",e.Rect="rect"}(ho||(ho={}));var yo=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class go{constructor(e,t=window){this.scriptLoader=e,this.boltHostWindow=t}loadBoltClient(e,t,n,i,r){return yo(this,void 0,void 0,function*(){if(this.boltHostWindow.BoltCheckout)return this.boltHostWindow.BoltCheckout;if(!e)throw new ki('Unable to initialize payment because "publishableKey" argument is not provided.');if(yield this.scriptLoader.loadScript(`//${this.getDomainURL(!!t,n)}/connect-bigcommerce.js`,this.getScriptOptions("bolt-connect",e,i,r)),yield this.scriptLoader.loadScript(`//${this.getDomainURL(!!t,n)}/track.js`,this.getScriptOptions("bolt-track",e)),!this.boltHostWindow.BoltCheckout)throw new Oi;return this.boltHostWindow.BoltCheckout})}loadBoltEmbedded(e,t,n){return yo(this,void 0,void 0,function*(){if(yield this.scriptLoader.loadScript(`//${this.getDomainURL(!!t,n)}/embed.js`,{async:!0,attributes:{id:"bolt-embedded"}}),!this.boltHostWindow.Bolt)throw new Oi;return this.boltHostWindow.Bolt(e)})}getDomainURL(e,t){if(!e)return"connect.bolt.com";if(t)switch(t.developerMode){case lo.StagingMode:return"connect-staging.bolt.com";case lo.DevelopmentMode:return`connect.${t.developerDomain}`}return"connect-sandbox.bolt.com"}getScriptOptions(e,t,n,i){return{async:!0,attributes:Object.assign(Object.assign({id:e,"data-publishable-key":t},n&&{"data-shopping-cart-id":n}),i&&{"data-storefront-api-token":i})}}}const vo=Rt(e=>new mo(e,new go(a())),[{id:"bolt"}]);class fo extends ki{constructor(e){let t="Unable to submit payment for the order because the payload is invalid.";e&&(t=`${t} Make sure the following fields are provided correctly: ${e.join(", ")}.`),super(t),this.name="PaymentArgumentInvalidError"}}class So extends li{constructor(e,t){super(t||"Unable to proceed because the payment form contains invalid data."),this.details=e,this.name="PaymentInvalidFormError",this.type="payment_invalid_form"}}const wo=["buttons","messages"];var _o,Co,Io,bo,Po,Oo;!function(e){e.HORIZONTAL="horizontal",e.VERTICAL="vertical"}(_o||(_o={})),function(e){e.SMALL="small",e.MEDIUM="medium",e.LARGE="large",e.RESPONSIVE="responsive"}(Co||(Co={})),function(e){e.GOLD="gold",e.BLUE="blue",e.SIlVER="silver",e.BLACK="black",e.WHITE="white"}(Io||(Io={})),function(e){e.CHECKOUT="checkout",e.PAY="pay",e.BUYNOW="buynow",e.PAYPAL="paypal",e.CREDIT="credit"}(bo||(bo={})),function(e){e.PILL="pill",e.RECT="rect"}(Po||(Po={})),function(e){e.CART="cart",e.HOME="homepage",e.PAYMENT="payment",e.PRODUCT="product"}(Oo||(Oo={}));var Eo=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Ao{constructor(e,t,n){this.braintreeScriptLoader=e,this.braintreeHostWindow=t,this.overlay=n,this.dataCollectors={}}initialize(e,t){this.clientToken=e,this.threeDSecureOptions=t}getBraintreeFastlane(e,t,n){return Eo(this,void 0,void 0,function*(){if(t&&(window.localStorage.setItem("axoEnv","sandbox"),window.localStorage.setItem("fastlaneEnv","sandbox")),!this.braintreeHostWindow.braintreeFastlane){const t=this.getClientTokenOrThrow(),i=yield this.getClient(),r=yield this.getSessionId(e),o=yield this.braintreeScriptLoader.loadFastlane(),a={root:{backgroundColorPrimary:"transparent"}};this.braintreeHostWindow.braintreeFastlane=yield o.create({authorization:t,client:i,deviceData:r,styles:n||a})}return this.braintreeHostWindow.braintreeFastlane})}getClient(){return Eo(this,void 0,void 0,function*(){if(!this.client){const e=this.getClientTokenOrThrow(),t=yield this.braintreeScriptLoader.loadClient();this.client=t.create({authorization:e})}return this.client})}getPaypal(){return this.braintreePaypal||(this.braintreePaypal=Promise.all([this.getClient(),this.braintreeScriptLoader.loadPaypal()]).then(([e,t])=>t.create({client:e}))),this.braintreePaypal}paypal(e){var{shouldSaveInstrument:t}=e,n=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["shouldSaveInstrument"]);const i=Ae();return this.getPaypal().then(e=>{var r;return i&&(null===(r=this.overlay)||void 0===r||r.show({onClick:()=>e.focusWindow()})),e.tokenize(Object.assign({enableShippingAddress:!0,flow:t?"vault":"checkout",useraction:"commit"},n))}).then(e=>{var t;return null===(t=this.overlay)||void 0===t||t.remove(),e}).catch(e=>{var t;throw null===(t=this.overlay)||void 0===t||t.remove(),e})}getPaypalCheckout(e,t,n){return Eo(this,void 0,void 0,function*(){const i=yield this.getClient(),r=yield this.braintreeScriptLoader.loadPaypalCheckout(),o={client:i};return this.paypalCheckout=yield r.create(o,(i,r)=>{var o;if(i)return n(i);const a=Object.assign(Object.assign({currency:e.currency},e.isCreditEnabled&&{"enable-funding":"paylater"}),{components:wo.toString(),intent:e.intent,commit:null===(o=e.commit)||void 0===o||o});this.braintreeHostWindow.paypal?t(r):r.loadPayPalSDK(a,()=>t(r))}),this.paypalCheckout})}getDataCollector(e){return Eo(this,void 0,void 0,function*(){const t=(null==e?void 0:e.paypal)?"paypal":"default";let n=this.dataCollectors[t];if(!n){try{const t=yield this.getClient(),i=yield this.braintreeScriptLoader.loadDataCollector(),r=Object.assign({client:t,kount:!0},e);n=yield i.create(r)}catch(e){if(!$i(e)||"DATA_COLLECTOR_KOUNT_NOT_ENABLED"!==e.code)throw e;n={deviceData:void 0,teardown:()=>Promise.resolve()}}this.dataCollectors[t]=n}return n})}getBraintreeEnv(e=!1){return e?Wi.Sandbox:Wi.Production}mapToBraintreeShippingAddressOverride(e){return{recipientName:`${e.firstName} ${e.lastName}`,line1:e.address1,line2:e.address2,city:e.city,state:e.stateOrProvinceCode,postalCode:e.postalCode,countryCode:e.countryCode,phone:e.phone}}mapToLegacyShippingAddress(e){const{email:t,phone:n,shippingAddress:i}=e,r=(null==i?void 0:i.recipientName)||"",[o,a]=r.split(" ");return{email:t,first_name:o||"",last_name:a||"",phone_number:n,address_line_1:null==i?void 0:i.line1,address_line_2:null==i?void 0:i.line2,city:null==i?void 0:i.city,state:null==i?void 0:i.state,country_code:null==i?void 0:i.countryCode,postal_code:null==i?void 0:i.postalCode}}mapToLegacyBillingAddress(e){const{billingAddress:t,email:n,firstName:i,lastName:r,phone:o,shippingAddress:a}=e,s=t||a;return{email:n,first_name:i,last_name:r,phone_number:o,address_line_1:null==s?void 0:s.line1,address_line_2:null==s?void 0:s.line2,city:null==s?void 0:s.city,state:null==s?void 0:s.state,country_code:null==s?void 0:s.countryCode,postal_code:null==s?void 0:s.postalCode}}removeElement(e){const t=e&&document.getElementById(e);t&&t.remove()}getSessionId(e){return Eo(this,void 0,void 0,function*(){const{deviceData:t}=yield this.getDataCollector({riskCorrelationId:e});return t})}teardown(){return Eo(this,void 0,void 0,function*(){yield this.teardownModule(this.dataCollectors.default),yield this.teardownModule(this.dataCollectors.paypal),this.dataCollectors={},yield this.teardownModule(this.paypalCheckout),this.paypalCheckout=void 0})}get3DS(){return Eo(this,void 0,void 0,function*(){return this.threeDS||(this.threeDS=Promise.all([this.getClient(),this.braintreeScriptLoader.load3DS()]).then(([e,t])=>t.create({client:e,version:2}))),this.threeDS})}getVenmoCheckout(e){return Eo(this,void 0,void 0,function*(){if(!this.venmoCheckout){const t=yield this.getClient(),n=yield this.braintreeScriptLoader.loadVenmoCheckout(),i=Object.assign({client:t,allowDesktop:!0,paymentMethodUsage:"multi_use"},e||{});this.venmoCheckout=yield new Promise((e,t)=>{n.create(i,(n,i)=>n?t(n):i.isBrowserSupported()?void e(i):t(new Li))})}return this.venmoCheckout})}verifyCard(e,t,n){return Eo(this,void 0,void 0,function*(){const i=yield this.tokenizeCard(e,t);return this.challenge3DSVerification(i,n)})}tokenizeCard(e,t){return Eo(this,void 0,void 0,function*(){const{paymentData:n}=e;if(!function(e){if("object"!=typeof e||null===e)return!1;const t=e;return"object"==typeof t.ccExpiry&&null!==t.ccExpiry&&"string"==typeof t.ccNumber&&"string"==typeof t.ccName}(n))throw new fo(["payment.paymentData"]);const i=this.getErrorsRequiredFields(n);if(!E(i))throw new So(i);const r=this.mapToCreditCard(n,t),o=yield this.getClient(),{creditCards:a}=yield o.request(r);return{nonce:a[0].nonce,bin:a[0].details.bin}})}challenge3DSVerification(e,t){return Eo(this,void 0,void 0,function*(){const n=yield this.get3DS();return this.present3DSChallenge(n,t,e)})}teardownModule(e){return e?e.teardown():Promise.resolve()}getClientTokenOrThrow(){if(!this.clientToken)throw new gi(hi.PaymentNotInitialized);return this.clientToken}getErrorsRequiredFields(e){const{ccNumber:t,ccExpiry:n}=e,i={};return t||(i.ccNumber=[{message:"Credit card number is required",type:"required"}]),n||(i.ccExpiry=[{message:"Expiration date is required",type:"required"}]),i}mapToCreditCard(e,t){return{data:{creditCard:{cardholderName:e.ccName,number:e.ccNumber,cvv:e.ccCvv,expirationDate:`${e.ccExpiry.month}/${e.ccExpiry.year}`,options:{validate:!1},billingAddress:t&&{countryCodeAlpha2:t.countryCode,locality:t.city,countryName:t.country,postalCode:t.postalCode,streetAddress:t.address2?`${t.address1} ${t.address2}`:t.address1}}},endpoint:"payment_methods/credit_cards",method:"post"}}present3DSChallenge(e,t,n){const{nonce:i,bin:r}=n;if(!this.threeDSecureOptions||!i)throw new gi(hi.PaymentNotInitialized);const{addFrame:o,removeFrame:a,challengeRequested:s=!0,additionalInformation:d}=this.threeDSecureOptions,c=()=>Eo(this,void 0,void 0,function*(){const t=yield e.cancelVerifyCard();return u.cancel(new nr),t}),l=t.toFixed(2),u=new Bn(e.verifyCard({addFrame:(e,t)=>{o&&o(e,t,c)},amount:Number(l),bin:r,challengeRequested:s,nonce:i,removeFrame:a,onLookupComplete:(e,t)=>{t()},collectDeviceData:!0,additionalInformation:d}));return u.promise}}var ko=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class To{constructor(e,t,n,i){this.paymentIntegrationService=e,this.formPoster=t,this.braintreeIntegrationService=n,this.braintreeHostWindow=i}initialize(e){return ko(this,void 0,void 0,function*(){const{braintreepaypal:t,methodId:n}=e,{container:i,onError:r}=t||{};if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.braintreepaypal" argument is not provided.');if(!i)throw new ki('Unable to initialize payment because "options.braintreepaypal.container" argument is not provided.');let o,a=this.paymentIntegrationService.getState();try{if(o=a.getPaymentMethodOrThrow(n),!o.clientToken)throw new pi(ui.MissingPaymentToken)}catch(e){a=yield this.paymentIntegrationService.loadPaymentMethod(n),o=a.getPaymentMethodOrThrow(n)}const{clientToken:s,config:d,initializationData:c}=o,{paymentButtonStyles:l}=c||{},{checkoutTopButtonStyles:u}=l||{};if(!s||!c)throw new pi(ui.MissingPaymentMethod);const h={currency:a.getCartOrThrow().currency.code,intent:c.intent,isCreditEnabled:c.isCreditEnabled,commit:!1};this.braintreeIntegrationService.initialize(s),yield this.braintreeIntegrationService.getPaypalCheckout(h,e=>{this.renderPayPalButton(e,t,n,Boolean(d.testMode),u)},e=>this.handleError(e,i,r))})}deinitialize(){return ko(this,void 0,void 0,function*(){yield this.braintreeIntegrationService.teardown()})}signIn(e,t){return ko(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signInCustomer(e,t)})}signOut(e){return ko(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signOutCustomer(e)})}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}renderPayPalButton(e,t,n,i,r){const{container:o,onClick:a=V}=t,{paypal:s}=this.braintreeHostWindow,d=null==s?void 0:s.FUNDING.PAYPAL;if(s&&d){const c=s.Buttons({env:this.braintreeIntegrationService.getBraintreeEnv(i),fundingSource:d,style:Object.assign(Object.assign({},r),{height:Dr}),createOrder:()=>this.setupPayment(e,t,n),onApprove:i=>this.tokenizePayment(i,e,n,t),onClick:a});c.isEligible()&&c.render(`#${o}`)}else this.braintreeIntegrationService.removeElement(o)}setupPayment(e,t,n){var i;return ko(this,void 0,void 0,function*(){try{yield this.paymentIntegrationService.loadDefaultCheckout();const t=this.paymentIntegrationService.getState(),r=t.getCheckoutOrThrow().outstandingBalance,o=t.getCartOrThrow().currency.code,a=t.getCustomer(),s=t.getPaymentMethodOrThrow(n),d=null==a?void 0:a.addresses[0],c=d?this.braintreeIntegrationService.mapToBraintreeShippingAddressOverride(d):void 0;return yield e.createPayment({flow:"checkout",enableShippingAddress:!0,shippingAddressEditable:!1,shippingAddressOverride:c,amount:r,currency:o,offerCredit:!1,intent:null===(i=s.initializationData)||void 0===i?void 0:i.intent})}catch(e){const{container:n,onError:i}=t;this.handleError(e,n,i)}})}tokenizePayment(e,t,n,i){return ko(this,void 0,void 0,function*(){try{const{deviceData:i}=yield this.braintreeIntegrationService.getDataCollector({paypal:!0}),r=yield t.tokenizePayment(e),{details:o,nonce:a}=r,s=this.braintreeIntegrationService.mapToLegacyBillingAddress(o),d=this.braintreeIntegrationService.mapToLegacyShippingAddress(o);return this.formPoster.postForm("/checkout.php",{payment_type:"paypal",provider:n,action:"set_external_checkout",nonce:a,device_data:i,billing_address:JSON.stringify(s),shipping_address:JSON.stringify(d)}),r}catch(e){const{container:t,onError:n}=i;this.handleError(e,t,n)}})}handleError(e,t,n){if(this.braintreeIntegrationService.removeElement(t),!n||!$i(e))throw e;n(e)}}const Do=Rt(e=>{const t=window,n=new Ri(e),i=new Ao(new tr(a(),t,n),t);return new To(e,Ee(),i,t)},[{id:"braintreepaypal"}]);var Mo=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class zo{constructor(e,t,n,i){this.paymentIntegrationService=e,this.formPoster=t,this.braintreeIntegrationService=n,this.braintreeHostWindow=i}initialize(e){return Mo(this,void 0,void 0,function*(){const{braintreepaypalcredit:t,methodId:n}=e,{container:i,onError:r}=t||{};if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.braintreepaypalcredit" argument is not provided.');if(!i)throw new ki('Unable to initialize payment because "options.braintreepaypalcredit.container" argument is not provided.');let o,a=this.paymentIntegrationService.getState();try{if(o=a.getPaymentMethodOrThrow(n),!o.clientToken)throw new pi(ui.MissingPaymentToken)}catch(e){a=yield this.paymentIntegrationService.loadPaymentMethod(n),o=a.getPaymentMethodOrThrow(n)}const{clientToken:s,config:d,initializationData:c}=o,{paymentButtonStyles:l}=c||{},{checkoutTopButtonStyles:u}=l||{};if(!s||!c)throw new pi(ui.MissingPaymentMethod);const h={currency:a.getCartOrThrow().currency.code,intent:c.intent,isCreditEnabled:c.isCreditEnabled,commit:!1};this.braintreeIntegrationService.initialize(s),yield this.braintreeIntegrationService.getPaypalCheckout(h,e=>{this.renderPayPalButton(e,t,n,Boolean(d.testMode),Object.assign(Object.assign({},u),{height:Dr}))},e=>this.handleError(e,i,r))})}deinitialize(){return Mo(this,void 0,void 0,function*(){yield this.braintreeIntegrationService.teardown()})}signIn(e,t){return Mo(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signInCustomer(e,t)})}signOut(e){return Mo(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signOutCustomer(e)})}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}renderPayPalButton(e,t,n,i,r){const{container:o,onClick:a=V}=t,{paypal:s}=this.braintreeHostWindow;let d=!1;s&&[s.FUNDING.PAYLATER,s.FUNDING.CREDIT].forEach(c=>{if(!d){const l=s.Buttons({env:i?"sandbox":"production",fundingSource:c,style:r,createOrder:()=>this.setupPayment(e,t,n),onApprove:i=>this.tokenizePayment(i,e,n,t),onClick:a});l.isEligible()&&(l.render(`#${o}`),d=!0)}}),s&&d||this.braintreeIntegrationService.removeElement(o)}setupPayment(e,t,n){var i;return Mo(this,void 0,void 0,function*(){try{yield this.paymentIntegrationService.loadDefaultCheckout();const t=this.paymentIntegrationService.getState(),r=t.getCheckoutOrThrow().outstandingBalance,o=t.getCartOrThrow().currency.code,a=t.getCustomer(),s=t.getPaymentMethodOrThrow(n),d=null==a?void 0:a.addresses[0],c=d?this.braintreeIntegrationService.mapToBraintreeShippingAddressOverride(d):void 0;return yield e.createPayment({flow:"checkout",enableShippingAddress:!0,shippingAddressEditable:!1,shippingAddressOverride:c,amount:r,currency:o,offerCredit:!0,intent:null===(i=s.initializationData)||void 0===i?void 0:i.intent})}catch(e){const{container:n,onError:i}=t;this.handleError(e,n,i)}})}tokenizePayment(e,t,n,i){return Mo(this,void 0,void 0,function*(){try{const{deviceData:i}=yield this.braintreeIntegrationService.getDataCollector({paypal:!0}),r=yield t.tokenizePayment(e),{details:o,nonce:a}=r,s=this.braintreeIntegrationService.mapToLegacyBillingAddress(o),d=this.braintreeIntegrationService.mapToLegacyShippingAddress(o);return this.formPoster.postForm("/checkout.php",{payment_type:"paypal",provider:n,action:"set_external_checkout",nonce:a,device_data:i,billing_address:JSON.stringify(s),shipping_address:JSON.stringify(d)}),r}catch(e){const{container:t,onError:n}=i;this.handleError(e,t,n)}})}handleError(e,t,n){if(this.braintreeIntegrationService.removeElement(t),!n||!$i(e))throw e;n(e)}}const No=Rt(e=>{const t=window,n=new Ri(e),i=new Ao(new tr(a(),t,n),t);return new zo(e,Ee(),i,t)},[{id:"braintreepaypalcredit"}]);function xo(e){return"string"!=typeof e}function Fo(e,t){if(t||e)return function(e){var t,n;const i={},r=H(e.root,xo),o=H(e.input,xo),a=H(e.toggle,xo),s=H(null===(t=e.text)||void 0===t?void 0:t.body,xo),d=H(null===(n=e.text)||void 0===n?void 0:n.caption,xo),c=e.branding;return Object.keys(r).length&&(i.root=r),Object.keys(o).length&&(i.input=o),Object.keys(a).length&&(i.toggle=a),Object.keys(s).length&&(i.text={},i.text.body=s),Object.keys(d).length&&(i.text=Object.assign({},i.text),i.text.caption=d),c&&(i.branding=c),i}(function(e,t){var n,i,r,o,a,s,d,c,l,u,h,p,m,y,g,v,f,S,w,_,C,I;return{root:{backgroundColorPrimary:(null==e?void 0:e.fastlaneRootSettingsBackgroundColor)||(null===(n=null==t?void 0:t.root)||void 0===n?void 0:n.backgroundColorPrimary),errorColor:(null==e?void 0:e.fastlaneRootSettingsErrorColor)||(null===(i=null==t?void 0:t.root)||void 0===i?void 0:i.errorColor),fontFamily:(null==e?void 0:e.fastlaneRootSettingsFontFamily)||(null===(r=null==t?void 0:t.root)||void 0===r?void 0:r.fontFamily),fontSizeBase:(null==e?void 0:e.fastlaneRootSettingsFontSize)||(null===(o=null==t?void 0:t.root)||void 0===o?void 0:o.fontSizeBase),padding:(null==e?void 0:e.fastlaneRootSettingsPadding)||(null===(a=null==t?void 0:t.root)||void 0===a?void 0:a.padding),primaryColor:(null==e?void 0:e.fastlaneRootSettingsPrimaryColor)||(null===(s=null==t?void 0:t.root)||void 0===s?void 0:s.primaryColor)},input:{borderRadius:(null==e?void 0:e.fastlaneInputSettingsBorderRadius)||(null===(d=null==t?void 0:t.input)||void 0===d?void 0:d.borderRadius),borderColor:(null==e?void 0:e.fastlaneInputSettingsBorderColor)||(null===(c=null==t?void 0:t.input)||void 0===c?void 0:c.borderColor),focusBorderColor:(null==e?void 0:e.fastlaneInputSettingsFocusBorderBase)||(null===(l=null==t?void 0:t.input)||void 0===l?void 0:l.focusBorderColor),backgroundColor:(null==e?void 0:e.fastlaneInputSettingsBackgroundColor)||(null===(u=null==t?void 0:t.input)||void 0===u?void 0:u.backgroundColor),borderWidth:(null==e?void 0:e.fastlaneInputSettingsBorderWidth)||(null===(h=null==t?void 0:t.input)||void 0===h?void 0:h.borderWidth),textColorBase:(null==e?void 0:e.fastlaneInputSettingsTextColorBase)||(null===(p=null==t?void 0:t.input)||void 0===p?void 0:p.textColorBase)},toggle:{colorPrimary:(null==e?void 0:e.fastlaneToggleSettingsColorPrimary)||(null===(m=null==t?void 0:t.toggle)||void 0===m?void 0:m.colorPrimary),colorSecondary:(null==e?void 0:e.fastlaneToggleSettingsColorSecondary)||(null===(y=null==t?void 0:t.toggle)||void 0===y?void 0:y.colorSecondary)},text:{body:{color:(null==e?void 0:e.fastlaneTextBodySettingsColor)||(null===(v=null===(g=null==t?void 0:t.text)||void 0===g?void 0:g.body)||void 0===v?void 0:v.color),fontSize:(null==e?void 0:e.fastlaneTextBodySettingsFontSize)||(null===(S=null===(f=null==t?void 0:t.text)||void 0===f?void 0:f.body)||void 0===S?void 0:S.fontSize)},caption:{color:(null==e?void 0:e.fastlaneTextCaptionSettingsColor)||(null===(_=null===(w=null==t?void 0:t.text)||void 0===w?void 0:w.caption)||void 0===_?void 0:_.color),fontSize:(null==e?void 0:e.fastlaneTextCaptionSettingsFontSize)||(null===(I=null===(C=null==t?void 0:t.text)||void 0===C?void 0:C.caption)||void 0===I?void 0:I.fontSize)}},branding:(null==e?void 0:e.fastlaneBrandingSettings)||(null==t?void 0:t.branding)}}(e,t))}var Ro=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Lo{constructor(e,t){this.paymentIntegrationService=e,this.braintreeFastlaneUtils=t,this.isAcceleratedCheckoutEnabled=!1}initialize({methodId:e,braintreefastlane:t}){var n;return Ro(this,void 0,void 0,function*(){if(!e)throw new ki('Unable to proceed because "methodId" argument is not provided.');const i=yield this.getValidPaymentMethodOrThrow(e),{isAcceleratedCheckoutEnabled:r,isFastlaneStylingEnabled:o}=i.initializationData||{},a=o?null===(n=i.initializationData)||void 0===n?void 0:n.fastlaneStyles:void 0;this.isAcceleratedCheckoutEnabled=!!r;try{if(this.isAcceleratedCheckoutEnabled){const e=Fo(a,null==t?void 0:t.styles);yield this.braintreeFastlaneUtils.initializeBraintreeFastlaneOrThrow(i.id,e)}}catch(e){}return Promise.resolve()})}deinitialize(){return Ro(this,void 0,void 0,function*(){return Promise.resolve()})}signIn(e,t){return Ro(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signInCustomer(e,t)})}signOut(e){return Ro(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signOutCustomer(e)})}executePaymentMethodCheckout(e){return Ro(this,void 0,void 0,function*(){const{checkoutPaymentMethodExecuted:t,continueWithCheckoutCallback:n}=e||{};if("function"!=typeof n)throw new ki('Unable to proceed because "continueWithCheckoutCallback" argument is not provided and it must be a function.');const i=this.paymentIntegrationService.getState().getCustomerOrThrow();if(this.isAcceleratedCheckoutEnabled&&i.isGuest){const e=yield this.shouldRunAuthenticationFlow();t&&"function"==typeof t&&t(),e&&(yield this.braintreeFastlaneUtils.runPayPalAuthenticationFlowOrThrow(void 0,!0))}n()})}shouldRunAuthenticationFlow(){var e;return Ro(this,void 0,void 0,function*(){const t="braintreeacceleratedcheckout";try{yield this.paymentIntegrationService.loadPaymentMethod(t);const n=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(t);return(null===(e=n.initializationData)||void 0===e?void 0:e.shouldRunAcceleratedCheckout)||!1}catch(e){return!1}})}getValidPaymentMethodOrThrow(e){return Ro(this,void 0,void 0,function*(){let t=e;try{yield this.paymentIntegrationService.loadPaymentMethod(t)}catch(n){t="braintree"===e?"braintreeacceleratedcheckout":"braintree",yield this.paymentIntegrationService.loadPaymentMethod(t)}return this.paymentIntegrationService.getState().getPaymentMethodOrThrow(t)})}}var Bo=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class jo{constructor(e,t){this.paymentIntegrationService=e,this.braintreeIntegrationService=t}getDeviceSessionId(){return Bo(this,void 0,void 0,function*(){const e=this.paymentIntegrationService.getState().getCart();return this.braintreeIntegrationService.getSessionId(null==e?void 0:e.id)})}initializeBraintreeFastlaneOrThrow(e,t){return Bo(this,void 0,void 0,function*(){const n=this.paymentIntegrationService.getState(),i=n.getCart(),{clientToken:r,config:o}=n.getPaymentMethodOrThrow(e);if(!r)throw new pi(ui.MissingPaymentMethod);this.methodId=e,this.braintreeIntegrationService.initialize(r),this.braintreeFastlane=yield this.braintreeIntegrationService.getBraintreeFastlane(null==i?void 0:i.id,o.testMode,t)})}getBraintreeFastlaneOrThrow(){if(!this.braintreeFastlane)throw new Oi;return this.braintreeFastlane}getBraintreeFastlaneComponentOrThrow(){return this.getBraintreeFastlaneOrThrow().FastlaneCardComponent}runPayPalAuthenticationFlowOrThrow(e,t){var n;return Bo(this,void 0,void 0,function*(){try{const i=this.getMethodIdOrThrow(),r=this.getBraintreeFastlaneOrThrow(),{lookupCustomerByEmail:o,triggerAuthenticationFlow:a}=r.identity,s=this.paymentIntegrationService.getState(),d=s.getCartOrThrow(),c=s.getCustomer(),l=s.getBillingAddress(),{isFastlaneShippingOptionAutoSelectEnabled:u}=s.getPaymentMethodOrThrow(i).initializationData||{},h=e||(null==c?void 0:c.email)||(null==l?void 0:l.email)||"",{customerContextId:p}=yield o(h);if(!p)return yield this.paymentIntegrationService.updatePaymentProviderCustomer({authenticationState:qi.UNRECOGNIZED,addresses:[],instruments:[]}),void this.saveSessionIdToCookies(d.id);const{authenticationState:m,profileData:y}=yield a(p),g=(null===(n=null==y?void 0:y.shippingAddress)||void 0===n?void 0:n.phoneNumber)||"";if(m===qi.CANCELED)return yield this.paymentIntegrationService.updatePaymentProviderCustomer({authenticationState:m,addresses:[],instruments:[]}),void this.removeSessionIdFromCookies();const v=this.mapPayPalToBcAddress([y.shippingAddress],[g])||[],f=this.getPayPalBillingAddresses(y),S=f?this.mapPayPalToBcAddress([f],[g]):[],w=y.card?this.mapPayPalToBcInstrument(i,[y.card]):[],_=this.mergeShippingAndBillingAddresses(v,S);if(this.saveSessionIdToCookies(d.id),yield this.paymentIntegrationService.updatePaymentProviderCustomer({authenticationState:m,addresses:_,instruments:w}),S.length>0&&d.lineItems.physicalItems.length>0&&(yield this.paymentIntegrationService.updateBillingAddress(S[0])),S.length>0&&d.lineItems.digitalItems.length>0&&0===d.lineItems.physicalItems.length){const{firstName:e,lastName:t}=_[0],n=Object.assign(Object.assign({},S[0]),{firstName:e,lastName:t});yield this.paymentIntegrationService.updateBillingAddress(n)}v.length>0&&d.lineItems.physicalItems.length>0&&(yield this.paymentIntegrationService.updateShippingAddress(v[0]),t&&u&&(yield this.setShippingOption()))}catch(e){}})}getSessionIdFromCookies(){return $r.get("bc-fastlane-sessionId")||""}saveSessionIdToCookies(e){const t=new Date;t.setDate(t.getDate()+14),$r.set("bc-fastlane-sessionId",e,{expires:t,secure:!0})}removeSessionIdFromCookies(){$r.remove("bc-fastlane-sessionId")}mapPayPalToBcInstrument(e,t){if(t)return t.map(t=>{const{id:n,paymentSource:i}=t,{brand:r,expiry:o,lastDigits:a,binDetails:s}=i.card,[d,c]=o.split("-");return{bigpayToken:n,brand:r,defaultInstrument:!1,expiryMonth:c,expiryYear:d,iin:(null==s?void 0:s.bin)||"",last4:a,method:e,provider:e,trustedShippingAddress:!1,type:"card",untrustedShippingCardVerificationMode:xr.PAN}})}mapPayPalToBcAddress(e,t){if(!e)return[];const n=this.paymentIntegrationService.getState().getCountries()||[],i=e=>{const t=n.find(t=>t.code===e);return(null==t?void 0:t.name)||""};return e.map(e=>({id:Date.now(),type:"paypal-address",firstName:e.firstName||"",lastName:e.lastName||"",company:e.company||"",address1:e.streetAddress,address2:e.extendedAddress||"",city:e.locality,stateOrProvince:e.region,stateOrProvinceCode:e.region,country:i(e.countryCodeAlpha2),countryCode:e.countryCodeAlpha2,postalCode:e.postalCode,phone:t&&t[0]||"",customFields:[]}))}getPayPalBillingAddresses(e){const{card:t,name:n}=e||{};if(!t)return;const{firstName:i,lastName:r}=t.paymentSource.card.billingAddress,{firstName:o,lastName:a}=n||{},{shippingAddress:s}=e||{},d=Object.assign(Object.assign({},t.paymentSource.card.billingAddress),{firstName:i||o,lastName:r||a});return s&&A(this.normalizeAddress(d),this.normalizeAddress(s))?s:d}normalizeAddress(e){return G(e,["id"])}mergeShippingAndBillingAddresses(e,t){const n=t.filter(t=>!e.some(e=>A(this.normalizeAddress(e),this.normalizeAddress(t))));return[...e,...n]}getMethodIdOrThrow(){if(!this.methodId)throw new ki('Unable to proceed because "methodId" argument is not provided.');return this.methodId}setShippingOption(){var e;return Bo(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState().getConsignments()||[],n=(null===(e=t[0])||void 0===e?void 0:e.availableShippingOptions)||[],i=n.find(e=>e.isRecommended);if(i||n.length){const e=i||n[0];yield this.paymentIntegrationService.selectShippingOption(e.id)}})}}const Uo=Rt(e=>{const t=window,n=new Ri(e),i=new Ao(new tr(a(),t,n),t),r=new jo(e,i);return new Lo(e,r)},[{id:"braintreeacceleratedcheckout"},{id:"braintree"}]);var qo=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Vo{constructor(e,t,n){this.paymentIntegrationService=e,this.formPoster=t,this.braintreeSdk=n,this.buttonClassName="visa-checkout-wrapper",this.onError=V}initialize(e){return qo(this,void 0,void 0,function*(){const{braintreevisacheckout:t,methodId:n}=e;if(!n)throw new ki('Unable to proceed because "methodId" argument is not provided.');if(!t)throw new ki('Unable to proceed because "options.braintreevisacheckout" argument is not provided.');yield this.paymentIntegrationService.loadPaymentMethod(n);const i=this.paymentIntegrationService.getState(),r=i.getCheckoutOrThrow(),{clientToken:o,config:a}=i.getPaymentMethodOrThrow(n),s=i.getStoreConfigOrThrow();if(!o)throw new pi(ui.MissingPaymentMethod);this.braintreeSdk.initialize(o);const d=yield this.braintreeSdk.getBraintreeVisaCheckout(),c=yield this.braintreeSdk.getVisaCheckoutSdk(a.testMode),{container:l,onError:u}=t;this.onError=u||V;const h=d.createInitOptions({paymentRequest:{currencyCode:s.currency.code,subtotal:String(r.subtotal)},settings:{locale:s.storeProfile.storeLanguage,shipping:{collectShipping:!0}}}),p=this.createSignInButton(l,this.buttonClassName);yield c.init(h),c.on("payment.success",e=>this.tokenizePayment(d,e).then(()=>this.paymentIntegrationService.loadCheckout()).catch(e=>this.handleError(e))),c.on("payment.error",(e,t)=>this.handleError(t)),p.style.visibility="visible"})}deinitialize(){return qo(this,void 0,void 0,function*(){yield this.braintreeSdk.deinitialize()})}signIn(){throw new Ti('In order to sign in via VisaCheckout, the shopper must click on "Visa Checkout" button.')}signOut(e){return qo(this,void 0,void 0,function*(){return yield this.paymentIntegrationService.signOutCustomer(e),Promise.resolve()})}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}tokenizePayment(e,t){return qo(this,void 0,void 0,function*(){return Promise.all([e.tokenize(t),this.braintreeSdk.getDataCollectorOrThrow()]).then(([e,t])=>{const n=this.paymentIntegrationService.getState(),i=n.getShippingAddress(),r=n.getBillingAddress(),{shippingAddress:o=this.mapToVisaCheckoutAddress(i),billingAddress:a=this.mapToVisaCheckoutAddress(r)}=e;return this.postForm(Object.assign(Object.assign({},e),{shippingAddress:o,billingAddress:a}),t)})})}postForm(e,t){const{userData:n,billingAddress:i,shippingAddress:r,details:o}=e,{userEmail:a}=n,{deviceData:s}=t;return this.formPoster.postForm("/checkout.php",{payment_type:e.type,nonce:e.nonce,provider:"braintreevisacheckout",action:"set_external_checkout",device_data:s,card_information:JSON.stringify({type:o.cardType,number:o.lastTwo}),billing_address:JSON.stringify(this.getAddress(a,i)),shipping_address:JSON.stringify(this.getAddress(a,r))})}mapToVisaCheckoutAddress(e){return e?{firstName:e.firstName,lastName:e.lastName,phoneNumber:e.phone,streetAddress:e.address1,extendedAddress:e.address2,locality:e.city,region:e.stateOrProvinceCode,countryCode:e.countryCode,postalCode:e.postalCode}:{}}getAddress(e,t={}){return{email:e,first_name:t.firstName,last_name:t.lastName,phone_number:t.phoneNumber,address_line_1:t.streetAddress,address_line_2:t.extendedAddress,city:t.locality,state:t.region,country_code:t.countryCode,postal_code:t.postalCode}}createSignInButton(e,t){const n=document.querySelector(`#${e}`);if(!n)throw new Error("Unable to proceed because the provided container ID is not valid.");return this.insertVisaCheckoutButton(n,t)}insertVisaCheckoutButton(e,t){const n=document.createElement("div");return n.style.display="flex",n.style.flexDirection="column",n.style.visibility="hidden",n.style.width="max-content",n.className=t,n.innerHTML='\n <img\n alt="Visa Checkout"\n class="v-button"\n role="button"\n src="https://secure.checkout.visa.com/wallet-services-web/xo/button.png?acceptCanadianVisaDebit=false&cobrand=true&height=34&width=178"\n />\n <a class="v-learn v-learn-default" style="text-align: right; display: block; font-size: 10px; color: #003366;" href="#" data-locale="en_US">Tell Me More</a>',e.appendChild(n),n}handleError(e){if("function"!=typeof this.onError)throw e;this.onError(e)}}const Go=Rt(e=>{const t=window,n=new Ri(e),i=new Zi(new tr(a(),t,n));return new Vo(e,Ee(),i)},[{id:"braintreevisacheckout"}]);class Ho{constructor(e){if(!e)throw new Error("Currency settings missing");const{decimalPlaces:t,symbolLocation:n,symbol:i,thousandsSeparator:r,decimalSeparator:o}=e;if("string"!=typeof n||"string"!=typeof i||"string"!=typeof r||"string"!=typeof o||"string"!=typeof t)throw new ki("Invalid currency settings provided");this._decimalPlaces=parseInt(t,10),this._symbolLocation=n,this._symbol=i,this._thousandsSeparator=r,this._decimalSeparator=o}format(e){if("number"!=typeof e)throw new ki("Invalid amount provided");const t=this._formatNumber(e),n=this._formatCurrency(t);return e<0?`-${n}`:n}_formatNumber(e){const t=Math.abs(e),[n,i=""]=this._toFixed(t,this._decimalPlaces).split("."),r=n.replace(/\B(?=(\d{3})+(?!\d))/g,this._thousandsSeparator);return this._decimalPlaces<1?r:[r,i].join(this._decimalSeparator)}_formatCurrency(e){return"left"===this._symbolLocation.toLowerCase()?`${this._symbol}${e}`:`${e}${this._symbol}`}_toFixed(e,t){return(+`${Math.round(+`${e}e${t}`)}e${-t}`).toFixed(t)}}let $o=class{constructor(e){this._storeConfig=e,this._customerFormatter=new Ho(this._storeConfig.shopperCurrency),this._storeFormatter=new Ho(this._storeConfig.currency)}toCustomerCurrency(e){const t=this._storeConfig.shopperCurrency.exchangeRate;return this._customerFormatter.format(e*t)}toStoreCurrency(e){return this._storeFormatter.format(e)}};$o=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([Kn],$o);const Wo=$o,Yo=(e,t)=>!!e&&(!!e.lineItems.physicalItems.some(e=>e.isShippingRequired)||!(!t||!e.lineItems.customItems)&&e.lineItems.customItems.length>0);var Ko,Jo,Zo,Qo,Xo,ea,ta,na,ia;function ra(e){return e in ea}!function(e){e.AUTHORIZE="authorize",e.CAPTURE="capture"}(Ko||(Ko={})),function(e){e.paypal="paypal",e.checkout="checkout",e.buynow="buynow",e.pay="pay",e.installment="installment"}(Jo||(Jo={})),function(e){e.gold="gold",e.blue="blue",e.silver="silver",e.black="black",e.white="white"}(Zo||(Zo={})),function(e){e.pill="pill",e.rect="rect"}(Qo||(Qo={})),function(e){e.ESTIMATED="ESTIMATED",e.FINAL="FINAL",e.NOT_CURRENTLY_KNOWN="NOT_CURRENTLY_KNOWN"}(Xo||(Xo={})),function(e){e.AMEX="AMEX",e.DISCOVER="DISCOVER",e.INTERAC="INTERAC",e.JCB="JCB",e.MC="MASTERCARD",e.VISA="VISA"}(ea||(ea={})),function(e){e.OFFER="OFFER",e.PAYMENT_AUTHORIZATION="PAYMENT_AUTHORIZATION",e.SHIPPING_ADDRESS="SHIPPING_ADDRESS",e.SHIPPING_OPTION="SHIPPING_OPTION"}(ta||(ta={})),function(e){e.OFFER_INVALID="OFFER_INVALID",e.PAYMENT_DATA_INVALID="PAYMENT_DATA_INVALID",e.SHIPPING_ADDRESS_INVALID="SHIPPING_ADDRESS_INVALID",e.SHIPPING_ADDRESS_UNSERVICEABLE="SHIPPING_ADDRESS_UNSERVICEABLE",e.SHIPPING_OPTION_INVALID="SHIPPING_OPTION_INVALID",e.OTHER_ERROR="OTHER_ERROR"}(na||(na={})),function(e){e.INITIALIZE="INITIALIZE",e.SHIPPING_OPTION="SHIPPING_OPTION",e.SHIPPING_ADDRESS="SHIPPING_ADDRESS",e.OFFER="OFFER"}(ia||(ia={}));var oa,aa=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class sa{constructor(e,t){this._gatewayIdentifier=e,this._paymentIntegrationService=t,this._isBuyNowFlow=!1}mapToShippingAddressRequestBody({shippingAddress:e}){if(!e)return;const{company:t="",phone:n=""}=this._paymentIntegrationService.getState().getShippingAddress()||{};return this._mapToAddressRequestBody(e,t,n)}mapToBillingAddressRequestBody(e){const{billingAddress:t}=e.paymentMethodData.info;if(!t)return;const{company:n="",phone:i="",email:r,customFields:o=[]}=this._paymentIntegrationService.getState().getBillingAddress()||{};return Object.assign(Object.assign({},this._mapToAddressRequestBody(t,n,i,o)),{email:r||e.email})}mapToExternalCheckoutData(e){var t;const{paymentMethodData:{tokenizationData:{token:n},info:{cardNetwork:i,cardDetails:r}}}=e;if(!n)throw new pi(ui.MissingPaymentToken);return Promise.resolve(Object.assign({nonce:n,card_information:{type:i,number:r}},this._isBuyNowFlow&&{cart_id:null===(t=this._paymentIntegrationService.getState().getCart())||void 0===t?void 0:t.id}))}getRequiredData(){var e;return aa(this,void 0,void 0,function*(){const t={emailRequired:!0};if(!this._isShippingAddressRequired())return t;const n=yield this._paymentIntegrationService.loadShippingCountries(),i=null===(e=n.getShippingCountries())||void 0===e?void 0:e.map(e=>e.code);return Object.assign(Object.assign({},t),{shippingAddressRequired:!0,shippingAddressParameters:Object.assign({phoneNumberRequired:!0},i&&{allowedCountryCodes:i}),shippingOptionRequired:!0})})}getCallbackIntents(){return this._isShippingAddressRequired()?[ta.OFFER,ta.SHIPPING_ADDRESS,ta.SHIPPING_OPTION]:[ta.OFFER]}getCallbackTriggers(){const e=this._paymentIntegrationService.getState().getStoreConfigOrThrow().checkoutSettings.features["PI-2875.googlepay_coupons_handling"]||!1;return{availableTriggers:[ia.INITIALIZE,ia.SHIPPING_ADDRESS,ia.SHIPPING_OPTION,...e?[ia.OFFER]:[]],initializationTrigger:[ia.INITIALIZE],addressChangeTriggers:[ia.INITIALIZE,ia.SHIPPING_ADDRESS],shippingOptionsChangeTriggers:[ia.SHIPPING_OPTION],offerChangeTriggers:e?[ia.OFFER]:[]}}getNonce(e){var t;const n=null===(t=this._paymentIntegrationService.getState().getPaymentMethodOrThrow(e).initializationData)||void 0===t?void 0:t.nonce;if(!n)throw new pi(ui.MissingPaymentToken);return Promise.resolve(n)}extraPaymentData(){return Promise.resolve(void 0)}getMerchantInfo(){const{googleMerchantName:e,googleMerchantId:t,platformToken:n}=this.getGooglePayInitializationData();return{merchantName:e,merchantId:t,authJwt:n}}getTransactionInfo(){let e;if(this._isBuyNowFlow)e=this._getCurrencyCodeOrThrow();else{const{getCartOrThrow:t}=this._paymentIntegrationService.getState();e=t().currency.code}const t=this.getGooglePayInitializationData().storeCountry;return Object.assign(Object.assign({},t&&{countryCode:t}),{currencyCode:e,totalPriceStatus:Xo.ESTIMATED,totalPrice:"0"})}getPaymentGatewayParameters(){const e=this.getGooglePayInitializationData().gatewayMerchantId;if(!e)throw new ki("Unable to proceed, gatewayMerchantId is missing.");return{gateway:this._gatewayIdentifier,gatewayMerchantId:e}}getCardParameters(){return{allowedAuthMethods:["PAN_ONLY","CRYPTOGRAM_3DS"],allowedCardNetworks:this.getPaymentMethod().supportedCards.filter(ra).map(e=>ea[e]),billingAddressRequired:!0,billingAddressParameters:{format:"FULL",phoneNumberRequired:!0}}}initialize(e,t,n){return this._getPaymentMethodFn=e,this._isBuyNowFlow=Boolean(t),this._currencyCode=n,this._isBuyNowFlow&&this._getCurrencyCodeOrThrow(),Promise.resolve()}handleShippingAddressChange(e){var t,n,i,r;return aa(this,void 0,void 0,function*(){e&&(e.name=e.name||"",e.address1=e.address1||"");const o=this.mapToShippingAddressRequestBody({shippingAddress:e});o&&(yield this._paymentIntegrationService.updateShippingAddress(o));const a=this._paymentIntegrationService.getState(),s=a.getConsignments();if(!(null==s?void 0:s[0]))return;const d=s[0],c=a.getStoreConfigOrThrow();this._currencyService||(this._currencyService=new Wo(c));const l=(d.availableShippingOptions||[]).map(this._getGooglePayShippingOption.bind(this)),u=null===(t=d.availableShippingOptions)||void 0===t?void 0:t.find(e=>e.isRecommended);if(l.length){const e=(null===(n=d.selectedShippingOption)||void 0===n?void 0:n.id)||(null==u?void 0:u.id)||(null===(i=l[0])||void 0===i?void 0:i.id);return!(null===(r=d.selectedShippingOption)||void 0===r?void 0:r.id)&&l[0]&&(yield this.handleShippingOptionChange((null==u?void 0:u.id)||l[0].id)),{defaultSelectedOptionId:e,shippingOptions:l}}})}handleShippingOptionChange(e){return aa(this,void 0,void 0,function*(){if("shipping_option_unselected"!==e)return this._paymentIntegrationService.selectShippingOption(e)})}getTotalPrice(){const{getCheckoutOrThrow:e,getCartOrThrow:t}=this._paymentIntegrationService.getState(),{decimalPlaces:n}=t().currency;return J(e().outstandingBalance,n).toFixed(n)}handleCoupons(e){return aa(this,void 0,void 0,function*(){const{redemptionCodes:t=[]}=e,{offers:n}=this.getAppliedCoupons();let i;return yield t.reduce((e,t)=>aa(this,void 0,void 0,function*(){if(yield e,n.some(({redemptionCode:e})=>e===t))return;const r=yield this.applyCoupon(t);r&&(i=r)}),Promise.resolve()),yield n.reduce((e,n)=>aa(this,void 0,void 0,function*(){yield e,t.includes(n.redemptionCode)||(yield this._paymentIntegrationService.removeCoupon(n.redemptionCode))}),Promise.resolve()),{newOfferInfo:this.getAppliedCoupons(),error:i}})}getAppliedCoupons(){const e=this._paymentIntegrationService.getState(),{coupons:t}=e.getCheckout()||{};return{offers:(t||[]).map(e=>{const{displayName:t,code:n}=e;return{redemptionCode:n,description:t}})}}applyCoupon(e){return aa(this,void 0,void 0,function*(){let t;try{yield this._paymentIntegrationService.applyCoupon(e)}catch(e){return e instanceof Error&&(t={reason:na.OFFER_INVALID,message:e.message,intent:ia.OFFER}),t}})}getGooglePayInitializationData(){return yi(this.getPaymentMethod().initializationData,()=>new ki("Missing initialization data."))}getPaymentMethod(){return yi(this._getPaymentMethodFn,()=>new gi(hi.PaymentNotInitialized))()}getGatewayIdentifier(){return this._gatewayIdentifier}setGatewayIdentifier(e){this._gatewayIdentifier=e||this.getGatewayIdentifier()}_isShippingAddressRequired(){const{getCartOrThrow:e,getStoreConfig:t,getShippingAddress:n}=this._paymentIntegrationService.getState();return void 0===n()&&Yo(e(),t())}_mapToAddressRequestBody(e,t,n,i){const{name:r,address1:o,address2:a,address3:s,locality:d,administrativeArea:c,countryCode:l,postalCode:u,phoneNumber:h}=e,[p,m]=this._getFirstAndLastName(r);return{firstName:p,lastName:m,company:t,address1:o,address2:`${a} ${s}`.trim(),city:d||c,stateOrProvince:c,stateOrProvinceCode:c,countryCode:l,postalCode:u,phone:h||n,customFields:i||[]}}_getFirstAndLastName(e){const t=e.split(" ");return 1===t.length?[e,""]:[t.slice(0,-1).join(" "),t[t.length-1]]}_getCurrencyCodeOrThrow(){return yi(this._currencyCode,()=>new ki('Unable to initialize payment because "options.currencyCode" argument is not provided.'))}_getGooglePayShippingOption({id:e,cost:t,description:n,additionalDescription:i}){var r;const o=null===(r=this._currencyService)||void 0===r?void 0:r.toCustomerCurrency(t);return this._paymentIntegrationService.getState().getStoreConfigOrThrow().checkoutSettings.features["PI-3540.googlepay_new_shipping_options_description"]?{id:e,label:`${o||t} ${n}`,description:i}:{id:e,label:n,description:o||t}}}function da(e){return"object"==typeof e&&null!==e&&"statusCode"in e}function ca(e){return Object.values(oa).includes(e)}!function(e){e.ADYEN_V2="googlepayadyenv2",e.ADYEN_V3="googlepayadyenv3",e.AUTHORIZE_NET="googlepayauthorizenet",e.BNZ="googlepaybnz",e.BRAINTREE="googlepaybraintree",e.PAYPAL_COMMERCE="googlepaypaypalcommerce",e.BIGCOMMERCE_PAYMENTS="googlepay_bigcommerce_payments",e.CHECKOUT_COM="googlepaycheckoutcom",e.CYBERSOURCE_V2="googlepaycybersourcev2",e.ORBITAL="googlepayorbital",e.STRIPE="googlepaystripe",e.STRIPE_UPE="googlepaystripeupe",e.STRIPE_OCS="googlepaystripeocs",e.WORLDPAY_ACCESS="googlepayworldpayaccess",e.TD_ONLINE_MART="googlepaytdonlinemart"}(oa||(oa={}));var la=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class ua{constructor(e,t){this._paymentIntegrationService=e,this._googlePayPaymentProcessor=t}initialize(e){var t;return la(this,void 0,void 0,function*(){if(!(null==e?void 0:e.methodId)||!ca(e.methodId))throw new ki('Unable to proceed because "methodId" is not a valid key.');this._methodId=e.methodId;const n=e[this._getMethodId()];if(!n)throw new ki("Unable to proceed without valid options.");let i,r=this._paymentIntegrationService.getState();try{i=r.getPaymentMethodOrThrow(this._getMethodId())}catch(e){r=yield this._paymentIntegrationService.loadPaymentMethod(this._getMethodId()),i=r.getPaymentMethodOrThrow(this._getMethodId())}try{yield this._googlePayPaymentProcessor.initialize(()=>i,this._getGooglePayClientOptions(null===(t=i.initializationData)||void 0===t?void 0:t.storeCountry))}catch(e){return}this._addPaymentButton(n)})}signIn(){return Promise.reject(new Ti('In order to sign in via Google Pay, the shopper must click on "Google Pay" button.'))}signOut(){var e;return la(this,void 0,void 0,function*(){const t=null===(e=this._paymentIntegrationService.getState().getPaymentId())||void 0===e?void 0:e.providerId;t&&(yield this._googlePayPaymentProcessor.signOut(t))})}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}deinitialize(){var e;return null===(e=this._paymentButton)||void 0===e||e.remove(),this._paymentButton=void 0,this._methodId=void 0,Promise.resolve()}_getGooglePayClientOptions(e){return{paymentDataCallbacks:{onPaymentDataChanged:({callbackTrigger:t,shippingAddress:n,shippingOptionData:i,offerData:r})=>la(this,void 0,void 0,function*(){const{availableTriggers:o,addressChangeTriggers:a,shippingOptionsChangeTriggers:s,offerChangeTriggers:d}=this._googlePayPaymentProcessor.getCallbackTriggers();if(!o.includes(t))return;const c=a.includes(t)?yield this._googlePayPaymentProcessor.handleShippingAddressChange(n):void 0;s.includes(t)&&(yield this._googlePayPaymentProcessor.handleShippingOptionChange(i.id));const{newOfferInfo:l,error:u}=d.includes(t)?yield this._googlePayPaymentProcessor.handleCoupons(r):{},h=u;yield this._paymentIntegrationService.loadCheckout();const p=this._googlePayPaymentProcessor.getTotalPrice(),{code:m}=this._paymentIntegrationService.getState().getCartOrThrow().currency;return Object.assign(Object.assign(Object.assign({newTransactionInfo:Object.assign(Object.assign({},e&&{countryCode:e}),{currencyCode:m,totalPriceStatus:Xo.FINAL,totalPrice:p})},c&&{newShippingOptionParameters:c}),l&&{newOfferInfo:l}),h&&{error:h})})}}}_addPaymentButton({container:e,buttonColor:t,buttonType:n,onClick:i,onError:r}){var o;this._paymentButton=null!==(o=this._paymentButton)&&void 0!==o?o:this._googlePayPaymentProcessor.addPaymentButton(e,{buttonColor:null!=t?t:"default",buttonType:null!=n?n:"plain",onClick:this._handleClick(r,i)})}_handleClick(e,t){return n=>la(this,void 0,void 0,function*(){n.preventDefault(),t&&"function"==typeof t&&t();try{yield this._googlePayPaymentProcessor.initializeWidget(),yield this._interactWithPaymentSheet()}catch(t){let n=t;if(da(t)){if("CANCELED"===t.statusCode)throw new nr;n=new so(JSON.stringify(t))}throw null==e||e(new so("An error occurred while requesting your Google Pay payment details.")),n}})}_interactWithPaymentSheet(){return la(this,void 0,void 0,function*(){const e=yield this._googlePayPaymentProcessor.showPaymentSheet(),t=this._googlePayPaymentProcessor.mapToBillingAddressRequestBody(e),n=this._googlePayPaymentProcessor.mapToShippingAddressRequestBody(e),i="/embedded-checkout"===window.location.pathname?this._paymentIntegrationService.getState().getStoreConfigOrThrow().links.siteLink:void 0;t&&(yield this._paymentIntegrationService.updateBillingAddress(t)),n&&(yield this._paymentIntegrationService.updateShippingAddress(n)),yield this._googlePayPaymentProcessor.setExternalCheckoutForm(this._getMethodId(),e,i)})}_getMethodId(){return yi(this._methodId,()=>new gi(hi.PaymentNotInitialized))}}var ha=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class pa{constructor(e,t,n,i){this._scriptLoader=e,this._gateway=t,this._requestSender=n,this._formPoster=i,this._baseRequest={apiVersion:2,apiVersionMinor:0}}initialize(e,t,n,i){return ha(this,void 0,void 0,function*(){this._paymentsClient=yield this._scriptLoader.getGooglePaymentsClient(e().config.testMode,t),yield this._gateway.initialize(e,n,i),this._buildButtonPayloads()})}initializeWidget(){return ha(this,void 0,void 0,function*(){yield this._buildWidgetPayloads(),yield this._determineReadinessToPay(),this._prefetchGooglePaymentData()})}getNonce(e){return this._gateway.getNonce(e)}extraPaymentData(){return ha(this,void 0,void 0,function*(){return this._gateway.extraPaymentData()})}addPaymentButton(e,t){const n=document.querySelector(`#${e}`);if(!n)return;const i=this._getPaymentsClient().createButton(Object.assign(Object.assign({},t),{allowedPaymentMethods:[this._getBaseCardPaymentMethod()]}));return n.appendChild(i)}showPaymentSheet(){return ha(this,void 0,void 0,function*(){const e=this._getPaymentDataRequest();return this._getPaymentsClient().loadPaymentData(e)})}setExternalCheckoutXhr(e,t){return ha(this,void 0,void 0,function*(){return this._setExternalCheckout(e,t)})}setExternalCheckoutForm(e,t,n){return ha(this,void 0,void 0,function*(){return this._setExternalCheckout(e,t,!0,n)})}mapToBillingAddressRequestBody(e){return this._gateway.mapToBillingAddressRequestBody(e)}mapToShippingAddressRequestBody(e){return this._gateway.mapToShippingAddressRequestBody(e)}processAdditionalAction(e,t){return"processAdditionalAction"in this._gateway?this._gateway.processAdditionalAction(e,t):Promise.reject(e)}signOut(e){return ha(this,void 0,void 0,function*(){yield this._requestSender.get(`/remote-checkout/${e}/signout`)})}getCallbackTriggers(){return this._gateway.getCallbackTriggers()}handleShippingAddressChange(e){return ha(this,void 0,void 0,function*(){return this._gateway.handleShippingAddressChange(e)})}handleShippingOptionChange(e){return ha(this,void 0,void 0,function*(){yield this._gateway.handleShippingOptionChange(e)})}handleCoupons(e){return ha(this,void 0,void 0,function*(){return this._gateway.handleCoupons(e)})}getTotalPrice(){return this._gateway.getTotalPrice()}_setExternalCheckout(e,t,n=!1,i){return ha(this,void 0,void 0,function*(){const r="/checkout.php",o=Object.assign({action:"set_external_checkout",provider:e},yield this._gateway.mapToExternalCheckoutData(t));if(n)return new Promise(e=>{this._formPoster.postForm(i?`${i}/checkout`:r,Object.assign(Object.assign({},o),{card_information:JSON.stringify(o.card_information)}),e)});yield this._requestSender.post(r,{headers:Object.assign({Accept:"text/html","Content-Type":"application/x-www-form-urlencoded"},Pr),body:o})})}_prefetchGooglePaymentData(){const e=this._getPaymentDataRequest();e.transactionInfo=this._gateway.getTransactionInfo(),this._getPaymentsClient().prefetchPaymentData(e)}_determineReadinessToPay(){return ha(this,void 0,void 0,function*(){try{const{result:e}=yield this._getPaymentsClient().isReadyToPay(this._getIsReadyToPayRequest());if(!1===e)throw new so("Google Pay is not supported by the current device and browser, please try another payment method.")}catch(e){if(e instanceof so)throw e;throw new so}})}_buildButtonPayloads(){this._baseCardPaymentMethod={type:"CARD",parameters:this._gateway.getCardParameters()}}_buildWidgetPayloads(){return ha(this,void 0,void 0,function*(){const e=this._getBaseCardPaymentMethod();this._cardPaymentMethod=Object.assign(Object.assign({},e),{tokenizationSpecification:{type:"PAYMENT_GATEWAY",parameters:yield this._gateway.getPaymentGatewayParameters()}}),this._paymentDataRequest=Object.assign(Object.assign(Object.assign(Object.assign({},this._baseRequest),{allowedPaymentMethods:[this._cardPaymentMethod],transactionInfo:this._gateway.getTransactionInfo(),merchantInfo:this._gateway.getMerchantInfo()}),yield this._gateway.getRequiredData()),{callbackIntents:this._gateway.getCallbackIntents(),offerInfo:this._gateway.getAppliedCoupons()}),this._isReadyToPayRequest=Object.assign(Object.assign({},this._baseRequest),{allowedPaymentMethods:[e]})})}_getBaseCardPaymentMethod(){return this._getOrThrow(this._baseCardPaymentMethod)}_getPaymentDataRequest(){return this._getOrThrow(this._paymentDataRequest)}_getIsReadyToPayRequest(){return this._getOrThrow(this._isReadyToPayRequest)}_getPaymentsClient(){return this._getOrThrow(this._paymentsClient)}_getOrThrow(e){return yi(e,()=>new gi(hi.PaymentNotInitialized))}}class ma{constructor(e){this._scriptLoader=e,this._window=window}getGooglePaymentsClient(e=!1,t){return n=this,i=void 0,o=function*(){if(yield this._scriptLoader.loadScript("https://pay.google.com/gp/p/js/pay.js"),!this._window.google)throw new Oi;return void 0===this._paymentsClient&&(this._paymentsClient=new this._window.google.payments.api.PaymentsClient(Object.assign({environment:e?"TEST":"PRODUCTION"},null!=t?t:{}))),this._paymentsClient},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}}function ya(){return new ma(a())}const ga=Rt(e=>{const t=n();return new ua(e,new pa(ya(),new sa("adyen",e),t,Ee()))},[{id:"googlepayadyenv2"}]),va=Rt(e=>{const t=n();return new ua(e,new pa(ya(),new sa("adyen",e),t,Ee()))},[{id:"googlepayadyenv3"}]);class fa extends sa{constructor(e){super("authorizenet",e)}mapToExternalCheckoutData(e){const t=Object.create(null,{mapToExternalCheckoutData:{get:()=>super.mapToExternalCheckoutData}});return n=this,i=void 0,o=function*(){const n=yield t.mapToExternalCheckoutData.call(this,e);return n.nonce=btoa(n.nonce),n},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}getPaymentGatewayParameters(){const e=this.getGooglePayInitializationData();return function(e){if(!function(e){return"paymentGatewayId"in e}(e))throw new pi(ui.MissingPaymentMethod)}(e),{gateway:this.getGatewayIdentifier(),gatewayMerchantId:e.paymentGatewayId}}}const Sa=Rt(e=>new ua(e,new pa(ya(),new fa(e),n(),Ee())),[{id:"googlepayauthorizenet"}]),wa=e=>"object"==typeof e&&null!==e&&"body"in e;function _a(e){if(!function(e){return"checkoutcomkey"in e}(e))throw new pi(ui.MissingPaymentMethod)}var Ca=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Ia extends sa{constructor(e,t){super("checkoutltd",e),this._requestSender=t}processAdditionalAction(e){return new Promise((t,n)=>{if(wa(e)&&function(e){var t;if("object"!=typeof e||null===e)return!1;const n=e;return"string"==typeof(null===(t=n.three_ds_result)||void 0===t?void 0:t.acs_url)&&"string"==typeof n.three_ds_result.code}(e.body)&&"three_d_secure_required"===e.body.three_ds_result.code)return window.location.assign(e.body.three_ds_result.acs_url);n(e)})}mapToExternalCheckoutData(e){const t=Object.create(null,{mapToExternalCheckoutData:{get:()=>super.mapToExternalCheckoutData}});return Ca(this,void 0,void 0,function*(){const n=yield t.mapToExternalCheckoutData.call(this,e);let i;try{i=JSON.parse(n.nonce)}catch(e){throw new ki("Unable to parse response from Google Pay.")}return function(e){if(!function(e){return"object"==typeof e&&null!==e&&"protocolVersion"in e&&"signature"in e&&"signedMessage"in e}(e))throw new pi(ui.MissingPaymentToken)}(i),n.nonce=yield this._tokenize(i),n})}getPaymentGatewayParameters(){const e=this.getGooglePayInitializationData();return _a(e),{gateway:this.getGatewayIdentifier(),gatewayMerchantId:e.checkoutcomkey}}_tokenize(e){return Ca(this,void 0,void 0,function*(){const t=this.getPaymentMethod().config.testMode?"https://api.sandbox.checkout.com/tokens":"https://api.checkout.com/tokens",n=this.getGooglePayInitializationData();_a(n);const{body:i}=yield this._requestSender.post(t,{credentials:!1,body:{type:"googlepay",token_data:e},headers:{Authorization:n.checkoutcomkey,"Content-Type":br.Json,"X-XSRF-TOKEN":null}});return i.token})}}const ba=Rt(e=>{const t=n();return new ua(e,new pa(ya(),new Ia(e,t),t,Ee()))},[{id:"googlepaycheckoutcom"}]);class Pa extends sa{constructor(e){super("cybersource",e)}mapToExternalCheckoutData(e){const t=Object.create(null,{mapToExternalCheckoutData:{get:()=>super.mapToExternalCheckoutData}});return n=this,i=void 0,o=function*(){const n=yield t.mapToExternalCheckoutData.call(this,e);return n.nonce=btoa(n.nonce),n},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}}const Oa=Rt(e=>new ua(e,new pa(ya(),new Pa(e),n(),Ee())),[{id:"googlepaycybersourcev2"}]),Ea=Rt(e=>new ua(e,new pa(ya(),new Pa(e),n(),Ee())),[{id:"googlepaybnz"}]);class Aa extends sa{constructor(e){super("chase",e)}mapToExternalCheckoutData(e){const t=Object.create(null,{mapToExternalCheckoutData:{get:()=>super.mapToExternalCheckoutData}});return n=this,i=void 0,o=function*(){const n=yield t.mapToExternalCheckoutData.call(this,e);return n.nonce=btoa(n.nonce),n},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}}const ka=Rt(e=>new ua(e,new pa(ya(),new Aa(e),n(),Ee())),[{id:"googlepayorbital"}]);function Ta(e){if(!function(e){return"stripeConnectedAccount"in e&&"stripePublishableKey"in e&&"stripeVersion"in e}(e))throw new pi(ui.MissingPaymentMethod)}var Da=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Ma extends sa{constructor(e,t){super("stripe",e),this.paymentIntegrationService=e,this.scriptLoader=t}mapToExternalCheckoutData(e){const t=Object.create(null,{mapToExternalCheckoutData:{get:()=>super.mapToExternalCheckoutData}});return Da(this,void 0,void 0,function*(){const n=yield t.mapToExternalCheckoutData.call(this,e);let i;try{i=JSON.parse(n.nonce)}catch(e){throw new ki("Unable to parse response from Google Pay.")}return function(e){if(!function(e){return"object"==typeof e&&null!==e&&"id"in e}(e))throw new pi(ui.MissingPaymentToken)}(i),n.nonce=i.id,n})}getPaymentGatewayParameters(){const e=this.getGooglePayInitializationData();Ta(e);const{stripeVersion:t,stripePublishableKey:n,stripeConnectedAccount:i}=e;return{gateway:this.getGatewayIdentifier(),"stripe:version":t,"stripe:publishableKey":`${n}/${i}`}}processAdditionalAction(e,t){var n,i;return Da(this,void 0,void 0,function*(){if(!t)throw new fo(["payment"]);if(!wa(e)||("object"!=typeof(r=e.body)||null===r||!("three_ds_result"in r)||!("errors"in r)))throw e;var r;const o=this.paymentIntegrationService.getState(),a=null===(n=o.getStoreConfig())||void 0===n?void 0:n.checkoutSettings.features["STRIPE-476.enable_stripe_googlepay_3ds"];if(Z(e.body.errors,{code:"three_d_secure_required"})&&a){const n=this.getGooglePayInitializationData();Ta(n);const{stripePublishableKey:r,stripeConnectedAccount:o}=n;this.stripeUPEClient=yield this.loadStripeJs(r,o);const a=e.body.three_ds_result.token;let s,d=!1;try{s=yield this.stripeUPEClient.confirmCardPayment(a)}catch(e){try{s=yield this.stripeUPEClient.retrievePaymentIntent(a)}catch(e){d=!0}}if(null==s?void 0:s.error){if(this._throwDisplayableStripeError(s.error),this._isCancellationError(s.error))throw new nr;throw new so}if(!(null==s?void 0:s.paymentIntent)&&!d)throw new hr;return this.paymentIntegrationService.submitPayment({methodId:t,paymentData:{nonce:(null===(i=null==s?void 0:s.paymentIntent)||void 0===i?void 0:i.id)||a}})}throw e})}loadStripeJs(e,t){return Da(this,void 0,void 0,function*(){return this.stripeUPEClient?this.stripeUPEClient:this.scriptLoader.getStripeClient(e,t)})}_isCancellationError(e){var t,n;return e&&-1!==(null===(n=null===(t=e.payment_intent.last_payment_error)||void 0===t?void 0:t.message)||void 0===n?void 0:n.indexOf("canceled"))}_throwDisplayableStripeError(e){if(P(["card_error","invalid_request_error","validation_error"],e.type))throw new Error(e.message)}}var za=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Na{constructor(e,t=window){this.scriptLoader=e,this.stripeWindow=t}getStripeClient(e,t,n){return za(this,void 0,void 0,function*(){let i=this.stripeWindow.bcStripeClient;return i||(i=(yield this.load())(e,{stripeAccount:t,locale:n,betas:["payment_element_beta_2","alipay_pm_beta_1","link_default_integration_beta_1","shipping_address_element_beta_1","address_element_beta_1"],apiVersion:"2020-03-02;alipay_beta=v1;link_beta=v1"}),Object.assign(this.stripeWindow,{bcStripeClient:i})),i})}load(){return za(this,void 0,void 0,function*(){if(this.stripeWindow.Stripe||(yield this.scriptLoader.loadScript("https://js.stripe.com/v3/")),!this.stripeWindow.Stripe)throw new Oi;return this.stripeWindow.Stripe})}}const xa=Rt(e=>new ua(e,new pa(ya(),new Ma(e,new Na(a())),n(),Ee())),[{id:"googlepaystripe"},{id:"googlepaystripeocs"}]),Fa=Rt(e=>new ua(e,new pa(ya(),new Ma(e,new Na(a())),n(),Ee())),[{id:"googlepaystripeupe"}]);class Ra extends sa{constructor(e){super("worldpay",e)}mapToExternalCheckoutData(e){const t=Object.create(null,{mapToExternalCheckoutData:{get:()=>super.mapToExternalCheckoutData}});return n=this,i=void 0,o=function*(){const n=yield t.mapToExternalCheckoutData.call(this,e);return n.nonce=btoa(n.nonce),n},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}}const La=Rt(e=>new ua(e,new pa(ya(),new Ra(e),n(),Ee())),[{id:"googlepayworldpayaccess"}]);var Ba=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class ja extends sa{constructor(e,t){super("braintree",e),this._braintreeSdk=t,this._methodId=oa.BRAINTREE,this._service=e}initialize(e,t,n){const i=Object.create(null,{initialize:{get:()=>super.initialize},getPaymentMethod:{get:()=>super.getPaymentMethod}});return Ba(this,void 0,void 0,function*(){yield i.initialize.call(this,e,t,n);let r=i.getPaymentMethod.call(this);if(r.clientToken||(r=(yield this._service.loadPaymentMethod(this._methodId)).getPaymentMethodOrThrow(this._methodId)),!r.clientToken||!r.initializationData)throw new pi(ui.MissingPaymentMethod);return this._braintreeSdk.initialize(r.clientToken),this._braintreeGooglePayment=yield this._braintreeSdk.getBraintreeGooglePayment(),Promise.resolve()})}getNonce(e){const t=Object.create(null,{getNonce:{get:()=>super.getNonce},getPaymentMethod:{get:()=>super.getPaymentMethod}});var n;return Ba(this,void 0,void 0,function*(){const i=yield t.getNonce.call(this,e),{clientToken:r,initializationData:o}=t.getPaymentMethod.call(this);if(!r||!o||!(null===(n=o.card_information)||void 0===n?void 0:n.bin))throw new pi(ui.MissingPaymentMethod);const{isThreeDSecureEnabled:a,card_information:{bin:s,isNetworkTokenized:d}}=o;if(a&&!d){const e=yield this._braintreeSdk.getBraintreeThreeDS(),{orderAmount:t}=this._service.getState().getOrderOrThrow();return(yield this._braintreePresent3DSChallenge(e,t,i,s)).nonce}return i})}extraPaymentData(){return Ba(this,void 0,void 0,function*(){return{deviceSessionId:yield this._getBraintreeDeviceData()}})}mapToExternalCheckoutData(e){const t=Object.create(null,{mapToExternalCheckoutData:{get:()=>super.mapToExternalCheckoutData}});return Ba(this,void 0,void 0,function*(){const n=yield t.mapToExternalCheckoutData.call(this,e);let i;try{i=JSON.parse(n.nonce)}catch(e){throw new ki("Unable to parse response from Google Pay.")}return function(e){if(!function(e){return"object"==typeof e&&null!==e&&"androidPayCards"in e}(e))throw new pi(ui.MissingPaymentToken)}(i),n.nonce=i.androidPayCards[0].nonce,n.card_information.bin=i.androidPayCards[0].details.bin,n.card_information.isNetworkTokenized=i.androidPayCards[0].details.isNetworkTokenized,n})}getCardParameters(){return super.getCardParameters()}getPaymentGatewayParameters(){const e=Object.create(null,{getMerchantInfo:{get:()=>super.getMerchantInfo},getTransactionInfo:{get:()=>super.getTransactionInfo},getRequiredData:{get:()=>super.getRequiredData}});return Ba(this,void 0,void 0,function*(){return this.getBraintreeGooglePayment().createPaymentDataRequest(Object.assign({merchantInfo:e.getMerchantInfo.call(this),transactionInfo:e.getTransactionInfo.call(this),cardRequirements:{billingAddressRequired:!0,billingAddressFormat:"FULL"}},yield e.getRequiredData.call(this))).paymentMethodTokenizationParameters.parameters})}getBraintreeGooglePayment(){if(!this._braintreeGooglePayment)throw new pi(ui.MissingPaymentMethod);return this._braintreeGooglePayment}_getBraintreeDeviceData(){return Ba(this,void 0,void 0,function*(){const{deviceData:e}=yield this._braintreeSdk.getDataCollectorOrThrow();return e})}_braintreePresent3DSChallenge(e,t,n,i){return new Bn(e.verifyCard({amount:t,bin:i,nonce:n,onLookupComplete:(e,t)=>{t()}})).promise}}const Ua=Rt(e=>{const t=n(),i=window,r=new Ri(e),o=new Zi(new tr(a(),i,r));return new ua(e,new pa(ya(),new ja(e,o),t,Ee()))},[{id:"googlepaybraintree"}]);var qa=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Va{constructor(e){this.scriptLoader=e,this.window=window}getPayPalFastlaneSdk(e,t,n){return qa(this,void 0,void 0,function*(){if(!this.window.paypalFastlaneSdk){const i=this.getPayPalFastlaneSdkConfiguration(e,t,n);if(yield this.loadPayPalSdk(i),!this.window.paypalFastlaneSdk)throw new Oi}return this.window.paypalFastlaneSdk})}getPayPalGooglePaySdk(e,t,n,i){return qa(this,void 0,void 0,function*(){if(!this.window.paypalGooglePay||i){const i=this.getPayPalGooglePaySdkScriptConfigOrThrow(e,t,n);yield this.loadPayPalSdk(i)}if(!this.window.paypalGooglePay)throw new Oi;return this.window.paypalGooglePay})}getPayPalApmsSdk(e,t){return qa(this,void 0,void 0,function*(){if(!this.window.paypalApms){const n=this.getPayPalApmSdkConfiguration(e,t);if(yield this.loadPayPalSdk(n),!this.window.paypalApms)throw new Oi}return this.window.paypalApms})}getPayPalMessages(e,t){return qa(this,void 0,void 0,function*(){if(!this.window.paypalMessages){const n=this.getPayPalSdkMessagesConfiguration(e,t);yield this.loadPayPalSdk(n)}if(!this.window.paypalMessages)throw new Oi;return this.window.paypalMessages})}loadPayPalSdk({options:e,attributes:t}){return qa(this,void 0,void 0,function*(){const n=this.transformConfig(e),i=this.transformConfig(t),r=`https://www.paypal.com/sdk/js?${new URLSearchParams(n).toString()}`;yield this.scriptLoader.loadScript(r,{async:!0,attributes:i})})}getPayPalFastlaneSdkConfiguration(e,t,n){const{clientToken:i,initializationData:r}=e;if(!r||!r.clientId)throw new pi(ui.MissingPaymentMethod);const{intent:o,clientId:a,merchantId:s,attributionId:d}=r;return{options:{"client-id":a,"merchant-id":s,commit:!0,components:["fastlane","buttons","payment-fields","hosted-fields","three-domain-secure"],currency:t,intent:o},attributes:{"data-client-metadata-id":n.replace(/-/g,""),"data-namespace":"paypalFastlaneSdk","data-partner-attribution-id":d,"data-sdk-client-token":i}}}getPayPalGooglePaySdkScriptConfigOrThrow(e,t,n=!0){const{clientToken:i,initializationData:r}=e;if(!r||!r.clientId)throw new pi(ui.MissingPaymentMethod);const{intent:o,clientId:a,merchantId:s,buyerCountry:d,attributionId:c,isHostedCheckoutEnabled:l,isDeveloperModeApplicable:u}=r,h=l||n;return{options:Object.assign({"client-id":a,"merchant-id":s,commit:h,components:["googlepay"],currency:t,intent:o},u&&{"buyer-country":d}),attributes:{"data-partner-attribution-id":c,"data-client-token":i,"data-namespace":"paypalGooglePay"}}}getPayPalApmSdkConfiguration(e,t){const{initializationData:n}=e;if(!n||!n.clientId)throw new pi(ui.MissingPaymentMethod);const{intent:i,clientId:r,merchantId:o,buyerCountry:a,attributionId:s,isDeveloperModeApplicable:d,availableAlternativePaymentMethods:c=[],enabledAlternativePaymentMethods:l=[]}=n,u=l,h=c.filter(e=>!l.includes(e));return{options:Object.assign({"client-id":r,"merchant-id":o,"enable-funding":u.length>0?u:void 0,"disable-funding":h.length>0?h:void 0,commit:!0,components:["buttons","payment-fields"],currency:t,intent:i},d&&{"buyer-country":a}),attributes:{"data-partner-attribution-id":s,"data-namespace":"paypalApms"}}}getPayPalSdkMessagesConfiguration(e,t){const{initializationData:n}=e;if(!n||!n.clientId)throw new pi(ui.MissingPaymentMethod);const{clientId:i,merchantId:r,attributionId:o,isDeveloperModeApplicable:a,buyerCountry:s}=n;return{options:Object.assign({"client-id":i,"merchant-id":r,components:["messages"],currency:t},a&&{"buyer-country":s}),attributes:{"data-namespace":"paypalMessages","data-partner-attribution-id":o}}}transformConfig(e){let t={};return Object.keys(e).forEach(n=>{const i=e[n];null==i||""===i||Array.isArray(i)&&0===i.length||(t=Object.assign(Object.assign({},t),{[n]:Array.isArray(i)?i.join(","):i}))}),t}}function Ga(e){if(!function(e){return!!e.initializationData&&"attributionId"in e.initializationData&&"isVenmoEnabled"in e.initializationData&&"isGooglePayEnabled"in e.initializationData&&"isPayPalCreditAvailable"in e.initializationData}(e))throw new pi(ui.MissingPaymentMethod)}var Ha=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class $a extends sa{constructor(e,t){super("paypalsb",e),this.payPalCommerceSdk=t,this.service=e}initialize(e,t,n){const i=Object.create(null,{initialize:{get:()=>super.initialize},getPaymentMethod:{get:()=>super.getPaymentMethod}});var r,o,a,s,d;return Ha(this,void 0,void 0,function*(){const c=null!==(o=null===(r=this.service.getState().getStoreConfig())||void 0===r?void 0:r.currency.code)&&void 0!==o?o:n;if(!c)throw new pi(ui.MissingPaymentMethod);yield i.initialize.call(this,e,t,c);const l=i.getPaymentMethod.call(this);if(!l.initializationData)throw new pi(ui.MissingPaymentMethod);Ga(l);const u=yield this.payPalCommerceSdk.getPayPalGooglePaySdk(l,c);this.googlepayConfig=yield u.Googlepay().config();const{allowedPaymentMethods:h}=this.googlepayConfig;this.setGatewayIdentifier(null===(d=null===(s=null===(a=h[0])||void 0===a?void 0:a.tokenizationSpecification)||void 0===s?void 0:s.parameters)||void 0===d?void 0:d.gateway)})}getPaymentGatewayParameters(){if(this.googlepayConfig){const{allowedPaymentMethods:e}=this.googlepayConfig,{gatewayMerchantId:t}=e[0].tokenizationSpecification.parameters;return{gateway:this.getGatewayIdentifier(),gatewayMerchantId:t}}return{gateway:this.getGatewayIdentifier()}}mapToExternalCheckoutData(e){const t=Object.create(null,{mapToExternalCheckoutData:{get:()=>super.mapToExternalCheckoutData}});return Ha(this,void 0,void 0,function*(){const n=yield t.mapToExternalCheckoutData.call(this,e);return n.nonce=btoa(n.nonce),n})}}const Wa=Rt(e=>new ua(e,new pa(ya(),new $a(e,new Va(a())),n(),Ee())),[{id:"googlepaypaypalcommerce"}]);var Ya=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Ka extends sa{constructor(e,t){super("googlepay_bigcommerce_payments",e),this.payPalSdkHelper=t,this.service=e}initialize(e,t,n){const i=Object.create(null,{initialize:{get:()=>super.initialize},getPaymentMethod:{get:()=>super.getPaymentMethod}});var r,o,a,s,d;return Ya(this,void 0,void 0,function*(){const c=null!==(o=null===(r=this.service.getState().getStoreConfig())||void 0===r?void 0:r.currency.code)&&void 0!==o?o:n;if(!c)throw new pi(ui.MissingPaymentMethod);yield i.initialize.call(this,e,t,c);const l=i.getPaymentMethod.call(this);if(!l.initializationData)throw new pi(ui.MissingPaymentMethod);Ga(l);const u=yield this.payPalSdkHelper.getPayPalGooglePaySdk(l,c);this.googlepayConfig=yield u.Googlepay().config();const{allowedPaymentMethods:h}=this.googlepayConfig;this.setGatewayIdentifier(null===(d=null===(s=null===(a=h[0])||void 0===a?void 0:a.tokenizationSpecification)||void 0===s?void 0:s.parameters)||void 0===d?void 0:d.gateway)})}getPaymentGatewayParameters(){if(this.googlepayConfig){const{allowedPaymentMethods:e}=this.googlepayConfig,{gatewayMerchantId:t}=e[0].tokenizationSpecification.parameters;return{gateway:this.getGatewayIdentifier(),gatewayMerchantId:t}}return{gateway:this.getGatewayIdentifier()}}mapToExternalCheckoutData(e){const t=Object.create(null,{mapToExternalCheckoutData:{get:()=>super.mapToExternalCheckoutData}});return Ya(this,void 0,void 0,function*(){const n=yield t.mapToExternalCheckoutData.call(this,e);return n.nonce=btoa(n.nonce),n})}}const Ja=Rt(e=>new ua(e,new pa(ya(),new Ka(e,new Gr(a())),n(),Ee())),[{id:"googlepay_bigcommerce_payments"}]);function Za(){const{navigator:e}=window;let t;return t=e.language?e.language:e.userLanguage,{color_depth:window.screen.colorDepth||24,java_enabled:"function"==typeof e.javaEnabled&&e.javaEnabled(),language:t,screen_height:window.screen.height,screen_width:window.screen.width,time_zone_offset:(new Date).getTimezoneOffset().toString()}}var Qa=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Xa extends sa{constructor(e,t){super("worldlinena",e),this.formPoster=t}extraPaymentData(){return Qa(this,void 0,void 0,function*(){return Promise.resolve({browser_info:Za()})})}processAdditionalAction(e){return Qa(this,void 0,void 0,function*(){if(!function(e){return wa(e)&&(t=e.body,D(t)&&"object"==typeof t&&"errors"in t&&"three_ds_result"in t&&O(t.errors)&&Z(t.errors,{code:"three_d_secure_required"}));var t}(e))throw e;const{three_ds_result:t}=e.body,{acs_url:n,payer_auth_request:i,merchant_data:r}=t||{};if(!n||!i||!r)throw new fo(["formUrl","threeDSSessionData","creq"]);return new Promise(e=>{this.formPoster.postForm(n,{threeDSSessionData:i,creq:r},e,"_top")})})}}const es=Rt(e=>new ua(e,new pa(ya(),new Xa(e,Ee()),n(),Ee())),[{id:"googlepaytdonlinemart"}]);var ts,ns,is,rs,os,as,ss;!function(e){e.Possible="POSSIBLE",e.No="NO",e.Unknown="UNKNOWN",e.Yes="YES"}(ts||(ts={})),function(e){e.AUTHORIZE="authorize",e.CAPTURE="capture"}(ns||(ns={})),function(e){e.paypal="paypal",e.checkout="checkout",e.buynow="buynow",e.pay="pay",e.installment="installment"}(is||(is={})),function(e){e.gold="gold",e.blue="blue",e.silver="silver",e.black="black",e.white="white"}(rs||(rs={})),function(e){e.pill="pill",e.rect="rect"}(os||(os={})),(as||(as={})).OXXO="oxxo",function(e){e.Approved="APPROVED",e.Created="CREATED",e.PayerActionRequired="PAYER_ACTION_REQUIRED",e.PollingStop="POLLING_STOP",e.PollingError="POLLING_ERROR"}(ss||(ss={}));var ds=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class cs{constructor(e,t,n,i){this.formPoster=e,this.paymentIntegrationService=t,this.paypalCommerceRequestSender=n,this.paypalCommerceScriptLoader=i}loadPayPalSdk(e,t,n,i){return ds(this,void 0,void 0,function*(){const r=this.paymentIntegrationService.getState(),o=t||r.getCartOrThrow().currency.code,a=r.getPaymentMethodOrThrow(e);return this.paypalSdk=yield this.paypalCommerceScriptLoader.getPayPalSDK(a,o,n,i),this.paypalSdk})}getPayPalSdkOrThrow(){if(!this.paypalSdk)throw new Oi;return this.paypalSdk}createBuyNowCartOrThrow(e){return ds(this,void 0,void 0,function*(){const t=e.getBuyNowCartRequestBody();if(!t)throw new pi(ui.MissingCart);try{return yield this.paymentIntegrationService.createBuyNowCart(t)}catch(e){throw new lr}})}createOrder(e,t){return ds(this,void 0,void 0,function*(){const n=this.paymentIntegrationService.getState().getCartOrThrow().id,{orderId:i}=yield this.paypalCommerceRequestSender.createOrder(e,Object.assign({cartId:n},t));return i})}createOrderCardFields(e,t){return ds(this,void 0,void 0,function*(){const n=this.paymentIntegrationService.getState().getCartOrThrow().id,{orderId:i,setupToken:r}=yield this.paypalCommerceRequestSender.createOrder(e,Object.assign({cartId:n},t));return Object.assign({orderId:i},r?{setupToken:r}:{})})}updateOrder(){return ds(this,void 0,void 0,function*(){const e=this.paymentIntegrationService.getState(),t=e.getCartOrThrow(),n=e.getConsignmentsOrThrow()[0];try{yield this.paypalCommerceRequestSender.updateOrder({availableShippingOptions:n.availableShippingOptions,cartId:t.id,selectedShippingOption:n.selectedShippingOption})}catch(e){throw new hr}})}getOrderStatus(e,t){return ds(this,void 0,void 0,function*(){try{const{status:n}=yield this.paypalCommerceRequestSender.getOrderStatus(e,t);return n}catch(e){throw new hr}})}tokenizePayment(e,t){const n=this.paymentIntegrationService.getState().getCartOrThrow();if(!t)throw new pi(ui.MissingOrderId);return this.formPoster.postForm("/checkout.php",Object.assign({payment_type:"paypal",action:"set_external_checkout",provider:e,order_id:t},n.source===Tt.BuyNow&&{cart_id:n.id}))}submitPayment(e,t,n){return ds(this,void 0,void 0,function*(){const i={formattedPayload:{vault_payment_instrument:null,set_as_default_stored_instrument:null,device_info:null,method_id:e,paypal_account:{order_id:t}}};yield this.paymentIntegrationService.submitPayment(Object.assign({methodId:e,paymentData:i},n?{gatewayId:n}:{}))})}getShippingOptionOrThrow(e){const t=this.paymentIntegrationService.getState().getConsignmentsOrThrow()[0],n=t.availableShippingOptions||[],i=n.find(e=>e.isRecommended),r=(e?n.find(t=>t.id===e):n.find(e=>{var n;return e.id===(null===(n=t.selectedShippingOption)||void 0===n?void 0:n.id)}))||i||n[0];if(!r)throw new Error("Your order can't be shipped to this address");return r}getAddress(e){return{firstName:(null==e?void 0:e.firstName)||"",lastName:(null==e?void 0:e.lastName)||"",email:(null==e?void 0:e.email)||"",phone:(null==e?void 0:e.phone)||"",company:"",address1:(null==e?void 0:e.address1)||"",address2:(null==e?void 0:e.address2)||"",city:(null==e?void 0:e.city)||"",countryCode:(null==e?void 0:e.countryCode)||"",postalCode:(null==e?void 0:e.postalCode)||"",stateOrProvince:"",stateOrProvinceCode:(null==e?void 0:e.stateOrProvinceCode)||"",customFields:[]}}getBillingAddressFromOrderDetails({payer:e}){var t,n;return this.getAddress({firstName:e.name.given_name,lastName:e.name.surname,email:e.email_address,address1:e.address.address_line_1,address2:e.address.address_line_2,city:e.address.admin_area_2,countryCode:e.address.country_code,postalCode:e.address.postal_code,stateOrProvinceCode:e.address.admin_area_1,phone:null===(n=null===(t=e.phone)||void 0===t?void 0:t.phone_number)||void 0===n?void 0:n.national_number})}getShippingAddressFromOrderDetails(e){const{payer:t,purchase_units:n}=e,{address:i,name:{full_name:r}}=n[0].shipping,[o,...a]=r.split(" ");return this.getAddress({firstName:o,lastName:a.join(" "),email:t.email_address,address1:i.address_line_1,address2:i.address_line_2,city:i.admin_area_2,countryCode:i.country_code,postalCode:i.postal_code,stateOrProvinceCode:i.admin_area_1})}getValidButtonStyle(e){const{color:t,height:n,label:i,shape:r}=e||{},o={color:t&&rs[t]?t:void 0,height:this.getValidHeight(n),label:i&&is[i]?i:void 0,shape:r&&os[r]?r:void 0};return H(o,T)}getValidHeight(e){return e&&"number"==typeof e?e>55?55:e<25?25:e:40}removeElement(e){const t=e&&document.getElementById(e);t&&(t.style.display="none")}}var ls=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class us{constructor(e){this.requestSender=e}createOrder(e,t){return ls(this,void 0,void 0,function*(){const n=`/api/storefront/payment/${e}`,i=t,r=Object.assign({"X-API-INTERNAL":Cr,"Content-Type":br.Json},Pr);return(yield this.requestSender.post(n,{headers:r,body:i})).body})}updateOrder(e){return ls(this,void 0,void 0,function*(){const t=e,n=Object.assign({"X-API-INTERNAL":Cr,"Content-Type":br.Json},Pr);return(yield this.requestSender.put("/api/storefront/initialization/paypalcommerce",{headers:n,body:t})).body})}getOrderStatus(e="paypalcommerce",t){return ls(this,void 0,void 0,function*(){const n=`/api/storefront/initialization/${e}`,i=Object.assign({"X-API-INTERNAL":Cr,"Content-Type":br.Json},Pr);return(yield this.requestSender.get(n,Object.assign({headers:i},t))).body})}}var hs=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class ps{constructor(e){this.scriptLoader=e,this.window=window}getPayPalSDK(e,t,n,i){return hs(this,void 0,void 0,function*(){const r=this.getPayPalSdkScriptConfigOrThrow(e,t,n);return this.loadPayPalSDK(r,i)})}loadPayPalSDK(e,t=!1){return hs(this,void 0,void 0,function*(){if(!this.window.paypal||t){const t=this.transformConfig(e.options),n=this.transformConfig(e.attributes),i=`https://www.paypal.com/sdk/js?${new URLSearchParams(t).toString()}`;yield this.scriptLoader.loadScript(i,{async:!0,attributes:n})}if(!this.window.paypal)throw new Oi;return this.window.paypal})}getPayPalSdkScriptConfigOrThrow(e,t,n=!0){const{id:i,clientToken:r,initializationData:o}=e;if(!(null==o?void 0:o.clientId))throw new pi(ui.MissingPaymentMethod);const{intent:a,clientId:s,merchantId:d,buyerCountry:c,attributionId:l,isVenmoEnabled:u,isHostedCheckoutEnabled:h,isPayPalCreditAvailable:p,isDeveloperModeApplicable:m,availableAlternativePaymentMethods:y=[],enabledAlternativePaymentMethods:g=[],isGooglePayEnabled:v}=o,f=h||n,S="paypalcommercecreditcards"===i,w=S?["card"]:[],_=p?["credit","paylater"]:[],C=n||!f,I=u?["venmo"]:[],b=C?g:[],P=v?["googlepay"]:[],O=n?["card-fields"]:[],E=[...S?[]:["card"],...p?[]:["credit","paylater"],...u?[]:["venmo"],...C?y.filter(e=>!g.includes(e)):y],A=[...w,..._,...I,...b];return{options:Object.assign({"client-id":s,"merchant-id":d,"enable-funding":A.length>0?A:void 0,"disable-funding":E.length>0?E:void 0,commit:f,components:["buttons","hosted-fields","payment-fields","legal",...P,...O],currency:t,intent:a},m&&{"buyer-country":c}),attributes:{"data-partner-attribution-id":l,"data-client-token":r}}}transformConfig(e){let t={};return Object.keys(e).forEach(n=>{const i=e[n];null==i||""===i||Array.isArray(i)&&0===i.length||(t=Object.assign(Object.assign({},t),{[n]:Array.isArray(i)?i.join(","):i}))}),t}}const ms=e=>{const{getHost:t}=e.getState();return new cs(Ee(),e,new us(n({host:t()})),new ps(a()))};var ys=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class gs{constructor(e,t){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t,this.onError=V}initialize(e){return ys(this,void 0,void 0,function*(){const{paypalcommerce:t,methodId:n}=e;if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.paypalcommerce" argument is not provided.');if(!t.container)throw new ki('Unable to initialize payment because "options.paypalcommerce.container" argument is not provided.');if(t.onClick&&"function"!=typeof t.onClick)throw new ki('Unable to initialize payment because "options.paypalcommerce.onClick" argument is not a function.');this.onError=t.onError||V,this.paymentIntegrationService.getState().getPaymentMethod(n)||(yield this.paymentIntegrationService.loadPaymentMethod(n));const i=yield this.paypalCommerceIntegrationService.loadPayPalSdk(n);i&&i.Buttons&&"function"==typeof i.Buttons?this.renderButton(n,t):console.error("[BC PayPal]: PayPal Button could not be rendered, due to issues with loading PayPal SDK")})}deinitialize(){return Promise.resolve()}signIn(e,t){return ys(this,void 0,void 0,function*(){return yield this.paymentIntegrationService.signInCustomer(e,t),Promise.resolve()})}signOut(e){return ys(this,void 0,void 0,function*(){return yield this.paymentIntegrationService.signOutCustomer(e),Promise.resolve()})}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}renderButton(e,t){var n,i;const{container:r,onClick:o,onComplete:a}=t,s=this.paypalCommerceIntegrationService.getPayPalSdkOrThrow(),d=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{isHostedCheckoutEnabled:c,paymentButtonStyles:l,isAppSwitchEnabled:u}=d.initializationData||{},{checkoutTopButtonStyles:h}=l||{},p=Object.assign(Object.assign(Object.assign({},this.isPaypalCommerceAppSwitchEnabled(e)&&{appSwitchWhenAvailable:!0}),{createOrder:()=>this.paypalCommerceIntegrationService.createOrder("paypalcommerce"),onApprove:({orderID:t})=>this.paypalCommerceIntegrationService.tokenizePayment(e,t)}),o&&{onClick:()=>o()}),m=Object.assign(Object.assign({},!u&&{onShippingAddressChange:e=>this.onShippingAddressChange(e),onShippingOptionsChange:e=>this.onShippingOptionsChange(e)}),{onApprove:(t,n)=>this.onHostedCheckoutApprove(t,n,e,a)}),y=Object.assign(Object.assign({fundingSource:s.FUNDING.PAYPAL,style:this.paypalCommerceIntegrationService.getValidButtonStyle(Object.assign(Object.assign({},h),{height:Dr}))},p),c&&m),g=s.Buttons(y);g.isEligible()?(null===(n=g.hasReturned)||void 0===n?void 0:n.call(g))&&this.isPaypalCommerceAppSwitchEnabled(e)?null===(i=g.resume)||void 0===i||i.call(g):g.render(`#${r}`):this.paypalCommerceIntegrationService.removeElement(r)}onHostedCheckoutApprove(e,t,n,i){return ys(this,void 0,void 0,function*(){if(!e.orderID)throw new pi(ui.MissingOrderId);const r=this.paymentIntegrationService.getState().getCartOrThrow(),o=yield t.order.get();try{const t=this.paypalCommerceIntegrationService.getBillingAddressFromOrderDetails(o);if(yield this.paymentIntegrationService.updateBillingAddress(t),r.lineItems.physicalItems.length>0){const e=this.paypalCommerceIntegrationService.getShippingAddressFromOrderDetails(o);yield this.paymentIntegrationService.updateShippingAddress(e),yield this.paypalCommerceIntegrationService.updateOrder()}yield this.paymentIntegrationService.submitOrder({},{params:{methodId:n}}),yield this.paypalCommerceIntegrationService.submitPayment(n,e.orderID),i&&"function"==typeof i&&i()}catch(e){this.handleError(e)}})}onShippingAddressChange(e){return ys(this,void 0,void 0,function*(){const t=this.paypalCommerceIntegrationService.getAddress({city:e.shippingAddress.city,countryCode:e.shippingAddress.countryCode,postalCode:e.shippingAddress.postalCode,stateOrProvinceCode:e.shippingAddress.state});try{yield this.paymentIntegrationService.updateBillingAddress(t),yield this.paymentIntegrationService.updateShippingAddress(t);const e=this.paypalCommerceIntegrationService.getShippingOptionOrThrow();yield this.paymentIntegrationService.selectShippingOption(e.id),yield this.paypalCommerceIntegrationService.updateOrder()}catch(e){this.handleError(e)}})}onShippingOptionsChange(e){return ys(this,void 0,void 0,function*(){const t=this.paypalCommerceIntegrationService.getShippingOptionOrThrow(e.selectedShippingOption.id);try{yield this.paymentIntegrationService.selectShippingOption(t.id),yield this.paypalCommerceIntegrationService.updateOrder()}catch(e){this.handleError(e)}})}handleError(e){if("function"!=typeof this.onError)throw e;this.onError(e)}isPaypalCommerceAppSwitchEnabled(e){var t;return(null===(t=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e).initializationData)||void 0===t?void 0:t.isAppSwitchEnabled)||!1}}const vs=Rt(e=>new gs(e,ms(e)),[{id:"paypalcommerce"}]);var fs=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Ss{constructor(e,t){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t,this.onError=V}initialize(e){return fs(this,void 0,void 0,function*(){const{paypalcommercecredit:t,methodId:n}=e;if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.paypalcommercecredit" argument is not provided.');if(!t.container)throw new ki('Unable to initialize payment because "options.paypalcommercecredit.container" argument is not provided.');if(t.onClick&&"function"!=typeof t.onClick)throw new ki('Unable to initialize payment because "options.paypalcommercecredit.onClick" argument is not a function.');this.onError=t.onError||V,this.paymentIntegrationService.getState().getPaymentMethod(n)||(yield this.paymentIntegrationService.loadPaymentMethod(n));const i=yield this.paypalCommerceIntegrationService.loadPayPalSdk(n);i&&i.Buttons&&"function"==typeof i.Buttons?this.renderButton(n,t):console.error("[BC PayPal]: PayPal Button could not be rendered, due to issues with loading PayPal SDK")})}deinitialize(){return Promise.resolve()}signIn(e,t){return fs(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signInCustomer(e,t)})}signOut(e){return fs(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signOutCustomer(e)})}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}renderButton(e,t){const{container:n,onComplete:i,onClick:r}=t,o=this.paypalCommerceIntegrationService.getPayPalSdkOrThrow(),a=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{isHostedCheckoutEnabled:s,paymentButtonStyles:d,isAppSwitchEnabled:c}=a.initializationData||{},{checkoutTopButtonStyles:l}=d||{},u=Object.assign({createOrder:()=>this.paypalCommerceIntegrationService.createOrder("paypalcommercecredit"),onApprove:({orderID:t})=>this.paypalCommerceIntegrationService.tokenizePayment(e,t)},r&&{onClick:()=>r()}),h=Object.assign(Object.assign({},!c&&{onShippingAddressChange:e=>this.onShippingAddressChange(e),onShippingOptionsChange:e=>this.onShippingOptionsChange(e)}),{onApprove:(t,n)=>this.onHostedCheckoutApprove(t,n,e,i)}),p=[o.FUNDING.PAYLATER,o.FUNDING.CREDIT];let m=!1;p.forEach(e=>{if(!m){const t=Object.assign(Object.assign({fundingSource:e,style:this.paypalCommerceIntegrationService.getValidButtonStyle(Object.assign(Object.assign({},l),{height:Dr}))},u),s&&h),i=o.Buttons(t);i.isEligible()&&(i.render(`#${n}`),m=!0)}}),m||this.paypalCommerceIntegrationService.removeElement(n)}onHostedCheckoutApprove(e,t,n,i){return fs(this,void 0,void 0,function*(){if(!e.orderID)throw new pi(ui.MissingOrderId);const r=this.paymentIntegrationService.getState().getCartOrThrow(),o=yield t.order.get();try{const t=this.paypalCommerceIntegrationService.getBillingAddressFromOrderDetails(o);if(yield this.paymentIntegrationService.updateBillingAddress(t),r.lineItems.physicalItems.length>0){const e=this.paypalCommerceIntegrationService.getShippingAddressFromOrderDetails(o);yield this.paymentIntegrationService.updateShippingAddress(e),yield this.paypalCommerceIntegrationService.updateOrder()}yield this.paymentIntegrationService.submitOrder({},{params:{methodId:n}}),yield this.paypalCommerceIntegrationService.submitPayment(n,e.orderID),i&&"function"==typeof i&&i()}catch(e){this.handleError(e)}})}onShippingAddressChange(e){return fs(this,void 0,void 0,function*(){const t=this.paypalCommerceIntegrationService.getAddress({city:e.shippingAddress.city,countryCode:e.shippingAddress.countryCode,postalCode:e.shippingAddress.postalCode,stateOrProvinceCode:e.shippingAddress.state});try{yield this.paymentIntegrationService.updateBillingAddress(t),yield this.paymentIntegrationService.updateShippingAddress(t);const e=this.paypalCommerceIntegrationService.getShippingOptionOrThrow();yield this.paymentIntegrationService.selectShippingOption(e.id),yield this.paypalCommerceIntegrationService.updateOrder()}catch(e){this.handleError(e)}})}onShippingOptionsChange(e){return fs(this,void 0,void 0,function*(){const t=this.paypalCommerceIntegrationService.getShippingOptionOrThrow(e.selectedShippingOption.id);try{yield this.paymentIntegrationService.selectShippingOption(t.id),yield this.paypalCommerceIntegrationService.updateOrder()}catch(e){this.handleError(e)}})}handleError(e){if("function"!=typeof this.onError)throw e;this.onError(e)}}const ws=Rt(e=>new Ss(e,ms(e)),[{id:"paypalcommercecredit"}]);var _s=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Cs{constructor(e,t){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t}initialize(e){return _s(this,void 0,void 0,function*(){const{paypalcommercevenmo:t,methodId:n}=e;if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.paypalcommercevenmo" argument is not provided.');if(!t.container)throw new ki('Unable to initialize payment because "options.paypalcommercevenmo.container" argument is not provided.');if(t.onClick&&"function"!=typeof t.onClick)throw new ki('Unable to initialize payment because "options.paypalcommercevenmo.onClick" argument is not a function.');this.paymentIntegrationService.getState().getPaymentMethod(n)||(yield this.paymentIntegrationService.loadPaymentMethod(n));const i=yield this.paypalCommerceIntegrationService.loadPayPalSdk(n);i&&i.Buttons&&"function"==typeof i.Buttons?this.renderButton(n,t):console.error("[BC PayPal]: PayPal Button could not be rendered, due to issues with loading PayPal SDK")})}deinitialize(){return Promise.resolve()}signIn(e,t){return _s(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signInCustomer(e,t)})}signOut(e){return _s(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signOutCustomer(e)})}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}renderButton(e,t){const{container:n,onClick:i}=t,r=this.paypalCommerceIntegrationService.getPayPalSdkOrThrow(),o=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{paymentButtonStyles:a}=o.initializationData||{},{checkoutTopButtonStyles:s}=a||{},d=Object.assign({fundingSource:r.FUNDING.VENMO,style:this.paypalCommerceIntegrationService.getValidButtonStyle(Object.assign(Object.assign({},s),{height:Dr})),createOrder:()=>this.paypalCommerceIntegrationService.createOrder("paypalcommercevenmo"),onApprove:({orderID:t})=>this.paypalCommerceIntegrationService.tokenizePayment(e,t)},i&&{onClick:()=>i()}),c=r.Buttons(d);c.isEligible()?c.render(`#${n}`):this.paypalCommerceIntegrationService.removeElement(n)}}const Is=Rt(e=>new Cs(e,ms(e)),[{id:"paypalcommercevenmo"}]);function bs(){return new Va(o())}var Ps,Os,Es,As,ks,Ts,Ds;!function(e){e.AUTHORIZE="authorize",e.CAPTURE="capture"}(Ps||(Ps={})),function(e){e.Succeeded="succeeded",e.Cancelled="cancelled",e.Errored="errored"}(Os||(Os={})),function(e){e.Possible="POSSIBLE",e.No="NO",e.Unknown="UNKNOWN",e.Yes="YES"}(Es||(Es={})),function(e){e.paypal="paypal",e.checkout="checkout",e.buynow="buynow",e.pay="pay",e.installment="installment"}(As||(As={})),function(e){e.gold="gold",e.blue="blue",e.silver="silver",e.black="black",e.white="white"}(ks||(ks={})),function(e){e.pill="pill",e.rect="rect"}(Ts||(Ts={})),function(e){e.SUCCEEDED="succeeded",e.FAILED="failed",e.CANCELED="canceled",e.UNRECOGNIZED="unrecognized"}(Ds||(Ds={}));var Ms=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class zs{constructor(){this.window=window}initializePayPalFastlane(e,t,n){return Ms(this,void 0,void 0,function*(){if(t&&(window.localStorage.setItem("fastlaneEnv","sandbox"),window.localStorage.setItem("axoEnv","sandbox")),!this.window.paypalFastlane){const t={root:{backgroundColorPrimary:"transparent"}};this.window.paypalFastlane=yield e.Fastlane({styles:n||t})}return this.window.paypalFastlane})}getPayPalFastlaneOrThrow(){if(!this.window.paypalFastlane)throw new Oi;return this.window.paypalFastlane}lookupCustomerOrThrow(e){return Ms(this,void 0,void 0,function*(){return this.getPayPalFastlaneOrThrow().identity.lookupCustomerByEmail(e)})}triggerAuthenticationFlowOrThrow(e){return Ms(this,void 0,void 0,function*(){return e?this.getPayPalFastlaneOrThrow().identity.triggerAuthenticationFlow(e):{}})}updateStorageSessionId(e){const t=new Date;t.setDate(t.getDate()+14);const n={expires:t,secure:!0};$r.set("bc-fastlane-sessionId",e,n)}removeStorageSessionId(){$r.remove("bc-fastlane-sessionId")}getStorageSessionId(){return $r.get("bc-fastlane-sessionId")||""}mapPayPalFastlaneProfileToBcCustomerData(e,t){var n,i,r;const{authenticationState:o,profileData:a}=t,s=null===(r=null===(i=null===(n=null==a?void 0:a.card)||void 0===n?void 0:n.paymentSource)||void 0===i?void 0:i.card)||void 0===r?void 0:r.billingAddress,d=null==a?void 0:a.shippingAddress,c=null==a?void 0:a.name,l=null==a?void 0:a.card,u=d?this.mapPayPalToBcAddress(d.address,d.name,d.phoneNumber):void 0,h=s&&c?this.mapPayPalToBcAddress(s,c,null==d?void 0:d.phoneNumber):void 0,p=l?this.mapPayPalToBcInstrument(e,l):[],m=this.filterAddresses([u,h]);return{authenticationState:o||Ds.UNRECOGNIZED,addresses:m,billingAddress:h,shippingAddress:u,instruments:p}}mapPayPalToBcInstrument(e,t){const{id:n,paymentSource:i}=t,{brand:r,expiry:o,lastDigits:a}=i.card,[s,d]=o.split("-");return[{bigpayToken:n,brand:r,defaultInstrument:!1,expiryMonth:d,expiryYear:s,iin:"",last4:a,method:e,provider:e,trustedShippingAddress:!1,untrustedShippingCardVerificationMode:xr.PAN,type:"card"}]}mapBcToPayPalAddress(e){return{company:(null==e?void 0:e.company)||"",addressLine1:(null==e?void 0:e.address1)||"",addressLine2:(null==e?void 0:e.address2)||"",adminArea1:(null==e?void 0:e.stateOrProvinceCode)||(null==e?void 0:e.stateOrProvince)||"",adminArea2:(null==e?void 0:e.city)||"",postalCode:(null==e?void 0:e.postalCode)||"",countryCode:(null==e?void 0:e.countryCode)||""}}mapPayPalToBcAddress(e,t,n,i){const[r,o]=t.fullName.split(" "),a=(null==n?void 0:n.nationalNumber)||"",s=(null==n?void 0:n.countryCode)||"";return{id:Date.now(),type:"paypal-address",firstName:t.firstName||r||"",lastName:t.lastName||o||"",company:e.company||"",address1:e.addressLine1,address2:e.addressLine2||"",city:e.adminArea2,stateOrProvince:e.adminArea1,stateOrProvinceCode:e.adminArea1,country:e.countryCode||"",countryCode:e.countryCode||"",postalCode:e.postalCode,phone:s+a,customFields:i||[]}}filterAddresses(e){return e.reduce((e,t)=>t?e.some(e=>this.isEqualAddresses(e,t))?e:[...e,t]:e,[])}isEqualAddresses(e,t){return A(this.normalizeAddress(e),this.normalizeAddress(t))}normalizeAddress(e){return G(e,["id","phone"])}}function Ns(){return new zs}function xs(e){return"string"!=typeof e}function Fs(e,t){if(t||e)return function(e){var t,n;const i={},r=H(e.root,xs),o=H(e.input,xs),a=H(e.toggle,xs),s=H(null===(t=e.text)||void 0===t?void 0:t.body,xs),d=H(null===(n=e.text)||void 0===n?void 0:n.caption,xs),c=e.branding;return Object.keys(r).length&&(i.root=r),Object.keys(o).length&&(i.input=o),Object.keys(a).length&&(i.toggle=a),Object.keys(s).length&&(i.text={},i.text.body=s),Object.keys(d).length&&(i.text=Object.assign({},i.text),i.text.caption=d),c&&(i.branding=c),i}(function(e,t){var n,i,r,o,a,s,d,c,l,u,h,p,m,y,g,v,f,S,w,_,C,I;return{root:{backgroundColorPrimary:(null==e?void 0:e.fastlaneRootSettingsBackgroundColor)||(null===(n=null==t?void 0:t.root)||void 0===n?void 0:n.backgroundColorPrimary),errorColor:(null==e?void 0:e.fastlaneRootSettingsErrorColor)||(null===(i=null==t?void 0:t.root)||void 0===i?void 0:i.errorColor),fontFamily:(null==e?void 0:e.fastlaneRootSettingsFontFamily)||(null===(r=null==t?void 0:t.root)||void 0===r?void 0:r.fontFamily),fontSizeBase:(null==e?void 0:e.fastlaneRootSettingsFontSize)||(null===(o=null==t?void 0:t.root)||void 0===o?void 0:o.fontSizeBase),padding:(null==e?void 0:e.fastlaneRootSettingsPadding)||(null===(a=null==t?void 0:t.root)||void 0===a?void 0:a.padding),primaryColor:(null==e?void 0:e.fastlaneRootSettingsPrimaryColor)||(null===(s=null==t?void 0:t.root)||void 0===s?void 0:s.primaryColor)},input:{borderRadius:(null==e?void 0:e.fastlaneInputSettingsBorderRadius)||(null===(d=null==t?void 0:t.input)||void 0===d?void 0:d.borderRadius),borderColor:(null==e?void 0:e.fastlaneInputSettingsBorderColor)||(null===(c=null==t?void 0:t.input)||void 0===c?void 0:c.borderColor),focusBorderColor:(null==e?void 0:e.fastlaneInputSettingsFocusBorderBase)||(null===(l=null==t?void 0:t.input)||void 0===l?void 0:l.focusBorderColor),backgroundColor:(null==e?void 0:e.fastlaneInputSettingsBackgroundColor)||(null===(u=null==t?void 0:t.input)||void 0===u?void 0:u.backgroundColor),borderWidth:(null==e?void 0:e.fastlaneInputSettingsBorderWidth)||(null===(h=null==t?void 0:t.input)||void 0===h?void 0:h.borderWidth),textColorBase:(null==e?void 0:e.fastlaneInputSettingsTextColorBase)||(null===(p=null==t?void 0:t.input)||void 0===p?void 0:p.textColorBase)},toggle:{colorPrimary:(null==e?void 0:e.fastlaneToggleSettingsColorPrimary)||(null===(m=null==t?void 0:t.toggle)||void 0===m?void 0:m.colorPrimary),colorSecondary:(null==e?void 0:e.fastlaneToggleSettingsColorSecondary)||(null===(y=null==t?void 0:t.toggle)||void 0===y?void 0:y.colorSecondary)},text:{body:{color:(null==e?void 0:e.fastlaneTextBodySettingsColor)||(null===(v=null===(g=null==t?void 0:t.text)||void 0===g?void 0:g.body)||void 0===v?void 0:v.color),fontSize:(null==e?void 0:e.fastlaneTextBodySettingsFontSize)||(null===(S=null===(f=null==t?void 0:t.text)||void 0===f?void 0:f.body)||void 0===S?void 0:S.fontSize)},caption:{color:(null==e?void 0:e.fastlaneTextCaptionSettingsColor)||(null===(_=null===(w=null==t?void 0:t.text)||void 0===w?void 0:w.caption)||void 0===_?void 0:_.color),fontSize:(null==e?void 0:e.fastlaneTextCaptionSettingsFontSize)||(null===(I=null===(C=null==t?void 0:t.text)||void 0===C?void 0:C.caption)||void 0===I?void 0:I.fontSize)}},branding:(null==e?void 0:e.fastlaneBrandingSettings)||(null==t?void 0:t.branding)}}(e,t))}var Rs=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Ls{constructor(e,t,n){this.paymentIntegrationService=e,this.paypalCommerceSdk=t,this.paypalCommerceFastlaneUtils=n}initialize(e){var t;return Rs(this,void 0,void 0,function*(){const{methodId:n,paypalcommercefastlane:i}=e;if(!n)throw new ki('Unable to proceed because "methodId" argument is not provided.');try{yield this.paymentIntegrationService.loadPaymentMethod(n);const e=this.paymentIntegrationService.getState(),r=e.getCartOrThrow(),o=e.getPaymentMethodOrThrow(n),a=!!(null===(t=o.initializationData)||void 0===t?void 0:t.isDeveloperModeApplicable),s=yield this.paypalCommerceSdk.getPayPalFastlaneSdk(o,r.currency.code,r.id);yield this.paypalCommerceFastlaneUtils.initializePayPalFastlane(s,a,this.getFastlaneStyles(n,i))}catch(e){}return Promise.resolve()})}deinitialize(){return Rs(this,void 0,void 0,function*(){return Promise.resolve()})}signIn(e,t){return Rs(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signInCustomer(e,t)})}signOut(e){return Rs(this,void 0,void 0,function*(){yield this.paymentIntegrationService.signOutCustomer(e)})}executePaymentMethodCheckout(e){return Rs(this,void 0,void 0,function*(){const{checkoutPaymentMethodExecuted:t,continueWithCheckoutCallback:n,methodId:i}=e||{};if(!i)throw new ki('Unable to proceed because "methodId" argument is not provided.');if("function"!=typeof n)throw new ki('Unable to proceed because "continueWithCheckoutCallback" argument is not provided and it must be a function.');if(this.paymentIntegrationService.getState().getCustomerOrThrow().isGuest){t&&"function"==typeof t&&t();try{yield this.runPayPalAuthenticationFlowOrThrow(i)}catch(e){}}n()})}runPayPalAuthenticationFlowOrThrow(e){return Rs(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState(),n=t.getCartOrThrow().id,i=t.getCustomer(),r=t.getBillingAddress(),o=(null==i?void 0:i.email)||(null==r?void 0:r.email)||"",{customerContextId:a}=yield this.paypalCommerceFastlaneUtils.lookupCustomerOrThrow(o),s=yield this.paypalCommerceFastlaneUtils.triggerAuthenticationFlowOrThrow(a),d=s.authenticationState===Ds.CANCELED;yield this.updateCustomerDataState(e,s),d?this.paypalCommerceFastlaneUtils.removeStorageSessionId():this.paypalCommerceFastlaneUtils.updateStorageSessionId(n)})}updateCustomerDataState(e,t){var n;return Rs(this,void 0,void 0,function*(){const i=this.paymentIntegrationService.getState().getCartOrThrow(),{authenticationState:r,addresses:o,billingAddress:a,shippingAddress:s,instruments:d}=this.paypalCommerceFastlaneUtils.mapPayPalFastlaneProfileToBcCustomerData(e,t);if(yield this.paymentIntegrationService.updatePaymentProviderCustomer({authenticationState:r,addresses:o,instruments:d}),a&&(yield this.paymentIntegrationService.updateBillingAddress(a)),s&&i.lineItems.physicalItems.length>0){const t=yield this.paymentIntegrationService.updateShippingAddress(s),i=t.getPaymentMethodOrThrow(e),{isFastlaneShippingOptionAutoSelectEnabled:r}=i.initializationData||{},o=t.getConsignments()||[],a=(null===(n=o[0])||void 0===n?void 0:n.availableShippingOptions)||[],d=a[0],c=a.find(e=>e.isRecommended);if((c||d)&&r){const e=(null==c?void 0:c.id)||d.id;yield this.paymentIntegrationService.selectShippingOption(e)}}})}getFastlaneStyles(e,t){const n=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{fastlaneStyles:i,isFastlaneStylingEnabled:r}=n.initializationData||{};return Fs(r?i:{},null==t?void 0:t.styles)}}const Bs=Rt(e=>new Ls(e,bs(),Ns()),[{id:"paypalcommerceacceleratedcheckout"},{id:"paypalcommercecreditcards"}]);var js=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Us{constructor(e,t=window){this.scriptLoader=e,this.stripeWindow=t}getStripeClient(e,t,n){return js(this,void 0,void 0,function*(){if(this.stripeWindow.bcStripeClient)return this.stripeWindow.bcStripeClient;const i=yield this.load(),{stripePublishableKey:r,stripeConnectedAccount:o}=e,a=i(r,Object.assign(Object.assign(Object.assign({},o?{stripeAccount:o}:{}),t?{betas:t}:{}),n?{apiVersion:n}:{}));return Object.assign(this.stripeWindow,{bcStripeClient:a}),a})}getElements(e,t){return js(this,void 0,void 0,function*(){let n=this.stripeWindow.bcStripeElements;return n?yield this.updateStripeElements(t):(n=e.elements(t),Object.assign(this.stripeWindow,{bcStripeElements:n})),n})}updateStripeElements(e){return js(this,void 0,void 0,function*(){const t=this.stripeWindow.bcStripeElements;t&&(t.update(e),yield t.fetchUpdates())})}load(){return js(this,void 0,void 0,function*(){if(!this.stripeWindow.Stripe&&(yield this.scriptLoader.loadScript("https://js.stripe.com/v3/"),!this.stripeWindow.Stripe))throw new Oi;return this.stripeWindow.Stripe})}}function qs(e){return"object"==typeof e&&null!==e&&"initializationData"in e&&void 0!==e.initializationData&&null!==e.initializationData&&"object"==typeof e.initializationData&&"stripePublishableKey"in e.initializationData&&"stripeConnectedAccount"in e.initializationData&&"shopperLanguage"in e.initializationData&&void 0!==e.initializationData.stripePublishableKey&&void 0!==e.initializationData.stripeConnectedAccount&&void 0!==e.initializationData.shopperLanguage}const Vs=["payment_element_beta_2","alipay_pm_beta_1","link_default_integration_beta_1","shipping_address_element_beta_1","address_element_beta_1"],Gs="2020-03-02;alipay_beta=v1;link_beta=v1";var Hs,$s,Ws,Ys,Ks,Js,Zs,Qs;function Xs(e){return"stripeLinkAuthenticationState"in e}!function(e){e.SHIPPING="shipping",e.BILLING="billing"}(Hs||(Hs={})),function(e){e.SPLIT="split",e.FULL="full",e.ORGANIZATION="organization"}($s||($s={})),function(e){e.CreditCard="card",e.Link="link",e.EPS="eps",e.GRABPAY="grabpay",e.BANCONTACT="bancontact",e.IDEAL="ideal",e.ALIPAY="alipay",e.KLARNA="klarna",e.OCS="optimized_checkout"}(Ws||(Ws={})),function(e){e.NEVER="never",e.AUTO="auto",e.ALWAYS="always",e.PAYMENT="payment",e.IF_REQUIRED="if_required"}(Ys||(Ys={})),function(e){e.PAYMENT="payment",e.AUTHENTICATION="linkAuthentication",e.SHIPPING="address",e.EXPRESS_CHECKOUT="expressCheckout"}(Ks||(Ks={})),function(e){e.REQUIRES_PAYMENT_METHOD="requires_payment_method",e.REQUIRES_CONFIRMATION="requires_confirmation",e.REQUIRES_ACTION="requires_action",e.PROCESSING="processing",e.SUCCEEDED="succeeded",e.CANCELED="canceled"}(Js||(Js={})),function(e){e.CLICK="click",e.CHANGE="change",e.READY="ready",e.SHIPPING_ADDRESS_CHANGE="shippingaddresschange",e.SHIPPING_RATE_CHANGE="shippingratechange",e.CONFIRM="confirm",e.CANCEL="cancel",e.LOADER_START="loaderstart"}(Zs||(Zs={})),function(e){e.ON_SESSION="on_session",e.OFF_SESSION="off_session"}(Qs||(Qs={}));class ed{constructor(e,t){this.paymentIntegrationService=e,this.scriptLoader=t}initialize(e){var t,n,i,r,o;return n=this,i=void 0,o=function*(){let n;if(!e.stripeupe)throw new ki('Unable to proceed because "options" argument is not provided.');const{container:i,gatewayId:r,methodId:o,onEmailChange:a,getStyles:s,isLoading:d}=e.stripeupe;Object.entries(e.stripeupe).forEach(([e,t])=>{if(!t)throw new ki(`Unable to proceed because "${e}" argument is not provided.`)}),yield this.paymentIntegrationService.loadPaymentMethod(r,{params:{method:o}});const c=this.paymentIntegrationService.getState(),l=c.getPaymentMethodOrThrow(o,r),{clientToken:u}=l;if(!qs(l)||!u)throw new pi(ui.MissingPaymentToken);const{email:h}=c.getCustomerOrThrow(),p=c.getPaymentProviderCustomerOrThrow(),m=(Xs(p)?p:{}).stripeLinkAuthenticationState;if(!h){let e;const r="function"==typeof s&&s();e=r?{variables:{colorPrimary:r.fieldInnerShadow,colorBackground:r.fieldBackground,colorText:r.labelText,colorDanger:r.fieldErrorText,colorTextSecondary:r.labelText,colorTextPlaceholder:r.fieldPlaceholderText},rules:{".Input":{borderColor:r.fieldBorder,color:r.fieldText,boxShadow:r.fieldInnerShadow}}}:{},n=yield this.scriptLoader.getStripeClient(l.initializationData,Vs,Gs),this._stripeElements=yield this.scriptLoader.getElements(n,{clientSecret:u,appearance:e});const{getBillingAddress:o,getConsignments:c}=this.paymentIntegrationService.getState(),h=c(),p=null===(t=null==h?void 0:h[0])||void 0===t?void 0:t.id,{email:y}=o()||{},g=y?{defaultValues:{mode:Hs.SHIPPING,email:y}}:{},v=this._stripeElements.getElement(Ks.AUTHENTICATION)||this._stripeElements.create(Ks.AUTHENTICATION,g);v.on(Zs.CHANGE,e=>{if(!("authenticated"in e))throw new pi(ui.MissingCustomer);this.paymentIntegrationService.updatePaymentProviderCustomer({stripeLinkAuthenticationState:e.authenticated}),e.complete?a(e.authenticated,e.value.email):a(!1,""),d&&d(!1),void 0===m&&e.authenticated&&p&&this.paymentIntegrationService.deleteConsignment(p)}),v.mount(`#${i}`)}},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())})}deinitialize(){var e,t;return null===(t=null===(e=this._stripeElements)||void 0===e?void 0:e.getElement(Ks.AUTHENTICATION))||void 0===t||t.unmount(),Promise.resolve()}signIn(e,t){return this.paymentIntegrationService.signInCustomer(e,t),Promise.resolve()}signOut(e){return this.paymentIntegrationService.signOutCustomer(e),Promise.resolve()}executePaymentMethodCheckout(e){var t;return null===(t=null==e?void 0:e.continueWithCheckoutCallback)||void 0===t||t.call(e),Promise.resolve()}}const td=Rt(e=>new ed(e,new Us(a())),[{id:"stripeupe"}]);var nd=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class id{constructor(e,t){this.paymentIntegrationService=e,this.scriptLoader=t,this.isMounted=!1}deinitialize(){var e;null===(e=this.checkoutEventsUnsubscribe)||void 0===e||e.call(this),this.isMounted=!1}initCheckoutEventsSubscription(e,t,n,i){this.checkoutEventsUnsubscribe=this.paymentIntegrationService.subscribe(()=>nd(this,void 0,void 0,function*(){var r;const o=null==i?void 0:i.getElement(Ks.PAYMENT);if(o){try{yield this.updateStripePaymentIntent(e,t)}catch(e){return this.isMounted&&(o.unmount(),this.isMounted=!1),void(e instanceof Error&&(null===(r=n.onError)||void 0===r||r.call(n,e)))}this.isMounted||(yield null==i?void 0:i.fetchUpdates(),this.mountElement(o,n.containerId))}}),e=>{var t;return null===(t=e.getCheckout())||void 0===t?void 0:t.outstandingBalance},e=>{var t;return null===(t=e.getCheckout())||void 0===t?void 0:t.coupons})}mountElement(e,t){document.getElementById(t)&&(e.mount(`#${t}`),this.isMounted=!0)}mapAppearanceVariables(e){return{colorPrimary:e.fieldInnerShadow,colorBackground:e.fieldBackground,colorText:e.labelText,colorDanger:e.fieldErrorText,colorTextSecondary:e.labelText,colorTextPlaceholder:e.fieldPlaceholderText,colorIcon:e.fieldPlaceholderText}}mapInputAppearanceRules(e){return{borderColor:e.fieldBorder,color:e.fieldText,boxShadow:e.fieldInnerShadow}}throwStripeError(e){if("object"==typeof(t=e)&&null!==t&&"type"in t&&(this.throwDisplayableStripeError(e),this.isCancellationError(e)))throw new nr;var t;throw new so}throwDisplayableStripeError(e){if(P(["card_error","invalid_request_error","validation_error"],e.type))throw new Error(e.message)}isCancellationError(e){var t;const n=null===(t=null==e?void 0:e.payment_intent.last_payment_error)||void 0===t?void 0:t.message;return!!n&&-1!==n.indexOf("canceled")}throwPaymentConfirmationProceedMessage(){throw new so("We've received your order and are processing your payment. Once the payment is verified, your order will be completed. We will send you an email when it's completed. Please note, this process may take a few minutes depending on the processing times of your chosen method.")}isPaymentCompleted(e,t){return nd(this,void 0,void 0,function*(){const n=this.paymentIntegrationService.getState(),i=n.getPaymentMethodOrThrow(e),{features:r}=n.getStoreConfigOrThrow().checkoutSettings;if(!i.clientToken||!t||!r["PI-626.Block_unnecessary_payment_confirmation_for_StripeUPE"])return!1;const{paymentIntent:o}=yield t.retrievePaymentIntent(i.clientToken);return(null==o?void 0:o.status)===Js.SUCCEEDED})}mapStripePaymentData(e,t,n=!1){const i=this.paymentIntegrationService.getState().getBillingAddress(),{firstName:r="",lastName:o="",email:a=""}=i||{},s=this._mapStripeAddress(i);if(!e)throw new gi(hi.PaymentNotInitialized);if(!(a&&s&&s.city&&s.country&&r&&o))throw new pi(ui.MissingBillingAddress);return{elements:e,redirect:Ys.IF_REQUIRED,confirmParams:Object.assign({payment_method_data:Object.assign(Object.assign({},n?{allow_redisplay:"always"}:{}),{billing_details:{email:a,address:s,name:`${r} ${o}`}})},t&&{return_url:t})}}isAdditionalActionError(e){return Z(e,{code:"additional_action_required"})}isRedirectAction(e){const{type:t,data:{redirect_url:n}}=e;return"redirect_to_url"===t&&!!n}isOnPageAdditionalAction(e){const{type:t,data:{token:n}}=e;return"additional_action_requires_payment_method"===t&&!!n}updateStripePaymentIntent(e,t){return nd(this,void 0,void 0,function*(){const n=yield this.paymentIntegrationService.loadPaymentMethod(e,{params:{method:t}}),{clientToken:i}=n.getPaymentMethodOrThrow(t);if(!i)throw new pi(ui.MissingPaymentMethod);this.scriptLoader.updateStripeElements({clientSecret:i})})}_mapStripeAddress(e){if(e){const{city:t,address1:n,address2:i,countryCode:r,postalCode:o,stateOrProvinceCode:a}=e;return Object.assign({city:t,country:r,postal_code:o,line1:n,line2:i},a?{state:a}:{})}throw new pi(ui.MissingBillingAddress)}}const rd={size:70,color:"#d9d9d9",backgroundColor:"#ffffff"},od={position:"fixed","background-color":"rgba(0, 0, 0, 0.4)","z-index":"1000"},ad="embedded-checkout-loading-indicator-rotation";class sd{constructor(e){this.styles=Object.assign(Object.assign({},rd),e&&e.styles),this.containerStyles=Object.assign({},e&&e.containerStyles),this.defineAnimation(),this.container=this.buildContainer(),this.indicator=this.buildIndicator(),this.container.appendChild(this.indicator)}show(e){if(e){const t=document.getElementById(e);if(!t)throw new Error("Unable to attach the loading indicator because the parent ID is not valid.");t.appendChild(this.container)}this.container.style.visibility="visible",this.container.style.opacity="1"}hide(){const e=()=>{this.container.style.visibility="hidden",this.container.removeEventListener("transitionend",e)};this.container.addEventListener("transitionend",e),this.container.style.opacity="0"}buildContainer(){const e=document.createElement("div");return e.style.display="block",e.style.bottom="0",e.style.left="0",e.style.height="100%",e.style.width="100%",e.style.position="absolute",e.style.right="0",e.style.top="0",e.style.transition="all 250ms ease-out",e.style.opacity="0",this.setStyleAttribute(e,this.containerStyles),e}buildIndicator(){const e=document.createElement("div");return e.style.display="block",e.style.width=`${this.styles.size}px`,e.style.height=`${this.styles.size}px`,e.style.borderRadius=`${this.styles.size}px`,e.style.border="solid 1px",e.style.borderColor=`${this.styles.backgroundColor} ${this.styles.backgroundColor} ${this.styles.color} ${this.styles.color}`,e.style.margin="0 auto",e.style.position="absolute",e.style.left="0",e.style.right="0",e.style.top="50%",e.style.transform="translateY(-50%) rotate(0deg)",e.style.transformStyle="preserve-3d",e.style.animation=`${ad} 500ms infinite cubic-bezier(0.69, 0.31, 0.56, 0.83)`,e}setStyleAttribute(e,t){Object.keys(t).forEach(n=>{e.style.setProperty(n,t[n])})}defineAnimation(){var e;if(document.getElementById(ad))return;const t=document.createElement("style");t.id=ad,null===(e=document.head)||void 0===e||e.appendChild(t),t.sheet instanceof CSSStyleSheet&&t.sheet.insertRule(`\n @keyframes ${ad} {\n 0% { transform: translateY(-50%) rotate(0deg); }\n 100% { transform: translateY(-50%) rotate(360deg); }\n }\n `,0)}}class dd{constructor(e){this._decimalPlaces=e}toInteger(e){return Math.round(e*Math.pow(10,this._decimalPlaces))}}const cd=["AC","AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CV","CW","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MK","ML","MM","MN","MO","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SZ","TA","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VG","VN","VU","WF","WS","XK","YE","YT","ZA","ZM","ZW","ZZ"];var ld=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class ud{constructor(e,t,n,i){this.paymentIntegrationService=e,this.scriptLoader=t,this.stripeIntegrationService=n,this.loadingIndicator=i}initialize(e){return ld(this,void 0,void 0,function*(){const{stripeocs:t}=e||{};if(!t)throw new ki('Unable to proceed because "options" argument is not provided.');const{methodId:n,gatewayId:i,container:r}=t;if(!r||!n||!i)throw new gi(hi.PaymentNotInitialized);const o=(yield this.paymentIntegrationService.loadPaymentMethod(i,{params:{method:n}})).getPaymentMethodOrThrow(n,i),{loadingContainerId:a,buttonHeight:s,onComplete:d}=t;if(this._loadingIndicatorContainer=a,this._onComplete=d,!qs(o))throw new pi(ui.MissingPaymentMethod);const{initializationData:c}=o,{captureMethod:l}=c;return this._captureMethod=l,this._stripeClient=yield this.scriptLoader.getStripeClient(c),yield this._mountExpressCheckoutElement(n,r,this._stripeClient,s),Promise.resolve()})}signIn(){return Promise.resolve()}signOut(){return Promise.resolve()}executePaymentMethodCheckout(){return Promise.resolve()}deinitialize(){return Promise.resolve()}_mountExpressCheckoutElement(e,t,n,i=40){return ld(this,void 0,void 0,function*(){const r=this._shouldRequireShippingAddress(),o=Object.assign(Object.assign(Object.assign({shippingAddressRequired:r},r?{allowedShippingCountries:yield this._getAvailableCountries()}:{}),r?{shippingRates:[{id:"_",amount:0,displayName:"Pending rates"}]}:{}),{billingAddressRequired:!0,emailRequired:!0,phoneNumberRequired:!0,paymentMethods:{link:Ys.AUTO,applePay:Ys.NEVER,googlePay:Ys.NEVER,amazonPay:Ys.NEVER,paypal:Ys.NEVER,klarna:Ys.NEVER},buttonHeight:i}),{cartAmount:a}=this.paymentIntegrationService.getState().getCartOrThrow(),s=Object.assign({mode:"payment",amount:this._toCents(a),currency:this._getCurrency()},this._captureMethod?{captureMethod:this._captureMethod}:{});this._stripeElements=n.elements(s),this._linkV2Element=this._stripeElements.create(Ks.EXPRESS_CHECKOUT,o),this._linkV2Element.mount(`#${t}`),this._initializeEvents(this._linkV2Element,e)})}_initializeEvents(e,t){this._shouldRequireShippingAddress()&&(e.on(Zs.SHIPPING_ADDRESS_CHANGE,e=>ld(this,void 0,void 0,function*(){return this._onShippingAddressChange(e)})),e.on(Zs.SHIPPING_RATE_CHANGE,e=>ld(this,void 0,void 0,function*(){return this._onShippingRateChange(e)}))),e.on(Zs.CONFIRM,e=>ld(this,void 0,void 0,function*(){return this._onConfirm(e,t)})),e.on(Zs.CANCEL,this._onCancel)}_onShippingAddressChange(e){return ld(this,void 0,void 0,function*(){if("address"in e){const t=e.address,n={firstName:"",lastName:"",phone:"",company:"",address1:"",address2:"",city:(null==t?void 0:t.city)||"",countryCode:(null==t?void 0:t.country)||"",postalCode:(null==t?void 0:t.postal_code)||"",stateOrProvince:(null==t?void 0:t.state)||"",stateOrProvinceCode:"",customFields:[]};yield this.paymentIntegrationService.updateShippingAddress(n);const i=yield this._getAvailableShippingOptions();yield this._updateDisplayedPrice(),e.resolve({shippingRates:i})}})}_onCancel(){throw new nr}_onShippingRateChange(e){return ld(this,void 0,void 0,function*(){if("shippingRate"in e){const{shippingRate:t}=e;yield this._handleShippingOptionChange(null==t?void 0:t.id),yield this._updateDisplayedPrice(),e.resolve({})}})}_onConfirm(e,t){return ld(this,void 0,void 0,function*(){if("billingDetails"in e&&"shippingAddress"in e&&this._stripeClient&&this._stripeElements){yield this._updateShippingAndBillingAddress(e),yield this.paymentIntegrationService.submitOrder();const n=this._getPaymentPayload(t);try{yield this.paymentIntegrationService.submitPayment(n)}catch(e){yield this._processAdditionalAction(e,t)}}return Promise.resolve()})}_updateShippingAndBillingAddress(e){var t,n,i,r,o,a,s,d;return ld(this,void 0,void 0,function*(){const c=this._shouldRequireShippingAddress(),l=(null===(n=null===(t=e.shippingAddress)||void 0===t?void 0:t.name)||void 0===n?void 0:n.split(" ")[0])||(null===(r=null===(i=e.billingDetails)||void 0===i?void 0:i.name)||void 0===r?void 0:r.split(" ")[0])||"",u=(null===(a=null===(o=e.shippingAddress)||void 0===o?void 0:o.name)||void 0===a?void 0:a.split(" ")[1])||(null===(d=null===(s=e.billingDetails)||void 0===s?void 0:s.name)||void 0===d?void 0:d.split(" ")[1])||"";if(c){const t=this._mapShippingAddress(e.shippingAddress,e.billingDetails,l,u);yield this.paymentIntegrationService.updateShippingAddress(t)}const h=this._mapBillingAddress(e.shippingAddress,e.billingDetails,l,u);yield this.paymentIntegrationService.updateBillingAddress(h)})}_mapShippingAddress(e,t,n,i){var r,o,a,s,d,c,l;return{firstName:n,lastName:i,phone:(null==t?void 0:t.phone)||"",company:"",address1:(null===(r=null==e?void 0:e.address)||void 0===r?void 0:r.line1)||"",address2:(null===(o=null==e?void 0:e.address)||void 0===o?void 0:o.line2)||"",city:(null===(a=null==e?void 0:e.address)||void 0===a?void 0:a.city)||"",countryCode:(null===(s=null==e?void 0:e.address)||void 0===s?void 0:s.country)||"",postalCode:(null===(d=null==e?void 0:e.address)||void 0===d?void 0:d.postal_code)||"",stateOrProvince:(null===(c=null==e?void 0:e.address)||void 0===c?void 0:c.state)||"",stateOrProvinceCode:(null===(l=null==e?void 0:e.address)||void 0===l?void 0:l.state)||"",customFields:[]}}_mapBillingAddress(e,t,n,i){var r,o,a,s,d,c;return{email:(null==t?void 0:t.email)||"",firstName:n,lastName:i,phone:(null==t?void 0:t.phone)||"",company:"",address1:(null===(r=null==t?void 0:t.address)||void 0===r?void 0:r.line1)||"",address2:"",city:(null===(o=null==t?void 0:t.address)||void 0===o?void 0:o.city)||"",countryCode:(null===(a=null==t?void 0:t.address)||void 0===a?void 0:a.country)||"",postalCode:(null===(s=null==t?void 0:t.address)||void 0===s?void 0:s.postal_code)||"",stateOrProvince:(null===(d=null==t?void 0:t.address)||void 0===d?void 0:d.state)||"",stateOrProvinceCode:(null===(c=null==e?void 0:e.address)||void 0===c?void 0:c.state)||"",customFields:[]}}_processAdditionalAction(e,t){return ld(this,void 0,void 0,function*(){if(!wa(e)||!this.stripeIntegrationService.isAdditionalActionError(e.body.errors))throw e;if(!this._stripeClient||!this._stripeElements)throw new gi(hi.PaymentNotInitialized);const{data:n}=e.body.additional_action_required,{token:i}=n,{paymentIntent:r}=yield this._confirmStripePaymentOrThrow(n,t),o=this._getPaymentPayload(t,(null==r?void 0:r.id)||i);try{this._toggleLoadingIndicator(!0),yield this.paymentIntegrationService.submitPayment(o),yield this._completeCheckoutFlow()}catch(e){this.stripeIntegrationService.throwPaymentConfirmationProceedMessage()}finally{this._toggleLoadingIndicator(!1)}})}_confirmStripePaymentOrThrow(e,t){var n,i,r;return ld(this,void 0,void 0,function*(){const{token:o,redirect_url:a}=e,s=this.stripeIntegrationService.mapStripePaymentData(this._stripeElements,a);let d;try{const e=(yield this.stripeIntegrationService.isPaymentCompleted(t,this._stripeClient))?yield null===(r=this._stripeClient)||void 0===r?void 0:r.retrievePaymentIntent(o||""):yield null===(n=this._stripeClient)||void 0===n?void 0:n.confirmPayment({elements:s.elements,clientSecret:o,redirect:Ys.IF_REQUIRED,confirmParams:{return_url:null===(i=s.confirmParams)||void 0===i?void 0:i.return_url}});if(d=null==e?void 0:e.error,d||!(null==e?void 0:e.paymentIntent))throw new so;return e}catch(e){return this.stripeIntegrationService.throwStripeError(d)}})}_completeCheckoutFlow(){return ld(this,void 0,void 0,function*(){return"function"==typeof this._onComplete?this._onComplete():(window.location.replace("/order-confirmation"),Promise.resolve())})}_getPaymentPayload(e,t){var n;const i=(null===(n=this.paymentIntegrationService.getState().getCart())||void 0===n?void 0:n.id)||"";return{methodId:e,paymentData:{formattedPayload:Object.assign(Object.assign({cart_id:i},t?{credit_card_token:{token:t}}:{}),{confirm:!1,payment_method_id:Ws.Link})}}}_shouldRequireShippingAddress(){const{getCartOrThrow:e}=this.paymentIntegrationService.getState(),{lineItems:t}=e();return!!t.physicalItems.length}_updateDisplayedPrice(){return ld(this,void 0,void 0,function*(){this._stripeElements&&this._stripeElements.update({currency:this._getCurrency(),mode:"payment",amount:yield this._getTotalPrice()})})}_getCurrency(){if(!this._currencyCode){const{code:e}=this.paymentIntegrationService.getState().getCartOrThrow().currency;this._currencyCode=e.toLowerCase()}return this._currencyCode}_getTotalPrice(){return ld(this,void 0,void 0,function*(){yield this.paymentIntegrationService.loadCheckout();const{getCheckoutOrThrow:e,getCartOrThrow:t}=this.paymentIntegrationService.getState(),{decimalPlaces:n}=t().currency,i=J(e().outstandingBalance,n).toFixed(n);return this._toCents(+i)})}_getAvailableCountries(){var e;return ld(this,void 0,void 0,function*(){const t=yield this.paymentIntegrationService.loadShippingCountries();return((null===(e=t.getShippingCountries())||void 0===e?void 0:e.map(e=>e.code))||[]).filter(e=>cd.includes(e))})}_getAvailableShippingOptions(){var e,t;return ld(this,void 0,void 0,function*(){const n=this.paymentIntegrationService.getState().getConsignments();if(!(null==n?void 0:n[0]))return;const i=n[0],r=(i.availableShippingOptions||[]).map(this._getStripeShippingOption.bind(this)),o=null===(e=i.selectedShippingOption)||void 0===e?void 0:e.id;return o?r.sort(e=>e.id===o?-1:0):yield this._handleShippingOptionChange(null===(t=r[0])||void 0===t?void 0:t.id),r})}_getStripeShippingOption({id:e,cost:t,description:n}){return{id:e,displayName:n,amount:this._toCents(t)}}_handleShippingOptionChange(e){return ld(this,void 0,void 0,function*(){if(e&&"shipping_option_unselected"!==e)return this.paymentIntegrationService.selectShippingOption(e)})}_getAmountTransformer(){if(this._amountTransformer)return this._amountTransformer;const{getCart:e}=this.paymentIntegrationService.getState(),{currency:t}=e()||{};return t?new dd(t.decimalPlaces):void 0}_toCents(e){const t=Math.round(100*e),n=this._getAmountTransformer();return n?n.toInteger(e):t}_toggleLoadingIndicator(e){e&&this._loadingIndicatorContainer?this.loadingIndicator.show(this._loadingIndicatorContainer):this.loadingIndicator.hide()}}const hd=Rt(e=>{const t=new Us(a()),n=new sd({containerStyles:od});return new ud(e,t,new id(e,t),n)},[{id:"stripeocs"}]);var pd,md,yd,gd,vd,fd,Sd;class wd{constructor(e,t,n=window){this._scriptLoader=e,this._stylesheetLoader=t,this._window=n}load(e){var t,n,i,r,o,a;return i=this,r=void 0,a=function*(){if(yield Promise.all([this._stylesheetLoader.loadStylesheet(`https://checkoutshopper-${null!==(t=e.environment)&&void 0!==t?t:""}.adyen.com/checkoutshopper/sdk/3.10.1/adyen.css`,{prepend:!1,attributes:{integrity:"sha384-8ofgICZZ/k5cC5N7xegqFZOA73H9RQ7H13439JfAZW8Gj3qjuKL2isaTD3GMIhDE",crossorigin:"anonymous"}}),this._scriptLoader.loadScript(`https://checkoutshopper-${null!==(n=e.environment)&&void 0!==n?n:""}.adyen.com/checkoutshopper/sdk/3.10.1/adyen.js`,{async:!0,attributes:{integrity:"sha384-wG2z9zSQo61EIvyXmiFCo+zB3y0ZB4hsrXVcANmpP8HLthjoQJQPBh7tZKJSV8jA",crossorigin:"anonymous"}})]),!this._window.AdyenCheckout)throw new Oi;return new this._window.AdyenCheckout(e)},new((o=void 0)||(o=Promise))(function(e,t){function n(e){try{d(a.next(e))}catch(e){t(e)}}function s(e){try{d(a.throw(e))}catch(e){t(e)}}function d(t){var i;t.done?e(t.value):(i=t.value,i instanceof o?i:new o(function(e){e(i)})).then(n,s)}d((a=a.apply(i,r||[])).next())})}}function _d(e){return"object"==typeof e&&"string"==typeof e.data.paymentMethod.encryptedSecurityCode||"string"==typeof e.data.paymentMethod.encryptedExpiryMonth}function Cd(e){return Boolean(e.instrumentId)}!function(e){e.ThreeDS2Fingerprint="threeDS2Fingerprint",e.ThreeDS2="threeDS2",e.Redirect="redirect",e.QRCode="qrCode",e.Voucher="voucher",e.Sdk="sdk"}(pd||(pd={})),function(e){e.ThreeDS2Fingerprint="threeDS2Fingerprint",e.ThreeDS2Challenge="threeDS2Challenge",e.Redirect="redirect",e.QRCode="qrCode",e.Voucher="voucher"}(md||(md={})),function(e){e.SecuredFields="securedfields"}(yd||(yd={})),function(e){e.ACH="ach",e.AliPay="alipay",e.Bancontact="bcmc",e.CreditCard="scheme",e.Klarna="klarna",e.KlarnaPayNow="klarna_paynow",e.KlarnaAccount="klarna_account",e.IDEAL="ideal",e.GiroPay="giropay",e.GooglePay="paywithgoogle",e.SEPA="sepadirectdebit",e.Sofort="directEbanking",e.Vipps="vipps",e.WeChatPayQR="wechatpayQR"}(gd||(gd={})),function(e){e.POST="POST"}(vd||(vd={})),function(e){e.ChallengeShopper="ChallengeShopper",e.Error="Error",e.IdentifyShopper="IdentifyShopper"}(fd||(fd={})),function(e){e.CardNumber="encryptedCardNumber",e.SecurityCode="encryptedSecurityCode",e.ExpiryDate="encryptedExpiryDate"}(Sd||(Sd={}));class Id extends li{constructor(){super("The current order does not need to be finalized at this stage."),this.name="OrderFinalizationNotRequiredError",this.type="order_finalization_not_required"}}var bd=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Pd{constructor(e,t){this._paymentIntegrationService=e,this._scriptLoader=t}initialize(e){return bd(this,void 0,void 0,function*(){const{adyenv2:t}=e;if(!t)throw new ki('Unable to initialize payment because "options.adyenv2" argument is not provided.');this._paymentInitializeOptions=t;const n=this._paymentIntegrationService.getState().getPaymentMethodOrThrow(e.methodId),{originKey:i,clientKey:r,environment:o,paymentMethodsResponse:a}=n.initializationData||{},s={key:"",value:""};return i?(s.key="originKey",s.value=i):(s.key="clientKey",s.value=r||""),this._adyenClient=yield this._scriptLoader.load({environment:o,locale:this._paymentIntegrationService.getState().getLocale(),[s.key]:s.value,paymentMethodsResponse:a,translations:{es:{"creditCard.expiryDateField.title":"Fecha de caducidad"},"es-AR":{"creditCard.expiryDateField.title":"Fecha de caducidad"},"es-ES":{"creditCard.expiryDateField.title":"Fecha de caducidad"},"es-MX":{"creditCard.expiryDateField.title":"Fecha de caducidad"},"es-CL":{"creditCard.expiryDateField.title":"Fecha de caducidad"},"es-CO":{"creditCard.expiryDateField.title":"Fecha de caducidad"},"es-PE":{"creditCard.expiryDateField.title":"Fecha de caducidad"}}}),this._paymentComponent=yield this._mountPaymentComponent(n),n.method!==gd.CreditCard&&n.method!==gd.Bancontact||(this._cardVerificationComponent=yield this._mountCardVerificationComponent()),Promise.resolve()})}execute(e,t){return bd(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),r=n&&n.paymentData,o=r&&r.shouldSaveInstrument,a=r&&r.shouldSetAsDefaultInstrument;if(!n)return Promise.reject(new fo(["payment"]));this._validateCardData(),yield this._paymentIntegrationService.submitOrder(i,t);const s=this._componentState;if(!s)throw new gi(hi.PaymentNotInitialized);if(r&&Cd(r)){let e={};if(_d(s)){const{encryptedCardNumber:t,encryptedSecurityCode:n,encryptedExpiryMonth:i,encryptedExpiryYear:r}=s.data.paymentMethod;e={credit_card_number_confirmation:t,expiry_month:i,expiry_year:r,verification_value:n}}if(_d(s)||-1!==["ideal","sepadirectdebit","directEbanking","giropay"].indexOf(s.data.paymentMethod.type))try{return void(yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},n),{paymentData:{formattedPayload:{bigpay_token:Object.assign(Object.assign({},e),{token:r.instrumentId}),origin:window.location.origin,browser_info:Za(),set_as_default_stored_instrument:a||null}}})))}catch(e){return void(yield this._processAdditionalAction(e,o,a))}}try{yield this._paymentIntegrationService.submitPayment({methodId:n.methodId,paymentData:{formattedPayload:{credit_card_token:{token:JSON.stringify(Object.assign(Object.assign({},s.data.paymentMethod),{origin:window.location.origin}))},browser_info:Za(),vault_payment_instrument:o||null,set_as_default_stored_instrument:a||null}}})}catch(e){yield this._processAdditionalAction(e,o,a)}})}finalize(){return Promise.reject(new Id)}deinitialize(){return this._componentState=void 0,this._paymentComponent&&(this._paymentComponent.unmount(),this._paymentComponent=void 0),this._cardVerificationComponent&&(this._cardVerificationComponent.unmount(),this._cardVerificationComponent=void 0),Promise.resolve()}_getAdyenClient(){if(!this._adyenClient)throw new gi(hi.PaymentNotInitialized);return this._adyenClient}_getPaymentInitializeOptions(){if(!this._paymentInitializeOptions)throw new ki('"options.adyenv2" argument was not provided during initialization.');return this._paymentInitializeOptions}_getThreeDS2ChallengeWidgetSize(){const{additionalActionOptions:e,threeDS2Options:t}=this._getPaymentInitializeOptions();return e.widgetSize||(null==t?void 0:t.widgetSize)||"05"}_handleAction(e){return new Promise((t,n)=>{const{threeDS2ContainerId:i,additionalActionOptions:r}=this._getPaymentInitializeOptions(),{onBeforeLoad:o,containerId:a,onLoad:s,onComplete:d}=r,c=JSON.parse(e.action),l=this._getAdyenClient().createFromAction(c,{onAdditionalDetails:e=>{const n={methodId:c.paymentMethodType,paymentData:{nonce:JSON.stringify(e.data)}};d&&d(),t(n)},size:this._getThreeDS2ChallengeWidgetSize(),onError:e=>n(e)});o&&o(c.type===md.ThreeDS2Challenge||c.type===md.QRCode),l.mount(`#${a||i}`),s&&s(()=>{n(new nr),l.unmount()})})}_mapAdyenPlaceholderData(e,t){if(!e)return{};const{firstName:n,lastName:i,address1:r,address2:o,postalCode:a,city:s,stateOrProvinceCode:d,countryCode:c}=e;return{holderName:t?`${n} ${i}`:"",billingAddress:{street:r,houseNumberOrName:o,postalCode:a,city:s,stateOrProvince:d,country:c}}}_mountCardVerificationComponent(){const e=this._getPaymentInitializeOptions(),t=this._getAdyenClient();let n;return new Promise((i,r)=>{var o,a,s;if(e.cardVerificationContainerId){n=t.create(yd.SecuredFields,Object.assign(Object.assign({},e.options),{styles:Object.assign(Object.assign({},null===(o=e.options)||void 0===o?void 0:o.styles),{placeholder:Object.assign({color:"transparent",caretColor:"#000"},null===(s=null===(a=e.options)||void 0===a?void 0:a.styles)||void 0===s?void 0:s.placeholder)}),onChange:e=>this._updateComponentState(e),onError:t=>e.validateCardFields(t),onFieldValid:t=>e.validateCardFields(t)}));try{n.mount(`#${e.cardVerificationContainerId}`)}catch(e){r(new gi(hi.PaymentNotInitialized))}}i(n)})}_mountPaymentComponent(e){let t;const n=this._getPaymentInitializeOptions(),i=this._getAdyenClient();return new Promise((r,o)=>{switch(e.method){case gd.CreditCard:case gd.ACH:case gd.Bancontact:{const r=this._paymentIntegrationService.getState().getBillingAddress(),{prefillCardHolderName:a}=e.initializationData;t=i.create(e.method,Object.assign(Object.assign({},n.options),{onChange:e=>this._updateComponentState(e),data:this._mapAdyenPlaceholderData(r,a)}));try{t.mount(`#${n.containerId}`)}catch(e){o(new gi(hi.PaymentNotInitialized))}break}case gd.IDEAL:case gd.SEPA:if(n.hasVaultedInstruments)this._updateComponentState({data:{paymentMethod:{type:e.method}}});else{t=i.create(e.method,Object.assign(Object.assign({},n.options),{onChange:e=>this._updateComponentState(e)}));try{t.mount(`#${n.containerId}`)}catch(e){o(new gi(hi.PaymentNotInitialized))}}break;case gd.AliPay:case gd.GiroPay:case gd.Sofort:case gd.Klarna:case gd.KlarnaPayNow:case gd.KlarnaAccount:case gd.Vipps:case gd.WeChatPayQR:this._updateComponentState({data:{paymentMethod:{type:e.method}}})}r(t)})}_processAdditionalAction(e,t,n){return bd(this,void 0,void 0,function*(){if(!wa(e)||!Z(e.body.errors,{code:"additional_action_required"}))throw e;const i=yield this._handleAction(e.body.provider_data);try{yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},i),{paymentData:Object.assign(Object.assign({},i.paymentData),{shouldSaveInstrument:t,shouldSetAsDefaultInstrument:n})}))}catch(e){return this._processAdditionalAction(e,t,n)}})}_updateComponentState(e){this._componentState=e}_validateCardData(){var e,t;const n=this._getPaymentInitializeOptions().hasVaultedInstruments?this._cardVerificationComponent:this._paymentComponent;if((null===(e=null==n?void 0:n.componentRef)||void 0===e?void 0:e.showValidation)&&n.state&&(n.componentRef.showValidation(),0===Object.keys(n.state).length||!n.state.isValid&&!n.state.issuer||"sepadirectdebit"===(null===(t=n.props)||void 0===t?void 0:t.type)&&n.state.data&&Object.values(n.state.data).some(e=>0===e.toString().trim().length)))throw new So(this._mapCardErrors(n.state.errors))}_mapCardErrors(e={}){const t={};return Object.keys(e).forEach(n=>{t[n]=[{message:e[n],type:n}]}),t}}const Od=Rt(e=>new Pd(e,new wd(a(),s())),[{gateway:"adyenv2"}]);class Ed{constructor(e,t,n=window){this._scriptLoader=e,this._stylesheetLoader=t,this._window=n}load(e){var t,n,i,r,o,a;return i=this,r=void 0,a=function*(){if(yield Promise.all([this._stylesheetLoader.loadStylesheet(`https://checkoutshopper-${null!==(t=e.environment)&&void 0!==t?t:""}.adyen.com/checkoutshopper/sdk/5.71.1/adyen.css`,{prepend:!1,attributes:{integrity:"sha384-5MvB4RnzvviA3VBT4KYABZ4HXNZG5LRqREEgd41xt/pf/QvKmsj2O9GuNuywRXx9",crossorigin:"anonymous"}}),this._scriptLoader.loadScript(`https://checkoutshopper-${null!==(n=e.environment)&&void 0!==n?n:""}.adyen.com/checkoutshopper/sdk/5.71.1/adyen.js`,{async:!0,attributes:{integrity:"sha384-yvY2yFNR4WqIjPqP9MzjI+gJimmaJnAvj4rLHKvgJbgFD5fMuf8zIJrFJOW8Lhhf",crossorigin:"anonymous"}})]),!this._window.AdyenCheckout)throw new Oi;return yield this._window.AdyenCheckout(e)},new((o=void 0)||(o=Promise))(function(e,t){function n(e){try{d(a.next(e))}catch(e){t(e)}}function s(e){try{d(a.throw(e))}catch(e){t(e)}}function d(t){var i;t.done?e(t.value):(i=t.value,i instanceof o?i:new o(function(e){e(i)})).then(n,s)}d((a=a.apply(i,r||[])).next())})}}function Ad(e){return!("object"!=typeof e||null===e||void 0!==e.shouldSaveInstrument&&"boolean"!=typeof e.shouldSaveInstrument||void 0!==e.shouldSetAsDefaultInstrument&&"boolean"!=typeof e.shouldSetAsDefaultInstrument)}var kd=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Td{constructor(e,t){this._paymentIntegrationService=e,this._scriptLoader=t}initialize(e){return kd(this,void 0,void 0,function*(){const{adyenv3:t}=e;if(!t)throw new ki('Unable to initialize payment because "options.adyenv3" argument is not provided.');this._paymentInitializeOptions=t;const n=this._paymentIntegrationService.getState().getPaymentMethodOrThrow(e.methodId),{environment:i,clientKey:r,paymentMethodsResponse:o,installmentOptions:a}=n.initializationData||{};return this._adyenClient=yield this._scriptLoader.load({paymentMethodsConfiguration:Object.assign({klarna:{useKlarnaWidget:!0},klarna_account:{useKlarnaWidget:!0},klarna_paynow:{useKlarnaWidget:!0}},a?{card:{installmentOptions:Object.assign({showInstallmentAmounts:!0},a)}}:{}),environment:i,locale:this._getLocale(),clientKey:r,paymentMethodsResponse:o,showPayButton:!1,translations:{es:{"creditCard.expiryDateField.title":"Fecha de caducidad"},"es-AR":{"creditCard.expiryDateField.title":"Fecha de caducidad"},"es-ES":{"creditCard.expiryDateField.title":"Fecha de caducidad"},"es-MX":{"creditCard.expiryDateField.title":"Fecha de caducidad"},"es-CL":{"creditCard.expiryDateField.title":"Fecha de caducidad"},"es-CO":{"creditCard.expiryDateField.title":"Fecha de caducidad"},"es-PE":{"creditCard.expiryDateField.title":"Fecha de caducidad"}}}),this._paymentComponent=yield this._mountPaymentComponent(n),n.method!==gd.CreditCard&&n.method!==gd.Bancontact||(this._cardVerificationComponent=yield this._mountCardVerificationComponent()),Promise.resolve()})}execute(e,t){var n;return kd(this,void 0,void 0,function*(){const{payment:i}=e,r=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!i)throw new fo(["payment"]);const o=i.paymentData,{shouldSaveInstrument:a,shouldSetAsDefaultInstrument:s}=Ad(o)?o:{shouldSaveInstrument:!1,shouldSetAsDefaultInstrument:!1};this._validateCardData(),"klarna"!==i.methodId&&"klarna_account"!==i.methodId&&"klarna_paynow"!==i.methodId||null===(n=this._paymentComponent)||void 0===n||n.submit(),yield this._paymentIntegrationService.submitOrder(r,t);const d=this._componentState||{data:{paymentMethod:{type:i.methodId}}};if(o&&Cd(o)){let e={};if(_d(d)){const{encryptedCardNumber:t,encryptedSecurityCode:n,encryptedExpiryMonth:i,encryptedExpiryYear:r}=d.data.paymentMethod;e={credit_card_number_confirmation:t,expiry_month:i,expiry_year:r,verification_value:n}}try{return void(yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},i),{paymentData:{formattedPayload:{bigpay_token:Object.assign(Object.assign({},e),{token:o.instrumentId}),origin:window.location.origin,browser_info:Za(),set_as_default_stored_instrument:s||null}}})))}catch(e){return void(yield this._processAdditionalAction(e,a,s))}}let c=JSON.stringify(Object.assign(Object.assign({},d.data.paymentMethod),{type:i.methodId,origin:window.location.origin}));"boletobancario"===i.methodId&&function(e){var t,n;return"string"===("object"==typeof e&&typeof e.data.socialSecurityNumber)&&"string"==typeof(null===(t=e.data.shopperName)||void 0===t?void 0:t.firstName)&&"string"==typeof(null===(n=e.data.shopperName)||void 0===n?void 0:n.lastName)}(d)&&(c=JSON.stringify(Object.assign(Object.assign({socialSecurityNumber:d.data.socialSecurityNumber},d.data.shopperName),{type:i.methodId,origin:window.location.origin})));try{yield this._paymentIntegrationService.submitPayment({methodId:i.methodId,paymentData:{formattedPayload:Object.assign(Object.assign({credit_card_token:{token:c}},_d(d)&&d.data.installments?{installments:{value:d.data.installments.value,plan:d.data.installments.plan||"regular"}}:{}),{browser_info:Za(),vault_payment_instrument:a||null,set_as_default_stored_instrument:s||null})}})}catch(e){yield this._processAdditionalAction(e,a,s)}})}finalize(){return Promise.reject(new Id)}deinitialize(){return this._componentState=void 0,this._paymentComponent&&(this._paymentComponent.unmount(),this._paymentComponent=void 0),this._cardVerificationComponent&&(this._cardVerificationComponent.unmount(),this._cardVerificationComponent=void 0),Promise.resolve()}_updateComponentState(e){this._componentState=e}_getLocale(){const e=this._paymentIntegrationService.getState().getLocale();return e&&"es"===e.substring(0,2)?"es":e}_getAdyenClient(){if(!this._adyenClient)throw new gi(hi.PaymentNotInitialized);return this._adyenClient}_getPaymentInitializeOptions(){if(!this._paymentInitializeOptions)throw new ki('"options.adyenv3" argument was not provided during initialization.');return this._paymentInitializeOptions}_handleAction(e){return new Promise((t,n)=>{const{additionalActionOptions:i}=this._getPaymentInitializeOptions(),{onBeforeLoad:r,containerId:o,onLoad:a,onComplete:s,widgetSize:d,onActionHandled:c}=i,l=JSON.parse(e.action),u=this._getAdyenClient().createFromAction(l,{onActionHandled:e=>{c&&"function"==typeof c&&"3DS2Fingerprint"!==e.componentType&&c()},onAdditionalDetails:e=>{const n={methodId:l.paymentMethodType,paymentData:{nonce:JSON.stringify(e.data)}};s&&"function"==typeof s&&s(),t(n)},challengeWindowSize:d||"05",onError:e=>n(e)});r&&"function"==typeof r&&r(l.type===pd.ThreeDS2||l.type===pd.QRCode||l.type===pd.Sdk),this._mountElement(u,o),a&&"function"==typeof a&&a(()=>{n(new nr),u.unmount()})})}_mapAdyenPlaceholderData(e,t){if(!e)return{};const{firstName:n,lastName:i,address1:r,address2:o,postalCode:a,city:s,stateOrProvinceCode:d,countryCode:c}=e;return{holderName:t?`${n} ${i}`:"",firstName:t?n:"",lastName:t?i:"",billingAddress:{street:r,houseNumberOrName:o,postalCode:a,city:s,stateOrProvince:d,country:c}}}_mountCardVerificationComponent(){const e=this._getPaymentInitializeOptions(),t=this._getAdyenClient();let n;return new Promise((i,r)=>{var o,a,s;if(e.cardVerificationContainerId){n=t.create(yd.SecuredFields,Object.assign(Object.assign({},e.options),{styles:Object.assign(Object.assign({},null===(o=e.options)||void 0===o?void 0:o.styles),{placeholder:Object.assign({color:"transparent",caretColor:"#000"},null===(s=null===(a=e.options)||void 0===a?void 0:a.styles)||void 0===s?void 0:s.placeholder)}),onChange:e=>this._updateComponentState(e),onError:t=>e.validateCardFields(t),onFieldValid:t=>e.validateCardFields(t)}));try{this._mountElement(n,e.cardVerificationContainerId)}catch(e){r(new gi(hi.PaymentNotInitialized))}}i(n)})}_mountPaymentComponent(e){let t;const n=this._getPaymentInitializeOptions(),i=this._getAdyenClient();return new Promise((r,o)=>{const a=this._paymentIntegrationService.getState().getBillingAddress(),{prefillCardHolderName:s}=e.initializationData;t=i.create(e.method,Object.assign(Object.assign(Object.assign({},n.options),{showBrandsUnderCardNumber:!1,billingAddressRequired:!1,showEmailAddress:!1,onChange:e=>this._updateComponentState(e),onSubmit:e=>this._updateComponentState(e)}),a?{data:this._mapAdyenPlaceholderData(a,s)}:{}));try{this._mountElement(t,n.containerId)}catch(e){o(new gi(hi.PaymentNotInitialized))}r(t)})}_processAdditionalAction(e,t,n){return kd(this,void 0,void 0,function*(){if(!wa(e)||!Z(e.body.errors,{code:"additional_action_required"}))throw e;const i=yield this._handleAction(e.body.provider_data);try{yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},i),{paymentData:Object.assign(Object.assign({},i.paymentData),{shouldSaveInstrument:t,shouldSetAsDefaultInstrument:n})}))}catch(e){return this._processAdditionalAction(e,t,n)}})}_validateCardData(){var e;const t=this._getPaymentInitializeOptions().hasVaultedInstruments?this._cardVerificationComponent:this._paymentComponent;if((null===(e=null==t?void 0:t.componentRef)||void 0===e?void 0:e.showValidation)&&t.state&&(t.componentRef.showValidation(),0===Object.keys(t.state).length||!t.state.isValid))throw new So(this._mapCardErrors(t.state.errors))}_mapCardErrors(e={}){const t={};return Object.keys(e).forEach(n=>{t[n]=[{message:e[n],type:n}]}),t}_mountElement(e,t){document.getElementById(t)&&e.mount(`#${t}`)}}const Dd=Rt(e=>new Td(e,new Ed(a(),s())),[{gateway:"adyenv3"}]);var Md,zd=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Nd{constructor(e,t){this.paymentIntegrationService=e,this.affirmScriptLoader=t}initialize(e){return zd(this,void 0,void 0,function*(){yield this.paymentIntegrationService.loadPaymentMethod(e.methodId);const t=this.paymentIntegrationService.getState(),{clientToken:n,config:{testMode:i}}=t.getPaymentMethodOrThrow(e.methodId);if(!n)throw new pi(ui.MissingPaymentMethod);this.affirm=yield this.affirmScriptLoader.load(n,i)})}execute(e,t){var n;return zd(this,void 0,void 0,function*(){const i=null===(n=e.payment)||void 0===n?void 0:n.methodId,{useStoreCredit:r}=e;if(!this.affirm)throw new gi(hi.PaymentNotInitialized);if(!i)throw new fo(["payment.methodId"]);yield this.paymentIntegrationService.submitOrder({useStoreCredit:r},t);const o={methodId:i,paymentData:{nonce:(yield this.initializeAffirmCheckout()).checkout_token}};yield this.paymentIntegrationService.submitPayment(o)})}deinitialize(){return this.affirm&&(this.affirm=void 0),Promise.resolve()}finalize(){return Promise.reject(new Id)}initializeAffirmCheckout(){var e;return null===(e=this.affirm)||void 0===e||e.checkout(this.getCheckoutInformation()),new Promise((e,t)=>{var n,i;null===(n=this.affirm)||void 0===n||n.checkout.open({onFail:e=>{"canceled"===e.reason?t(new nr):t(new co)},onSuccess:t=>{e(t)}}),null===(i=this.affirm)||void 0===i||i.ui.error.on("close",()=>{t(new nr)})})}getCheckoutInformation(){const e=this.paymentIntegrationService.getState(),t=e.getStoreConfig(),n=e.getConsignments(),i=e.getOrder(),r=e.getCart();if(!t)throw new pi(ui.MissingCheckoutConfig);if(!i)throw new pi(ui.MissingCheckout);const o=new dd(i.currency.decimalPlaces),a=this.getBillingAddress(),s=this.getShippingAddress(),d=Yo(r,t)&&s?s:a;return{merchant:{user_confirmation_url:t.links.checkoutLink,user_cancel_url:t.links.checkoutLink,user_confirmation_url_action:"POST"},shipping:d,billing:a,items:this.getItems(o,i),metadata:{shipping_type:this.getShippingType(n),mode:"modal",platform_type:"BigCommerce",platform_version:"",platform_affirm:""},discounts:this.getDiscounts(o,i),order_id:i.orderId?i.orderId.toString():"",shipping_amount:o.toInteger(i.shippingCostTotal),tax_amount:o.toInteger(i.taxTotal),total:o.toInteger(i.orderAmount)}}getShippingType(e){if(!e)return"";const t=e[0];return(null==t?void 0:t.selectedShippingOption)?t.selectedShippingOption.type:""}getBillingAddress(){const e=this.paymentIntegrationService.getState().getBillingAddress();if(!e)throw new pi(ui.MissingBillingAddress);return{name:{first:e.firstName,last:e.lastName,full:`${e.firstName} ${e.lastName}`},address:{line1:e.address1,line2:e.address2,city:e.city,state:e.stateOrProvinceCode,zipcode:e.postalCode,country:e.countryCode},phone_number:e.phone,email:e.email}}getShippingAddress(){const e=this.paymentIntegrationService.getState().getShippingAddress();if(e)return{name:{first:e.firstName,last:e.lastName,full:`${e.firstName} ${e.lastName}`},address:{line1:e.address1,line2:e.address2,city:e.city,state:e.stateOrProvinceCode,zipcode:e.postalCode,country:e.countryCode},phone_number:e.phone}}getItems(e,t){const n=[];return t.lineItems.physicalItems.forEach(t=>{n.push({display_name:t.name,sku:t.sku,unit_price:e.toInteger(t.salePrice),qty:t.quantity,item_image_url:t.imageUrl,item_url:t.url,categories:this.getCategories(t.categories)})}),t.lineItems.digitalItems.forEach(t=>{n.push({display_name:t.name,sku:t.sku,unit_price:e.toInteger(t.salePrice),qty:t.quantity,item_image_url:t.imageUrl,item_url:t.url,categories:this.getCategories(t.categories)})}),t.lineItems.giftCertificates.forEach(t=>{n.push({display_name:t.name,sku:"",unit_price:e.toInteger(t.amount),qty:1,item_image_url:"",item_url:""})}),t.lineItems.customItems&&t.lineItems.customItems.forEach(t=>{n.push({display_name:t.name,sku:t.sku,unit_price:e.toInteger(t.listPrice),qty:t.quantity,item_image_url:"",item_url:""})}),n}getDiscounts(e,t){const n={};return t.coupons.forEach(t=>{t.discountedAmount>0&&(n[t.code]={discount_amount:e.toInteger(t.discountedAmount),discount_display_name:t.displayName})}),t.discountAmount>0&&(n.DISCOUNTED_AMOUNT={discount_amount:e.toInteger(t.discountAmount),discount_display_name:"discount"}),n}getCategories(e){return e?e.map(e=>e.map(e=>e.name)):[[]]}}!function(e){e.PROD="//cdn1.affirm.com/js/v2/affirm.js",e.SANDBOX="//cdn1-sandbox.affirm.com/js/v2/affirm.js"}(Md||(Md={}));class xd{constructor(e=window){this.affirmWindow=e}load(e="",t){const n=t?Md.SANDBOX:Md.PROD;if(function(e,t,n,i,r,o,a){const s=e[n]||{},d=document.createElement(o),c=document.getElementsByTagName(o)[0],l=function(e,t,n){return function(){e[t]._.push([n,arguments])}};s[i]=l(s,i,"set");const u=s[i];s[r]={},s[r]._=[],u._=[],s._=[],s[r][a]=l(s,r,a),s.jsReady=function(){s._.push([a,arguments])};let h=0;for(const e="set add save post open empty reset on off trigger ready setProduct".split(" ");h<e.length;h++)u[e[h]]=l(s,i,e[h]);let p=0;for(const e=["get","token","url","items"];p<e.length;p++)u[e[p]]=function(){};d.async=!0,d.src=t[o],c.parentNode&&c.parentNode.insertBefore(d,c),delete t[o],u(t),e[n]=s}(window,{public_api_key:e,script:n},"affirm","checkout","ui","script","ready"),!this.affirmWindow.affirm)throw new Oi;return Promise.resolve(this.affirmWindow.affirm)}}const Fd=Rt(e=>new Nd(e,new xd),[{id:"affirm"}]);class Rd extends li{constructor(e){super(e||"The current order could not be finalized successfully"),this.name="OrderFinalizationNotCompletedError",this.type="order_finalization_not_completed"}}var Ld=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Bd{constructor(e,t){this._paymentIntegrationService=e,this._afterpayScriptLoader=t}initialize(e){var t;return Ld(this,void 0,void 0,function*(){const n=this._paymentIntegrationService.getState(),i=n.getPaymentMethod(e.methodId,e.gatewayId),r=(null===(t=n.getCart())||void 0===t?void 0:t.currency.code)||"",o=this._mapCurrencyToISO2(r);if(!i)throw new pi(ui.MissingPaymentMethod);this._afterpaySdk=yield this._afterpayScriptLoader.load(i,o)})}deinitialize(){return this._afterpaySdk&&(this._afterpaySdk=void 0),Promise.resolve()}execute(e,t){var n;return Ld(this,void 0,void 0,function*(){if(!e.payment)throw new fo(["payment.gatewayId","payment.methodId"]);const{gatewayId:i,methodId:r}=e.payment;if(!i||!r)throw new fo(["payment.gatewayId","payment.methodId"]);const{useStoreCredit:o}=e;void 0!==o&&(yield this._paymentIntegrationService.applyStoreCredit(o)),yield this._loadPaymentMethod(i,r,t);const a=this._paymentIntegrationService.getState();yield this._paymentIntegrationService.validateCheckout(a.getCheckout(),t);const s=(null===(n=a.getCart())||void 0===n?void 0:n.currency.code)||"",d=this._mapCurrencyToISO2(s);return this._redirectToAfterpay(d,a.getPaymentMethod(r,i)),new Promise(()=>{})})}finalize(e){var t,n,i;return Ld(this,void 0,void 0,function*(){const r=this._paymentIntegrationService.getState(),o=r.getPaymentId(),a=r.getContextConfig();if(!o)throw new pi(ui.MissingCheckout);if(!(null==a?void 0:a.payment.token))throw new pi(ui.MissingCheckoutConfig);const s={methodId:o.providerId,paymentData:{nonce:a.payment.token}};yield this._paymentIntegrationService.submitOrder({},e);try{yield this._paymentIntegrationService.submitPayment(s)}catch(e){if(yield this._paymentIntegrationService.forgetCheckout(o.providerId),yield this._paymentIntegrationService.loadPaymentMethods(),wa(e))throw new Rd(null===(i=null===(n=null===(t=e.body)||void 0===t?void 0:t.errors)||void 0===n?void 0:n[0])||void 0===i?void 0:i.message)}})}_redirectToAfterpay(e,t){if(!this._afterpaySdk||!(null==t?void 0:t.clientToken))throw new gi(hi.PaymentNotInitialized);this._afterpaySdk.initialize({countryCode:e}),this._afterpaySdk.redirect({token:t.clientToken})}_mapCurrencyToISO2(e){return{AUD:"AU",NZD:"NZ",CAD:"CA",USD:"US"}[e]||"AU"}_loadPaymentMethod(e,t,n){var i;return Ld(this,void 0,void 0,function*(){try{return yield this._paymentIntegrationService.loadPaymentMethod(e,Object.assign(Object.assign({},n),{params:Object.assign(Object.assign({},null==n?void 0:n.params),{method:t})}))}catch(e){if(e instanceof hr&&422===(null===(i=e.body)||void 0===i?void 0:i.status))throw new ki("Afterpay can't process your payment for this order, please try another payment method");throw e}})}}var jd,Ud;!function(e){e.PROD="//portal.afterpay.com/afterpay-async.js",e.SANDBOX="//portal-sandbox.afterpay.com/afterpay-async.js"}(jd||(jd={})),function(e){e.PROD="//portal.afterpay.com/afterpay-async.js",e.SANDBOX="//portal.sandbox.afterpay.com/afterpay-async.js"}(Ud||(Ud={}));class qd{constructor(e){this._scriptLoader=e}load(e,t){return n=this,i=void 0,o=function*(){const n=e.config.testMode||!1,i=this._getScriptURI(t,n);return this._scriptLoader.loadScript(i).then(()=>{if(!function(e){return"AfterPay"in e}(window))throw new Oi;return window.AfterPay})},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}_getScriptURI(e,t){return"US"===e?t?Ud.SANDBOX:Ud.PROD:t?jd.SANDBOX:jd.PROD}}const Vd=Rt(e=>new Bd(e,new qd(o())),[{gateway:"afterpay"},{id:"afterpay"}]);var Gd=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Hd{constructor(e,t){this.paymentIntegrationService=e,this.amazonPayV2PaymentProcessor=t}initialize(e){return Gd(this,void 0,void 0,function*(){const{methodId:t,amazonpay:n}=e;if(!t)throw new ki('Unable to proceed because "methodId" argument is not provided.');const i=this.paymentIntegrationService.getState(),{features:r}=i.getStoreConfigOrThrow().checkoutSettings,o=i.getPaymentMethodOrThrow(t),a=o.initializationData||{},{paymentToken:s="",region:d="",isButtonMicroTextDisabled:c}=a;if(yield this.amazonPayV2PaymentProcessor.initialize(o),this._isReadyToPay(s))(null==n?void 0:n.editButtonId)&&this._bindEditButton(n.editButtonId,s,"changePayment",this._isModalFlow(d));else{const{id:e}=this._createContainer();if(this._amazonPayButton=this.amazonPayV2PaymentProcessor.renderAmazonPayButton({checkoutState:i,containerId:e,decoupleCheckoutInitiation:this._isOneTimeTransaction(r,d.toUpperCase()),methodId:t,placement:Si.Checkout,isButtonMicroTextDisabled:c}),!this._amazonPayButton)throw new ki("Unable to render the Amazon Pay button to an invalid HTML container element.")}})}execute(e,t){return Gd(this,void 0,void 0,function*(){const{payment:n}=e;if(!n)throw new fo(["payment"]);const{methodId:i}=n,r=this.paymentIntegrationService.getState(),{features:o}=r.getStoreConfigOrThrow().checkoutSettings,a=r.getPaymentMethodOrThrow(i).initializationData||{},{paymentToken:s="",region:d=""}=a;if(this._isReadyToPay(s)||this._isOneTimeTransaction(o,d.toUpperCase())){const n={methodId:i,paymentData:{nonce:s||"apb"}};yield this.paymentIntegrationService.submitOrder(e,t);try{return void(yield this.paymentIntegrationService.submitPayment(n))}catch(e){if(!(wa(e)&&(c=e.body,"object"==typeof c&&null!==c&&"status"in c&&"additional_action_required"in c&&"additional_action_required"===c.status&&"data"in c.additional_action_required&&"redirect_url"in c.additional_action_required.data&&"string"==typeof c.additional_action_required.data.redirect_url)))throw e;const{additional_action_required:t}=e.body,{redirect_url:n}=t.data;if(s)return new Promise(()=>window.location.assign(n));this.amazonPayV2PaymentProcessor.prepareCheckout(JSON.parse(n))}}var c;return this._getAmazonPayButton().click(),this._isModalFlow(d)?new Promise((e,t)=>{const n=()=>{window.removeEventListener("focus",n),t(new nr("Shopper needs to login to Amazonpay to continue"))};window.addEventListener("focus",n)}):new Promise(V)})}finalize(){return Promise.reject(new Id)}deinitialize(){return Gd(this,void 0,void 0,function*(){yield this.amazonPayV2PaymentProcessor.deinitialize(),this._amazonPayButton=void 0})}_bindEditButton(e,t,n,i){const r=document.getElementById(e);if(r&&r.parentNode){if(!i){const e=r.cloneNode(!0);r.parentNode.replaceChild(e,r),e.addEventListener("click",()=>{this._showLoadingSpinner()})}this.amazonPayV2PaymentProcessor.bindButton(e,t,n)}}_isModalFlow(e){return"us"===e}_showLoadingSpinner(){return Gd(this,void 0,void 0,function*(){yield this.paymentIntegrationService.widgetInteraction(()=>new Promise(V))})}_createContainer(){let e=document.getElementById("AmazonPayButton");return e||(e=document.createElement("div"),e.id="AmazonPayButton",e.style.display="none",document.body.appendChild(e))}_getAmazonPayButton(){return yi(this._amazonPayButton,()=>new gi(hi.PaymentNotInitialized))}_isOneTimeTransaction(e,t){return this.amazonPayV2PaymentProcessor.isPh4Enabled(e,t)&&e["INT-6399.amazon_pay_apb"]}_isReadyToPay(e){return!!e}}const $d=Rt(e=>new Hd(e,Ai()),[{id:"amazonpay"}]);var Wd,Yd=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};!function(e){e.Shipping="Shipping",e.Subtotal="Subtotal",e.StoreCredit="Store Credit"}(Wd||(Wd={}));class Kd{constructor(e,t,n,i,r){this._requestSender=e,this._paymentIntegrationService=t,this._sessionFactory=n,this._braintreeSdk=i,this._applePayScriptLoader=r,this._shippingLabel=Wd.Shipping,this._subTotalLabel=Wd.Subtotal,this._storeCreditLabel=Wd.StoreCredit}initialize(e){var t,n,i,r;return Yd(this,void 0,void 0,function*(){if(!(null==e?void 0:e.methodId))throw new ki('Unable to submit payment because "options.methodId" argument is not provided.');const{methodId:o}=e;yield this._applePayScriptLoader.loadSdk(),this._shippingLabel=(null===(t=e.applepay)||void 0===t?void 0:t.shippingLabel)||Wd.Shipping,this._subTotalLabel=(null===(n=e.applepay)||void 0===n?void 0:n.subtotalLabel)||Wd.Subtotal,this._storeCreditLabel=(null===(i=e.applepay)||void 0===i?void 0:i.storeCreditLabel)||Wd.StoreCredit;const a=(yield this._paymentIntegrationService.loadPaymentMethod(o)).getPaymentMethodOrThrow(o);(null===(r=a.initializationData)||void 0===r?void 0:r.gateway)===Xi.BRAINTREE&&(yield this._initializeBraintreeSdk())})}execute(e,t){return Yd(this,void 0,void 0,function*(){const{payment:n}=e,i=this._paymentIntegrationService.getState();if(!n)throw new fo(["payment"]);const{methodId:r}=n,o=i.getPaymentMethodOrThrow(r),a=this._getBaseRequest(i,o),s=this._sessionFactory.create(a);return yield this._paymentIntegrationService.submitOrder({useStoreCredit:e.useStoreCredit},t),s.begin(),new Promise((e,t)=>{this._handleApplePayEvents(s,o,{resolve:e,reject:t})})})}finalize(){return Promise.reject(new Id)}deinitialize(){return Promise.resolve()}_getBaseRequest(e,t){const n=e.getCheckoutOrThrow(),i=e.getCartOrThrow(),r=e.getStoreConfigOrThrow(),{storeProfile:{storeCountryCode:o,storeName:a}}=r,{currency:{code:s,decimalPlaces:d}}=i,{initializationData:{merchantCapabilities:c,supportedNetworks:l}}=t,{grandTotal:u,isStoreCreditApplied:h,outstandingBalance:p}=n,m=[{label:this._subTotalLabel,amount:`${n.subtotal.toFixed(d)}`}];if(n.taxes.forEach(e=>m.push({label:e.name,amount:`${e.amount.toFixed(d)}`})),m.push({label:this._shippingLabel,amount:`${n.shippingCostTotal.toFixed(d)}`}),h){const{storeCredit:t}=e.getCustomerOrThrow();m.push({label:this._storeCreditLabel,amount:`-${Math.min(u,t).toFixed(d)}`})}return{countryCode:o,currencyCode:s,merchantCapabilities:c,supportedNetworks:l,lineItems:m,total:{label:a,amount:`${p.toFixed(d)}`,type:"final"}}}_handleApplePayEvents(e,t,n){e.onvalidatemerchant=n=>Yd(this,void 0,void 0,function*(){try{const{body:i}=yield this._onValidateMerchant(t,n);e.completeMerchantValidation(i)}catch(e){throw new Error("Merchant validation failed")}}),e.oncancel=()=>Yd(this,void 0,void 0,function*(){return n.reject(new nr("Continue with applepay"))}),e.onpaymentauthorized=i=>this._onPaymentAuthorized(i,e,t,n)}_onValidateMerchant(e,t){return Yd(this,void 0,void 0,function*(){const n=[`validationUrl=${t.validationURL}`,`merchantIdentifier=${e.initializationData.merchantId}`,`displayName=${e.initializationData.storeName}`,`domainName=${window.location.hostname}`].join("&");return this._requestSender.post(`${e.initializationData.paymentsUrl}/api/public/v1/payments/applepay/validate_merchant`,{credentials:!1,headers:{Accept:"application/json","Content-Type":"application/x-www-form-urlencoded","X-XSRF-TOKEN":null},body:n})})}_onPaymentAuthorized(e,t,n,i){var r;return Yd(this,void 0,void 0,function*(){const{token:o}=e.payment;let a;(null===(r=n.initializationData)||void 0===r?void 0:r.gateway)===Xi.BRAINTREE&&(a=yield this._getBraintreeDeviceData());const s={methodId:n.id,paymentData:{deviceSessionId:a,formattedPayload:{apple_pay_token:{payment_data:o.paymentData,payment_method:o.paymentMethod,transaction_id:o.transactionIdentifier}}}};try{return yield this._paymentIntegrationService.submitPayment(s),t.completePayment(ApplePaySession.STATUS_SUCCESS),i.resolve()}catch(e){return t.completePayment(ApplePaySession.STATUS_FAILURE),i.reject(new gi(hi.PaymentNotInitialized))}})}_getBraintreeDeviceData(){return Yd(this,void 0,void 0,function*(){try{const{deviceData:e}=yield this._braintreeSdk.getDataCollectorOrThrow();return e}catch(e){}})}_initializeBraintreeSdk(){return Yd(this,void 0,void 0,function*(){const e=this._paymentIntegrationService.getState();let t=e.getPaymentMethod(Xi.BRAINTREE_FASTLANE)||e.getPaymentMethod(Xi.BRAINTREE);t||(yield this._paymentIntegrationService.loadPaymentMethod(Xi.BRAINTREE),t=e.getPaymentMethod(Xi.BRAINTREE)),t&&t.clientToken&&t.initializationData&&this._braintreeSdk.initialize(t.clientToken)})}}const Jd=Rt(e=>{const{getHost:t}=e.getState(),i=new Ri(e);return new Kd(n({host:t()}),e,new sr,new Zi(new tr(a(),window,i)),new dr(new r))},[{id:"applepay"}]),Zd={"background-color":"rgba(0, 0, 0, 0.4)","z-index":"1000"};function Qd(e){return"object"==typeof e&&null!==e&&"bigpayToken"in e&&"defaultInstrument"in e&&"provider"in e&&"trustedShippingAddress"in e&&"method"in e&&"type"in e}var Xd=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class ec{constructor(e,t,n){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t,this.loadingIndicator=n}initialize(e){var t,n;return Xd(this,void 0,void 0,function*(){const{methodId:i,bigcommerce_payments:r}=e||{};if(this.bigcommerce_payments=r,!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!r)throw new ki('Unable to initialize payment because "options.bigcommerce_payments" argument is not provided.');yield this.paymentIntegrationService.loadPaymentMethod(i);const o=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(i);this.loadingIndicatorContainer=r.container.split("#")[1],(null===(t=o.initializationData)||void 0===t?void 0:t.orderId)?this.orderId=null===(n=o.initializationData)||void 0===n?void 0:n.orderId:(yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(i),r.onInit&&"function"==typeof r.onInit&&r.onInit(()=>this.renderButton(i,r)),(void 0===r.shouldRenderPayPalButtonOnInitialization||r.shouldRenderPayPalButtonOnInitialization)&&this.renderButton(i,r))})}execute(e,t){return Xd(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),{onError:r}=this.bigcommerce_payments||{};if(!n)throw new fo(["payment"]);const{methodId:o,paymentData:a}=n;if(this.isPayPalVaultedInstrumentPaymentData(a)&&!this.orderId&&(this.orderId=yield this.createOrder()),!this.orderId)throw new co;const s=this.isPayPalVaultedInstrumentPaymentData(a)?this.prepareVaultedInstrumentPaymentPayload(o,this.orderId,a):this.preparePaymentPayload(o,this.orderId,a);try{yield this.paymentIntegrationService.submitOrder(i,t),yield this.paymentIntegrationService.submitPayment(s)}catch(e){return this.isProviderError(e)&&(yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(n.methodId),yield new Promise((e,t)=>{var i;this.bigcommerce_payments&&(null===(i=this.paypalButton)||void 0===i||i.close(),this.renderButton(n.methodId,this.bigcommerce_payments),this.handleError(new Error("INSTRUMENT_DECLINED"),r)),t()})),this.handleError(e,r),Promise.reject()}})}finalize(){return Promise.reject(new Id)}deinitialize(){var e;return this.orderId=void 0,null===(e=this.paypalButton)||void 0===e||e.close(),Promise.resolve()}prepareVaultedInstrumentPaymentPayload(e,t,n){const{instrumentId:i,shouldSetAsDefaultInstrument:r}=n,o=!this.isTrustedVaultingFlow(n);return o?{methodId:e,paymentData:{shouldSaveInstrument:o,shouldSetAsDefaultInstrument:r,formattedPayload:{paypal_account:{order_id:t}}}}:{methodId:e,paymentData:{instrumentId:i,shouldSetAsDefaultInstrument:r,formattedPayload:{paypal_account:{order_id:t},bigpay_token:{token:i}}}}}preparePaymentPayload(e,t,n){const{shouldSaveInstrument:i=!1,shouldSetAsDefaultInstrument:r=!1}=Ad(n)?n:{};return{methodId:e,paymentData:{shouldSaveInstrument:i,shouldSetAsDefaultInstrument:r,formattedPayload:{paypal_account:{order_id:t}}}}}renderButton(e,t){const n=this.bigCommercePaymentsIntegrationService.getPayPalSdkOrThrow(),i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{paymentButtonStyles:r}=i.initializationData||{},{checkoutPaymentButtonStyles:o}=r||{},{container:a,onError:s,onRenderButton:d,onValidate:c,submitForm:l}=t,u={fundingSource:n.FUNDING.PAYPAL,style:this.bigCommercePaymentsIntegrationService.getValidButtonStyle(o),createOrder:()=>this.createOrder(),onClick:(e,t)=>this.handleClick(t,c),onApprove:e=>this.handleApprove(e,l),onError:e=>this.handleError(e,s),onCancel:()=>this.toggleLoadingIndicator(!1)};this.paypalButton=n.Buttons(u),this.paypalButton.isEligible()&&(d&&"function"==typeof d&&d(),this.paypalButton.render(a))}handleClick(e,t){return Xd(this,void 0,void 0,function*(){const{resolve:n,reject:i}=e;yield t(()=>(this.toggleLoadingIndicator(!0),n()),i)})}handleApprove({orderID:e},t){this.orderId=e,t()}handleError(e,t){this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}createOrder(){return Xd(this,void 0,void 0,function*(){const e=this.getFieldsValues();return this.bigCommercePaymentsIntegrationService.createOrder("bigcommerce_paymentscheckout",{shouldSaveInstrument:(null==e?void 0:e.shouldSaveInstrument)||!1})})}getFieldsValues(){const{getFieldsValues:e}=this.bigcommerce_payments||{};return"function"==typeof e?e():void 0}isTrustedVaultingFlow(e){if(e&&Cd(e)){const t=this.paymentIntegrationService.getState().getInstruments(),n=null==t?void 0:t.find(t=>Qd(t)&&t.bigpayToken===e.instrumentId);return!(Qd(n)&&!n.trustedShippingAddress)}return!1}toggleLoadingIndicator(e){e&&this.loadingIndicatorContainer?this.loadingIndicator.show(this.loadingIndicatorContainer):this.loadingIndicator.hide()}isPayPalVaultedInstrumentPaymentData(e){return!!e&&Cd(e)&&Ad(e)}isProviderError(e){var t,n,i;return!!function(e){return"object"==typeof e&&null!==e&&"errors"in e}(e)&&"INSTRUMENT_DECLINED"===(null===(i=null===(n=((null===(t=null==e?void 0:e.errors)||void 0===t?void 0:t.filter(e=>e.provider_error))||[])[0])||void 0===n?void 0:n.provider_error)||void 0===i?void 0:i.code)}}const tc=Rt(e=>new ec(e,Tr(e),new sd({containerStyles:Zd})),[{id:"bigcommerce_payments"}]);function nc(e){return!!e&&("authenticationState"in e||"addresses"in e||"instruments"in e)}var ic=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class rc{constructor(e,t,n,i){this.paymentIntegrationService=e,this.bigCommercePaymentsRequestSender=t,this.bigCommercePaymentsSdk=n,this.bigCommercePaymentsFastlaneUtils=i}initialize(e){var t,n;return ic(this,void 0,void 0,function*(){const{methodId:i,bigcommerce_payments_fastlane:r}=e;if(!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(this.methodId=i,!r)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_fastlane" argument is not provided.');if(this.bigcommerce_payments_fastlane=r,!r.onInit||"function"!=typeof r.onInit)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_fastlane.onInit" argument is not provided or it is not a function.');if(!r.onChange||"function"!=typeof r.onChange)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_fastlane.onChange" argument is not provided or it is not a function.');yield this.paymentIntegrationService.loadPaymentMethod(i);const o=this.paymentIntegrationService.getState(),a=o.getCartOrThrow(),s=o.getPaymentMethodOrThrow(i),{isDeveloperModeApplicable:d,isFastlaneStylingEnabled:c}=s.initializationData||{};this.threeDSVerificationMethod=null===(t=s.initializationData)||void 0===t?void 0:t.threeDSVerificationMethod,this.paypalFastlaneSdk=yield this.bigCommercePaymentsSdk.getPayPalFastlaneSdk(s,a.currency.code,a.id);const l=Zr(c?null===(n=null==s?void 0:s.initializationData)||void 0===n?void 0:n.fastlaneStyles:{},null==r?void 0:r.styles);yield this.bigCommercePaymentsFastlaneUtils.initializePayPalFastlane(this.paypalFastlaneSdk,!!d,l),this.shouldRunAuthenticationFlow()&&(yield this.runPayPalAuthenticationFlowOrThrow(i)),yield this.initializePayPalPaymentComponent(),r.onInit(e=>this.renderPayPalPaymentComponent(e)),r.onChange(()=>this.handlePayPalStoredInstrumentChange(i))})}execute(e,t){return ic(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);const{paymentData:r,methodId:o}=n,a=r&&Cd(r);try{yield this.paymentIntegrationService.submitOrder(i,t);const e=a?yield this.prepareVaultedInstrumentPaymentPayload(o,r):yield this.preparePaymentPayload(o,r);yield this.paymentIntegrationService.submitPayment(e),this.bigCommercePaymentsFastlaneUtils.removeStorageSessionId()}catch(e){if(function(e){return"object"==typeof e&&null!==e&&"message"in e&&"response"in e&&"name"in e.response}(e)&&"INVALID_REQUEST"===e.response.name){const e={translationKey:"payment.errors.invalid_request_error"};return this.handleError(e),Promise.reject()}if(e instanceof Error&&"FastlaneError"!==e.name)throw e;return Promise.reject()}})}finalize(){return Promise.reject(new Id)}deinitialize(){return ic(this,void 0,void 0,function*(){return Promise.resolve()})}shouldRunAuthenticationFlow(){const e=this.paymentIntegrationService.getState(),t=e.getCartOrThrow(),n=e.getCustomerOrThrow(),i=e.getPaymentProviderCustomer(),r=nc(i)?i:{},o=this.bigCommercePaymentsFastlaneUtils.getStorageSessionId();return!(!n.isGuest||(null==r?void 0:r.authenticationState)===qr.CANCELED||(null==r?void 0:r.authenticationState)||o!==t.id)}runPayPalAuthenticationFlowOrThrow(e){return ic(this,void 0,void 0,function*(){try{const t=this.paymentIntegrationService.getState(),n=t.getCartOrThrow(),i=t.getCustomer(),r=t.getBillingAddress(),o=(null==i?void 0:i.email)||(null==r?void 0:r.email)||"",{customerContextId:a}=yield this.bigCommercePaymentsFastlaneUtils.lookupCustomerOrThrow(o),s=yield this.bigCommercePaymentsFastlaneUtils.triggerAuthenticationFlowOrThrow(a),{authenticationState:d,addresses:c,instruments:l}=this.bigCommercePaymentsFastlaneUtils.mapPayPalFastlaneProfileToBcCustomerData(e,s);yield this.paymentIntegrationService.updatePaymentProviderCustomer({authenticationState:d,addresses:c,instruments:l}),s.authenticationState===qr.CANCELED?this.bigCommercePaymentsFastlaneUtils.removeStorageSessionId():this.bigCommercePaymentsFastlaneUtils.updateStorageSessionId(n.id)}catch(e){}})}initializePayPalPaymentComponent(){return ic(this,void 0,void 0,function*(){const e=this.paymentIntegrationService.getState().getBillingAddressOrThrow(),t=e.phone,n=`${e.firstName} ${e.lastName}`.trim(),i=this.bigCommercePaymentsFastlaneUtils.getPayPalFastlaneOrThrow(),r={fields:Object.assign({cardholderName:{prefill:n,enabled:!0}},t&&{phoneNumber:{prefill:t}})};this.paypalComponentMethods=yield i.FastlaneCardComponent(r)})}renderPayPalPaymentComponent(e){const t=this.getPayPalComponentMethodsOrThrow();if(!e)throw new ki('Unable to render card component because "container" argument is not provided.');t.render(e)}getPayPalComponentMethodsOrThrow(){if(!this.paypalComponentMethods)throw new Oi;return this.paypalComponentMethods}prepareVaultedInstrumentPaymentPayload(e,t){return ic(this,void 0,void 0,function*(){const{instrumentId:n}=t,i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),r=this.isBigcommercePaymentsFastlaneThreeDSAvailable()&&i.config.is3dsEnabled;r||(yield this.createOrder(n));const o=r?yield this.get3DSNonce(n):n;return{methodId:e,paymentData:{formattedPayload:{paypal_fastlane_token:{order_id:this.orderId,token:o}}}}})}preparePaymentPayload(e,t){return ic(this,void 0,void 0,function*(){const n=this.paymentIntegrationService.getState(),i=n.getBillingAddressOrThrow(),r=n.getPaymentMethodOrThrow(e),o=`${i.firstName} ${i.lastName}`.trim(),{getPaymentToken:a}=this.getPayPalComponentMethodsOrThrow(),{id:s}=yield a({name:{fullName:o},billingAddress:this.bigCommercePaymentsFastlaneUtils.mapBcToPayPalAddress(i)}),d=this.isBigcommercePaymentsFastlaneThreeDSAvailable()&&r.config.is3dsEnabled;d||(yield this.createOrder(s));const{shouldSaveInstrument:c=!1,shouldSetAsDefaultInstrument:l=!1}=Ad(t)?t:{},u=d?yield this.get3DSNonce(s):s;return{methodId:e,paymentData:Object.assign(Object.assign({},t),{shouldSaveInstrument:c,shouldSetAsDefaultInstrument:l,formattedPayload:{paypal_fastlane_token:{order_id:this.orderId,token:u}}})}})}createOrder(e){return ic(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState().getCartOrThrow().id;if(this.methodId){const{orderId:n}=yield this.bigCommercePaymentsRequestSender.createOrder(this.methodId,{cartId:t,fastlaneToken:e});this.orderId=n}})}get3DSNonce(e){var t;return ic(this,void 0,void 0,function*(){const n=this.paymentIntegrationService.getState(),i=n.getCartOrThrow(),r=n.getOrderOrThrow(),o=n.getStoreConfigOrThrow().links.checkoutLink,a=null===(t=this.paypalFastlaneSdk)||void 0===t?void 0:t.ThreeDomainSecureClient;if(!a)throw new Oi;const s={amount:r.orderAmount.toFixed(2),currency:i.currency.code,nonce:e,threeDSRequested:"SCA_ALWAYS"===this.threeDSVerificationMethod,transactionContext:{experience_context:{locale:"en-US",return_url:o,cancel_url:o}}};if(yield a.isEligible(s)){const{liabilityShift:t,authenticationState:n,nonce:i}=yield a.show();if(t===pr.No||t===pr.Unknown)throw new co;if(yield this.createOrder(e),n===Lr.Succeeded)return i;if(n===Lr.Errored)throw new co;if(n===Lr.Cancelled)throw console.error("3DS check was canceled"),new co}return e})}handlePayPalStoredInstrumentChange(e){return ic(this,void 0,void 0,function*(){const t=this.bigCommercePaymentsFastlaneUtils.getPayPalFastlaneOrThrow(),{selectionChanged:n,selectedCard:i}=yield t.profile.showCardSelector();if(n){const t=this.paymentIntegrationService.getState().getPaymentProviderCustomer(),n=nc(t)?t:{},r=this.bigCommercePaymentsFastlaneUtils.mapPayPalToBcInstrument(e,i)[0];return yield this.paymentIntegrationService.updatePaymentProviderCustomer(Object.assign(Object.assign({},n),{instruments:[r]})),r}})}isBigcommercePaymentsFastlaneThreeDSAvailable(){return Wt(this.paymentIntegrationService.getState().getStoreConfigOrThrow().checkoutSettings.features,"PROJECT-7080.bcp_fastlane_three_ds")}handleError(e){var t;(null===(t=this.bigcommerce_payments_fastlane)||void 0===t?void 0:t.onError)&&"function"==typeof this.bigcommerce_payments_fastlane.onError&&this.bigcommerce_payments_fastlane.onError(e)}}const oc=Rt(e=>{const{getHost:t}=e.getState();return new rc(e,new Er(n({host:t()})),Hr(),Kr())},[{id:"bigcommerce_payments_fastlane"}]),ac=function({styles:e}){const t={};return e.color&&(t.color=e.color),e.layout&&(t.layout=e.layout),(e["logo-type"]||e["logo-position"])&&(t.logo={},e["logo-type"]&&(t.logo.type=e["logo-type"]),e["logo-position"]&&(t.logo.position=e["logo-position"])),e.ratio&&(t.ratio=e.ratio),(e["text-color"]||e["text-size"])&&(t.text={},e["text-color"]&&(t.text.color=e["text-color"]),e["text-size"]&&(t.text.size=+e["text-size"])),t};var sc=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class dc{constructor(e,t,n,i){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t,this.loadingIndicator=n,this.paypalSdkHelper=i}initialize(e){return sc(this,void 0,void 0,function*(){const{methodId:t,bigcommerce_payments_paylater:n}=e||{};if(!t)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!n)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_paylater" argument is not provided.');yield this.paymentIntegrationService.loadPaymentMethod(t);const i=this.paymentIntegrationService.getState(),r=i.getPaymentMethodOrThrow(t),{paypalBNPLConfiguration:o=[],orderId:a}=r.initializationData||{},{bannerContainerId:s,container:d}=n;if(void 0!==s){if(!document.getElementById(s))return void console.error("Unable to create banner without valid banner container ID.");const e=o&&o.find(({id:e})=>"checkout"===e);if(!(null==e?void 0:e.status))return;const t=yield this.paypalSdkHelper.getPayPalMessages(r,i.getCartOrThrow().currency.code);return this.renderMessages(t,s,e)}a?this.orderId=a:(yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(t),this.loadingIndicatorContainer=null==d?void 0:d.split("#")[1],this.renderButton(t,n))})}execute(e,t){return sc(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);if(!this.orderId)throw new co;yield this.paymentIntegrationService.submitOrder(i,t),yield this.bigCommercePaymentsIntegrationService.submitPayment(n.methodId,this.orderId)})}finalize(){return Promise.reject(new Id)}deinitialize(){var e;return this.orderId=void 0,null===(e=this.bigCommercePaymentsButtons)||void 0===e||e.close(),Promise.resolve()}renderButton(e,t){if(!(null==t?void 0:t.container))throw new ki('Unable to initialize payment because "container" argument is not provided.');const n=this.bigCommercePaymentsIntegrationService.getPayPalSdkOrThrow(),i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{paymentButtonStyles:r}=i.initializationData||{},{checkoutPaymentButtonStyles:o}=r||{},{container:a,onError:s,onRenderButton:d,onValidate:c,submitForm:l}=t,u=[n.FUNDING.PAYLATER,n.FUNDING.CREDIT];let h=!1;u.forEach(e=>{if(h)return;const t={fundingSource:e,style:this.bigCommercePaymentsIntegrationService.getValidButtonStyle(o),createOrder:()=>this.bigCommercePaymentsIntegrationService.createOrder("bigcommerce_payments_paylater"),onClick:(e,t)=>this.handleClick(t,c),onApprove:e=>this.handleApprove(e,l),onCancel:()=>this.toggleLoadingIndicator(!1),onError:e=>this.handleError(e,s)};if(this.bigCommercePaymentsButtons=n.Buttons(t),this.bigCommercePaymentsButtons.isEligible()||e!==n.FUNDING.PAYLATER){if(!this.bigCommercePaymentsButtons.isEligible()&&e===n.FUNDING.CREDIT)throw new Ti(`BigCommercePayments ${e} is not available for your region. Please use BigCommercePayments Checkout instead.`);d&&"function"==typeof d&&d(),this.bigCommercePaymentsButtons.render(a),h=!0}})}handleClick(e,t){return sc(this,void 0,void 0,function*(){const{resolve:n,reject:i}=e;t&&"function"==typeof t&&(yield t(()=>(this.toggleLoadingIndicator(!0),n()),i))})}handleApprove({orderID:e},t){this.orderId=e,t&&"function"==typeof t&&t()}handleError(e,t){this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}toggleLoadingIndicator(e){e&&this.loadingIndicatorContainer?this.loadingIndicator.show(this.loadingIndicatorContainer):this.loadingIndicator.hide()}renderMessages(e,t,n){const i={amount:this.paymentIntegrationService.getState().getCheckoutOrThrow().outstandingBalance,placement:"payment",style:ac(n)};e.Messages(i).render(`#${t}`)}}const cc=Rt(e=>new dc(e,Tr(e),new sd({containerStyles:Zd}),Hr()),[{id:"bigcommerce_payments_paylater"}]);class lc extends hr{constructor(e){super(e,{message:"The request has timed out or aborted."}),this.name="TimeoutError",this.type="timeout"}}var uc=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class hc{constructor(e,t,n,i=3e3,r=3e5){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t,this.loadingIndicator=n,this.pollingInterval=i,this.maxPollingIntervalTime=r,this.pollingTimer=0,this.stopPolling=V}initialize(e){return uc(this,void 0,void 0,function*(){const{gatewayId:t,methodId:n,bigcommerce_payments_ratepay:i}=e;if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.gatewayId" argument is not provided.');if(!i)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_ratepay" argument is not provided.');const{legalTextContainer:r,container:o,loadingContainerId:a}=i;if(!o)throw new ki('Unable to initialize payment because "options.container" argument is not provided.');if(!r)throw new ki('Unable to initialize payment because "options.legalTextContainer" argument is not provided.');if(!a)throw new ki('Unable to initialize payment because "options.loadingContainerId" argument is not provided.');this.loadingIndicatorContainer=a;const s=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(n,t),{merchantId:d}=s.initializationData||{};if(!d)throw new ki("Unable to initialize payment because merchantId argument is not provided.");this.bigcommerce_payments_ratepay=i,yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(n),this.createFraudNetScript(d,n,t),this.loadFraudnetConfig(),this.renderLegalText(r,o)})}execute(e,t){return uc(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),{getFieldsValues:r}=this.bigcommerce_payments_ratepay||{};if(!n)throw new fo(["payment"]);if(!r||"function"!=typeof r)throw new ki('Unable to initialize payment because "options.getFieldsValues" argument is not provided.');this.toggleLoadingIndicator(!0);try{const e=yield this.bigCommercePaymentsIntegrationService.createOrder("bigcommerce_payments_apmscheckout",{metadataId:this.guid}),{ratepayBirthDate:o,ratepayPhoneNumber:a,ratepayPhoneCountryCode:s}=r(),d={formattedPayload:{vault_payment_instrument:null,set_as_default_stored_instrument:null,device_info:null,method_id:n.methodId,rate_pay:{birth_date:this.normalizeDate(o),phone:{national_number:a,country_code:s.split("+")[1]}},paypal_account:{order_id:e}}};return yield this.paymentIntegrationService.submitOrder(i,t),yield this.paymentIntegrationService.submitPayment({methodId:n.methodId,paymentData:d}),yield new Promise((e,t)=>{this.initializePollingMechanism(n.methodId,e,t,n.gatewayId)})}catch(e){return this.handleError(e),new Promise((e,t)=>t())}})}finalize(){return Promise.reject(new Id)}deinitialize(){const{legalTextContainer:e}=this.bigcommerce_payments_ratepay||{},t=document.querySelectorAll('[data-id="fraudnetScript"]')[0],n=document.querySelectorAll('[data-id="fraudnetConfig"]')[0];if(this.deinitializePollingMechanism(),t.remove(),n.remove(),e){const t=document.getElementById(e);null==t||t.remove()}return Promise.resolve()}normalizeDate(e){const t=this.formatDate(e.getDate()),n=this.formatDate(e.getMonth()+1);return`${e.getFullYear()}-${n}-${t}`}formatDate(e){return`${e<10?0:""}${e}`}renderLegalText(e,t){const n=e,i=t.split("#")[1],r=document.getElementById(i),o=null==r?void 0:r.parentNode,a=document.createElement("div");a.style.marginBottom="20px",a.setAttribute("id",n),null==o||o.prepend(a);const s=this.bigCommercePaymentsIntegrationService.getPayPalSdkOrThrow(),d=s.Legal({fundingSource:s.Legal.FUNDING.PAY_UPON_INVOICE});if(!document.getElementById(n))throw new ki('Unable to initialize payment because "legalTextContainerElement" argument is not found.');d.render(`#${n}`)}handleError(e){const{onError:t}=this.bigcommerce_payments_ratepay||{};this.resetPollingMechanism(),this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}createFraudNetScript(e,t,n){const i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(t,n),{testMode:r}=i.config,o=document.createElement("script");o.setAttribute("type","application/json"),o.setAttribute("fncls","fnparams-dede7cc5-15fd-4c75-a9f4-36c430ee3a99"),o.setAttribute("data-id","fraudnetScript"),this.guid=this.generateGUID();const a={f:this.guid,s:`${e}_checkout-page`,sandbox:r};o.innerHTML=JSON.stringify(a),document.body.appendChild(o)}generateGUID(){let e="";for(let t=0;t<32;t+=1)e+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"[Math.floor(62*Math.random())];return e}loadFraudnetConfig(){const e=document.createElement("script");e.setAttribute("data-id","fraudnetConfig"),e.src="https://c.paypal.com/da/r/fb.js",document.body.appendChild(e)}reinitializeStrategy(e){return uc(this,void 0,void 0,function*(){yield this.deinitialize(),yield this.initialize(e)})}initializePollingMechanism(e,t,n,i){return uc(this,void 0,void 0,function*(){yield new Promise((e,t)=>{const n=setTimeout(e,this.pollingInterval);this.stopPolling=()=>(clearTimeout(n),this.toggleLoadingIndicator(!1),t())});try{this.pollingTimer+=this.pollingInterval;const r=yield this.bigCommercePaymentsIntegrationService.getOrderStatus("bigcommerce_payments_apms",{params:{useMetadata:!0}}),o=r===Sr.PollingStop,a=r===Sr.PollingError;if(o)return this.deinitializePollingMechanism(),t();if(a)return n();if(!o&&this.pollingTimer<this.maxPollingIntervalTime)return yield this.initializePollingMechanism(e,t,n,i);yield this.reinitializeStrategy({methodId:e,gatewayId:i,bigcommerce_payments_ratepay:this.bigcommerce_payments_ratepay}),this.handleError(new lc)}catch(e){this.handleError(e),n()}})}deinitializePollingMechanism(){this.stopPolling(),this.pollingTimer=0}resetPollingMechanism(){this.deinitializePollingMechanism()}toggleLoadingIndicator(e){e&&this.loadingIndicatorContainer?this.loadingIndicator.show(this.loadingIndicatorContainer):this.loadingIndicator.hide()}}const pc=Rt(e=>new hc(e,Tr(e),new sd({containerStyles:Object.assign(Object.assign({},Zd),{position:"fixed"})})),[{gateway:"bigcommerce_payments_apms",id:"ratepay"}]);var mc;!function(e){e.CardCode="cardCode",e.CardCodeVerification="cardCodeVerification",e.CardExpiry="cardExpiry",e.CardName="cardName",e.CardNumber="cardNumber",e.CardNumberVerification="cardNumberVerification",e.CardExpiryVerification="cardExpiryVerification"}(mc||(mc={}));const yc=mc;function gc(e){return yc.CardNumber in e&&yc.CardName in e&&yc.CardExpiry in e}function vc(e){return yc.CardNumberVerification in e&&yc.CardCodeVerification in e&&yc.CardExpiryVerification in e}var fc=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Sc{constructor(e,t,n,i){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t,this.bigCommercePaymentsSdk=n,this.bigCommercePaymentsFastlaneUtils=i}initialize(e){return fc(this,void 0,void 0,function*(){const{methodId:t,bigcommerce_payments_creditcards:n}=e,i=n,{form:r,onCreditCardFieldsRenderingError:o,onLoadComplete:a}=i||{};if(!t)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!r)throw new ki('Unable to proceed because "options.bigcommerce_payments_creditcards.form" argument is not provided.');this.hostedFormOptions=r,this.isCreditCardForm=gc(r.fields),this.isCreditCardVaultedForm=vc(r.fields)&&!this.hasUndefinedValues(),yield this.paymentIntegrationService.loadPaymentMethod(t),yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(t,void 0,!0,!0),null==a||a(),(this.isCreditCardForm||this.isCreditCardVaultedForm)&&(yield this.initializeFields(r,o)),this.shouldInitializePayPalFastlane(t)&&(yield this.initializePayPalFastlaneOrThrow(t))})}execute(e,t){return fc(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),{methodId:r,paymentData:o}=n||{};if(!n||!r)throw new fo(["payment"]);if(this.executionPaymentData=o,this.isCreditCardForm||this.isCreditCardVaultedForm)yield this.validateHostedFormOrThrow(),yield this.submitHostedForm();else{const{orderId:e}=yield this.bigCommercePaymentsIntegrationService.createOrderCardFields("bigcommerce_payments_creditcardscheckout",this.getInstrumentParams());this.returnedOrderId=e}const a=this.preparePaymentPayload(r,o,this.returnedOrderId,this.returnedVaultedToken);yield this.paymentIntegrationService.submitOrder(i,t),yield this.paymentIntegrationService.submitPayment(a)})}finalize(){return Promise.reject(new Id)}deinitialize(){var e,t,n,i;return fc(this,void 0,void 0,function*(){return yield null===(e=this.cvvField)||void 0===e?void 0:e.close(),yield null===(t=this.expiryField)||void 0===t?void 0:t.close(),yield null===(n=this.numberField)||void 0===n?void 0:n.close(),yield null===(i=this.nameField)||void 0===i?void 0:i.close(),Promise.resolve()})}preparePaymentPayload(e,t,n,i){const{shouldSaveInstrument:r=!1,shouldSetAsDefaultInstrument:o=!1}=Ad(t)?t:{},a=t&&Cd(t)?t.instrumentId:void 0,s=H({verification_nonce:i,token:a},T);return{methodId:e,paymentData:{shouldSaveInstrument:r,shouldSetAsDefaultInstrument:o,instrumentId:a,formattedPayload:Object.assign(Object.assign({},i||a?{bigpay_token:s}:{}),n?{card_with_order:{order_id:n}}:{})}}}initializeFields(e,t){return fc(this,void 0,void 0,function*(){const{fields:n,styles:i}=e,r=this.bigCommercePaymentsIntegrationService.getPayPalSdkOrThrow(),o=this.getExecuteCallback(n),a=Object.assign({style:this.getInputStyles(i),onApprove:({orderID:e,vaultSetupToken:t,liabilityShift:n})=>{if(n===pr.No||n===pr.Unknown)throw new Error;return this.handleApprove({orderID:e,vaultSetupToken:t})},onError:()=>{throw new so},inputEvents:{onChange:t=>this.onChangeHandler(e,t),onFocus:t=>this.onFocusHandler(e,t),onBlur:t=>this.onBlurHandler(e,t),onInputSubmitRequest:t=>this.onInputSubmitRequest(e,t)}},o);if(this.cardFields=yield r.CardFields(a),!this.cardFields.isEligible())throw new gi(hi.PaymentNotInitialized);try{this.stylizeInputContainers(n),gc(n)&&(yield this.renderFields(n)),vc(n)&&(yield this.renderVaultedFields(n))}catch(e){"function"==typeof t&&t(e)}})}getExecuteCallback(e){return vc(e)?this.createVaultSetupTokenCallback():this.createOrderCallback()}createVaultSetupTokenCallback(){return{createVaultSetupToken:()=>fc(this,void 0,void 0,function*(){const{setupToken:e}=(yield this.bigCommercePaymentsIntegrationService.createOrderCardFields("bigcommerce_payments_creditcardscheckout",Object.assign(Object.assign({},this.getInstrumentParams()),{setupToken:!0})))||{};return e})}}createOrderCallback(){return{createOrder:()=>fc(this,void 0,void 0,function*(){const{orderId:e}=(yield this.bigCommercePaymentsIntegrationService.createOrderCardFields("bigcommerce_payments_creditcardscheckout",this.getInstrumentParams()))||{};return e})}}handleApprove({orderID:e,vaultSetupToken:t}){e&&(this.returnedOrderId=e),t&&(this.returnedVaultedToken=t)}renderFields(e){var t,n,i,r;return fc(this,void 0,void 0,function*(){const o=this.getCardFieldsOrThrow();(null===(t=e.cardCode)||void 0===t?void 0:t.containerId)&&(this.cvvField=o.CVVField({placeholder:""}),yield this.cvvField.render(`#${e.cardCode.containerId}`)),(null===(n=e.cardExpiry)||void 0===n?void 0:n.containerId)&&(this.expiryField=o.ExpiryField(),yield this.expiryField.render(`#${e.cardExpiry.containerId}`)),(null===(i=e.cardName)||void 0===i?void 0:i.containerId)&&(this.nameField=o.NameField({placeholder:""}),yield this.nameField.render(`#${e.cardName.containerId}`)),(null===(r=e.cardNumber)||void 0===r?void 0:r.containerId)&&(this.numberField=o.NumberField({placeholder:""}),yield this.numberField.render(`#${e.cardNumber.containerId}`))})}renderVaultedFields(e){var t,n,i;return fc(this,void 0,void 0,function*(){const r=this.getCardFieldsOrThrow();(null===(t=e.cardCodeVerification)||void 0===t?void 0:t.containerId)&&(this.cvvField=r.CVVField({placeholder:""}),yield this.cvvField.render(`#${e.cardCodeVerification.containerId}`)),(null===(n=e.cardExpiryVerification)||void 0===n?void 0:n.containerId)&&(this.expiryField=r.ExpiryField(),yield this.expiryField.render(`#${e.cardExpiryVerification.containerId}`)),(null===(i=e.cardNumberVerification)||void 0===i?void 0:i.containerId)&&(this.numberField=r.NumberField({placeholder:""}),yield this.numberField.render(`#${e.cardNumberVerification.containerId}`))})}getInstrumentParams(){if(!this.executionPaymentData)return{};if(Ad(this.executionPaymentData)){const{shouldSaveInstrument:e,shouldSetAsDefaultInstrument:t}=this.executionPaymentData;return{shouldSaveInstrument:e,shouldSetAsDefaultInstrument:t}}if(Cd(this.executionPaymentData)){const{instrumentId:e}=this.executionPaymentData;return{instrumentId:e}}return{}}getFieldTypeByEmittedField({emittedBy:e}){return{fieldType:this.mapFieldType(e)}}submitHostedForm(){return fc(this,void 0,void 0,function*(){const e=this.getCardFieldsOrThrow(),t=this.paymentIntegrationService.getState().getBillingAddressOrThrow(),n={billingAddress:{company:t.company,addressLine1:t.address1,addressLine2:t.address2,adminArea1:t.stateOrProvinceCode,adminArea2:t.city,postalCode:t.postalCode,countryCode:t.countryCode}};try{this.isCreditCardVaultedForm?yield e.submit():yield e.submit(n)}catch(e){throw new so("Failed authentication. Please try to authorize again.")}})}validateHostedFormOrThrow(){var e,t;return fc(this,void 0,void 0,function*(){const n=this.getCardFieldsOrThrow(),i=yield n.getState().then(e=>e),r=this.getValidityData(i);if(!r.isValid)throw null===(t=null===(e=this.hostedFormOptions)||void 0===e?void 0:e.onValidate)||void 0===t||t.call(e,r),new So(this.mapValidationErrors(r.errors))})}getValidityData({fields:e}){const t=Object.assign({},e);delete t.cardNameField;const n=Object.keys(t);return{isValid:n.every(e=>{var n;return null===(n=t[e])||void 0===n?void 0:n.isValid}),errors:n.reduce((e,n)=>{var i;const r=this.mapFieldType(n);return Object.assign(Object.assign({},e),{[r]:(null===(i=t[n])||void 0===i?void 0:i.isValid)?void 0:[this.getInvalidErrorByFieldType(r)]})},{})}}getInvalidErrorByFieldType(e){switch(e){case yc.CardCode:case yc.CardCodeVerification:return{fieldType:e,message:"Invalid card code",type:"invalid_card_code"};case yc.CardNumber:case yc.CardNumberVerification:return{fieldType:e,message:"Invalid card number",type:"invalid_card_number"};case yc.CardExpiry:case yc.CardExpiryVerification:return{fieldType:e,message:"Invalid card expiry",type:"invalid_card_expiry"};default:return{fieldType:e,message:"Invalid field",type:"invalid"}}}mapValidationErrors(e={}){const t={};return Object.keys(e).forEach(n=>{var i,r;t[n]=[{message:(null===(r=null===(i=e[n])||void 0===i?void 0:i[0])||void 0===r?void 0:r.message)||"",type:n}]}),t}mapFieldType(e){switch(e){case"name":return yc.CardName;case"cardNumberField":case"number":return this.isCreditCardForm?yc.CardNumber:yc.CardNumberVerification;case"cardExpiryField":case"expiry":return this.isCreditCardForm?yc.CardExpiry:yc.CardExpiryVerification;case"cardCvvField":case"cvv":return this.isCreditCardForm?yc.CardCode:yc.CardCodeVerification;default:throw new Error("Unexpected field type")}}getCardFieldsOrThrow(){if(!this.cardFields)throw new gi(hi.PaymentNotInitialized);return this.cardFields}getInputStyles(e){var t,n,i;const r={"font-size":(null===(t=null==e?void 0:e.default)||void 0===t?void 0:t.fontSize)||"1rem","font-family":(null===(n=null==e?void 0:e.default)||void 0===n?void 0:n.fontFamily)||"Montserrat, Arial, Helvetica, sans-serif","font-weight":(null===(i=null==e?void 0:e.default)||void 0===i?void 0:i.fontWeight)||"400",outline:"none",padding:"9px 13px"},o=Object.assign(Object.assign({},r),{color:"#333333"});return{input:o,".invalid":Object.assign(Object.assign({},r),{color:"red"}),".valid":o,":focus":o}}stylizeInputContainers(e){Object.values(e||{}).forEach(e=>{const t=document.getElementById(`${(null==e?void 0:e.containerId)||""}`);t&&(t.style.padding="0px",t.style.boxShadow="none",t.style.border="none",t.style.background="transparent",t.style.marginBottom="10px",t.style.marginLeft="-5px")})}hasUndefinedValues(){return!this.hostedFormOptions||Object.values(this.hostedFormOptions.fields).some(e=>void 0===e)}onChangeHandler(e,t){var n;null===(n=null==e?void 0:e.onValidate)||void 0===n||n.call(e,this.getValidityData(t))}onFocusHandler(e,t){var n;null===(n=null==e?void 0:e.onFocus)||void 0===n||n.call(e,this.getFieldTypeByEmittedField(t))}onBlurHandler(e,t){var n;null===(n=null==e?void 0:e.onBlur)||void 0===n||n.call(e,this.getFieldTypeByEmittedField(t))}onInputSubmitRequest(e,t){var n;null===(n=null==e?void 0:e.onEnter)||void 0===n||n.call(e,this.getFieldTypeByEmittedField(t))}shouldInitializePayPalFastlane(e){var t,n;const i=this.paymentIntegrationService.getState(),r=i.getPaymentMethodOrThrow(e),o=i.getPaymentProviderCustomer(),a=(s=o)&&("authenticationState"in s||"addresses"in s||"instruments"in s)?o:{};var s;return(null===(t=null==r?void 0:r.initializationData)||void 0===t?void 0:t.isAcceleratedCheckoutEnabled)&&(null===(n=null==r?void 0:r.initializationData)||void 0===n?void 0:n.isBigCommercePaymentsAnalyticsV2Enabled)&&!(null==a?void 0:a.authenticationState)}initializePayPalFastlaneOrThrow(e){return fc(this,void 0,void 0,function*(){try{const t=this.paymentIntegrationService.getState(),n=t.getCartOrThrow(),i=t.getPaymentMethodOrThrow(e),{initializationData:r}=i;if(!(null==r?void 0:r.connectClientToken))return;const o=yield this.bigCommercePaymentsSdk.getPayPalFastlaneSdk(i,n.currency.code,n.id);yield this.bigCommercePaymentsFastlaneUtils.initializePayPalFastlane(o,!!(null==r?void 0:r.isDeveloperModeApplicable))}catch(e){}})}}const wc=Rt(e=>new Sc(e,Tr(e),Hr(),Kr()),[{id:"bigcommerce_payments_creditcards"}]);var _c=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Cc{constructor(e,t,n,i,r=3e3,o=3e5){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t,this.bigCommercePaymentsSdkHelper=n,this.loadingIndicator=i,this.pollingInterval=r,this.maxPollingIntervalTime=o,this.pollingTimer=0,this.stopPolling=V,this.isPollingEnabled=!1}initialize(e){return _c(this,void 0,void 0,function*(){const{gatewayId:t,methodId:n,bigcommerce_payments_apms:i}=e;if(this.bigCommercePaymentsAlternativeMethods=i,!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.gatewayId" argument is not provided.');if(!i)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_apms" argument is not provided.');const r=this.paymentIntegrationService.getState(),o=r.getPaymentMethodOrThrow(n,t),{orderId:a,shouldRenderFields:s}=o.initializationData||{},d=r.getStoreConfigOrThrow().checkoutSettings.features;this.isPollingEnabled=Wt(d,"PAYPAL-5624.bcp_ideal_polling"),a?this.orderId=a:(this.paypalApms=yield this.bigCommercePaymentsSdkHelper.getPayPalApmsSdk(o,r.getCartOrThrow().currency.code),this.loadingIndicatorContainer=i.container.split("#")[1],this.renderButton(n,t,i),s&&this.renderFields(n,i))})}execute(e,t){return _c(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);const{methodId:r,gatewayId:o}=n;if(!this.orderId)throw new co;this.isPollingEnabled&&"ideal"===r&&(yield new Promise((e,t)=>{this.initializePollingMechanism(r,e,t,o)})),this.isNonInstantPaymentMethod(r)||(yield this.paymentIntegrationService.submitOrder(i,t)),yield this.bigCommercePaymentsIntegrationService.submitPayment(r,this.orderId,o)})}finalize(){return Promise.reject(new Id)}deinitialize(){var e;return this.orderId=void 0,this.isPollingEnabled&&this.resetPollingMechanism(),null===(e=this.bigCommercePaymentsButton)||void 0===e||e.close(),Promise.resolve()}initializePollingMechanism(e,t,n,i){return _c(this,void 0,void 0,function*(){yield new Promise((e,t)=>{const n=setTimeout(e,this.pollingInterval);this.stopPolling=()=>(clearTimeout(n),this.toggleLoadingIndicator(!1),t())});try{this.pollingTimer+=this.pollingInterval;const r=yield this.bigCommercePaymentsIntegrationService.getOrderStatus(i),o=r===Sr.Approved,a=r===Sr.PollingError;if(o)return this.deInitializePollingMechanism(),t();if(a)return n();if(!o&&this.pollingTimer<this.maxPollingIntervalTime)return yield this.initializePollingMechanism(e,t,n,i);yield this.reinitializeStrategy({methodId:e,gatewayId:i,bigCommercePaymentsAlternativeMethods:this.bigCommercePaymentsAlternativeMethods}),this.handleError(new lc)}catch(e){n()}})}deInitializePollingMechanism(){this.stopPolling(),this.pollingTimer=0}resetPollingMechanism(){this.deInitializePollingMechanism()}reinitializeStrategy(e){return _c(this,void 0,void 0,function*(){yield this.deinitialize(),yield this.initialize(e)})}handleError(e){const{onError:t}=this.bigCommercePaymentsAlternativeMethods||{};this.isPollingEnabled&&this.resetPollingMechanism(),this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}renderButton(e,t,n){const i=this.getPaypalAmpsSdkOrThrow(),r=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e,t),{buttonStyle:o}=r.initializationData||{},{container:a,onError:s,onRenderButton:d,submitForm:c}=n,l={fundingSource:e,style:this.bigCommercePaymentsIntegrationService.getValidButtonStyle(o),onInit:(e,t)=>n.onInitButton(t),createOrder:()=>this.onCreateOrder(e,t,n),onApprove:e=>this.handleApprove(e,c),onCancel:()=>{this.toggleLoadingIndicator(!1),this.deInitializePollingMechanism()},onError:e=>{this.deInitializePollingMechanism(),this.handleFailure(e,s)},onClick:(e,t)=>_c(this,void 0,void 0,function*(){return n.onValidate(t.resolve,t.reject)})};this.bigCommercePaymentsButton=i.Buttons(l),this.bigCommercePaymentsButton.isEligible()&&(d&&"function"==typeof d&&d(),this.bigCommercePaymentsButton.render(a))}onCreateOrder(e,t,n){return _c(this,void 0,void 0,function*(){const{onValidate:i}=n;yield i(()=>(this.toggleLoadingIndicator(!0),()=>Promise.resolve()),V);const r=yield this.bigCommercePaymentsIntegrationService.createOrder("bigcommerce_payments_apms");if(this.isNonInstantPaymentMethod(e)){const n={useStoreCredit:!1},i={params:{methodId:e,gatewayId:t}};yield this.paymentIntegrationService.submitOrder(n,i),yield this.bigCommercePaymentsIntegrationService.submitPayment(e,r,t)}return r})}handleApprove({orderID:e},t){this.orderId=e,t()}handleFailure(e,t){this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}renderFields(e,t){const n=this.getPaypalAmpsSdkOrThrow(),i=this.paymentIntegrationService.getState(),{firstName:r,lastName:o,email:a}=i.getBillingAddressOrThrow(),{apmFieldsContainer:s,apmFieldsStyles:d}=t;if(!s)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_apms" argument should contain "apmFieldsContainer".');const c=document.querySelector(s);c&&(c.innerHTML="");const l={fundingSource:e,style:d||{},fields:{name:{value:`${r} ${o}`},email:{value:a}}};n.PaymentFields(l).render(s)}toggleLoadingIndicator(e){e&&this.loadingIndicatorContainer?this.loadingIndicator.show(this.loadingIndicatorContainer):this.loadingIndicator.hide()}isNonInstantPaymentMethod(e){return e.toUpperCase()in fr}getPaypalAmpsSdkOrThrow(){if(!this.paypalApms)throw new Oi;return this.paypalApms}}const Ic=Rt(e=>new Cc(e,Tr(e),Hr(),new sd({containerStyles:Zd})),[{gateway:"bigcommerce_payments_apms"}]);var bc=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Pc{constructor(e,t,n){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t,this.loadingIndicator=n}initialize(e){var t,n;return bc(this,void 0,void 0,function*(){const{methodId:i,bigcommerce_payments_venmo:r}=e||{};if(!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!r)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_venmo" argument is not provided.');yield this.paymentIntegrationService.loadPaymentMethod(i);const o=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(i);(null===(t=o.initializationData)||void 0===t?void 0:t.orderId)?this.orderId=null===(n=o.initializationData)||void 0===n?void 0:n.orderId:(yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(i),this.loadingIndicatorContainer=r.container.split("#")[1],this.renderButton(i,r))})}execute(e,t){return bc(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);if(!this.orderId)throw new co;yield this.paymentIntegrationService.submitOrder(i,t),yield this.bigCommercePaymentsIntegrationService.submitPayment(n.methodId,this.orderId)})}finalize(){return Promise.reject(new Id)}deinitialize(){var e;return this.orderId=void 0,null===(e=this.paypalButton)||void 0===e||e.close(),Promise.resolve()}renderButton(e,t){const n=this.bigCommercePaymentsIntegrationService.getPayPalSdkOrThrow(),i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{paymentButtonStyles:r}=i.initializationData||{},{checkoutPaymentButtonStyles:o}=r||{},{container:a,onError:s,onRenderButton:d,onValidate:c,submitForm:l}=t,u={fundingSource:n.FUNDING.VENMO,style:this.bigCommercePaymentsIntegrationService.getValidButtonStyle(o),createOrder:()=>this.bigCommercePaymentsIntegrationService.createOrder("bigcommerce_payments_venmo_checkout"),onClick:(e,t)=>this.handleClick(t,c),onApprove:e=>this.handleApprove(e,l),onCancel:()=>this.toggleLoadingIndicator(!1),onError:e=>this.handleError(e,s)};if(this.paypalButton=n.Buttons(u),!this.paypalButton.isEligible())throw new Ti("Venmo is not available for your region. Please another payment method instead.");d&&"function"==typeof d&&d(),this.paypalButton.render(a)}handleClick(e,t){return bc(this,void 0,void 0,function*(){const{resolve:n,reject:i}=e;yield t(()=>(this.toggleLoadingIndicator(!0),n()),i)})}handleApprove({orderID:e},t){this.orderId=e,t(),this.toggleLoadingIndicator(!1)}handleError(e,t){this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}toggleLoadingIndicator(e){e&&this.loadingIndicatorContainer?this.loadingIndicator.show(this.loadingIndicatorContainer):this.loadingIndicator.hide()}}const Oc=Rt(e=>new Pc(e,Tr(e),new sd({styles:{backgroundColor:"black"}})),[{id:"bigcommerce_payments_venmo"}]);class Ec{initialize(e){this._blueSnapSdk=e}initialize3ds(e,t){return n=this,i=void 0,o=function*(){const n=this._getBlueSnapSdk();return new Promise((i,r)=>{n.threeDsPaymentsSetup(e,e=>"1"===e.code?i(e.threeDSecure.threeDSecureReferenceId):r(new so)),n.threeDsPaymentsSubmitData(t)})},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}_getBlueSnapSdk(){return yi(this._blueSnapSdk,()=>new gi(hi.PaymentNotInitialized))}}function Ac(e){return yc.CardNumber in e}function kc(e){return yc.CardCodeVerification in e||yc.CardNumberVerification in e}var Tc,Dc,Mc,zc,Nc,xc=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Fc{constructor(e,t,n,i){this._scriptLoader=e,this._paymentIntegrationService=t,this._blueSnapDirectHostedForm=n,this._blueSnapDirect3ds=i}initialize(e){return xc(this,void 0,void 0,function*(){const{methodId:t,gatewayId:n,creditCard:i}=e;if(!n||!i)throw new ki;const r=yield this._paymentIntegrationService.loadPaymentMethod(n,{params:{method:t,bigpayToken:i.bigpayToken}}),{config:{testMode:o,is3dsEnabled:a},clientToken:s}=r.getPaymentMethodOrThrow(t,n);this._blueSnapSdk=yield this._scriptLoader.load(o),this._paymentFieldsToken=s,this._shouldUseHostedFields=Ac(i.form.fields)||kc(i.form.fields)&&!!i.form.fields.cardNumberVerification,this._shouldUseHostedFields&&(this._blueSnapDirectHostedForm.initialize(this._blueSnapSdk,i.form.fields),yield this._blueSnapDirectHostedForm.attach(this._getPaymentFieldsToken(),i,a))})}execute(e){return xc(this,void 0,void 0,function*(){if(!e.payment)throw new fo(["payment"]);if(!this._blueSnapSdk)throw new fo(["payment"]);const{paymentData:t}=e.payment,{shouldSaveInstrument:n,shouldSetAsDefaultInstrument:i}=Ad(t)?t:{shouldSaveInstrument:!1,shouldSetAsDefaultInstrument:!1},r=this._getPaymentFieldsToken();let o;const{is3dsEnabled:a}=this._paymentIntegrationService.getState().getPaymentMethodOrThrow(e.payment.methodId,e.payment.gatewayId).config,s=this._shouldUseHostedFields?yield this._blueSnapDirectHostedForm.validate().submit(a?this._getBlueSnapDirectThreeDSecureData():void 0,!(Ad(t)&&Cd(t))):void 0;if(yield this._paymentIntegrationService.submitOrder(),Ad(t)&&Cd(t)&&this._paymentFieldsToken&&t.instrumentId){if(a){this._blueSnapDirect3ds.initialize(this._blueSnapSdk);const{last4:e,brand:n}=this._paymentIntegrationService.getState().getCardInstrumentOrThrow(t.instrumentId),i=Object.assign({last4Digits:e,ccType:n.toUpperCase()},this._getBlueSnapDirectThreeDSecureData());o=yield this._blueSnapDirect3ds.initialize3ds(this._paymentFieldsToken,i)}yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},e.payment),{paymentData:Object.assign(Object.assign(Object.assign({instrumentId:t.instrumentId},this._shouldUseHostedFields?{nonce:r}:{}),o?{deviceSessionId:o}:{}),{shouldSetAsDefaultInstrument:!!i})}))}else yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},e.payment),{paymentData:{formattedPayload:{credit_card_token:{token:JSON.stringify({pfToken:r,cardHolderName:s&&s.cardHolderName})},vault_payment_instrument:n,set_as_default_stored_instrument:i}}}))})}finalize(){return Promise.reject(new Id)}deinitialize(){return this._shouldUseHostedFields&&this._blueSnapDirectHostedForm.detach(),Promise.resolve()}_getBlueSnapDirectThreeDSecureData(){var e;const{getBillingAddress:t,getShippingAddress:n,getCustomer:i,getCheckoutOrThrow:r,getCartOrThrow:o}=this._paymentIntegrationService.getState(),a=t(),s=n(),d=(null===(e=i())||void 0===e?void 0:e.email)||(null==a?void 0:a.email),c=(null==a?void 0:a.phone)||(null==s?void 0:s.phone);return Object.assign(Object.assign(Object.assign(Object.assign({amount:r().outstandingBalance,currency:o().currency.code},d&&{email:d}),c&&{phone:c}),a&&{billingFirstName:a.firstName,billingLastName:a.lastName,billingCountry:a.countryCode,billingCity:a.city,billingAddress:`${a.address1} ${a.address2}`.trim(),billingZip:a.postalCode}),s&&{shippingFirstName:s.firstName,shippingLastName:s.lastName,shippingCountry:s.countryCode,shippingCity:s.city,shippingAddress:`${s.address1} ${s.address2}`.trim(),shippingZip:s.postalCode})}_getPaymentFieldsToken(){return yi(this._paymentFieldsToken,()=>new pi(ui.MissingPaymentToken))}}!function(e){e.AMEX="american-express",e.CHINA_UNION_PAY="unionpay",e.DINERS="diners-club",e.DISCOVER="discover",e.JCB="jcb",e.MASTERCARD="mastercard",e.UNKNOWN="unknown",e.VISA="visa"}(Tc||(Tc={})),function(e){e.ON_BLUR="onBlur",e.ON_SUBMIT="onSubmit"}(Dc||(Dc={})),function(e){e.EMPTY="empty",e.INVALID="invalid",e.THREE_DS_NOT_ENABLED="3D Secure is not enabled"}(Mc||(Mc={})),function(e){e.CC_NOT_SUPORTED="22013",e.ERROR_403="403",e.ERROR_404="404",e.ERROR_500="500",e.INVALID_OR_EMPTY="10",e.SESSION_EXPIRED="400",e.THREE_DS_AUTH_FAILED="14101",e.THREE_DS_CLIENT_ERROR="14103",e.THREE_DS_MISSING_FIELDS="14102",e.THREE_DS_NOT_ENABLED="14100",e.TOKEN_EXPIRED="14040",e.TOKEN_NOT_ASSOCIATED="14042",e.TOKEN_NOT_FOUND="14041"}(zc||(zc={})),function(e){e.CardCode="cvv",e.CardExpiry="exp",e.CardName="noc",e.CardNumber="ccn"}(Nc||(Nc={}));const Rc={[Nc.CardNumber]:yc.CardNumber,[Nc.CardExpiry]:yc.CardExpiry,[Nc.CardName]:yc.CardName,[Nc.CardCode]:yc.CardCode},Lc={empty:{[yc.CardNumber]:{fieldType:"cardNumber",message:"Credit card number is required",type:"required"},[yc.CardNumberVerification]:{fieldType:"cardNumber",message:"Credit card number is required",type:"required"},[yc.CardExpiry]:{fieldType:"cardExpiry",message:"Expiration date is required",type:"required"},[yc.CardCode]:{fieldType:"cardCode",message:"CVV is required",type:"required"},[yc.CardName]:{fieldType:"cardName",message:"Full name is required",type:"required"}},invalid:{[yc.CardNumber]:{fieldType:"cardNumber",message:"Credit card number must be valid",type:"invalid_card_number"},[yc.CardNumberVerification]:{fieldType:"cardNumber",message:"Credit card number must be valid",type:"invalid_card_number"},[yc.CardExpiry]:{fieldType:"cardExpiry",message:"Expiration date must be a valid future date in MM / YY format",type:"invalid_card_expiry"},[yc.CardCode]:{fieldType:"cardCode",message:"CVV must be valid",type:"invalid_card_code"},[yc.CardName]:{fieldType:"cardName",message:"Full name is required",type:"required"}}};class Bc{constructor(e,t){this._nameOnCardInput=e,this._hostedInputValidator=t}initialize(e,t){this._blueSnapSdk=e,t&&(Ac(t)?this._hostedInputValidator.initialize():kc(t)&&t.cardNumberVerification&&this._hostedInputValidator.initializeValidationFields())}attach(e,t,n){var i,r,o,a,s=t.form,{fields:d}=s,c=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(s,["fields"]);return void 0===n&&(n=!1),i=this,r=void 0,a=function*(){const t=this._getBlueSnapSdk();if(!Ac(d)&&!kc(d))throw new ki("Field options must be of type HostedCardFieldOptionsMap");return this._onValidate=c.onValidate,Ac(d)&&this._setCustomBlueSnapAttributes(d),kc(d)&&this._setCustomStoredCardsBlueSnapAttributes(d),new Promise(i=>{const r=this._getHostedPaymentFieldsOptions(e,d,c,i,n);t.hostedPaymentFieldsCreate(r),Ac(d)&&this._nameOnCardInput.attach(r,d.cardName.accessibilityLabel,d.cardName.placeholder)})},new((o=void 0)||(o=Promise))(function(e,t){function n(e){try{d(a.next(e))}catch(e){t(e)}}function s(e){try{d(a.throw(e))}catch(e){t(e)}}function d(t){var i;t.done?e(t.value):(i=t.value,i instanceof o?i:new o(function(e){e(i)})).then(n,s)}d((a=a.apply(i,r||[])).next())})}validate(){var e;const t=this._hostedInputValidator.validate();if(null===(e=this._onValidate)||void 0===e||e.call(this,t),!t.isValid){const e=Object.entries(t.errors).reduce((e,[t,n])=>Object.assign(Object.assign({},e),{[t]:n.map(({message:e,type:t})=>({message:e,type:t}))}),{});throw new So(e)}return this}submit(e,t=!1){return new Promise((n,i)=>this._getBlueSnapSdk().hostedPaymentFieldsSubmitData(e=>this._isBlueSnapDirectCallbackError(e)?i(new so(e.statusCode===zc.THREE_DS_AUTH_FAILED?e.error[0].errorDescription:`Submission failed with status: ${e.statusCode} and errors: ${JSON.stringify(e.error)}`)):n(Object.assign(Object.assign({},e.cardData),t?{cardHolderName:this._nameOnCardInput.getValue()}:{})),e))}detach(){this._nameOnCardInput.detach()}_isBlueSnapDirectCallbackError(e){return"error"in e}_getHostedPaymentFieldsOptions(e,t,{onFocus:n,onBlur:i,onValidate:r,onCardTypeChange:o,onEnter:a,styles:s},d,c){var l;return Object.assign(Object.assign(Object.assign({token:e,onFieldEventHandler:{setupComplete:()=>d(),onFocus:this._usetUiEventCallback(n),onBlur:this._usetUiEventCallback(i),onError:this._handleError(r),onType:(e,t)=>null==o?void 0:o({cardType:Tc[t]}),onEnter:this._usetUiEventCallback(a),onValid:e=>null==r?void 0:r(this._hostedInputValidator.validate({tagId:e}))}},Ac(t)&&{ccnPlaceHolder:t.cardNumber.placeholder||"",cvvPlaceHolder:(null===(l=t.cardCode)||void 0===l?void 0:l.placeholder)||"",expPlaceHolder:t.cardExpiry.placeholder||"MM / YY"}),s&&{style:this._mapStyles(s)}),{"3DS":c})}_mapStyles({default:e,error:t,focus:n}){return Object.entries(Object.assign(Object.assign(Object.assign({},e&&{input:e}),t&&{".invalid":t}),n&&{":focus":n})).reduce((e,[t,n])=>Object.assign(Object.assign({},e),{[t]:Object.entries(n).reduce((e,[t,n])=>Object.assign(Object.assign({},e),{[x(t)]:n}),{})}),{})}_handleError(e){return(t,n,i,r)=>{if(n===zc.INVALID_OR_EMPTY&&t&&function(e){return void 0!==e&&[Mc.EMPTY,Mc.INVALID].includes(e)}(i))return null==e?void 0:e(this._hostedInputValidator.validate({tagId:t,errorDescription:i}));throw new so(`An unexpected error has occurred: ${JSON.stringify({tagId:t,errorCode:n,errorDescription:i,eventOrigin:r})}`)}}_usetUiEventCallback(e){return t=>{e&&e({fieldType:Rc[t]})}}_getBlueSnapSdk(){return yi(this._blueSnapSdk,()=>new gi(hi.PaymentNotInitialized))}_setCustomBlueSnapAttributes(e){const{cardNumber:t,cardExpiry:n,cardCode:i,cardName:r}=e,o=document.getElementById(t.containerId),a=document.getElementById(n.containerId),s=i&&document.getElementById(i.containerId),d=document.getElementById(r.containerId);if(!(o&&a&&s&&d))throw new ki("Unable to create hosted payment fields to invalid HTML container elements.");o.dataset.bluesnap=Nc.CardNumber,a.dataset.bluesnap=Nc.CardExpiry,s.dataset.bluesnap=Nc.CardCode,d.dataset.bluesnap=Nc.CardName}_setCustomStoredCardsBlueSnapAttributes(e){const{cardNumberVerification:t,cardCodeVerification:n}=e,i=t&&document.getElementById(t.containerId),r=n&&document.getElementById(n.containerId);(i||r)&&(i&&(i.dataset.bluesnap=Nc.CardNumber),r&&(r.dataset.bluesnap=Nc.CardCode))}}class jc{constructor(){this._errors={}}initialize(){this._errors={cardNumber:[Lc.empty.cardNumber],cardExpiry:[Lc.empty.cardExpiry],cardCode:[Lc.empty.cardCode],cardName:[Lc.empty.cardName]}}initializeValidationFields(){this._errors={cardNumberVerification:[Lc.empty.cardNumber]}}validate(e){return e&&this._updateErrors(e.tagId,e.errorDescription),{isValid:Object.values(this._errors).every(e=>0===e.length),errors:this._errors}}_updateErrors(e,t){const n=this._errors.cardNumberVerification?yc.CardNumberVerification:Rc[e];this._errors[n]=t?[Lc[t][n]]:[]}}class Uc{attach({style:e,onFieldEventHandler:{onFocus:t,onBlur:n,onValid:i,onError:r,onEnter:o}={}},a,s){var d;this._style=e,this._create(),this._getInput().addEventListener("focus",this._handleFocus(t)),this._getInput().addEventListener("blur",this._handleBlur(n,i,r)),this._getInput().addEventListener("enter",this._handleEnter(o)),a&&this._getInput().setAttribute("aria-label",a),s&&(this._getInput().placeholder=s),null===(d=document.querySelector('[data-bluesnap="noc"]'))||void 0===d||d.appendChild(this._getInput())}getValue(){return this._getInput().value}detach(){this._input&&(this._input.remove(),this._input=void 0)}_handleFocus(e){return()=>{var t;this._applyStyles(null===(t=this._style)||void 0===t?void 0:t[":focus"]),null==e||e(Nc.CardName)}}_handleBlur(e,t,n){return({target:i})=>{var r,o;null==e||e(Nc.CardName),i instanceof HTMLInputElement&&(/\w{1,200}/.test(i.value)?(this._applyStyles(null===(r=this._style)||void 0===r?void 0:r.input),null==t||t(Nc.CardName)):(this._applyStyles(null===(o=this._style)||void 0===o?void 0:o[".invalid"]),null==n||n(Nc.CardName,zc.INVALID_OR_EMPTY,Mc.EMPTY,Dc.ON_BLUR)))}}_handleEnter(e){return()=>null==e?void 0:e(Nc.CardName)}_applyStyles(e={}){const t={color:e.color,fontFamily:e["font-family"],fontSize:e["font-size"],fontWeight:e["font-weight"]},n=Object.keys(t);n.every(e=>["color","fontFamily","fontSize","fontWeight"].includes(e))&&n.forEach(e=>{t[e]&&(this._getInput().style[e]=t[e]||"")})}_configureInput(){this._getInput().autocomplete="cc-name",this._getInput().id=Nc.CardName,this._getInput().inputMode="text",this._getInput().maxLength=200,this._getInput().style.backgroundColor="transparent",this._getInput().style.border="0",this._getInput().style.height="100%",this._getInput().style.margin="0",this._getInput().style.outline="none",this._getInput().style.padding="0",this._getInput().style.width="100%",this._getInput().type="text"}_getInput(){return yi(this._input,()=>new gi(hi.PaymentNotInitialized))}_create(){var e;this._input=document.createElement("input"),this._configureInput(),this._applyStyles(null===(e=this._style)||void 0===e?void 0:e.input)}}var qc;!function(e){e.PRODUCTION="https://pay.bluesnap.com/web-sdk/5/bluesnap.js",e.SANDBOX="https://sandpay.bluesnap.com/web-sdk/5/bluesnap.js"}(qc||(qc={}));class Vc{constructor(e,t=window){this._scriptLoader=e,this._window=t}load(e=!1){return t=this,n=void 0,r=function*(){if(this._window.bluesnap)return this._window.bluesnap;if(yield this._scriptLoader.loadScript(e?qc.SANDBOX:qc.PRODUCTION),!this._window.bluesnap)throw new Oi;return this._window.bluesnap},new((i=void 0)||(i=Promise))(function(e,o){function a(e){try{d(r.next(e))}catch(e){o(e)}}function s(e){try{d(r.throw(e))}catch(e){o(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((r=r.apply(t,n||[])).next())});var t,n,i,r}}const Gc=Rt(e=>new Fc(new Vc(a()),e,new Bc(new Uc,new jc),new Ec),[{id:"credit_card",gateway:"bluesnapdirect"}]);class Hc{constructor(e){this._paymentIntegrationService=e}execute(e){return t=this,n=void 0,r=function*(){const t=this._formatePaymentPayload(e);yield this._paymentIntegrationService.submitOrder();try{yield this._paymentIntegrationService.submitPayment(t)}catch(e){if(this._isBlueSnapDirectRedirectResponse(e)){const t=e.body.provider_data&&JSON.parse(e.body.provider_data);let n=e.body.additional_action_required.data.redirect_url;if(function(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!t.merchantid&&"string"==typeof t.merchantid}(t)){const e=new URLSearchParams(t).toString();n=`${n}&${e}`}return new Promise(()=>window.location.replace(n))}return Promise.reject(e)}},new((i=void 0)||(i=Promise))(function(e,o){function a(e){try{d(r.next(e))}catch(e){o(e)}}function s(e){try{d(r.throw(e))}catch(e){o(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((r=r.apply(t,n||[])).next())});var t,n,i,r}initialize(){return Promise.resolve()}finalize(){return Promise.reject(new Id)}deinitialize(){return Promise.resolve()}_formatePaymentPayload({payment:e}){if(!e)throw new fo(["payment"]);return e.paymentData&&Cd(e.paymentData)&&Ad(e.paymentData)?Object.assign(Object.assign({},e),{paymentData:{instrumentId:e.paymentData.instrumentId,shouldSetAsDefaultInstrument:!!e.paymentData.shouldSetAsDefaultInstrument}}):(t=e.paymentData,Boolean("object"==typeof t&&null!==t&&"accountNumber"in t&&"accountType"in t&&"shopperPermission"in t&&"routingNumber"in t)?Object.assign(Object.assign({},e),{paymentData:{formattedPayload:{ecp:Object.assign({account_number:e.paymentData.accountNumber,account_type:e.paymentData.accountType,shopper_permission:e.paymentData.shopperPermission,routing_number:e.paymentData.routingNumber},e.paymentData.companyName?{company_name:e.paymentData.companyName}:{}),vault_payment_instrument:e.paymentData.shouldSaveInstrument,set_as_default_stored_instrument:e.paymentData.shouldSetAsDefaultInstrument}}}):(n=e.paymentData,Boolean("object"==typeof n&&null!==n&&"iban"in n&&"firstName"in n&&"lastName"in n&&"shopperPermission"in n)?Object.assign(Object.assign({},e),{paymentData:{formattedPayload:{sepa_direct_debit:{iban:e.paymentData.iban,first_name:e.paymentData.firstName,last_name:e.paymentData.lastName,shopper_permission:e.paymentData.shopperPermission},vault_payment_instrument:e.paymentData.shouldSaveInstrument,set_as_default_stored_instrument:e.paymentData.shouldSetAsDefaultInstrument}}}):function(e){return Boolean("object"==typeof e&&null!==e&&"bic"in e)}(e.paymentData)?Object.assign(Object.assign({},e),{paymentData:{formattedPayload:{ideal:{bic:e.paymentData.bic}}}}):function(e){return Boolean("object"==typeof e&&null!==e&&"iban"in e&&!("firstName"in e)&&!("lastName"in e)&&!("shopperPermission"in e))}(e.paymentData)?Object.assign(Object.assign({},e),{paymentData:{formattedPayload:{pay_by_bank:{iban:e.paymentData.iban}}}}):{methodId:e.methodId}));var t,n}_isBlueSnapDirectRedirectResponse(e){var t;if("object"!=typeof e||null===e)return!1;const n=e;if(!n.body)return!1;const i=n.body;return"additional_action_required"===i.status&&!!(null===(t=i.additional_action_required)||void 0===t?void 0:t.data.redirect_url)}}const $c=Rt(e=>new Hc(e),[{gateway:"bluesnapdirect"}]);var Wc;!function(e){e.ACKNOWLEDGE="ACKNOWLEDGE",e.FINALIZE="FINALIZE",e.INITIALIZE="INITIALIZE"}(Wc||(Wc={}));const Yc=Wc;var Kc=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Jc{constructor(e){this._paymentIntegrationService=e}execute(e,t){return Kc(this,void 0,void 0,function*(){const{payment:n}=e;if(!n)throw new fo(["payment"]);if(!this._initializeOptions)throw new gi(hi.PaymentNotInitialized);const{onLoad:i,style:r}=this._initializeOptions,o=this._createIframe("bluesnapv2_hosted_payment_page",r),a=new Bn(new Promise(V));i(o,()=>a.cancel(new nr)),yield this._paymentIntegrationService.submitOrder(e,t),yield this._paymentIntegrationService.initializeOffsitePayment({methodId:n.methodId,gatewayId:n.gatewayId,shouldSaveInstrument:!1,target:o.name,promise:a.promise})})}finalize(e){return Kc(this,void 0,void 0,function*(){const t=this._paymentIntegrationService.getState(),n=t.getOrder(),i=t.getPaymentStatus();if(!n||i!==Yc.ACKNOWLEDGE&&i!==Yc.FINALIZE)return Promise.reject(new Id);yield this._paymentIntegrationService.finalizeOrder(e)})}initialize(e){return Kc(this,void 0,void 0,function*(){this._initializeOptions=e&&e.bluesnapv2,yield Promise.resolve()})}deinitialize(){return Promise.resolve()}_createIframe(e,t){const n=document.createElement("iframe");if(n.setAttribute("sandbox","allow-top-navigation allow-scripts allow-forms allow-same-origin"),n.name=e,t){const{border:e,height:i,width:r}=t;n.style.border=null!=e?e:"",n.style.height=null!=i?i:"",n.style.width=null!=r?r:""}return n}}const Zc=Rt(e=>new Jc(e),[{gateway:"bluesnapv2"}]);class Qc{constructor(e){this.storage=e}saveExtraItemsData(e,t){const n=[...t.physicalItems,...t.digitalItems].reduce((e,t)=>(e[t.productId]={brand:t.brand?t.brand:"",category:t.categoryNames?t.categoryNames.join(", "):""},e),{});try{return this.storage.setItem(this.getStorageKey(e),JSON.stringify(n)),n}catch(e){return{}}}readExtraItemsData(e){try{const t=this.storage.getItem(this.getStorageKey(e));if(!t)return null;const n=JSON.parse(t);return function(e){if(!D(e))return!1;const t=Object.values(e).some(e=>!D(e)||!("brand"in e)||!("category"in e));return Boolean(!t)}(n)?n:null}catch(e){return null}}clearExtraItemData(e){try{this.storage.removeItem(this.getStorageKey(e))}catch(e){}}getStorageKey(e){return e?`ORDER_ITEMS_${e}`:""}}function Xc(e){return Boolean(e.hasOwnProperty("analytics"))}function el(e){return"object"==typeof e&&null!==e&&"shouldCreateAccount"in e}class tl extends li{constructor(e){super(),this.errorCode=e,this.name="BoltPaymentsFieldError",this.type="bolt_payments_field_error",this.body={errors:[tl.getError(e)]}}static getError(e){switch(e){case"1000":case"2000":case"3000":return{code:"invalid_number"};case"1001":case"2001":case"3001":return{code:"invalid_expiry_date"};case"1002":case"2002":return{code:"invalid_cvc"};case"1003":return{code:"invalid_zip"};case"2003":return{code:"incorrect_zip"};default:return{code:"general_error"}}}}var nl=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class il{constructor(e,t,n){this.paymentIntegrationService=e,this.boltScriptLoader=t,this.analyticsExtraItemsManager=n,this.useBoltClient=!1,this.useBoltEmbedded=!1}initialize(e){return nl(this,void 0,void 0,function*(){const{bolt:t,methodId:n}=e,{containerId:i,onPaymentSelect:r,useBigCommerceCheckout:o}=t||{};if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!o)return void(this.boltClient=yield this.boltScriptLoader.loadBoltClient());const a=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e.methodId),{initializationData:s,config:d}=a,{publishableKey:c,developerConfig:l,embeddedOneClickEnabled:u}=s||{},{testMode:h}=d;if(!c)throw new pi(ui.MissingPaymentMethod);if(this.boltClient=yield this.boltScriptLoader.loadBoltClient(c,h,l),this.useBoltClient=!u,this.useBoltEmbedded=!!u,this.useBoltEmbedded){if(!i)throw new ki('Unable to initialize payment because "options.bolt.containerId" argument is not provided.');if(!r)throw new ki('Unable to initialize payment because "options.bolt.onPaymentSelect" argument is not provided.');this.boltEmbedded=yield this.boltScriptLoader.loadBoltEmbedded(c,h,l),this.mountBoltEmbeddedField(i),r(yield this.hasBoltAccount())}})}deinitialize(){var e;return null===(e=this.embeddedField)||void 0===e||e.unmount(),this.boltClient=void 0,this.boltEmbedded=void 0,Promise.resolve()}finalize(){return Promise.reject(new Id)}execute(e,t){return nl(this,void 0,void 0,function*(){this.setExtraItemsForAnalytics();const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),{methodId:r,paymentData:o}=n||{};let a;if(!e.payment)throw new fo(["payment"]);if(!r)throw new pi(ui.MissingPaymentMethod);if(!o||!function(e){return Boolean(D(e)&&("shouldSaveInstrument"in e||"nonce"in e||el(e)))}(o))throw new pi(ui.MissingPayment);yield this.paymentIntegrationService.submitOrder(i,t),a=this.useBoltClient?yield this.getBoltClientPaymentPayload(r,o,t):this.useBoltEmbedded?yield this.getBoltEmbeddedPaymentPayload(r,o):yield this.getBoltFullCheckoutPaymentPayload(r,o),yield this.paymentIntegrationService.submitPayment(a)})}getBoltClientPaymentPayload(e,t,n){return nl(this,void 0,void 0,function*(){yield this.paymentIntegrationService.loadPaymentMethod(e,n);const i=this.paymentIntegrationService.getState(),r=i.getPaymentMethodOrThrow(e).clientToken,{isStoreCreditApplied:o}=i.getCheckoutOrThrow(),{shouldSaveInstrument:a}=t,s=this.getBoltClientOrThrow();if(yield this.paymentIntegrationService.applyStoreCredit(o),!r)throw new pi(ui.MissingPaymentMethod);const d=yield new Promise((e,t)=>{const n={success:(n,i)=>{n.reference?e(n):t(new so("Unable to proceed because transaction reference is unavailable. Please try again later.")),i()},close:()=>{t(new nr)}};s.configure({orderToken:r},{},n).open()});return{methodId:e,paymentData:{nonce:d.reference,shouldSaveInstrument:a}}})}getBoltEmbeddedPaymentPayload(e,t){var n;return nl(this,void 0,void 0,function*(){if(!el(t))throw new pi(ui.MissingPayment);const i=this.validateTokenizeResultOrThrow(yield null===(n=this.embeddedField)||void 0===n?void 0:n.tokenize());return{methodId:e,paymentData:{formattedPayload:{credit_card_token:{token:i.token,last_four_digits:i.last4,iin:i.bin,expiration_month:+i.expiration.split("-")[1],expiration_year:+i.expiration.split("-")[0]},provider_data:{create_account:!!t.shouldCreateAccount,embedded_checkout:!0}}}}})}getBoltFullCheckoutPaymentPayload(e,t){return nl(this,void 0,void 0,function*(){yield this.setBoltOrderId();const n=this.getBoltClientOrThrow(),i=yield n.getTransactionReference();if(!i)throw new co;return{methodId:e,paymentData:Object.assign(Object.assign({},t),{nonce:i})}})}getBoltClientOrThrow(){if(!this.boltClient)throw new gi(hi.PaymentNotInitialized);return this.boltClient}getBoltEmbeddedOrThrow(){if(!this.boltEmbedded)throw new gi(hi.PaymentNotInitialized);return this.boltEmbedded}hasBoltAccount(){return nl(this,void 0,void 0,function*(){const e=this.paymentIntegrationService.getState(),t=e.getCustomer(),n=e.getBillingAddress(),i=(null==t?void 0:t.email)||(null==n?void 0:n.email)||"",r=this.getBoltClientOrThrow();try{return yield r.hasBoltAccount(i)}catch(e){throw new co}})}setBoltOrderId(){return nl(this,void 0,void 0,function*(){const e=this.paymentIntegrationService.getState().getOrderOrThrow(),t=this.getBoltClientOrThrow();try{yield t.setOrderId(e.orderId)}catch(e){throw new co}})}mountBoltEmbeddedField(e){const t=this.getBoltEmbeddedOrThrow().create("payment_field",{styles:{backgroundColor:"#fff"},renderSeparateFields:!0});t.mount(`#${e}`),this.embeddedField=t}validateTokenizeResultOrThrow(e){if(!e)throw new co;if(e instanceof Error)throw new tl(e.message);const{token:t,last4:n,bin:i,expiration:r}=e,o=+n,a=+i,s=+`${r}`.split("-")[1],d=+`${r}`.split("-")[0];if(!t||Number.isNaN(o)||Number.isNaN(a)||Number.isNaN(s)||Number.isNaN(d))throw new fo;return e}setExtraItemsForAnalytics(){const e=this.paymentIntegrationService.getState(),t=e.getStoreConfigOrThrow(),n=e.getCartOrThrow();if(t.checkoutSettings.isAnalyticsEnabled&&Xc(window)){const{id:e,lineItems:t}=n;this.analyticsExtraItemsManager.saveExtraItemsData(e,t)}}}const rl=Rt(e=>new il(e,new go(a()),new Qc(ke)),[{id:"bolt"}]);function ol(e){return!!e&&"accountNumber"in e&&"routingNumber"in e&&"ownershipType"in e&&"accountType"in e}var al=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class sl{constructor(e,t){this.paymentIntegrationService=e,this.braintreeSdk=t}initialize(e){return al(this,void 0,void 0,function*(){const{methodId:t,braintreeach:n}=e||{};if(!t)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');this.getMandateText=null==n?void 0:n.getMandateText,yield this.paymentIntegrationService.loadPaymentMethod(t);const i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(t),{clientToken:r,initializationData:o}=i;if(!r||!o)throw new pi(ui.MissingPaymentMethod);this.braintreeSdk.initialize(r);try{this.usBankAccount=yield this.braintreeSdk.getUsBankAccount()}catch(e){this.handleBraintreeError(e)}})}execute(e,t){return al(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);const r=Cd(n.paymentData||{}),o=r?yield this.tokenizePaymentForVaultedInstrument(n):yield this.tokenizePayment(n),a=r?yield this.preparePaymentDataForVaultedInstrument(o,n):yield this.preparePaymentData(o,n);yield this.paymentIntegrationService.submitOrder(i,t),yield this.paymentIntegrationService.submitPayment(a)})}finalize(){return Promise.reject(new Id)}deinitialize(){return al(this,void 0,void 0,function*(){return yield this.braintreeSdk.deinitialize(),Promise.resolve()})}tokenizePayment({paymentData:e}){return al(this,void 0,void 0,function*(){const t=this.getUsBankAccountOrThrow();if(!ol(e))throw new fo(["payment.paymentData"]);const n=Cd(e)?"The data are used for stored instrument verification":"function"==typeof this.getMandateText&&this.getMandateText();if(!n)throw new ki("Unable to proceed because getMandateText is not provided or returned undefined value.");try{const{nonce:i}=yield t.tokenize({bankDetails:this.getBankDetails(e),mandateText:n});return i}catch(e){this.handleBraintreeError(e)}})}tokenizePaymentForVaultedInstrument(e){return al(this,void 0,void 0,function*(){const{methodId:t,paymentData:n={}}=e,i=this.paymentIntegrationService.getState(),{config:r}=i.getPaymentMethodOrThrow(t);if(!r.isVaultingEnabled)throw new ki("Vaulting is disabled but a vaulted instrument was being used for this transaction");return ol(n)?this.tokenizePayment(e):null})}preparePaymentData(e,t){return al(this,void 0,void 0,function*(){const{methodId:n,paymentData:i={}}=t;if(!ol(i))throw new fo(["payment.paymentData"]);const{deviceData:r}=yield this.braintreeSdk.getDataCollectorOrThrow(),{shouldSaveInstrument:o,shouldSetAsDefaultInstrument:a,routingNumber:s,accountNumber:d}=i;return{methodId:n,paymentData:{deviceSessionId:r,shouldSetAsDefaultInstrument:a,shouldSaveInstrument:o,formattedPayload:{tokenized_bank_account:{issuer:s,masked_account_number:d.substr(-4),token:e}}}}})}preparePaymentDataForVaultedInstrument(e,t){return al(this,void 0,void 0,function*(){const{methodId:n,paymentData:i={}}=t;if(!Cd(i)||!Ad(i))throw new fo(["payment.paymentData"]);const{deviceData:r}=yield this.braintreeSdk.getDataCollectorOrThrow(),{instrumentId:o,shouldSetAsDefaultInstrument:a}=i;return{methodId:n,paymentData:Object.assign({deviceSessionId:r,instrumentId:o,shouldSetAsDefaultInstrument:a},e&&{nonce:e})}})}getBankDetails(e){const t=this.paymentIntegrationService.getState().getBillingAddressOrThrow(),n=e.ownershipType.toLowerCase(),i=e.accountType.toLowerCase();return Object.assign(Object.assign({accountNumber:e.accountNumber,routingNumber:e.routingNumber,ownershipType:n},"personal"===n?{firstName:e.firstName,lastName:e.lastName}:{businessName:e.businessName}),{accountType:i,billingAddress:{streetAddress:t.address1,extendedAddress:t.address2,locality:t.city,region:t.stateOrProvinceCode,postalCode:t.postalCode}})}getUsBankAccountOrThrow(){if(!this.usBankAccount)throw new gi(hi.PaymentNotInitialized);return this.usBankAccount}handleBraintreeError(e){if(!$i(e))throw e;throw new so(e.message)}}const dl=Rt(e=>new sl(e,(e=>{const t=new Ri(e),n=new tr(a(),window,t);return new Zi(n)})(e)),[{id:"braintreeach"}]);class cl{constructor(e){this.paymentIntegrationService=e,this.braintreeHostWindow=window}render(e,t,n){const i=t&&document.getElementById(t);if(this.braintreeHostWindow.paypal&&i){const r=this.paymentIntegrationService.getState(),o=r.getCartOrThrow(),a=r.getBillingAddressOrThrow(),s=r.getPaymentMethodOrThrow(e);if(!s.initializationData)return;const{paypalBNPLConfiguration:d=[]}=s.initializationData,c=n===Oo.PAYMENT?"checkout":n,l=d&&d.find(({id:e})=>e===c);if(!l||!l.status)return;n===Oo.CART&&(i.removeAttribute("data-pp-style-logo-type"),i.removeAttribute("data-pp-style-logo-position"),i.removeAttribute("data-pp-style-text-color"),i.removeAttribute("data-pp-style-text-size")),this.braintreeHostWindow.paypal.Messages({amount:o.cartAmount,buyerCountry:a.countryCode,placement:n,style:this.getPaypalMessagesStylesFromBNPLConfig(l)}).render(`#${t}`)}}getPaypalMessagesStylesFromBNPLConfig({styles:e}){const t={};return e.color&&(t.color=e.color),e.layout&&(t.layout=e.layout),(e["logo-type"]||e["logo-position"])&&(t.logo={},e["logo-type"]&&(t.logo.type=e["logo-type"]),e["logo-position"]&&(t.logo.position=e["logo-position"])),e.ratio&&(t.ratio=e.ratio),(e["text-color"]||e["text-size"])&&(t.text={},e["text-color"]&&(t.text.color=e["text-color"]),e["text-size"]&&(t.text.size=+e["text-size"])),t}}class ll{constructor(e){const{element:t,closeElement:n,mainElement:i}=this._createElements(e);this._element=t,this._closeElement=n,this._mainElement=i}show(e){this._mainElement.parentElement||(this._registerClick(e),document.body.appendChild(this._mainElement),setTimeout(()=>this._element.style.opacity="1"))}remove(){this._mainElement.parentElement&&(this._unregisterClick&&this._unregisterClick(),this._removeAfterTransition(),setTimeout(()=>this._element.style.opacity="0"))}_createElements(e){const t=document.createElement("div"),{background:n="rgba(0, 0, 0, 0.8)",id:i="checkoutOverlay",transitionDuration:r=400,hasCloseButton:o=!1,innerHtml:a=null}=e||{};let s,d,c,l,u=t;if(i&&(t.id=i),a){const e=document.createElement("div");l=`${i}--overlayText`,e.className=l,e.appendChild(a),t.appendChild(e)}return o&&(c=`${i}--close`,s=document.createElement("div"),s.className=c,d=`${i}--layout`,u=document.createElement("div"),u.className=d,u.appendChild(t),u.appendChild(s)),u.appendChild(function(e){const{id:t,background:n,transitionDuration:i,classLayout:r,classOverlayText:o,classClose:a}=e,s=document.createElement("style"),d=r?`, .${r}`:"";return s.id=`${t}--styles`,s.type="text/css",s.innerText=`\n #${t}${d} {\n display: block;\n height: 100%;\n width: 100%;\n left: 0;\n top: 0;\n position: fixed;\n z-index: 2147483647;\n }\n #${t} {\n transition: opacity ${i}ms ease-out;\n background: ${n};\n opacity: 0;\n }\n `,o&&(s.innerText+=`\n #${t} {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n #${t} .${o} {\n color: white;\n max-width: 330px;\n font-size: 1.2em;\n text-align: center;\n }\n `),a&&(s.innerText+=`\n #${t} {\n opacity: 1;\n }\n .${r} .${a} {\n position: fixed;\n right: 16px;\n top: 16px;\n width: 16px;\n height: 16px;\n opacity: 0.6;\n cursor: pointer;\n z-index: 3147483647;\n }\n .${r} .${a}::after, .${r} .${a}::before {\n position: absolute;\n left: 8px;\n content: '';\n height: 16px;\n width: 2px;\n background-color: #fff;\n }\n .${r} .${a}::after {\n transform: rotate(-45deg);\n }\n .${r} .${a}::before {\n transform: rotate(45deg);\n }\n `),s}({id:i,background:n,transitionDuration:r,classLayout:d,classOverlayText:l,classClose:c})),{element:t,closeElement:s,mainElement:u}}_addEventListener(e,t){e&&t&&e.addEventListener("click",t)}_removeEventListener(e,t){e&&t&&e.removeEventListener("click",t)}_registerClick(e){if(this._unregisterClick&&this._unregisterClick(),e){const{onClick:t,onClickClose:n}=e;this._addEventListener(this._element,t),this._addEventListener(this._closeElement,n),this._unregisterClick=()=>{this._removeEventListener(this._element,t),this._removeEventListener(this._closeElement,n),this._unregisterClick=void 0}}}_removeAfterTransition(){const e=t=>{"opacity"===t.propertyName&&(this._mainElement.parentElement&&this._mainElement.remove(),this._element.removeEventListener("transitionend",e))};this._element.addEventListener("transitionend",e)}}const ul={"background-color":"rgba(0, 0, 0, 0.4)","z-index":"1000"};function hl(e){return"object"==typeof e&&null!==e&&"name"in e&&"BraintreeError"===e.name}function pl(e){return{recipientName:`${e.firstName} ${e.lastName}`,line1:e.address1,line2:e.address2,city:e.city,state:e.stateOrProvinceCode,postalCode:e.postalCode,countryCode:e.countryCode,phone:e.phone}}var ml=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class yl{constructor(e,t,n,i){this.paymentIntegrationService=e,this.braintreeIntegrationService=t,this.braintreeMessages=n,this.loadingIndicator=i,this.braintreeHostWindow=window}initialize(e){return ml(this,void 0,void 0,function*(){const{braintree:t,methodId:n}=e;if(this.braintree=t,this.paymentMethod&&this.paymentMethod.nonce||(this.paymentMethod=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(n)),this.paymentMethod.clientToken&&(null==t?void 0:t.bannerContainerId))return yield this.loadPaypal(),this.loadPaypalCheckoutInstance();if(this.paymentMethod.clientToken)return this.loadPaypal();const i=yield this.paymentIntegrationService.loadPaymentMethod(n);if(this.paymentMethod=i.getPaymentMethodOrThrow(n),null==t?void 0:t.bannerContainerId)return this.loadPaypalCheckoutInstance();if(!this.paymentMethod.clientToken)throw new pi(ui.MissingPaymentMethod);return this.loadPaypal()})}execute(e,t){var n;return ml(this,void 0,void 0,function*(){const{payment:i}=e,r=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),{onError:o}=this.braintree||{};if(!i)throw new fo(["payment"]);try{const e=yield this.preparePaymentData(i,r.useStoreCredit);yield this.paymentIntegrationService.submitOrder(r,t),yield this.paymentIntegrationService.submitPayment(e)}catch(e){this.isProviderError(e)&&(yield this.loadPaypal(),null===(n=this.paypalButtonRender)||void 0===n||n.close(),yield this.loadPaypalCheckoutInstance(),yield new Promise((e,t)=>{o&&"function"==typeof o&&o(new Error("INSTRUMENT_DECLINED")),t()})),this.handleError(e)}})}finalize(){return Promise.reject(new Id)}deinitialize(){var e;return this.braintreeTokenizePayload=void 0,null===(e=this.paypalButtonRender)||void 0===e||e.close(),this.braintreeIntegrationService.teardown()}preparePaymentData(e,t){var n;return ml(this,void 0,void 0,function*(){const i=this.paymentIntegrationService.getState(),r=i.getOutstandingBalance(t),o=i.getStoreConfig();if(!r)throw new pi(ui.MissingCheckout);if(!o)throw new pi(ui.MissingCheckoutConfig);if(!this.paymentMethod)throw new gi(hi.PaymentNotInitialized);const{currency:a,storeProfile:{storeLanguage:s}}=o,{nonce:d,config:{isVaultingEnabled:c}}=this.paymentMethod,{methodId:l,paymentData:u={}}=e,h=(null===(n=this.braintreeTokenizePayload)||void 0===n?void 0:n.nonce)||d;if(h){const t=yield this.paymentIntegrationService.loadPaymentMethod(l);return this.paymentMethod=t.getPaymentMethod(l),Object.assign(Object.assign({},e),{paymentData:this.formattedPayload(h)})}if(Cd(u)||(p=u,Boolean(p.instrumentId)&&!Object.prototype.hasOwnProperty.call(p,"ccNumber")&&!Object.prototype.hasOwnProperty.call(p,"ccCvv"))){if(!c)throw new ki("Vaulting is disabled but a vaulted instrument was being used for this transaction");return Promise.resolve(e)}var p;if(!Ad(u))throw new pi(ui.MissingPayment);const{shouldSaveInstrument:m,shouldSetAsDefaultInstrument:y}=u;if(m&&!c)throw new ki("Vaulting is disabled but shouldSaveInstrument is set to true");const g=i.getShippingAddress(),v=g?pl(g):void 0;return Promise.all([this.braintreeIntegrationService.paypal({amount:r,locale:s,currency:a.code,offerCredit:"braintreepaypalcredit"===this.paymentMethod.id,shippingAddressOverride:v,shouldSaveInstrument:m||!1,shippingAddressEditable:!1}),this.braintreeIntegrationService.getSessionId()]).then(([{nonce:t,details:n}={},i])=>Object.assign(Object.assign({},e),{paymentData:this.formattedPayload(t,n&&n.email,i,m,y)}))})}formattedPayload(e,t,n,i,r){return{formattedPayload:{vault_payment_instrument:i||null,set_as_default_stored_instrument:r||null,device_info:n||null,paypal_account:{token:e,email:t||null}}}}loadPaypalCheckoutInstance(){return ml(this,void 0,void 0,function*(){const{clientToken:e,initializationData:t,id:n}=this.paymentMethod||{};if(!e)throw new pi(ui.MissingPaymentMethod);try{this.braintreeIntegrationService.initialize(e);const i={currency:this.paymentIntegrationService.getState().getCartOrThrow().currency.code,intent:null==t?void 0:t.intent,isCreditEnabled:null==t?void 0:t.isCreditEnabled},r="braintreepaypalcredit"===n||!(null==t?void 0:t.isCreditEnabled);yield this.braintreeIntegrationService.getPaypalCheckout(i,e=>{var t;r&&n&&(null===(t=this.braintree)||void 0===t?void 0:t.bannerContainerId)&&this.renderPayPalMessages(n,this.braintree.bannerContainerId),this.renderPayPalButton(e)},this.handleError)}catch(e){this.handleError(e)}})}renderPayPalMessages(e,t){this.braintreeMessages.render(e,t,Oo.PAYMENT)}renderPayPalButton(e){const{onPaymentError:t,submitForm:n,onRenderButton:i,containerId:r,onError:o}=this.braintree||{};if(!r)return;if(!this.paymentMethod)throw new gi(hi.PaymentNotInitialized);this.loadingIndicatorContainer=r.split("#")[1];const{id:a,config:{testMode:s}}=this.paymentMethod,{paypal:d}=this.braintreeHostWindow,c=null==d?void 0:d.FUNDING.PAYPAL;d&&c?(this.paypalButtonRender=d.Buttons({env:s?"sandbox":"production",commit:!1,fundingSource:c,onClick:()=>{this.toggleLoadingIndicator(!0)},createOrder:()=>this.setupPayment(e,a,t),onApprove:t=>ml(this,void 0,void 0,function*(){this.braintreeTokenizePayload=yield this.tokenizePaymentOrThrow(t,e),n&&"function"==typeof n&&n()}),onCancel:()=>{this.toggleLoadingIndicator(!1)},onError:e=>{this.toggleLoadingIndicator(!1),null==o||o(e)}}),i&&"function"==typeof i&&i(),this.paypalButtonRender.isEligible()&&this.paypalButtonRender.render(`${r}`)):this.removeElement(r.split("#")[1])}setupPayment(e,t,n){return ml(this,void 0,void 0,function*(){const i=this.paymentIntegrationService.getState();try{const n=i.getCustomer(),r=i.getPaymentMethodOrThrow(t),o=i.getCheckoutOrThrow().outstandingBalance,a=i.getStoreConfigOrThrow().currency.code,s=i.getShippingAddress()||(null==n?void 0:n.addresses[0]),d=s?pl(s):void 0;return yield e.createPayment({flow:"checkout",enableShippingAddress:!0,shippingAddressEditable:!1,shippingAddressOverride:d,amount:o,currency:a,offerCredit:!1,intent:r.initializationData.intent})}catch(e){throw n&&(hl(e)||e instanceof li)&&n(e),e}})}tokenizePaymentOrThrow(e,t,n){return ml(this,void 0,void 0,function*(){try{return yield t.tokenizePayment(e)}catch(e){throw n&&(hl(e)||e instanceof li)&&n(e),e}})}loadPaypal(){return ml(this,void 0,void 0,function*(){const{clientToken:e,initializationData:t}=this.paymentMethod||{};if(!e||!t)throw new pi(ui.MissingPaymentMethod);try{this.braintreeIntegrationService.initialize(e),yield this.braintreeIntegrationService.getPaypal()}catch(e){this.handleError(e)}return Promise.resolve()})}handleError(e){if(!hl(e))throw e;if("PAYPAL_POPUP_CLOSED"===e.code)throw new nr(e.message);throw new so(e.message)}isProviderError(e){var t,n,i;return!!function(e){return"object"==typeof e&&null!==e&&"errors"in e}(e)&&"2046"===(null===(i=null===(n=((null===(t=null==e?void 0:e.errors)||void 0===t?void 0:t.filter(e=>e.provider_error))||[])[0])||void 0===n?void 0:n.provider_error)||void 0===i?void 0:i.code)}removeElement(e){const t=e&&document.getElementById(e);t&&t.remove()}toggleLoadingIndicator(e){e&&this.loadingIndicatorContainer?this.loadingIndicator.show(this.loadingIndicatorContainer):this.loadingIndicator.hide()}}const gl=Rt(e=>{const t=window,n=new ll,i=new Ri(e),r=new Ao(new tr(a(),t,i),t,n),o=new cl(e);return new yl(e,r,o,new sd({containerStyles:ul}))},[{id:"braintreepaypal"},{id:"braintreepaypalcredit"}]);class vl{constructor(e){this.requestSender=e}getOrderStatus(e="braintreelocalmethods",t){return n=this,i=void 0,o=function*(){const n=`/api/storefront/initialization/${e}`,i=Object.assign({"X-API-INTERNAL":Cr,"Content-Type":br.Json},Pr);return(yield this.requestSender.get(n,Object.assign({headers:i},t))).body},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}}var fl=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Sl{constructor(e,t,n,i,r=3e3,o=3e5){this.paymentIntegrationService=e,this.braintreeSdk=t,this.braintreeRequestSender=n,this.loadingIndicator=i,this.pollingInterval=r,this.maxPollingIntervalTime=o,this.isLPMsUpdateExperimentEnabled=!1,this.pollingTimer=0,this.stopPolling=V,this.isPollingEnabled=!1}initialize(e){return fl(this,void 0,void 0,function*(){const{gatewayId:t,methodId:n,braintreelocalmethods:i}=e;if(this.gatewayId=t,!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.gatewayId" argument is not provided.');if(!i)throw new ki('Unable to initialize payment because "options.braintreelocalmethods" argument is not provided.');this.braintreelocalmethods=i,this.loadingIndicatorContainer=i.container.split("#")[1],yield this.paymentIntegrationService.loadPaymentMethod(t);const r=this.paymentIntegrationService.getState(),o=r.getPaymentMethodOrThrow(t),{clientToken:a,config:s,initializationData:d}=o,c=r.getStoreConfigOrThrow().checkoutSettings.features;if(this.isPollingEnabled=Wt(c,"PAYPAL-5258.braintree_local_methods_polling"),this.isLPMsUpdateExperimentEnabled=Wt(c,"PAYPAL-4853.add_new_payment_flow_for_braintree_lpms"),!a||!d||!s.merchantId)throw new pi(ui.MissingPaymentMethod);try{this.braintreeSdk.initialize(a),this.isNonInstantPaymentMethod(n)||(this.braintreeLocalPayment=yield this.braintreeSdk.getBraintreeLocalPayment(s.merchantId))}catch(e){this.handleError(e)}})}finalize(){return Promise.reject(new Id)}deinitialize(){return fl(this,void 0,void 0,function*(){return this.toggleLoadingIndicator(!1),Promise.resolve()})}execute(e,t){return fl(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);const{methodId:r}=n;this.toggleLoadingIndicator(!0),this.isNonInstantPaymentMethod(r)?yield this.executeWithNotInstantLPM(r):yield this.executeWithInstantLPM(r,i,t)})}executeWithNotInstantLPM(e){return fl(this,void 0,void 0,function*(){try{const t=yield this.getLPMsBasicPaymentData();yield this.paymentIntegrationService.submitOrder(),yield this.paymentIntegrationService.submitPayment({methodId:e,paymentData:Object.assign(Object.assign({},t),{formattedPayload:{method:e}})})}catch(e){if(this.isBraintreeRedirectError(e)){const t=e.body.additional_action_required.data.redirect_url;return new Promise((e,n)=>{window.location.replace(t),this.toggleLoadingIndicator(!1),n()})}return this.handleError(e),Promise.reject(e)}})}executeWithInstantLPM(e,t,n){return fl(this,void 0,void 0,function*(){if(!this.braintreeLocalPayment)throw new co;yield new Promise((i,r)=>{var o;null===(o=this.braintreeLocalPayment)||void 0===o||o.startPayment(this.getInstantLPMConfig(e,t,n),this.getInstantLPMCallback(i,r,e,t,n))})})}getLPMsBasicPaymentData(){return fl(this,void 0,void 0,function*(){const{deviceData:e}=yield this.braintreeSdk.getDataCollectorOrThrow();return{deviceSessionId:e}})}getInstantLPMConfig(e,t,n){const i=this.paymentIntegrationService.getState(),r=i.getCartOrThrow(),o=i.getBillingAddressOrThrow(),{firstName:a,lastName:s,countryCode:d}=o,{currency:c,email:l,lineItems:u}=r,h=u.physicalItems.length>0,p=i.getCheckoutOrThrow().outstandingBalance,m=i.getStoreConfigOrThrow().links.checkoutLink;return{paymentType:e,amount:p,fallback:{url:m,buttonText:"Complete Payment"},currencyCode:c.code,shippingAddressRequired:h,email:l,givenName:a,surname:s,address:{countryCode:d},onPaymentStart:(i,r)=>fl(this,void 0,void 0,function*(){if(!this.isLPMsUpdateExperimentEnabled)return this.orderId=i.paymentId,void r();const o=yield this.getLPMsBasicPaymentData(),a=Object.assign(Object.assign({},o),{formattedPayload:{method:e,[`${e}_account`]:{order_id:i.paymentId}}});try{yield this.paymentIntegrationService.submitOrder(t,n),yield this.paymentIntegrationService.submitPayment({methodId:e,paymentData:a})}catch(t){if(this.isBraintreeOrderSavedResponse(t)&&t.body.additional_action_required.data.order_id_saved_successfully)return r(),this.isPollingEnabled?new Promise((t,n)=>{this.initializePollingMechanism(e,t,n,this.gatewayId)}):void 0;throw t}})}}getInstantLPMCallback(e,t,n,i,r){const o=this.paymentIntegrationService.getState().getCartOrThrow();return(a,s)=>fl(this,void 0,void 0,function*(){if(a)return"LOCAL_PAYMENT_WINDOW_CLOSED"===a.code?(this.toggleLoadingIndicator(!1),this.resetPollingMechanism(),t()):(this.isPollingEnabled&&this.resetPollingMechanism(),this.toggleLoadingIndicator(!1),t(new co));const d=yield this.getLPMsBasicPaymentData(),c=Object.assign(Object.assign({},d),{formattedPayload:{method:n,[`${n}_account`]:Object.assign({email:o.email,token:s.nonce},this.isLPMsUpdateExperimentEnabled?{}:{order_id:this.orderId})}});try{return this.isLPMsUpdateExperimentEnabled||(yield this.paymentIntegrationService.submitOrder(i,r)),yield this.paymentIntegrationService.submitPayment({methodId:n,paymentData:c}),e(void 0)}catch(e){return this.handleError(e),t(e)}})}toggleLoadingIndicator(e){e&&this.loadingIndicatorContainer?this.loadingIndicator.show(this.loadingIndicatorContainer):this.loadingIndicator.hide()}handleError(e){const{onError:t}=this.braintreelocalmethods||{};this.isPollingEnabled&&this.resetPollingMechanism(),this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}isNonInstantPaymentMethod(e){return e.toUpperCase()in Ui}isBraintreeRedirectError(e){var t;if("object"!=typeof e||null===e)return!1;const{body:n}=e;return!!n&&!!(null===(t=n.additional_action_required)||void 0===t?void 0:t.data.redirect_url)}isBraintreeOrderSavedResponse(e){var t;if("object"!=typeof e||null===e)return!1;const{body:n}=e;return!!n&&(null===(t=n.additional_action_required)||void 0===t?void 0:t.data.hasOwnProperty("order_id_saved_successfully"))}initializePollingMechanism(e,t,n,i){return fl(this,void 0,void 0,function*(){yield new Promise((e,t)=>{const n=setTimeout(e,this.pollingInterval);this.stopPolling=()=>(clearTimeout(n),this.toggleLoadingIndicator(!1),t())});try{this.pollingTimer+=this.pollingInterval;const r=yield this.braintreeRequestSender.getOrderStatus(i,{params:{useMetadata:!1}}),o=r.status===ji.Pending,a=r.status===ji.Completed,s=r.status===ji.Failed;if(a)return this.deinitializePollingMechanism(),t();if(s)return n();if(!a&&o&&this.pollingTimer<this.maxPollingIntervalTime)return yield this.initializePollingMechanism(e,t,n,i);yield this.reinitializeStrategy({methodId:e,gatewayId:i,braintreelocalmethods:this.braintreelocalmethods}),this.handleError(new lc)}catch(e){n()}})}deinitializePollingMechanism(){this.stopPolling(),this.pollingTimer=0}resetPollingMechanism(){this.deinitializePollingMechanism()}reinitializeStrategy(e){return fl(this,void 0,void 0,function*(){yield this.deinitialize(),yield this.initialize(e)})}}const wl=Rt(e=>{const t=window,i=new Ri(e),r=new Zi(new tr(a(),t,i)),o=n(),s=new vl(o);return new Sl(e,r,s,new sd({styles:{backgroundColor:"black"}}))},[{gateway:"braintreelocalmethods"}]);function _l(e){return!!e&&("authenticationState"in e||"addresses"in e||"instruments"in e)}var Cl=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Il{constructor(e,t,n){this.paymentIntegrationService=e,this.braintreeFastlaneUtils=t,this.braintreeSdk=n}initialize(e){var t;return Cl(this,void 0,void 0,function*(){const{methodId:n,braintreefastlane:i}=e;if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!i)throw new ki('Unable to initialize payment because "options.braintreefastlane" argument is not provided.');if(!i.onInit||"function"!=typeof i.onInit)throw new ki('Unable to initialize payment because "options.braintreefastlane.onInit" argument is not provided or it is not a function.');if(!i.onChange||"function"!=typeof i.onChange)throw new ki('Unable to initialize payment because "options.braintreefastlane.onChange" argument is not provided or it is not a function.');yield this.paymentIntegrationService.loadPaymentMethod(n);const r=this.paymentIntegrationService.getState(),o=r.getPaymentMethodOrThrow(n),{initializationData:a,clientToken:s}=o||{},{isFastlaneStylingEnabled:d}=a||{},c=Wt(r.getStoreConfigOrThrow().checkoutSettings.features,"PROJECT-7080.braintree_fastlane_three_ds");this.is3DSEnabled=o.config.is3dsEnabled,s&&c&&this.braintreeSdk.initialize(s);const l=Fo(d?null===(t=o.initializationData)||void 0===t?void 0:t.fastlaneStyles:void 0,i.styles);yield this.braintreeFastlaneUtils.initializeBraintreeFastlaneOrThrow(n,l),this.shouldRunAuthenticationFlow()&&(yield this.braintreeFastlaneUtils.runPayPalAuthenticationFlowOrThrow()),yield this.initializeCardComponent(),this.onError=i.onError,i.onInit(e=>this.renderBraintreeCardComponent(e)),i.onChange(()=>this.handleBraintreeStoredInstrumentChange(n))})}execute(e,t){return Cl(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);yield this.paymentIntegrationService.submitOrder(i,t);const r=yield this.preparePaymentPayload(n.methodId);yield this.paymentIntegrationService.submitPayment(r),this.braintreeFastlaneUtils.removeSessionIdFromCookies()})}finalize(){return Promise.reject(new Id)}deinitialize(){return Cl(this,void 0,void 0,function*(){return this.braintreeCardComponent=void 0,Promise.resolve()})}initializeCardComponent(){return Cl(this,void 0,void 0,function*(){const e=this.paymentIntegrationService.getState(),{phone:t,firstName:n,lastName:i}=e.getBillingAddressOrThrow(),r=`${n} ${i}`,o={styles:{},fields:Object.assign({cardholderName:{prefill:r,enabled:!0}},t&&{phoneNumber:{prefill:t}})},a=this.braintreeFastlaneUtils.getBraintreeFastlaneComponentOrThrow();this.braintreeCardComponent=yield a(o)})}renderBraintreeCardComponent(e){const t=this.getBraintreeCardComponentOrThrow();if(!e)throw new ki('Unable to initialize payment because "container" argument is not provided.');t.render(e)}preparePaymentPayload(e){var t,n;return Cl(this,void 0,void 0,function*(){const i=this.paymentIntegrationService.getState(),r=i.getBillingAddressOrThrow(),o=`${r.firstName} ${r.lastName}`,a=this.getPayPalInstruments()[0],s=yield this.braintreeFastlaneUtils.getDeviceSessionId(),d=Wt(i.getStoreConfigOrThrow().checkoutSettings.features,"PROJECT-7080.braintree_fastlane_three_ds");if(a){const t=this.is3DSEnabled&&d?yield this.get3DS(a.bigpayToken,(null==a?void 0:a.iin)||""):void 0;return{methodId:e,paymentData:{deviceSessionId:s,formattedPayload:{paypal_fastlane_token:{token:t||a.bigpayToken}}}}}const{getPaymentToken:c}=this.getBraintreeCardComponentOrThrow(),l=yield c({name:{fullName:o},billingAddress:this.mapToPayPalAddress(r)}),u=(null===(n=null===(t=l.paymentSource.card)||void 0===t?void 0:t.binDetails)||void 0===n?void 0:n.bin)||"",h=this.is3DSEnabled&&d?yield this.get3DS(l.id,u):void 0;return{methodId:e,paymentData:{deviceSessionId:s,nonce:h||l.id}}})}get3DS(e,t){return Cl(this,void 0,void 0,function*(){const n=this.paymentIntegrationService.getState(),i=yield this.braintreeSdk.getBraintreeThreeDS(),r=n.getOrderOrThrow();return new Promise((n,o)=>{i.verifyCard({amount:null==r?void 0:r.orderAmount,nonce:e,bin:t,onLookupComplete:(e,t)=>{i.on("customer-canceled",()=>{"function"==typeof this.onError&&this.onError(new nr),o(new nr)}),t()}},(e,t)=>(e&&"THREEDS_VERIFY_CARD_CANCELED_BY_MERCHANT"===e.code&&("function"==typeof this.onError&&this.onError(new nr),o(new nr)),n(t.nonce)))})})}mapToPayPalAddress(e){return{streetAddress:(null==e?void 0:e.address1)||"",locality:(null==e?void 0:e.city)||"",region:(null==e?void 0:e.stateOrProvinceCode)||(null==e?void 0:e.stateOrProvince)||"",postalCode:(null==e?void 0:e.postalCode)||"",countryCodeAlpha2:(null==e?void 0:e.countryCode)||""}}shouldRunAuthenticationFlow(){const e=this.paymentIntegrationService.getState(),t=e.getCartOrThrow(),n=e.getCustomerOrThrow(),i=e.getPaymentProviderCustomer(),r=_l(i)?i:{},o=this.braintreeFastlaneUtils.getSessionIdFromCookies();return!(!n.isGuest||(null==r?void 0:r.authenticationState)===qi.CANCELED||(null==r?void 0:r.authenticationState)||o!==t.id)}getBraintreeCardComponentOrThrow(){if(!this.braintreeCardComponent)throw new Oi;return this.braintreeCardComponent}getPayPalInstruments(){const e=this.paymentIntegrationService.getState().getPaymentProviderCustomerOrThrow();return(_l(e)?e:{}).instruments||[]}handleBraintreeStoredInstrumentChange(e){return Cl(this,void 0,void 0,function*(){const t=this.braintreeFastlaneUtils.getBraintreeFastlaneOrThrow(),{selectionChanged:n,selectedCard:i}=yield t.profile.showCardSelector();if(n){const t=this.paymentIntegrationService.getState().getPaymentProviderCustomer(),n=_l(t)?t:{},r=this.braintreeFastlaneUtils.mapPayPalToBcInstrument(e,[i]);if(r&&r.length>0)return yield this.paymentIntegrationService.updatePaymentProviderCustomer(Object.assign(Object.assign({},n),{instruments:[...r]})),r[0]}})}}const bl=Rt(e=>{const t=window,n=new Ri(e),i=new Ao(new tr(a(),t,n),t),r=new jo(e,i),o=new tr(a(),t,n),s=new Zi(o);return new Il(e,r,s)},[{id:"braintreeacceleratedcheckout"}]);var Pl=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Ol{constructor(e,t,n){this.paymentIntegrationService=e,this.formPoster=t,this.braintreeSdk=n}initialize(e){return Pl(this,void 0,void 0,function*(){const{braintreevisacheckout:t,methodId:n}=e;if(!t)throw new ki('Unable to initialize payment because "options.braintreevisacheckout" argument is not provided.');yield this.paymentIntegrationService.loadPaymentMethod(n);const i=this.paymentIntegrationService.getState();this.paymentMethod=i.getPaymentMethodOrThrow(n);const r=i.getCheckoutOrThrow(),o=i.getStoreConfigOrThrow(),{clientToken:a,config:s}=this.paymentMethod||{};if(!a)throw new pi(ui.MissingPaymentMethod);const{onError:d=V,onPaymentSelect:c=V}=t;this.braintreeSdk.initialize(a);const l=yield this.braintreeSdk.getBraintreeVisaCheckout(),u=yield this.braintreeSdk.getVisaCheckoutSdk(null==s?void 0:s.testMode),h=l.createInitOptions({settings:{locale:o.storeProfile.storeLanguage,shipping:{collectShipping:!1}},paymentRequest:{currencyCode:o.currency.code,subtotal:String(r.subtotal)}});yield u.init(h),u.on("payment.success",e=>this.tokenizePayment(l,e).then(()=>Promise.all([this.paymentIntegrationService.loadCheckout(),this.paymentIntegrationService.loadPaymentMethod(n)])).then(()=>c()).catch(e=>d(e))),u.on("payment.error",(e,t)=>d(t))})}execute(e,t){var n,i;return Pl(this,void 0,void 0,function*(){const{payment:r}=e,o=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!r)throw new ki('Unable to submit payment because "payload.payment" argument is not provided.');if(!(null===(i=null===(n=this.paymentMethod)||void 0===n?void 0:n.initializationData)||void 0===i?void 0:i.nonce))throw new pi(ui.MissingPaymentMethod);const{nonce:a}=this.paymentMethod.initializationData;try{yield this.paymentIntegrationService.submitOrder(o,t),yield this.paymentIntegrationService.submitPayment(Object.assign(Object.assign({},r),{paymentData:{nonce:a}}))}catch(e){this.handleError(e)}})}finalize(){return Promise.reject(new Id)}deinitialize(){return Pl(this,void 0,void 0,function*(){yield this.braintreeSdk.deinitialize()})}tokenizePayment(e,t){return Pl(this,void 0,void 0,function*(){return Promise.all([e.tokenize(t),this.braintreeSdk.getDataCollectorOrThrow()]).then(([e,t])=>{const n=this.paymentIntegrationService.getState(),i=n.getShippingAddress(),r=n.getBillingAddress(),{shippingAddress:o=this.mapToVisaCheckoutAddress(i),billingAddress:a=this.mapToVisaCheckoutAddress(r)}=e;return this.postForm(Object.assign(Object.assign({},e),{shippingAddress:o,billingAddress:a}),t)})})}mapToVisaCheckoutAddress(e){return e?{firstName:e.firstName,lastName:e.lastName,phoneNumber:e.phone,streetAddress:e.address1,extendedAddress:e.address2,locality:e.city,region:e.stateOrProvinceCode,countryCode:e.countryCode,postalCode:e.postalCode}:{}}postForm(e,t){const{userData:n,billingAddress:i,shippingAddress:r,details:o}=e,{userEmail:a}=n,{deviceData:s}=t;return this.formPoster.postForm("/checkout.php",{payment_type:e.type,nonce:e.nonce,provider:"braintreevisacheckout",action:"set_external_checkout",device_data:s,card_information:JSON.stringify({type:o.cardType,number:o.lastTwo}),billing_address:JSON.stringify(this.getAddress(a,i)),shipping_address:JSON.stringify(this.getAddress(a,r))})}getAddress(e,t={}){return{email:e,first_name:t.firstName,last_name:t.lastName,phone_number:t.phoneNumber,address_line_1:t.streetAddress,address_line_2:t.extendedAddress,city:t.locality,state:t.region,country_code:t.countryCode,postal_code:t.postalCode}}handleError(e){if(e instanceof Error&&"BraintreeError"===e.name)throw new so(e.message);throw e}}const El=Rt(e=>{const t=window,n=new Ri(e),i=new Zi(new tr(a(),t,n));return new Ol(e,Ee(),i)},[{id:"braintreevisacheckout"}]);var Al=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class kl{constructor(e,t){this.paymentIntegrationService=e,this.braintreeIntegrationService=t}initialize(e){return Al(this,void 0,void 0,function*(){const{methodId:t}=e;yield this.paymentIntegrationService.loadPaymentMethod(t);const n=this.paymentIntegrationService.getState();this.venmoOptions=e.braintreevenmo;const i=n.getPaymentMethodOrThrow(t);yield this.initializeBraintreeVenmo(i)})}execute(e){return Al(this,void 0,void 0,function*(){const{payment:t}=e,n=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!t)throw new fo(["payment"]);try{const e=yield this.preparePaymentData(t);yield this.paymentIntegrationService.submitOrder(n),yield this.paymentIntegrationService.submitPayment(e)}catch(e){this.handleError(e)}})}finalize(){return Promise.reject(new Id)}deinitialize(){return Al(this,void 0,void 0,function*(){return yield this.braintreeIntegrationService.teardown(),Promise.resolve()})}handleError(e){if(!$i(e))throw e;if("PAYPAL_POPUP_CLOSED"===e.code)throw new nr(e.message);throw new so(e.message)}initializeBraintreeVenmo(e){var t;return Al(this,void 0,void 0,function*(){const{clientToken:n}=e;if(!n)throw new pi(ui.MissingPaymentMethod);const i=Wt(this.paymentIntegrationService.getState().getStoreConfigOrThrow().checkoutSettings.features,"PAYPAL-5406.braintree_venmo_web_fallback_support");try{this.braintreeIntegrationService.initialize(n),this.braintreeVenmoCheckout=yield this.braintreeIntegrationService.getVenmoCheckout(Object.assign(Object.assign({},void 0!==(null===(t=this.venmoOptions)||void 0===t?void 0:t.allowDesktop)?{allowDesktop:this.venmoOptions.allowDesktop}:{}),i?{mobileWebFallBack:i}:{}))}catch(e){this.handleError(e)}})}preparePaymentData(e){return Al(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState(),{nonce:n}=t.getPaymentMethodOrThrow(e.methodId);if(n)return Object.assign(Object.assign({},e),{paymentData:this.formattedPayload(n)});const i=yield this.braintreeVenmoTokenize(),r=yield this.braintreeIntegrationService.getSessionId();return Object.assign(Object.assign({},e),{paymentData:this.formattedPayload(i.nonce,i.details.email,r)})})}formattedPayload(e,t,n){return{formattedPayload:{vault_payment_instrument:null,set_as_default_stored_instrument:null,device_info:n||null,paypal_account:{token:e,email:t||null}}}}braintreeVenmoTokenize(){return new Promise((e,t)=>{var n;null===(n=this.braintreeVenmoCheckout)||void 0===n||n.tokenize((n,i)=>{if(n)return t(n);e(i)})})}}const Tl=Rt(e=>{const t=window,n=a(),i=new Ri(e),r=new tr(n,t,i),o=new Ao(r,t);return new kl(e,o)},[{id:"braintreevenmo"}]);var Dl=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Ml{constructor(e,t,n){this.paymentIntegrationService=e,this.braintreeIntegrationService=t,this.braintreeHostedForm=n}initialize(e){return Dl(this,void 0,void 0,function*(){const{methodId:t,gatewayId:n,braintree:i}=e;yield this.paymentIntegrationService.loadPaymentMethod(t);const r=this.paymentIntegrationService.getState();this.paymentMethod=r.getPaymentMethodOrThrow(t);const{clientToken:o}=this.paymentMethod;if(!o)throw new pi(ui.MissingPaymentMethod);this.threeDSecure=null==i?void 0:i.threeDSecure;try{this.braintreeIntegrationService.initialize(o,this.threeDSecure),this.isHostedPaymentFormEnabled(t,n)&&(null==i?void 0:i.form)&&(yield this.braintreeHostedForm.initialize(i.form,i.unsupportedCardBrands,o),this.isHostedFormInitialized=this.braintreeHostedForm.isInitialized()),this.is3dsEnabled=this.paymentMethod.config.is3dsEnabled,this.deviceSessionId=yield this.braintreeIntegrationService.getSessionId(),this.shouldInitializeBraintreeFastlane()&&(yield this.initializeBraintreeFastlaneOrThrow(t))}catch(e){return this.handleError(e)}})}execute(e){return Dl(this,void 0,void 0,function*(){const{payment:t}=e,n=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!t)throw new fo(["payment"]);this.isHostedFormInitialized&&this.braintreeHostedForm.validate(),yield this.paymentIntegrationService.submitOrder(n);const i=this.paymentIntegrationService.getState(),r=i.getBillingAddressOrThrow(),o=i.getOrderOrThrow().orderAmount;try{const e=this.isHostedFormInitialized?yield this.prepareHostedPaymentData(t,r,o):yield this.preparePaymentData(t,r,o);yield this.paymentIntegrationService.submitPayment(Object.assign(Object.assign({},t),{paymentData:e}))}catch(e){return this.processAdditionalAction(e,t,o)}})}finalize(){return Promise.reject(new Id)}deinitialize(){return Dl(this,void 0,void 0,function*(){return this.isHostedFormInitialized=!1,yield Promise.all([this.braintreeIntegrationService.teardown(),this.braintreeHostedForm.deinitialize()]),Promise.resolve()})}handleError(e){if(hl(e))throw new so(e.message);throw e}preparePaymentData(e,t,n){return Dl(this,void 0,void 0,function*(){const{paymentData:i}=e,r={deviceSessionId:this.deviceSessionId};if(this.isSubmittingWithStoredCard(e))return Object.assign(Object.assign({},r),i);const{shouldSaveInstrument:o=!1,shouldSetAsDefaultInstrument:a=!1}=Ad(i)?i:{},{nonce:s}=this.shouldPerform3DSVerification(e)?yield this.braintreeIntegrationService.verifyCard(e,t,n):yield this.braintreeIntegrationService.tokenizeCard(e,t);return Object.assign(Object.assign({},r),{nonce:s,shouldSaveInstrument:o,shouldSetAsDefaultInstrument:a})})}prepareHostedPaymentData(e,t,n){return Dl(this,void 0,void 0,function*(){const{paymentData:i}=e,r={deviceSessionId:this.deviceSessionId};if(this.isSubmittingWithStoredCard(e)){const{nonce:e}=yield this.braintreeHostedForm.tokenizeForStoredCardVerification();return Object.assign(Object.assign(Object.assign({},r),i),{nonce:e})}const{shouldSaveInstrument:o=!1,shouldSetAsDefaultInstrument:a=!1}=Ad(i)?i:{},{nonce:s}=this.shouldPerform3DSVerification(e)?yield this.verifyCardWithHostedForm(t,n):yield this.braintreeHostedForm.tokenize(t);return Object.assign(Object.assign({},r),{shouldSaveInstrument:o,shouldSetAsDefaultInstrument:a,nonce:s})})}verifyCardWithHostedForm(e,t){return Dl(this,void 0,void 0,function*(){const n=yield this.braintreeHostedForm.tokenize(e);return this.braintreeIntegrationService.challenge3DSVerification(n,t)})}processAdditionalAction(e,t,n){return Dl(this,void 0,void 0,function*(){if(!wa(e)||!Z(e.body.errors,{code:"three_d_secure_required"}))return this.handleError(e);try{const{payer_auth_request:i}=function(e){return"object"==typeof e&&null!==e&&"name"in e&&"body"in e&&"status"in e.body&&"three_ds_result"in e.body&&"payer_auth_request"in e.body.three_ds_result&&"errors"in e.body}(e)&&e.body.three_ds_result||{},{paymentData:r}=t,o=this.paymentIntegrationService.getState();if(!r||!Cd(r))throw new fo(["instrumentId"]);const a=o.getCardInstrumentOrThrow(r.instrumentId),{nonce:s}=yield this.braintreeIntegrationService.challenge3DSVerification({nonce:i||"",bin:a.iin},n);yield this.paymentIntegrationService.submitPayment(Object.assign(Object.assign({},t),{paymentData:{deviceSessionId:this.deviceSessionId,nonce:s}}))}catch(e){return this.handleError(e)}})}isHostedPaymentFormEnabled(e,t){return!!e&&!0===this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e,t).config.isHostedFormEnabled}isSubmittingWithStoredCard(e){return!(!e.paymentData||!Cd(e.paymentData))}shouldPerform3DSVerification(e){return!(!this.is3dsEnabled||this.isSubmittingWithStoredCard(e))}shouldInitializeBraintreeFastlane(){var e;const t=this.paymentIntegrationService.getState().getPaymentProviderCustomerOrThrow(),n=_l(t)?t:{};return(null===(e=this.paymentMethod)||void 0===e?void 0:e.initializationData.isAcceleratedCheckoutEnabled)&&!(null==n?void 0:n.authenticationState)}initializeBraintreeFastlaneOrThrow(e){return Dl(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState(),n=t.getCartOrThrow(),i=t.getPaymentMethodOrThrow(e),{clientToken:r,config:o}=i;if(!r)throw new pi(ui.MissingPaymentMethod);this.braintreeIntegrationService.initialize(r,this.threeDSecure),yield this.braintreeIntegrationService.getBraintreeFastlane(n.id,o.testMode)})}}function zl(e){return"cardNumber"in e}function Nl(e){if(!$i(e))return!1;const{details:t}=e;return void 0===t||"object"==typeof t&&null!==t&&void 0===t.invalidFieldKeys||(n=t,Array.isArray(n)&&n.every(e=>"string"==typeof e));var n}var xl,Fl=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};!function(e){e[e.CreditCard=0]="CreditCard",e[e.StoredCardVerification=1]="StoredCardVerification"}(xl||(xl={}));class Rl{constructor(e,t){this.braintreeScriptLoader=e,this.braintreeSDKVersionManager=t,this.isInitializedHostedForm=!1,this.handleBlur=e=>{var t,n;null===(n=null===(t=this.formOptions)||void 0===t?void 0:t.onBlur)||void 0===n||n.call(t,{fieldType:this.mapFieldType(e.emittedBy),errors:this.mapErrors(e.fields)})},this.handleFocus=e=>{var t,n;null===(n=null===(t=this.formOptions)||void 0===t?void 0:t.onFocus)||void 0===n||n.call(t,{fieldType:this.mapFieldType(e.emittedBy)})},this.handleCardTypeChange=e=>{var t,n;const i=1===e.cards.length?e.cards[0].type.replace(/^master-card$/,"mastercard"):void 0;null===(n=null===(t=this.formOptions)||void 0===t?void 0:t.onCardTypeChange)||void 0===n||n.call(t,{cardType:i})},this.handleInputSubmitRequest=e=>{var t,n;null===(n=null===(t=this.formOptions)||void 0===t?void 0:t.onEnter)||void 0===n||n.call(t,{fieldType:this.mapFieldType(e.emittedBy)})},this.handleValidityChange=e=>{var t,n;null===(n=null===(t=this.formOptions)||void 0===t?void 0:t.onValidate)||void 0===n||n.call(t,{isValid:this.isValidForm(e),errors:this.mapValidationErrors(e.fields)})}}initialize(e,t,n){var i,r,o,a,s;return Fl(this,void 0,void 0,function*(){this.clientToken=n,this.formOptions=e,this.type=zl(e.fields)?xl.CreditCard:xl.StoredCardVerification;const d=this.mapFieldOptions(e.fields,t);E(d)?this.isInitializedHostedForm=!1:(this.cardFields=yield this.createHostedFields({fields:d,styles:e.styles&&this.mapStyleOptions(e.styles)}),null===(i=this.cardFields)||void 0===i||i.on("blur",this.handleBlur),null===(r=this.cardFields)||void 0===r||r.on("focus",this.handleFocus),null===(o=this.cardFields)||void 0===o||o.on("cardTypeChange",this.handleCardTypeChange),null===(a=this.cardFields)||void 0===a||a.on("validityChange",this.handleValidityChange),null===(s=this.cardFields)||void 0===s||s.on("inputSubmitRequest",this.handleInputSubmitRequest),this.isInitializedHostedForm=!0)})}isInitialized(){return!!this.isInitializedHostedForm}deinitialize(){var e;return Fl(this,void 0,void 0,function*(){this.isInitializedHostedForm&&(this.isInitializedHostedForm=!1,yield null===(e=this.cardFields)||void 0===e?void 0:e.teardown())})}validate(){if(!this.cardFields)throw new gi(hi.PaymentNotInitialized);const e=this.cardFields.getState();if(!this.isValidForm(e)){this.handleValidityChange(e);const t=this.mapValidationErrors(e.fields);throw new So(t)}}tokenize(e){var t,n,i,r,o;return Fl(this,void 0,void 0,function*(){if(!this.cardFields)throw new gi(hi.PaymentNotInitialized);try{const r=yield this.cardFields.tokenize(H({billingAddress:e&&this.mapBillingAddress(e)},T));return null===(n=null===(t=this.formOptions)||void 0===t?void 0:t.onValidate)||void 0===n||n.call(t,{isValid:!0,errors:{}}),{nonce:r.nonce,bin:null===(i=r.details)||void 0===i?void 0:i.bin}}catch(e){if(Nl(e)){const t=this.mapTokenizeError(e);if(t)throw null===(o=null===(r=this.formOptions)||void 0===r?void 0:r.onValidate)||void 0===o||o.call(r,{isValid:!1,errors:t}),new So(t)}throw e}})}tokenizeForStoredCardVerification(){var e,t,n,i,r;return Fl(this,void 0,void 0,function*(){if(!this.cardFields)throw new gi(hi.PaymentNotInitialized);try{const i=yield this.cardFields.tokenize();return null===(t=null===(e=this.formOptions)||void 0===e?void 0:e.onValidate)||void 0===t||t.call(e,{isValid:!0,errors:{}}),{nonce:i.nonce,bin:null===(n=i.details)||void 0===n?void 0:n.bin}}catch(e){if(Nl(e)){const t=this.mapTokenizeError(e,!0);if(t)throw null===(r=null===(i=this.formOptions)||void 0===i?void 0:i.onValidate)||void 0===r||r.call(i,{isValid:!1,errors:t}),new So(t)}throw e}})}createHostedFields(e){return Fl(this,void 0,void 0,function*(){const t=yield this.getClient(),n=yield this.braintreeScriptLoader.loadHostedFields(),i=this.braintreeSDKVersionManager.getSDKVersion()===Ni?Object.assign(Object.assign({},e),{preventCursorJumps:!0}):e;return n.create(Object.assign(Object.assign({},i),{client:t}))})}getClient(){return Fl(this,void 0,void 0,function*(){if(!this.clientToken)throw new gi(hi.PaymentNotInitialized);if(!this.client){const e=yield this.braintreeScriptLoader.loadClient();this.client=e.create({authorization:this.clientToken})}return this.client})}mapBillingAddress(e){return{countryName:e.country,postalCode:e.postalCode,streetAddress:e.address2?`${e.address1} ${e.address2}`:e.address1}}mapFieldOptions(e,t){if(zl(e)){const n={};return null==t||t.forEach(e=>{(e=>Object.values(Hi).includes(e))(e)&&(n[e]=!1)}),H({number:Object.assign({container:`#${e.cardNumber.containerId}`,placeholder:e.cardNumber.placeholder,internalLabel:e.cardNumber.accessibilityLabel},Object.keys(n).length>0?{supportedCardBrands:n}:{}),expirationDate:{container:`#${e.cardExpiry.containerId}`,placeholder:e.cardExpiry.placeholder,internalLabel:e.cardExpiry.accessibilityLabel},cvv:e.cardCode&&{container:`#${e.cardCode.containerId}`,placeholder:e.cardCode.placeholder,internalLabel:e.cardCode.accessibilityLabel},cardholderName:{container:`#${e.cardName.containerId}`,placeholder:e.cardName.placeholder,internalLabel:e.cardName.accessibilityLabel}},T)}return H({number:e.cardNumberVerification&&{container:`#${e.cardNumberVerification.containerId}`,placeholder:e.cardNumberVerification.placeholder},cvv:e.cardCodeVerification&&{container:`#${e.cardCodeVerification.containerId}`,placeholder:e.cardCodeVerification.placeholder}},T)}mapStyleOptions(e){const t=(e={})=>H({color:e.color,"font-family":e.fontFamily,"font-size":e.fontSize,"font-weight":e.fontWeight},T);return{input:t(e.default),".invalid":t(e.error),":focus":t(e.focus)}}mapFieldType(e){switch(e){case"number":return this.type===xl.StoredCardVerification?Ki.CardNumberVerification:Ki.CardNumber;case"expirationDate":return Ki.CardExpiry;case"cvv":return this.type===xl.StoredCardVerification?Ki.CardCodeVerification:Ki.CardCode;case"cardholderName":return Ki.CardName;default:throw new Error("Unexpected field type")}}mapErrors(e){const t={};if(e)for(const[n,i]of Object.entries(e))if(i&&this.isValidParam(n)){const{isValid:e,isEmpty:r,isPotentiallyValid:o}=i;t[n]={isValid:e,isEmpty:r,isPotentiallyValid:o}}return t}mapValidationErrors(e){return Object.keys(e).reduce((t,n)=>{var i;return Object.assign(Object.assign({},t),{[this.mapFieldType(n)]:(null===(i=e[n])||void 0===i?void 0:i.isValid)?void 0:[this.createInvalidError(this.mapFieldType(n))]})},{})}mapTokenizeError(e,t=!1){var n,i;if("HOSTED_FIELDS_FIELDS_EMPTY"===e.code){const e=[this.createRequiredError(this.mapFieldType("cvv"))];return t?{[this.mapFieldType("cvv")]:e}:{[this.mapFieldType("cvv")]:e,[this.mapFieldType("expirationDate")]:[this.createRequiredError(this.mapFieldType("expirationDate"))],[this.mapFieldType("number")]:[this.createRequiredError(this.mapFieldType("number"))],[this.mapFieldType("cardholderName")]:[this.createRequiredError(this.mapFieldType("cardholderName"))]}}return null===(i=null===(n=e.details)||void 0===n?void 0:n.invalidFieldKeys)||void 0===i?void 0:i.reduce((e,t)=>{const n=this.mapFieldType(t);return Object.assign(Object.assign({},e),{[n]:[this.createInvalidError(n)]})},{})}createRequiredError(e){var t;return{fieldType:e,message:null!==(t={[Ki.CardCode]:"CVV is required",[Ki.CardCodeVerification]:"CVV is required",[Ki.CardNumber]:"Credit card number is required",[Ki.CardNumberVerification]:"Credit card number is required",[Ki.CardExpiry]:"Expiration date is required",[Ki.CardName]:"Full name is required"}[e])&&void 0!==t?t:"Field is required",type:"required"}}createInvalidError(e){var t,n,i,r;const o={[Ki.CardCode]:{message:"Invalid card code",type:"invalid_card_code"},[Ki.CardCodeVerification]:{message:"Invalid card code",type:"invalid_card_code"},[Ki.CardNumber]:{message:"Invalid card number",type:"invalid_card_number"},[Ki.CardNumberVerification]:{message:"Invalid card number",type:"invalid_card_number"},[Ki.CardExpiry]:{message:"Invalid card expiry",type:"invalid_card_expiry"},[Ki.CardName]:{message:"Invalid card name",type:"invalid_card_name"}};return{fieldType:e,message:null!==(n=null===(t=o[e])||void 0===t?void 0:t.message)&&void 0!==n?n:"Invalid field",type:null!==(r=null===(i=o[e])||void 0===i?void 0:i.type)&&void 0!==r?r:"invalid"}}isValidForm(e){return Object.keys(e.fields).every(t=>{var n;return null===(n=e.fields[t])||void 0===n?void 0:n.isValid})}isValidParam(e){return["number","cvv","expirationDate","postalCode","cardholderName","cardType"].includes(e)}}const Ll=Rt(e=>{const t=window,n=new Ri(e),i=new tr(a(),t,n),r=new Ao(i,t),o=new Rl(i,n);return new Ml(e,r,o)},[{id:"braintree"}]);var Bl=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})},jl=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n};class Ul{constructor(e){this._paymentIntegrationService=e}execute(e,t){var n,i;return this._isHostedPaymentFormEnabled(null===(n=e.payment)||void 0===n?void 0:n.methodId,null===(i=e.payment)||void 0===i?void 0:i.gatewayId)&&this._shouldRenderHostedForm?this._executeWithHostedForm(e,t):this._executeWithoutHostedForm(e,t)}initialize(e){if(!this._isHostedPaymentFormEnabled(null==e?void 0:e.methodId,null==e?void 0:e.gatewayId)||!this._isHostedFieldAvailable(e))return this._shouldRenderHostedForm=!1,Promise.resolve();const t=e&&e.creditCard&&e.creditCard.form,n=this._paymentIntegrationService.getState(),{paymentSettings:{bigpayBaseUrl:i=""}={}}=n.getStoreConfigOrThrow();if(!t)throw new ki;const r=this._paymentIntegrationService.createHostedForm(i,t);return r.attach().then(()=>(this._shouldRenderHostedForm=!0,this._hostedForm=r,Promise.resolve()))}deinitialize(){return this._hostedForm&&this._hostedForm.detach(),Promise.resolve()}finalize(){return Promise.reject(new Id)}_executeWithoutHostedForm(e,t){return Bl(this,void 0,void 0,function*(){const{payment:n}=e,i=jl(e,["payment"]),r=n&&n.paymentData;if(!n||!r)throw new fo(["payment.paymentData"]);yield this._paymentIntegrationService.submitOrder(i,t),yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},n),{paymentData:r}))})}_executeWithHostedForm(e,t){return Bl(this,void 0,void 0,function*(){const{payment:n}=e,i=jl(e,["payment"]),r=this._hostedForm;if(!r)throw new gi(hi.PaymentNotInitialized);if(!n||!n.methodId)throw new fo(["payment.methodId"]);yield this._paymentIntegrationService.submitOrder(i,t),yield r.validate().then(()=>r.submit(n))})}_isHostedPaymentFormEnabled(e,t){return!!e&&!0===this._paymentIntegrationService.getState().getPaymentMethodOrThrow(e,t).config.isHostedFormEnabled}_isHostedFieldAvailable(e){return!ie(e&&e.creditCard&&e.creditCard.form.fields).every(T)}}var ql=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Vl extends Ul{constructor(e,t){super(e),this.paymentIntegrationService=e,this.cbaMGPSScriptLoader=t,this.sessionId=""}initialize(e){const t=Object.create(null,{initialize:{get:()=>super.initialize}});return ql(this,void 0,void 0,function*(){yield t.initialize.call(this,e);const{methodId:n}=e;yield this.paymentIntegrationService.loadPaymentMethod(n);const i=this.paymentIntegrationService.getState(),r=i.getPaymentMethodOrThrow(n);if(!function(e){return"object"==typeof e&&null!==e&&"initializationData"in e&&"object"==typeof e.initializationData&&null!==e.initializationData&&"merchantId"in e.initializationData&&"string"==typeof e.initializationData.merchantId&&("boolean"==typeof e.initializationData.isTestModeFlagEnabled||void 0===e.initializationData.isTestModeFlagEnabled)}(r))throw new pi(ui.MissingPaymentMethod);const{clientToken:o,initializationData:{isTestModeFlagEnabled:a=!1,merchantId:s},config:{is3dsEnabled:d}}=r;if(d){if(this.threeDSjs=yield this.cbaMGPSScriptLoader.load(a),!this.threeDSjs)throw new gi(hi.PaymentNotInitialized);if(!o||!s)throw new pi(ui.MissingPaymentMethod);if(this.sessionId=o,this.locale=i.getLocale(),!this.locale)throw new pi(ui.MissingCart);yield this.threeDSjs.configure({merchantId:s,sessionId:this.sessionId,callback:()=>{var e;if(null===(e=this.threeDSjs)||void 0===e?void 0:e.isConfigured())return this.paymentIntegrationService.getState();throw new so("Failed to configure 3DS API.")},configuration:{userLanguage:this.locale,wsVersion:62}})}return Promise.resolve()})}execute(e,t){const n=Object.create(null,{execute:{get:()=>super.execute}});return ql(this,void 0,void 0,function*(){const{payment:i}=e,r=i&&i.paymentData;if(!i||!r)throw new fo(["payment.paymentData"]);const o=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(i.methodId),{is3dsEnabled:a}=o.config;if(a){const t=Object.assign(Object.assign({},r),{threeDSecure:{token:this.sessionId}});e.payment&&(e.payment.paymentData=t)}return n.execute.call(this,e,t).catch(e=>{if(!a||!wa(e)||!Z(e.body.errors,{code:"three_d_secure_required"}))return Promise.reject(e);const t=this.paymentIntegrationService.getState(),n=t.getOrder(),{storeProfile:{storeId:i}}=t.getStoreConfigOrThrow();if(!n||!this.sessionId)throw new pi(ui.MissingCheckout);const r=`${i}_${n.orderId}`;if("object"!=typeof(o=e.body)||null===o||!("three_ds_result"in o)||"object"!=typeof o.three_ds_result||null===o.three_ds_result||!("token"in o.three_ds_result)||"string"!=typeof o.three_ds_result.token)throw new hr;var o;const{three_ds_result:{token:s}}=e.body;return s?this.initiateAuthentication(r,s):Promise.reject(e)})})}finalize(e){return ql(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState();return t.getOrder()&&t.getPaymentStatus()===Yc.FINALIZE?(yield this.paymentIntegrationService.finalizeOrder(e),Promise.resolve()):Promise.reject(new Id)})}deinitialize(){return this.threeDSjs=void 0,this.sessionId="",super.deinitialize()}initiateAuthentication(e,t){return ql(this,void 0,void 0,function*(){const n=yield new Promise((n,i)=>{if(!this.threeDSjs)throw new gi(hi.PaymentNotInitialized);this.threeDSjs.initiateAuthentication(e,t,e=>{const t=e.error;return t?i(new so(t.msg)):this.threeDSjs&&"PROCEED"===e.gatewayRecommendation?n(e.restApiResponse):i(new so)})});if(n.transaction&&"AUTHENTICATION_AVAILABLE"===n.transaction.authenticationStatus)return this.authenticatePayer(e,t);throw new so})}authenticatePayer(e,t,n=1){return ql(this,void 0,void 0,function*(){return new Promise((i,r)=>{if(!this.threeDSjs)return r(new gi(hi.PaymentNotInitialized));this.threeDSjs.authenticatePayer(e,t,i=>ql(this,void 0,void 0,function*(){const o=i.error;return o?o.cause&&"SERVER_BUSY"===o.cause&&n<5?(yield new Promise(e=>setTimeout(e,3e3)),this.authenticatePayer(e,t,++n)):r(new so):new Promise(V)}),{fullScreenRedirect:!0})})})}}class Gl{constructor(e,t=window){this._scriptLoader=e,this._window=t}load(e){return t=this,n=void 0,r=function*(){if(yield this._scriptLoader.loadScript(`//${e?"test":"ap"}-gateway.mastercard.com/static/threeDS/1.3.0/three-ds.min.js`),!this._window.ThreeDS)throw new Oi;return this._window.ThreeDS},new((i=void 0)||(i=Promise))(function(e,o){function a(e){try{d(r.next(e))}catch(e){o(e)}}function s(e){try{d(r.throw(e))}catch(e){o(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((r=r.apply(t,n||[])).next())});var t,n,i,r}}const Hl=Rt(e=>new Vl(e,new Gl(a())),[{id:"cba_mpgs"}]);var $l;!function(e){e.OffsiteRedirect="offsite_redirect"}($l||($l={}));class Wl extends Ul{constructor(e){super(e),this.paymentIntegrationService=e}finalize(e){const t=this.paymentIntegrationService.getState();return t.getOrder()&&t.getPaymentStatus()===Yc.FINALIZE&&this.paymentIntegrationService.finalizeOrder(e),Promise.reject(new Id)}_executeWithHostedForm(e,t){return n=this,i=void 0,o=function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),r=this._hostedForm;if(!r)throw new gi(hi.PaymentNotInitialized);if(!n||!n.methodId)throw new fo(["payment.methodId"]);try{yield r.validate(),yield this.paymentIntegrationService.submitOrder(i,t),yield r.submit(n)}catch(e){return this._processResponse(e)}this.paymentIntegrationService.loadCurrentOrder()},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}_processResponse(e){if(!wa(e))return Promise.reject(e);const t=e.body.additional_action_required;return t&&t.type===$l.OffsiteRedirect?this._performRedirect(t):Promise.reject(e)}_performRedirect(e){return new Promise(()=>{window.location.replace(e.data.redirect_url)})}}class Yl extends Wl{_executeWithoutHostedForm(e,t){return n=this,i=void 0,o=function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),r=n&&n.paymentData;if(!n||!r)throw new fo(["payment.paymentData"]);yield this._paymentIntegrationService.submitOrder(i,t);try{yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},n),{paymentData:Object.assign(Object.assign({},r),{formattedPayload:this._createFormattedPayload(n.methodId,r)})}))}catch(e){return this._processResponse(e)}},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}_createFormattedPayload(e,t){if("fawry"===e&&"customerMobile"in t&&"customerEmail"in t){const e=t;return{customerMobile:e.customerMobile,customerEmail:e.customerEmail}}}}const Kl=Rt(e=>new Yl(e),[{gateway:"checkoutcom",id:"fawry"}]);function Jl(e){return wa(e)&&Z(e.body.errors,{code:"three_d_secure_required"})}var Zl=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})},Ql=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n};class Xl extends Ul{constructor(e,t){super(e),this.paymentIntegrationService=e,this.formPoster=t}finalize(e){const t=this.paymentIntegrationService.getState();return t.getOrder()&&t.getPaymentStatus()===Yc.FINALIZE&&this.paymentIntegrationService.finalizeOrder(e),Promise.reject(new Id)}_executeWithoutHostedForm(e,t){return Zl(this,void 0,void 0,function*(){const{payment:n}=e,i=Ql(e,["payment"]),r=n&&n.paymentData;if(!n||!r)throw new fo(["payment.paymentData"]);yield this.paymentIntegrationService.submitOrder(i,t);try{yield this.paymentIntegrationService.submitPayment(Object.assign(Object.assign({},n),{paymentData:r}))}catch(e){return Jl(e)?this._handleThreeDSecure(e):Promise.reject(e)}})}_executeWithHostedForm(e,t){return Zl(this,void 0,void 0,function*(){const{payment:n}=e,i=Ql(e,["payment"]),r=this._hostedForm;if(!r)throw new gi(hi.PaymentNotInitialized);if(!n||!n.methodId)throw new fo(["payment.methodId"]);try{yield r.validate(),yield this.paymentIntegrationService.submitOrder(i,t),yield r.submit(n)}catch(e){return Jl(e)?this._handleThreeDSecure(e):Promise.reject(e)}this.paymentIntegrationService.loadCurrentOrder()})}_handleThreeDSecure(e){const{acs_url:t,payer_auth_request:n,callback_url:i,merchant_data:r}=e.body.three_ds_result;return new Promise(()=>this.formPoster.postForm(t,{PaReq:n||null,TermUrl:i||null,MD:r||null}))}}const eu=Rt(e=>new Xl(e,Ee()),[{gateway:"checkoutcom",id:"credit_card"},{gateway:"checkoutcom",id:"card"}]);class tu extends Wl{_executeWithoutHostedForm(e,t){return n=this,i=void 0,o=function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),r=null==n?void 0:n.paymentData;if(!n||!r)throw new fo(["payment.paymentData"]);yield this._paymentIntegrationService.submitOrder(i,t);try{yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},n),{paymentData:Object.assign(Object.assign({},r),{formattedPayload:this._createFormattedPayload(n.methodId,r)})}))}catch(e){return this._processResponse(e)}},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}_createFormattedPayload(e,t){const n={iban:"",bic:""},{iban:i,bic:r}="iban"in t&&"bic"in t?t:n;return"sepa"===e&&document&&(n.iban=i,n.bic=r),n}}const nu=Rt(e=>new tu(e),[{gateway:"checkoutcom",id:"sepa"}]);class iu extends Wl{_executeWithoutHostedForm(e,t){return n=this,i=void 0,o=function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),r=null==n?void 0:n.paymentData;if(!n||!r)throw new fo(["payment.paymentData"]);yield this._paymentIntegrationService.submitOrder(i,t);try{yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},n),{paymentData:Object.assign(Object.assign({},r),{formattedPayload:this._createFormattedPayload(n.methodId,r)})}))}catch(e){return this._processResponse(e)}},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}_createFormattedPayload(e,t){if("ideal"===e&&"bic"in t)return{bic:t.bic}}}const ru=Rt(e=>new iu(e),[{gateway:"checkoutcom",id:"ideal"}]);const ou=["boleto","oxxo","qpay","ideal"];class au extends Wl{_executeWithoutHostedForm(e,t){return n=this,i=void 0,o=function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),r=null==n?void 0:n.paymentData;if(!n||!r)throw new fo(["payment.paymentData"]);yield this._paymentIntegrationService.submitOrder(i,t);try{yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},n),{paymentData:Object.assign(Object.assign({},r),{formattedPayload:this._createFormattedPayload(n.methodId,r)})}))}catch(e){return this._processResponse(e)}},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}_createFormattedPayload(e,t){const n={ccDocument:""},i="ccDocument"in t?t.ccDocument:"";return-1!==ou.indexOf(e)&&i&&(n.ccDocument=i),n}}const su=Rt(e=>new au(e),[{gateway:"checkoutcom"}]);var du=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class cu{constructor(e,t){this._paymentIntegrationService=e,this._clearpayScriptLoader=t}initialize(e){return du(this,void 0,void 0,function*(){const{getPaymentMethodOrThrow:t}=this._paymentIntegrationService.getState(),n=t(e.methodId,e.gatewayId);this._clearpaySdk=yield this._clearpayScriptLoader.load(n)})}deinitialize(){return this._clearpaySdk=void 0,Promise.resolve()}execute(e,t){return du(this,void 0,void 0,function*(){const{gatewayId:n,methodId:i}=e.payment||{};if(!n||!i)throw new fo(["payment.gatewayId","payment.methodId"]);const r=this._paymentIntegrationService.getState(),{isStoreCreditApplied:o}=r.getCheckoutOrThrow();yield this._paymentIntegrationService.applyStoreCredit(o),yield this._paymentIntegrationService.validateCheckout(r.getCheckout(),t);const{countryCode:a}=r.getBillingAddressOrThrow();if(!this._isCountrySupported(a))throw new ki("Unable to proceed because billing country is not supported.");return yield this._loadPaymentMethod(n,i,t),yield this._redirectToClearpay(a,this._paymentIntegrationService.getState().getPaymentMethod(i,n)),new Promise(V)})}finalize(e){var t,n,i;return du(this,void 0,void 0,function*(){const r=this._paymentIntegrationService.getState(),o=r.getPaymentId(),a=r.getContextConfig();if(!o)throw new pi(ui.MissingCheckout);if(!a||!a.payment.token)throw new pi(ui.MissingCheckoutConfig);const s={methodId:o.providerId,paymentData:{nonce:a.payment.token}};yield this._paymentIntegrationService.submitOrder({},e);try{yield this._paymentIntegrationService.submitPayment(s)}catch(e){if(yield this._paymentIntegrationService.forgetCheckout(o.providerId),yield this._paymentIntegrationService.loadPaymentMethods(),wa(e))throw new Rd(null===(i=null===(n=null===(t=e.body)||void 0===t?void 0:t.errors)||void 0===n?void 0:n[0])||void 0===i?void 0:i.message)}})}_redirectToClearpay(e,t){return du(this,void 0,void 0,function*(){if(!this._clearpaySdk||!t||!t.clientToken)throw new gi(hi.PaymentNotInitialized);return this._clearpaySdk.initialize({countryCode:e}),this._clearpaySdk.redirect({token:t.clientToken}),Promise.resolve()})}_isCountrySupported(e){return"GB"===e}_loadPaymentMethod(e,t,n){var i;return du(this,void 0,void 0,function*(){try{return yield this._paymentIntegrationService.loadPaymentMethod(e,Object.assign(Object.assign({},n),{params:Object.assign(Object.assign({},null==n?void 0:n.params),{method:t})}))}catch(e){if(e instanceof hr&&422===(null===(i=e.body)||void 0===i?void 0:i.status))throw new ki("Clearpay can't process your payment for this order, please try another payment method");throw e}})}}class lu{constructor(e,t=window){this._scriptLoader=e,this._window=t}load(e){return t=this,n=void 0,r=function*(){if(yield this._scriptLoader.loadScript(this._getScriptUrl(e.config.testMode)),!this._window.AfterPay)throw new Oi;return this._window.AfterPay},new((i=void 0)||(i=Promise))(function(e,o){function a(e){try{d(r.next(e))}catch(e){o(e)}}function s(e){try{d(r.throw(e))}catch(e){o(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((r=r.apply(t,n||[])).next())});var t,n,i,r}_getScriptUrl(e){return e?"//portal.sandbox.clearpay.co.uk/afterpay-async.js":"//portal.clearpay.co.uk/afterpay-async.js"}}const uu=Rt(e=>new cu(e,new lu(a())),[{gateway:"clearpay"},{id:"clearpay"}]),hu=Rt(e=>new Ul(e),[{default:!0}]);var pu=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class mu{constructor(e,t){this._paymentIntegrationService=e,this._cardinalClient=t}prepare(e){return pu(this,void 0,void 0,function*(){yield this._cardinalClient.load(e.id,e.config.testMode),yield this._cardinalClient.configure(yield this._getClientToken(e))})}start(e,t,n,i){return pu(this,void 0,void 0,function*(){const{getCardInstrument:r,getPaymentMethodOrThrow:o}=this._paymentIntegrationService.getState(),{payment:{methodId:a="",paymentData:s={}}={}}=t,d=Cd(s)&&r(s.instrumentId),c=d?d.iin:i&&i.getBin();c&&(yield this._cardinalClient.runBinProcess(c));try{return yield e(q(t,{payment:{paymentData:{threeDSecure:{token:o(a).clientToken}}}}),n)}catch(e){if(!wa(e)||!Z(e.body.errors,{code:"three_d_secure_required"}))throw e;const n=yield this._cardinalClient.getThreeDSecureData(e.body.three_ds_result,this._getOrderData());if(!i)return void(yield this._paymentIntegrationService.submitPayment(q(t.payment,{paymentData:{threeDSecure:n}})));yield i.submit(q(t.payment,{paymentData:{threeDSecure:n}}))}})}_getClientToken(e){return pu(this,void 0,void 0,function*(){return e.clientToken?e.clientToken:(yield this._paymentIntegrationService.loadPaymentMethod(e.id),this._paymentIntegrationService.getState().getPaymentMethodOrThrow(e.id).clientToken||"")})}_getOrderData(){const e=this._paymentIntegrationService.getState(),t=e.getBillingAddressOrThrow(),n=e.getShippingAddress(),i=e.getCheckoutOrThrow(),r=e.getOrderOrThrow();return{billingAddress:t,shippingAddress:n,currencyCode:i.cart.currency.code,id:r.orderId.toString(),amount:i.cart.cartAmount}}}const yu=[100004,1010,1011,1020];var gu,vu,fu,Su,wu,_u,Cu;!function(e){e.SetupCompleted="payments.setupComplete",e.Validated="payments.validated"}(gu||(gu={})),function(e){e.Init="init",e.Complete="complete",e.Confirm="confirm"}(vu||(vu={})),function(e){e.Success="SUCCESS",e.NoAction="NOACTION",e.Failure="FAILURE",e.Error="ERROR"}(fu||(fu={})),function(e){e.CCA="CCA",e.Paypal="Paypal",e.Wallet="Wallet",e.VisaCheckout="VisaCheckout",e.ApplePay="ApplePay",e.DiscoverWallet="DiscoverWallet"}(Su||(Su={})),function(e){e.BinProcess="bin.process"}(wu||(wu={})),function(e){e.CCA="cca"}(_u||(_u={})),function(e){e.Yes="Y",e.No="N"}(Cu||(Cu={}));class Iu{constructor(e){this._scriptLoader=e,this._provider="",this._testMode=!1,this._configurationToken=""}load(e,t=!1){return this._provider=e,this._testMode=t,this._sdk||(this._sdk=this._scriptLoader.load(e,t)),this._sdk.then(V)}configure(e){if(this._configurationToken){if(this._configurationToken===e)return Promise.resolve();this._sdk=this._scriptLoader.load(`${this._provider}.${Date.now()}`,this._testMode)}return this._getClientSDK().then(t=>new Promise((n,i)=>{t.on(gu.SetupCompleted,()=>{t.off(gu.SetupCompleted),t.off(gu.Validated),this._configurationToken=e,n()}),t.on(gu.Validated,e=>{t.off(gu.SetupCompleted),t.off(gu.Validated),e.ActionCode===fu.Error&&(P(yu,e.ErrorNumber)&&i(new pi(ui.MissingPaymentMethod)),i(new so(e.ErrorDescription)))}),t.setup(vu.Init,{jwt:e})}))}runBinProcess(e){return this._getClientSDK().then(t=>t.trigger(wu.BinProcess,e).catch(V)).then(e=>{if(!e||!e.Status)throw new gi(hi.PaymentNotInitialized)})}getThreeDSecureData(e,t){return this._getClientSDK().then(n=>new Promise((i,r)=>{n.on(gu.Validated,(e,t)=>{if(n.off(gu.Validated),!t)return r(new so(e.ErrorDescription?e.ErrorDescription:"An error was encountered while processing the transaction."));if(!e.ActionCode)return i({token:t});switch(e.ActionCode){case fu.Success:return i({token:t});case fu.NoAction:return e.ErrorNumber>0?r(new so(e.ErrorDescription)):e.Payment&&e.Payment.ExtendedData&&e.Payment.ExtendedData.SignatureVerification===Cu.Yes?i({token:t}):r(new so("Transaction signature could not be validated."));case fu.Failure:return r(new so("User failed authentication or an error was encountered while processing the transaction."));case fu.Error:return r(new so(e.ErrorDescription))}});const o={AcsUrl:e.acs_url,Payload:e.merchant_data},a=this._mapToPartialOrder(t,e.payer_auth_request);n.continue(_u.CCA,o,a)}))}_mapToPartialOrder(e,t){const n={BillingAddress:this._mapToCardinalAddress(e.billingAddress)};return e.paymentData&&(n.Account=this._mapToCardinalAccount(e.paymentData)),e.billingAddress.email&&(n.Email1=e.billingAddress.email),e.shippingAddress&&(n.ShippingAddress=this._mapToCardinalAddress(e.shippingAddress)),{Consumer:n,OrderDetails:{OrderNumber:e.id,Amount:e.amount,CurrencyCode:e.currencyCode,OrderChannel:"S",TransactionId:t}}}_mapToCardinalAccount(e){return{AccountNumber:Number(e.ccNumber),ExpirationMonth:Number(e.ccExpiry.month),ExpirationYear:Number(e.ccExpiry.year),NameOnAccount:e.ccName,CardCode:Number(e.ccCvv)}}_mapToCardinalAddress(e){const t={FirstName:e.firstName,LastName:e.lastName,Address1:e.address1,City:e.city,State:e.stateOrProvince,PostalCode:e.postalCode,CountryCode:e.countryCode};return e.address2&&(t.Address2=e.address2),e.phone&&(t.Phone1=e.phone),t}_getClientSDK(){if(!this._sdk)throw new gi(hi.PaymentNotInitialized);return this._sdk}}class bu{constructor(e,t=window){this._scriptLoader=e,this._window=t}load(e,t){const n=t?"https://songbirdstag.cardinalcommerce.com/edge/v1/songbird.js":"https://songbird.cardinalcommerce.com/edge/v1/songbird.js";return this._scriptLoader.loadScript(`${n}?v=${e}`).then(()=>{if(!this._window.Cardinal)throw new Oi;return this._window.Cardinal})}}var Pu=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Ou extends Ul{constructor(e,t){super(e),this._threeDSecureFlow=t}initialize(e){const t=Object.create(null,{initialize:{get:()=>super.initialize}});return Pu(this,void 0,void 0,function*(){yield t.initialize.call(this,e);const{getPaymentMethodOrThrow:n}=this._paymentIntegrationService.getState(),i=n(e.methodId);i.config.is3dsEnabled&&(yield this._threeDSecureFlow.prepare(i))})}execute(e,t){const n=Object.create(null,{execute:{get:()=>super.execute}});return Pu(this,void 0,void 0,function*(){const{payment:{methodId:i=""}={}}=e,{getPaymentMethodOrThrow:r}=this._paymentIntegrationService.getState();return r(i).config.is3dsEnabled?this._threeDSecureFlow.start(n.execute.bind(this),e,t,this._hostedForm):n.execute.call(this,e,t)})}}const Eu=Rt(e=>new Ou(e,new mu(e,new Iu(new bu(a())))),[{id:"cybersource"}]);var Au=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class ku{constructor(e,t){this._paymentIntegrationService=e,this._cardinalClient=t}prepare(e){return Au(this,void 0,void 0,function*(){yield this._cardinalClient.load(e.id,e.config.testMode)})}start(e,t,n,i){var r,o,a,s;return Au(this,void 0,void 0,function*(){const{getCardInstrument:d}=this._paymentIntegrationService.getState(),{payment:c={methodId:""}}=t,{paymentData:l={}}=c;try{return yield e(t,n)}catch(e){if(wa(e)&&"additional_action_required"===(null===(r=e.body)||void 0===r?void 0:r.status)){const t=null===(a=null===(o=e.body.additional_action_required)||void 0===o?void 0:o.data)||void 0===a?void 0:a.token,n=null===(s=e.body.three_ds_result)||void 0===s?void 0:s.payer_auth_request;yield this._cardinalClient.configure(t);const r=this._getBin(l,d,i);r&&(yield this._cardinalClient.runBinProcess(r));try{return yield this._submitPayment(c,{xid:n},i)}catch(e){if(wa(e)&&Z(e.body.errors,{code:"three_d_secure_required"})){const t=e.body.three_ds_result,n=null==t?void 0:t.payer_auth_request;return yield this._cardinalClient.getThreeDSecureData(t,this._getOrderData()),this._submitPayment(c,{token:n},i)}throw e}}throw e}})}_getOrderData(){const e=this._paymentIntegrationService.getState(),t=e.getBillingAddressOrThrow(),n=e.getShippingAddress(),{cart:{currency:{code:i},cartAmount:r}}=e.getCheckoutOrThrow();return{billingAddress:t,shippingAddress:n,currencyCode:i,id:e.getOrderOrThrow().orderId.toString(),amount:r}}_submitPayment(e,t,n){return Au(this,void 0,void 0,function*(){const i=q({},e,{paymentData:{threeDSecure:t}});n||(yield this._paymentIntegrationService.submitPayment(i)),yield null==n?void 0:n.submit(i)})}_getBin(e,t,n){const i=Cd(e)&&t(e.instrumentId),r=function(e){const t=e;return!Cd(t)&&"string"==typeof t.ccName&&"string"==typeof t.ccNumber&&"object"==typeof t.ccExpiry&&"string"==typeof t.ccExpiry.month&&"string"==typeof t.ccExpiry.year}(e)&&e.ccNumber,o=n?n.getBin():r;return(i?i.iin:o)||""}}var Tu=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Du extends Ul{constructor(e,t){super(e),this._threeDSecureFlow=t}initialize(e){const t=Object.create(null,{initialize:{get:()=>super.initialize}});return Tu(this,void 0,void 0,function*(){yield t.initialize.call(this,e);const{getPaymentMethodOrThrow:n}=this._paymentIntegrationService.getState(),i=n(e.methodId);i.config.is3dsEnabled&&(yield this._threeDSecureFlow.prepare(i))})}execute(e,t){const n=Object.create(null,{execute:{get:()=>super.execute}});return Tu(this,void 0,void 0,function*(){const{payment:{methodId:i=""}={}}=e,{getPaymentMethodOrThrow:r}=this._paymentIntegrationService.getState();return r(i).config.is3dsEnabled?this._threeDSecureFlow.start(n.execute.bind(this),e,t,this._hostedForm):n.execute.call(this,e,t)})}}const Mu=Rt(e=>new Du(e,new ku(e,new Iu(new bu(a())))),[{id:"cybersourcev2"},{id:"bnz"},{id:"barclays"}]);class zu{constructor(e,t){this._formPoster=e,this._paymentIntegrationService=t}execute(e,t){return n=this,i=void 0,o=function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),r=n&&n.paymentData;if(!n||!r)throw new fo(["payment.paymentData"]);yield this._paymentIntegrationService.submitOrder(i,t);try{yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},n),{paymentData:r}))}catch(e){if(!wa(e)||"object"!=typeof(o=e.body)||null===o||!("additional_action_required"in o)||!this._isAdditionalActionRequired(e.body))return Promise.reject(e);const{body:{additional_action_required:{data:{redirect_url:t}}}}=e;return new Promise(()=>{this.redirectUrl(t)})}var o},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}finalize(){return Promise.reject(new Id)}initialize(){return Promise.resolve()}deinitialize(){return Promise.resolve()}redirectUrl(e){return this._formPoster.postForm(e,{})}_isAdditionalActionRequired(e){const{additional_action_required:t,status:n}=e;return"additional_action_required"===n&&t&&"offsite_redirect"===t.type}}const Nu=Rt(e=>new zu(Ee(),e),[{id:"laybuy"}]);function xu(e){return"object"==typeof e&&null!==e&&"errors"in e&&Array.isArray(e.errors)&&"code"in e.errors[0]&&"string"==typeof e.errors[0].code&&"provider_data"in e&&"object"==typeof e.provider_data}var Fu=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Ru extends sa{constructor(e,t){super("adyen",e),this._scriptLoader=t,this._service=e}initialize(e,t,n){const i=Object.create(null,{initialize:{get:()=>super.initialize},getPaymentMethod:{get:()=>super.getPaymentMethod}});return Fu(this,void 0,void 0,function*(){yield i.initialize.call(this,e,t,n);const r=i.getPaymentMethod.call(this),o=this._service.getState().getStoreConfig();if(!o)throw new pi(ui.MissingCheckoutConfig);return this._adyenClient=yield this._scriptLoader.load({environment:r.config.testMode?"test":"live",locale:o.storeProfile.storeLanguage}),Promise.resolve()})}getNonce(e){const t=Object.create(null,{getNonce:{get:()=>super.getNonce},getPaymentMethod:{get:()=>super.getPaymentMethod}});return Fu(this,void 0,void 0,function*(){const n=yield t.getNonce.call(this,e),i=t.getPaymentMethod.call(this);return JSON.stringify({type:i.method,googlePayToken:n,browser_info:Za()})})}processAdditionalAction(e){return Fu(this,void 0,void 0,function*(){if(!wa(e)||!xu(e.body))throw e;const t=yield this._handleAction(e.body.provider_data);try{return yield this._service.submitPayment(t)}catch(e){return this.processAdditionalAction(e)}})}_handleAction(e){return new Promise((t,n)=>{const i=JSON.parse(e.action);this._getAdyenClient().createFromAction(i,{onAdditionalDetails:e=>{const n={methodId:i.paymentMethodType,paymentData:{nonce:JSON.stringify(e.data)}};t(n)},size:"05",onError:e=>n(e)}).mount("body"),n(new nr)})}_getAdyenClient(){if(!this._adyenClient)throw new gi(hi.PaymentNotInitialized);return this._adyenClient}}var Lu=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Bu{constructor(e,t){this._paymentIntegrationService=e,this._googlePayPaymentProcessor=t,this._loadingIndicator=new sd({containerStyles:od})}initialize(e){var t;return Lu(this,void 0,void 0,function*(){if(!(null==e?void 0:e.methodId)||!ca(e.methodId))throw new ki('Unable to proceed because "methodId" is not a valid key.');this._methodId=e.methodId;const n=e[this._getMethodId()];if(!(null==n?void 0:n.walletButton))throw new ki("Unable to proceed without valid options.");const{walletButton:i,loadingContainerId:r}=n,o=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(n,["walletButton","loadingContainerId"]);this._loadingIndicatorContainer=r,yield this._paymentIntegrationService.loadPaymentMethod(this._getMethodId());const a=this._paymentIntegrationService.getState().getPaymentMethodOrThrow(this._getMethodId());yield this._googlePayPaymentProcessor.initialize(()=>a,this._getGooglePayClientOptions(null===(t=a.initializationData)||void 0===t?void 0:t.storeCountry)),this._addPaymentButton(i,o)})}execute({payment:e}){return Lu(this,void 0,void 0,function*(){if(!(null==e?void 0:e.methodId))throw new fo(["payment"]);yield this._paymentIntegrationService.submitOrder();const t=yield this._googlePayPaymentProcessor.getNonce(e.methodId),n=yield this._googlePayPaymentProcessor.extraPaymentData();try{yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},e),{paymentData:Object.assign({nonce:t},n)}))}catch(t){yield this._googlePayPaymentProcessor.processAdditionalAction(t,e.methodId)}})}finalize(){return Promise.reject(new Id)}deinitialize(){var e;return this._clickListener&&(null===(e=this._paymentButton)||void 0===e||e.removeEventListener("click",this._clickListener)),this._paymentButton=void 0,this._clickListener=void 0,this._methodId=void 0,Promise.resolve()}_addPaymentButton(e,t){if(this._paymentButton)return;const n=document.getElementById(e);if(!n)throw new ki("Unable to proceed without a walletButton.");this._paymentButton=n,this._clickListener=this._handleClick(t),this._paymentButton.addEventListener("click",this._clickListener)}_handleClick({onPaymentSelect:e,onError:t}){return n=>Lu(this,void 0,void 0,function*(){n.preventDefault();try{yield this._googlePayPaymentProcessor.initializeWidget(),yield this._interactWithPaymentSheet()}catch(e){let n=e;if(this._toggleLoadingIndicator(!1),da(e)){if("CANCELED"===e.statusCode)throw new nr;n=new so(JSON.stringify(e))}throw null==t||t(new so("An error occurred while requesting your Google Pay payment details.")),n}null==e||e()})}_interactWithPaymentSheet(){return Lu(this,void 0,void 0,function*(){const e=yield this._googlePayPaymentProcessor.showPaymentSheet();this._toggleLoadingIndicator(!0);const t=this._googlePayPaymentProcessor.mapToBillingAddressRequestBody(e);t&&(yield this._paymentIntegrationService.updateBillingAddress(t)),yield this._googlePayPaymentProcessor.setExternalCheckoutXhr(this._getMethodId(),e),yield this._paymentIntegrationService.loadCheckout(),yield this._paymentIntegrationService.loadPaymentMethod(this._getMethodId()),this._toggleLoadingIndicator(!1)})}_getMethodId(){return yi(this._methodId,()=>new gi(hi.PaymentNotInitialized))}_getIsSignedInOrThrow(){return Lu(this,void 0,void 0,function*(){try{return!!(yield this._googlePayPaymentProcessor.getNonce(this._getMethodId()))}catch(e){if(e instanceof pi&&e.subtype===ui.MissingPaymentToken)return!1;throw e}})}_handleOfferTrigger(e){return Lu(this,void 0,void 0,function*(){let t=!1,n="Sign in to Google Pay first to apply or remove promo codes.";try{t=yield this._getIsSignedInOrThrow()}catch(e){e instanceof pi&&(n=e.message)}if(t){const{newOfferInfo:t,error:n}=yield this._googlePayPaymentProcessor.handleCoupons(e);return{newOfferInfo:t,error:n}}return{error:{reason:na.OFFER_INVALID,message:n,intent:ia.OFFER}}})}_getGooglePayClientOptions(e){return{paymentDataCallbacks:{onPaymentDataChanged:({callbackTrigger:t,offerData:n})=>Lu(this,void 0,void 0,function*(){const i=this._paymentIntegrationService.getState().getStoreConfigOrThrow().checkoutSettings.features["PI-2875.googlepay_coupons_handling"]||!1;if(t!==ia.INITIALIZE&&(!i||t!==ia.OFFER))return;const{offerChangeTriggers:r}=this._googlePayPaymentProcessor.getCallbackTriggers(),{newOfferInfo:o,error:a}=r.includes(t)?yield this._handleOfferTrigger(n):{},s=a;yield this._paymentIntegrationService.loadCheckout();const{getCheckoutOrThrow:d,getCartOrThrow:c}=this._paymentIntegrationService.getState(),{code:l,decimalPlaces:u}=c().currency,h=J(d().outstandingBalance,u).toFixed(u);return Object.assign(Object.assign({newTransactionInfo:Object.assign(Object.assign({},e&&{countryCode:e}),{currencyCode:l,totalPriceStatus:Xo.FINAL,totalPrice:h})},o&&{newOfferInfo:o}),s&&{error:s})})}}}_toggleLoadingIndicator(e){e&&this._loadingIndicatorContainer?this._loadingIndicator.show(this._loadingIndicatorContainer):this._loadingIndicator.hide()}}const ju=Rt(e=>new Bu(e,new pa(ya(),new Ru(e,new wd(a(),s())),n(),Ee())),[{id:"googlepayadyenv2"}]);var Uu=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class qu extends sa{constructor(e,t){super("adyen",e),this._scriptLoader=t,this._service=e}initialize(e,t,n){const i=Object.create(null,{initialize:{get:()=>super.initialize},getPaymentMethod:{get:()=>super.getPaymentMethod}});return Uu(this,void 0,void 0,function*(){yield i.initialize.call(this,e,t,n);const r=i.getPaymentMethod.call(this),o=this._service.getState().getStoreConfig();if(!o)throw new pi(ui.MissingCheckoutConfig);return this._adyenClient=yield this._scriptLoader.load({environment:r.config.testMode?"test":"live",locale:o.storeProfile.storeLanguage}),Promise.resolve()})}processAdditionalAction(e){return Uu(this,void 0,void 0,function*(){if(!wa(e)||!xu(e.body))throw e;const t=yield this._handleAction(e.body.provider_data);try{return yield this._service.submitPayment(t)}catch(e){return this.processAdditionalAction(e)}})}getNonce(e){const t=Object.create(null,{getNonce:{get:()=>super.getNonce},getPaymentMethod:{get:()=>super.getPaymentMethod}});return Uu(this,void 0,void 0,function*(){const n=yield t.getNonce.call(this,e),i=t.getPaymentMethod.call(this);return JSON.stringify({type:i.method,googlePayToken:n,browser_info:Za()})})}_handleAction(e){return new Promise((t,n)=>{const i=JSON.parse(e.action);this._getAdyenClient().createFromAction(i,{onAdditionalDetails:e=>{const n={methodId:i.paymentMethodType,paymentData:{nonce:JSON.stringify(e.data)}};t(n)},size:"05",onError:e=>n(e)}).mount("body"),n(new nr)})}_getAdyenClient(){if(!this._adyenClient)throw new gi(hi.PaymentNotInitialized);return this._adyenClient}}const Vu=Rt(e=>new Bu(e,new pa(ya(),new qu(e,new Ed(a(),s())),n(),Ee())),[{id:"googlepayadyenv3"}]),Gu=Rt(e=>new Bu(e,new pa(ya(),new fa(e),n(),Ee())),[{id:"googlepayauthorizenet"}]),Hu=Rt(e=>{const t=n();return new Bu(e,new pa(ya(),new Ia(e,t),t,Ee()))},[{id:"googlepaycheckoutcom"}]),$u=Rt(e=>new Bu(e,new pa(ya(),new Pa(e),n(),Ee())),[{id:"googlepaycybersourcev2"},{id:"googlepaybnz"}]),Wu=Rt(e=>new Bu(e,new pa(ya(),new Aa(e),n(),Ee())),[{id:"googlepayorbital"}]),Yu=Rt(e=>new Bu(e,new pa(ya(),new Ma(e,new Na(a())),n(),Ee())),[{id:"googlepaystripe"},{id:"googlepaystripeupe"},{id:"googlepaystripeocs"}]),Ku=Rt(e=>new Bu(e,new pa(ya(),new Ra(e),n(),Ee())),[{id:"googlepayworldpayaccess"}]),Ju=Rt(e=>{const t=n(),i=window,r=new Ri(e),o=new Zi(new tr(a(),i,r));return new Bu(e,new pa(ya(),new ja(e,o),t,Ee()))},[{id:"googlepaybraintree"}]);var Zu,Qu;!function(e){e.Approved="APPROVED",e.PayerActionRequired="PAYER_ACTION_REQUIRED"}(Zu||(Zu={})),function(e){e.AUTHORIZE="authorize",e.CAPTURE="capture"}(Qu||(Qu={}));var Xu=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class eh extends Bu{constructor(e,t,n,i){super(e,t),this._payPalCommerceSdk=n,this._requestSender=i}execute({payment:e}){return Xu(this,void 0,void 0,function*(){if(!(null==e?void 0:e.methodId))throw new fo(["payment"]);const t=this._paymentIntegrationService.getState(),n=t.getCartOrThrow().id,{initializationData:i}=t.getPaymentMethodOrThrow(this._getMethodId()),{orderId:r}=yield this.getOrderId(n),{card_information:o}=i||{},a=yield this._googlePayPaymentProcessor.getNonce(e.methodId),s={tokenizationData:{type:"PAYMENT_GATEWAY",token:atob(a)},info:{cardNetwork:(null==o?void 0:o.type)||"",cardDetails:(null==o?void 0:o.number)||""},type:"CARD"};yield this.confirmOrder(r,s),yield this._paymentIntegrationService.submitOrder();try{const t={formattedPayload:{method_id:e.methodId,paypal_account:{order_id:r}}};yield this._paymentIntegrationService.submitPayment({methodId:e.methodId,paymentData:t})}catch(e){yield this._googlePayPaymentProcessor.processAdditionalAction(e)}})}confirmOrder(e,t){return Xu(this,void 0,void 0,function*(){const n=this._paymentIntegrationService.getState(),i=n.getPaymentMethodOrThrow(this._getMethodId());if(!i.initializationData)throw new pi(ui.MissingPaymentMethod);const r=n.getCartOrThrow().currency.code,o=yield this._payPalCommerceSdk.getPayPalGooglePaySdk(i,r,!0),{status:a}=yield o.Googlepay().confirmOrder({orderId:e,paymentMethodData:t});if(a===Zu.PayerActionRequired)return yield o.Googlepay().initiatePayerAction({orderId:e}),Promise.resolve();if(a!==Zu.Approved)throw new ki("Payment is not approved.");return Promise.resolve()})}getOrderId(e){return Xu(this,void 0,void 0,function*(){const t={cartId:e,shouldSaveInstrument:!1},{body:n}=yield this._requestSender.post("/api/storefront/payments/googlepaypaypalcommercecheckout",{headers:Object.assign({"X-API-INTERNAL":Cr,"Content-Type":br.Json},Pr),body:t});return n})}}const th=Rt(e=>{const t=new Va(a());return new eh(e,new pa(ya(),new $a(e,t),n(),Ee()),t,n())},[{id:"googlepaypaypalcommerce"}]);var nh,ih;!function(e){e.Approved="APPROVED",e.PayerActionRequired="PAYER_ACTION_REQUIRED"}(nh||(nh={})),function(e){e.AUTHORIZE="authorize",e.CAPTURE="capture"}(ih||(ih={}));var rh=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class oh extends Bu{constructor(e,t,n,i){super(e,t),this._payPalSdkHelper=n,this._requestSender=i}execute({payment:e}){return rh(this,void 0,void 0,function*(){if(!(null==e?void 0:e.methodId))throw new fo(["payment"]);const t=this._paymentIntegrationService.getState(),n=t.getCartOrThrow().id,{initializationData:i}=t.getPaymentMethodOrThrow(this._getMethodId()),{orderId:r}=yield this.getOrderId(n),{card_information:o}=i||{},a=yield this._googlePayPaymentProcessor.getNonce(e.methodId),s={tokenizationData:{type:"PAYMENT_GATEWAY",token:atob(a)},info:{cardNetwork:(null==o?void 0:o.type)||"",cardDetails:(null==o?void 0:o.number)||""},type:"CARD"};yield this.confirmOrder(r,s),yield this._paymentIntegrationService.submitOrder();try{const t={formattedPayload:{method_id:e.methodId,paypal_account:{order_id:r}}};yield this._paymentIntegrationService.submitPayment({methodId:e.methodId,paymentData:t})}catch(e){yield this._googlePayPaymentProcessor.processAdditionalAction(e)}})}confirmOrder(e,t){return rh(this,void 0,void 0,function*(){const n=this._paymentIntegrationService.getState(),i=n.getPaymentMethodOrThrow(this._getMethodId());if(!i.initializationData)throw new pi(ui.MissingPaymentMethod);const r=n.getCartOrThrow().currency.code,o=yield this._payPalSdkHelper.getPayPalGooglePaySdk(i,r,!0),{status:a}=yield o.Googlepay().confirmOrder({orderId:e,paymentMethodData:t});if(a===nh.PayerActionRequired)return yield o.Googlepay().initiatePayerAction({orderId:e}),Promise.resolve();if(a!==nh.Approved)throw new ki("Payment is not approved.");return Promise.resolve()})}getOrderId(e){return rh(this,void 0,void 0,function*(){const t={cartId:e,shouldSaveInstrument:!1},{body:n}=yield this._requestSender.post("/api/storefront/payments/googlepay_bigcommerce_paymentscheckout",{headers:Object.assign({"X-API-INTERNAL":Cr,"Content-Type":br.Json},Pr),body:t});return n})}}const ah=Rt(e=>{const t=new Gr(a());return new oh(e,new pa(ya(),new Ka(e,t),n(),Ee()),t,n())},[{id:"googlepay_bigcommerce_payments"}]),sh=Rt(e=>new Bu(e,new pa(ya(),new Xa(e,Ee()),n(),Ee())),[{id:"googlepaytdonlinemart"}]);class dh extends li{constructor(e,t,n){super(n||"Payment cannot be processed for this order, please select another payment method"),this.type="custom_provider_execute_error",this.name=t,this.subtype=e}}class ch{constructor(e,t){this.paymentIntegrationService=e,this.formPoster=t}execute(e,t){var n,i,r,o,a;return i=this,r=void 0,a=function*(){const{payment:i}=e,r=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!(null==i?void 0:i.methodId))throw new fo(["payment.methodId"]);yield this.paymentIntegrationService.loadPaymentMethod(i.methodId,t);const o=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(i.methodId);if(!(null===(n=o.initializationData)||void 0===n?void 0:n.processable))throw new dh("payment.humm_not_processable_error","hummNotProcessableError");yield this.paymentIntegrationService.submitOrder(r,t);try{yield this.paymentIntegrationService.submitPayment({methodId:i.methodId})}catch(e){return this.isOffsiteRedirectResponse(e)?this.handleOffsiteRedirectResponse(e):Promise.reject(e)}},new((o=void 0)||(o=Promise))(function(e,t){function n(e){try{d(a.next(e))}catch(e){t(e)}}function s(e){try{d(a.throw(e))}catch(e){t(e)}}function d(t){var i;t.done?e(t.value):(i=t.value,i instanceof o?i:new o(function(e){e(i)})).then(n,s)}d((a=a.apply(i,r||[])).next())})}finalize(){return Promise.reject(new Id)}initialize(){return Promise.resolve()}deinitialize(){return Promise.resolve()}handleOffsiteRedirectResponse(e){const t=e.body.additional_action_required.data.redirect_url,n=e.body.provider_data;return new Promise(e=>{this.formPoster.postForm(t,JSON.parse(n),e)})}isOffsiteRedirectResponse(e){if("object"!=typeof e||null===e)return!1;const t=e;if(!t.body)return!1;const n=t.body;return"additional_action_required"===n.status&&!!n.additional_action_required&&"offsite_redirect"===n.additional_action_required.type&&"string"==typeof n.provider_data}}const lh=Rt(e=>new ch(e,Ee()),[{id:"humm"}]),uh=["AT","BE","CA","CH","CZ","DE","DK","ES","FI","FR","GB","GR","IE","IT","NL","NO","NZ","PL","PT","SE"],hh=["AU"];var ph=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class mh{constructor(e,t){this.paymentIntegrationService=e,this.klarnaScriptLoader=t}initialize(e){return ph(this,void 0,void 0,function*(){this.klarnaCredit=yield this.klarnaScriptLoader.load(),this.unsubscribe=this.paymentIntegrationService.subscribe(t=>{t.isPaymentMethodInitialized({methodId:e.methodId,gatewayId:e.gatewayId})&&this.loadWidget(e)},e=>{const t=e.getCheckout();return t&&t.outstandingBalance},e=>{const t=e.getCheckout();return t&&t.coupons}),yield this.loadWidget(e)})}deinitialize(){return this.unsubscribe&&this.unsubscribe(),Promise.resolve()}execute(e,t){return ph(this,void 0,void 0,function*(){if(!e.payment)throw new ki('Unable to proceed because "payload.payment" argument is not provided.');const n=e.payment,{paymentData:i}=n,r=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(n,["paymentData"]),{authorization_token:o}=yield this.authorize();yield this.paymentIntegrationService.initializePayment(r.methodId,{authorizationToken:o}),yield this.paymentIntegrationService.submitOrder(Object.assign(Object.assign({},e),{payment:r,useStoreCredit:e.useStoreCredit}),t)})}finalize(){return Promise.reject(new Id)}loadWidget(e){return ph(this,void 0,void 0,function*(){if(!e.klarna)throw new ki('Unable to load widget because "options.klarna" argument is not provided.');const{methodId:t,klarna:{container:n,onLoad:i}}=e;return yield this.paymentIntegrationService.loadPaymentMethod(t),new Promise(e=>{const r=this.paymentIntegrationService.getState().getPaymentMethod(t);if(!r)throw new pi(ui.MissingPaymentMethod);if(!this.klarnaCredit||!r.clientToken)throw new gi(hi.PaymentNotInitialized);this.klarnaCredit.init({client_token:r.clientToken}),this.klarnaCredit.load({container:n},t=>{i&&i(t),e(t)})})})}getUpdateSessionData(e,t){if(!P([...uh,...hh],e.countryCode))return{};const n={billing_address:this.mapToKlarnaAddress(e,e.email)};return t&&(n.shipping_address=this.mapToKlarnaAddress(t,e.email)),n}needsStateCode(e){return P(hh,e)}mapToKlarnaAddress(e,t){const n={street_address:e.address1,city:e.city,country:e.countryCode,given_name:e.firstName,family_name:e.lastName,postal_code:e.postalCode,region:this.needsStateCode(e.countryCode)?e.stateOrProvinceCode:e.stateOrProvince,email:t};return e.address2&&(n.street_address2=e.address2),e.phone&&(n.phone=e.phone),n}authorize(){return new Promise((e,t)=>{const n=this.paymentIntegrationService.getState(),i=n.getBillingAddress(),r=n.getShippingAddress();if(!i)throw new pi(ui.MissingBillingAddress);if(!this.klarnaCredit)throw new gi(hi.PaymentNotInitialized);const o=this.getUpdateSessionData(i,r);this.klarnaCredit.authorize(o,n=>n.approved?e(n):n.show_form?t(new nr):void t(new co))})}}class yh{constructor(e,t=window){this.scriptLoader=e,this.klarnaWindow=t}load(){var e,t,n,i,r,o;return n=this,i=void 0,o=function*(){if((null===(e=this.klarnaWindow.Klarna)||void 0===e?void 0:e.Credit)||(yield this.scriptLoader.loadScript("//credit.klarnacdn.net/lib/v1/api.js")),!(null===(t=this.klarnaWindow.Klarna)||void 0===t?void 0:t.Credit))throw new Oi;return this.klarnaWindow.Klarna.Credit},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())})}}const gh=Rt(e=>new mh(e,new yh(a())),[{id:"klarna"}]);var vh=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class fh{constructor(e,t,n){this.paymentIntegrationService=e,this.klarnav2ScriptLoader=t,this.klarnav2TokenUpdater=n}initialize(e){return vh(this,void 0,void 0,function*(){this.klarnaPayments=yield this.klarnav2ScriptLoader.load(),this.unsubscribe=this.paymentIntegrationService.subscribe(t=>{t.isPaymentMethodInitialized({methodId:e.methodId,gatewayId:e.gatewayId})&&this.loadPaymentsWidget(e)},e=>{const t=e.getCheckout();return t&&t.outstandingBalance},e=>{const t=e.getCheckout();return t&&t.coupons}),yield this.loadPaymentsWidget(e)})}deinitialize(){return this.unsubscribe&&this.unsubscribe(),Promise.resolve()}execute(e,t){return vh(this,void 0,void 0,function*(){if(!e.payment)throw new ki('Unable to proceed because "payload.payment" argument is not provided.');const n=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e.payment,[]),{gatewayId:i,methodId:r}=n;if(!i)throw new ki('Unable to proceed because "payload.payment.gatewayId" argument is not provided.');const o=this.paymentIntegrationService.getState(),{id:a}=o.getCartOrThrow(),{clientToken:s}=o.getPaymentMethodOrThrow(r);yield this.klarnav2TokenUpdater.klarnaOrderInitialization(a,s);const d=this.isKlarnaSingleRadioButtonEnabled()?i:r,{authorization_token:c}=yield this.authorizeOrThrow(d,r);yield this.paymentIntegrationService.initializePayment(i,{authorizationToken:c}),yield this.paymentIntegrationService.submitOrder(Object.assign(Object.assign({},e),{payment:n,useStoreCredit:e.useStoreCredit}),t)})}finalize(){return Promise.reject(new Id)}loadPaymentsWidget(e){return vh(this,void 0,void 0,function*(){if(!e.klarnav2)throw new ki('Unable to load widget because "options.klarnav2" argument is not provided.');const{methodId:t,gatewayId:n,klarnav2:{container:i,onLoad:r}}=e;if(!n)throw new ki('Unable to proceed because "payload.payment.gatewayId" argument is not provided.');const o=this.paymentIntegrationService.getState(),a={params:o.getCartOrThrow().id};return yield this.klarnav2TokenUpdater.updateClientToken(n,{params:a}).catch(()=>{throw new pi(ui.MissingPaymentMethod)}),new Promise(e=>{const n=o.getPaymentMethodOrThrow(t);if(!this.klarnaPayments||!n.clientToken)throw new gi(hi.PaymentNotInitialized);this.klarnaPayments.init({client_token:n.clientToken}),this.klarnaPayments.load({container:i,payment_method_category:this.isKlarnaSingleRadioButtonEnabled()?n.gateway:t},t=>{r&&r(t),e(t)})})})}getUpdateSessionData(e,t,n){if(!P([...uh,...hh],t.countryCode))return{};const i={billing_address:this.mapToKlarnaAddress(e,t,t.email)};return n&&(i.shipping_address=this.mapToKlarnaAddress(e,n,t.email)),i}needsStateCode(e){return P(hh,e)}mapToKlarnaAddress(e,t,n){const i=this.paymentIntegrationService.getState(),{checkoutSettings:r}=i.getStoreConfigOrThrow(),o=i.getPaymentMethodOrThrow(e),{enableBillie:a}=o.initializationData||{},s={street_address:t.address1,city:t.city,country:t.countryCode,given_name:t.firstName,family_name:t.lastName,postal_code:t.postalCode,region:this.needsStateCode(t.countryCode)?t.stateOrProvinceCode:t.stateOrProvince,email:n};return t.address2&&(s.street_address2=t.address2),t.phone&&(s.phone=t.phone),t.company&&a&&Wt(r.features,"PI-3915.b2b_payment_session_for_klarna")&&(s.organization_name=t.company),s}authorizeOrThrow(e,t){return vh(this,void 0,void 0,function*(){yield this.paymentIntegrationService.loadCheckout();const n=this.paymentIntegrationService.getState(),i=n.getBillingAddressOrThrow(),r=n.getShippingAddress(),o=this.getUpdateSessionData(t,i,r);return new Promise((t,n)=>{if(!this.klarnaPayments)return n(new gi(hi.PaymentNotInitialized));this.klarnaPayments.authorize({payment_method_category:e},o,e=>e.approved?t(e):e.show_form?n(new nr):void n(new co))})})}isKlarnaSingleRadioButtonEnabled(){const{features:e}=this.paymentIntegrationService.getState().getStoreConfigOrThrow().checkoutSettings;return e["PI-4025.klarna_single_radio_button"]}}class Sh{constructor(e,t=window){this.scriptLoader=e,this.klarnaWindow=t}load(){var e,t,n,i,r,o;return n=this,i=void 0,o=function*(){if((null===(e=this.klarnaWindow.Klarna)||void 0===e?void 0:e.Payments)||(yield this.scriptLoader.loadScript("https://x.klarnacdn.net/kp/lib/v1/api.js")),!(null===(t=this.klarnaWindow.Klarna)||void 0===t?void 0:t.Payments))throw new Oi;return this.klarnaWindow.Klarna.Payments},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())})}}class wh{constructor(e){this.requestSender=e}updateClientToken(e,{timeout:t,params:n}={}){const i=`/api/storefront/payments/${e}`;return this.requestSender.get(i,{timeout:t,headers:Object.assign({Accept:br.JsonV1,"X-API-INTERNAL":Cr},Pr),params:n})}klarnaOrderInitialization(e,t){return n=this,i=void 0,o=function*(){const n={headers:Object.assign({Accept:br.JsonV1,"X-API-INTERNAL":Cr},Pr),body:{cartId:e,clientToken:t}};yield this.requestSender.put("/api/storefront/initialization/klarna",n)},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}}const _h=Rt(e=>{const{getHost:t}=e.getState(),i=n({host:t()});return new fh(e,new Sh(a()),new wh(i))},[{gateway:"klarna"}]);class Ch{constructor(e){this._paymentIntegrationService=e}execute(e,t){return n=this,i=void 0,o=function*(){return yield this._paymentIntegrationService.submitOrder(e,t),Promise.resolve()},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}finalize(){return Promise.reject(new Id)}initialize(){return Promise.resolve()}deinitialize(){return Promise.resolve()}}const Ih=Rt(e=>new Ch(e),[{id:"testgateway"}]);var bh,Ph=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};!function(e){e.CREDIT_CARD="credit_card"}(bh||(bh={}));const Oh=["klarnapaylater","klarnasliceit"];class Eh{constructor(e,t){this.mollieScriptLoader=e,this.paymentIntegrationService=t}initialize(e){return Ph(this,void 0,void 0,function*(){const{mollie:t,methodId:n,gatewayId:i}=e;if(!t)throw new ki('Unable to initialize payment because "options.mollie" argument is not provided.');if(!n||!i)throw new ki('Unable to initialize payment because "methodId" and/or "gatewayId" argument is not provided.');const r=document.querySelectorAll(".mollie-components-controller");v(r,e=>e.remove());const o=this.paymentIntegrationService.getState(),a=o.getStoreConfigOrThrow();this.initializeOptions=t;const s=o.getPaymentMethodOrThrow(n,i),{config:{merchantId:d,testMode:c}}=s;if(this.locale=o.getLocale(),!d)throw new pi(ui.MissingPaymentMethod);return this.isCreditCard(n)&&t.form&&this.shouldShowTSVHostedForm(n,i)?this.hostedForm=yield this.mountCardVerificationfields(t.form):this.isCreditCard(n)&&(this.mollieClient=yield this.loadMollieJs(d,a.storeProfile.storeLanguage,c),this.mountElements()),this.unsubscribe=()=>{if(this.paymentIntegrationService.getState().isPaymentMethodInitialized({methodId:e.methodId,gatewayId:e.gatewayId})){const e=document.getElementById(`${i}-${n}-paragraph`);e&&e.remove(),t.disableButton(!1),this.loadPaymentMethodsAllowed(t,n,i)}},this.unsubscribe(),this.loadPaymentMethodsAllowed(t,n,i),Promise.resolve()})}execute(e,t){return Ph(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),r=null==n?void 0:n.paymentData;if(!n||!n.gatewayId||!r)throw new fo(["payment","gatewayId","paymentData"]);try{return yield this.paymentIntegrationService.submitOrder(i,t),Cd(r)?yield this.executeWithVaulted(n):this.isCreditCard(n.methodId)?yield this.executeWithCC(n):yield this.executeWithAPM(n)}catch(e){yield this.processAdditionalAction(e)}})}finalize(){return Promise.resolve()}deinitialize(e){if(this.unsubscribe&&this.unsubscribe(),this.hostedForm&&this.hostedForm.detach(),e&&e.methodId&&e.gatewayId&&!this.hostedForm){const t=document.getElementById(`${e.gatewayId}-${e.methodId}`);t&&t.remove()}else e&&e.methodId&&this.isCreditCard(e.methodId)&&this.cardHolderElement&&this.cardNumberElement&&this.verificationCodeElement&&this.expiryDateElement&&(this.cardHolderElement.unmount(),this.cardHolderElement=void 0,this.cardNumberElement.unmount(),this.cardNumberElement=void 0,this.verificationCodeElement.unmount(),this.verificationCodeElement=void 0,this.expiryDateElement.unmount(),this.expiryDateElement=void 0);return this.mollieClient=void 0,Promise.resolve()}executeWithCC(e){return Ph(this,void 0,void 0,function*(){const t=e.paymentData,{shouldSaveInstrument:n=!1,shouldSetAsDefaultInstrument:i=!1}=Ad(t)?t:{},{token:r,error:o}=yield this.getMollieClient().createToken();if(o)return Promise.reject(o);const a={credit_card_token:{token:r},vault_payment_instrument:n,set_as_default_stored_instrument:i,browser_info:Za(),shopper_locale:this.getShopperLocale()};yield this.paymentIntegrationService.submitPayment(Object.assign(Object.assign({},e),{paymentData:{formattedPayload:a}}))})}executeWithVaulted(e){return Ph(this,void 0,void 0,function*(){if(this.isHostedPaymentFormEnabled(e.methodId,e.gatewayId)){const t=this.hostedForm;if(!t)throw new gi(hi.PaymentNotInitialized);yield t.validate(),yield t.submit(e),yield this.paymentIntegrationService.loadCurrentOrder()}else yield this.paymentIntegrationService.submitPayment(e)})}executeWithAPM(e){return Ph(this,void 0,void 0,function*(){const t=e.paymentData,n=t&&"issuer"in t?t.issuer:"";yield this.paymentIntegrationService.submitPayment(Object.assign(Object.assign({},e),{paymentData:Object.assign(Object.assign({},t),{formattedPayload:{issuer:n,shopper_locale:this.getShopperLocale()}})}))})}isCreditCard(e){return e===bh.CREDIT_CARD}shouldShowTSVHostedForm(e,t){return this.isHostedPaymentFormEnabled(e,t)&&this.isHostedFieldAvailable()}mountCardVerificationfields(e){return new Promise((t,n)=>Ph(this,void 0,void 0,function*(){try{const n=this.paymentIntegrationService.getState().getStoreConfig(),i=null==n?void 0:n.paymentSettings.bigpayBaseUrl;if(!i)throw new pi(ui.MissingCheckoutConfig);const r=this.paymentIntegrationService.createHostedForm(i,e);yield r.attach(),t(r)}catch(e){n(e)}}))}isHostedPaymentFormEnabled(e,t){const{getPaymentMethodOrThrow:n}=this.paymentIntegrationService.getState();return!0===n(e,t).config.isHostedFormEnabled}isHostedFieldAvailable(){var e;return!!(null===(e=this.getInitializeOptions().form)||void 0===e?void 0:e.fields)}processAdditionalAction(e){if(!wa(e))return Promise.reject(e);if(Z(e.body.errors,{code:"additional_action_required"})){const{additional_action_required:{data:{redirect_url:t}}}=e.body;return new Promise(()=>window.location.replace(t))}return Promise.reject(e)}getInitializeOptions(){if(!this.initializeOptions)throw new gi(hi.PaymentNotInitialized);return this.initializeOptions}loadMollieJs(e,t,n=!1){return this.mollieClient?Promise.resolve(this.mollieClient):this.mollieScriptLoader.load(e,t,n)}getMollieClient(){if(!this.mollieClient)throw new gi(hi.PaymentNotInitialized);return this.mollieClient}getShopperLocale(){if(!this.locale)throw new gi(hi.PaymentNotInitialized);return this.locale}mountElements(){const{containerId:e,cardNumberId:t,cardCvcId:n,cardExpiryId:i,cardHolderId:r,styles:o}=this.getInitializeOptions();let a;e&&(a=document.getElementById(e)),setTimeout(()=>{if(!e||"none"!==(null==a?void 0:a.style.display)){const e=this.getMollieClient();this.cardHolderElement=e.createComponent("cardHolder",{styles:o}),this.cardHolderElement.mount(`#${r}`),this.cardNumberElement=e.createComponent("cardNumber",{styles:o}),this.cardNumberElement.mount(`#${t}`),this.verificationCodeElement=e.createComponent("verificationCode",{styles:o}),this.verificationCodeElement.mount(`#${n}`),this.expiryDateElement=e.createComponent("expiryDate",{styles:o}),this.expiryDateElement.mount(`#${i}`)}},0)}loadPaymentMethodsAllowed(e,t,n){var i;if(Oh.includes(t)){const r=null===(i=this.paymentIntegrationService.getState().getCartOrThrow().lineItems)||void 0===i?void 0:i.digitalItems;if(r&&r.length>0){const{containerId:i}=this.getInitializeOptions();if(i){const r=document.getElementById(i);if(r){const i=document.createElement("p");i.setAttribute("id",`${n}-${t}-paragraph`),e.unsupportedMethodMessage&&(i.innerText=e.unsupportedMethodMessage,r.appendChild(i),e.disableButton(!0))}}}}}}class Ah{constructor(e,t=window){this.scriptLoader=e,this.mollieHostWindow=t}load(e,t,n){return i=this,r=void 0,a=function*(){if(yield this.scriptLoader.loadScript("https://js.mollie.com/v1/mollie.js"),!function(e){return"Mollie"in e}(this.mollieHostWindow))throw new Oi;return this.mollieHostWindow.Mollie(e,{locale:t,testmode:n})},new((o=void 0)||(o=Promise))(function(e,t){function n(e){try{d(a.next(e))}catch(e){t(e)}}function s(e){try{d(a.throw(e))}catch(e){t(e)}}function d(t){var i;t.done?e(t.value):(i=t.value,i instanceof o?i:new o(function(e){e(i)})).then(n,s)}d((a=a.apply(i,r||[])).next())});var i,r,o,a}}const kh=Rt(e=>new Eh(new Ah(a()),e),[{gateway:"mollie"},{gateway:"mollie",id:"applepay"}]);var Th=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};const Dh="moneris-payment-iframe";class Mh{constructor(e){this.paymentIntegrationService=e}initialize(e){return Th(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState(),{moneris:n,methodId:i}=e;if(!i)throw new ki('Unable to initialize payment because "methodId" argument is not provided.');if(!n)throw new ki('Unable to initialize payment because "options.moneris" argument is not provided.');this.initializeOptions=n;const{config:r,initializationData:o}=t.getPaymentMethodOrThrow(i);if(!(null==o?void 0:o.profileId))throw new pi(ui.MissingPaymentMethod);return n.form&&this.shouldShowTSVHostedForm(i)&&(this.hostedForm=yield this.mountCardVerificationfields(n.form)),this.iframe||(this.iframe=this.createIframe(n.containerId,o,!!r.testMode)),Promise.resolve()})}execute(e,t){return Th(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);const{isStoreCreditApplied:r}=this.paymentIntegrationService.getState().getCheckoutOrThrow();if(r&&(yield this.paymentIntegrationService.applyStoreCredit(r)),yield this.paymentIntegrationService.submitOrder(i,t),!n.paymentData||!Cd(n.paymentData))return this.executeWithCC(n);yield this.executeWithVaulted(n)})}finalize(){return Promise.reject(new Id)}deinitialize(){return this.hostedForm&&this.hostedForm.detach(),this.windowEventListener&&(window.removeEventListener("message",this.windowEventListener),this.windowEventListener=void 0),this.iframe&&this.iframe.parentNode&&(this.iframe.parentNode.removeChild(this.iframe),this.iframe=void 0),Promise.resolve()}executeWithCC(e){return Th(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e.methodId).config.testMode,n=e.paymentData||{},i=Ad(n)?n:{shouldSaveInstrument:!1,shouldSetAsDefaultInstrument:!1},{shouldSaveInstrument:r,shouldSetAsDefaultInstrument:o}=i,a=yield new Promise((e,n)=>{if(!this.iframe)throw new gi(hi.PaymentNotInitialized);const i=this.iframe.contentWindow;if(null===i)throw new gi(hi.PaymentNotInitialized);i.postMessage("tokenize",this.monerisURL(!!t)),this.windowEventListener=i=>{if("string"==typeof i.data&&i.origin===`https://${t?"esqa":"www3"}.moneris.com`)try{e(this.handleMonerisResponse(i))}catch(e){n(e)}},window.addEventListener("message",this.windowEventListener)});void 0!==a&&(yield this.paymentIntegrationService.submitPayment({methodId:e.methodId,paymentData:{nonce:a,shouldSaveInstrument:r,shouldSetAsDefaultInstrument:o}}))})}executeWithVaulted(e){return Th(this,void 0,void 0,function*(){if(this.hostedForm){const t=this.hostedForm;return yield t.validate(),yield t.submit(e),this.paymentIntegrationService.loadCurrentOrder()}return this.paymentIntegrationService.submitPayment(e)})}shouldShowTSVHostedForm(e){return this.isHostedPaymentFormEnabled(e)&&this.isHostedFieldAvailable()}isHostedPaymentFormEnabled(e){const t=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e);return Boolean(t.config.isHostedFormEnabled)}isHostedFieldAvailable(){var e;const t=this.getInitializeOptions(),n=H(null===(e=t.form)||void 0===e?void 0:e.fields,E);return!E(n)}getInitializeOptions(){if(!this.initializeOptions)throw new gi(hi.PaymentNotInitialized);return this.initializeOptions}mountCardVerificationfields(e){var t;return Th(this,void 0,void 0,function*(){const n=null===(t=this.paymentIntegrationService.getState().getStoreConfig())||void 0===t?void 0:t.paymentSettings.bigpayBaseUrl;if(!n)throw new pi(ui.MissingCheckoutConfig);const i=this.paymentIntegrationService.createHostedForm(n,e);return yield i.attach(),i})}createIframe(e,t,n,i){const r=document.getElementById(e);if(!r)throw new ki("Unable to create iframe without valid container ID.");const o=document.createElement("iframe"),a={id:t.profileId,pmmsg:!0,display_labels:1,enable_exp:1,enable_cvd:1,css_body:(null==i?void 0:i.cssBody)||"font-family: Arial, Helvetica,sans-serif;background: transparent;",css_textbox:(null==i?void 0:i.cssTextbox)||"border-radius:4px;border: 2px solid rgb(00,00,00);width: 100%;font-weight: 600;padding: 8px 8px;outline: 0;",css_textbox_pan:(null==i?void 0:i.cssTextboxCardNumber)||"width: 240px;",css_textbox_exp:(null==i?void 0:i.cssTextboxExpiryDate)||"margin-bottom: 0;width: calc(30% - 12px);",css_textbox_cvd:(null==i?void 0:i.cssTextboxCVV)||"margin-bottom: 0;width: calc(30% - 12px);",css_input_label:(null==i?void 0:i.cssInputLabel)||"font-size: 10px;position: relative;top: 8px;left: 6px;background: rgb(255,255,255);padding: 3px 2px;color: rgb(66,66,66);font-weight: 600;z-index: 2;",pan_label:t.creditCardLabel||"Credit Card Number",exp_label:t.expiryDateLabel||"Expiration",cvd_label:t.cvdLabel||"CVD"},s=B(a,(e,t)=>`${t}=${e}`).join("&");return o.width="100%",o.height="100%",o.name=Dh,o.id=Dh,o.style.border="none",o.src=`${this.monerisURL(n)}?${s}`,o.allow="payment",r.appendChild(o),o}handleMonerisResponse(e){const t=JSON.parse(e.data);if("001"!==t.responseCode[0])throw new Error(t.errorMessage);return t.dataKey}monerisURL(e){return`https://${e?"esqa":"www3"}.moneris.com/HPPtoken/index.php`}}const zh=Rt(e=>new Mh(e),[{id:"moneris"}]);class Nh{constructor(e){this._paymentIntegrationService=e}execute(e,t){return n=this,i=void 0,o=function*(){yield this._paymentIntegrationService.submitOrder(G(e,"payment"),t)},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}finalize(){return Promise.reject(new Id)}initialize(){return Promise.resolve()}deinitialize(){return Promise.resolve()}}const xh=Rt(e=>new Nh(e),[{id:"nopaymentdatarequired"}]);class Fh{constructor(e){this._paymentIntegrationService=e}execute(e,t){return n=this,i=void 0,o=function*(){return yield this._paymentIntegrationService.submitOrder(Object.assign(Object.assign({},e),{payment:e.payment?{methodId:e.payment.methodId}:void 0}),t),Promise.resolve()},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}finalize(){return Promise.reject(new Id)}initialize(){return Promise.resolve()}deinitialize(){return Promise.resolve()}}const Rh=Rt(e=>new Fh(e),[{type:"PAYMENT_TYPE_OFFLINE"}]);var Lh=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Bh{constructor(e){this._paymentIntegrationService=e}execute(e,t){return Lh(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),r=this._shouldSubmitFullPayload(n)?e:i,o=n&&n.paymentData,a=o&&Cd(o)&&o.instrumentId||void 0,s=o&&Ad(o)&&o.shouldSaveInstrument||void 0,d=o&&Ad(o)&&o.shouldSetAsDefaultInstrument||void 0;if(!n)throw new fo(["payment"]);const{methodId:c,gatewayId:l}=n;yield this._paymentIntegrationService.submitOrder(r,t),yield this._paymentIntegrationService.initializeOffsitePayment({methodId:c,gatewayId:l,instrumentId:a,shouldSaveInstrument:s,shouldSetAsDefaultInstrument:d})})}finalize(e){return Lh(this,void 0,void 0,function*(){const t=this._paymentIntegrationService.getState(),n=t.getOrder(),i=t.getPaymentStatus();if(!n||i!==Yc.ACKNOWLEDGE&&i!==Yc.FINALIZE)return Promise.reject(new Id);yield this._paymentIntegrationService.finalizeOrder(e)})}initialize(){return Promise.resolve()}deinitialize(){return Promise.resolve()}_shouldSubmitFullPayload(e){return!!e&&("adyen"===e.gatewayId||"barclaycard"===e.gatewayId)}}const jh=Rt(e=>new Bh(e),[{type:"PAYMENT_TYPE_HOSTED"}]),Uh={"background-color":"rgba(0, 0, 0, 0.4)","z-index":"1000"},qh=function({styles:e}){const t={};return e.color&&(t.color=e.color),e.layout&&(t.layout=e.layout),(e["logo-type"]||e["logo-position"])&&(t.logo={},e["logo-type"]&&(t.logo.type=e["logo-type"]),e["logo-position"]&&(t.logo.position=e["logo-position"])),e.ratio&&(t.ratio=e.ratio),(e["text-color"]||e["text-size"])&&(t.text={},e["text-color"]&&(t.text.color=e["text-color"]),e["text-size"]&&(t.text.size=+e["text-size"])),t};var Vh=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Gh{constructor(e,t,n,i){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t,this.paypalCommerceSdk=n,this.loadingIndicator=i}initialize(e){var t;return Vh(this,void 0,void 0,function*(){const{methodId:n,paypalcommerce:i}=e||{};if(this.paypalcommerce=i,!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!i)throw new ki('Unable to initialize payment because "options.paypalcommerce" argument is not provided.');yield this.paymentIntegrationService.loadPaymentMethod(n);const r=this.paymentIntegrationService.getState(),o=r.getPaymentMethodOrThrow(n),{container:a,bannerContainerId:s}=i,{orderId:d,paypalBNPLConfiguration:c=[],isPayPalCreditAvailable:l}=o.initializationData||{};if(void 0!==s){if(!document.getElementById(s))return void console.error("Unable to create banner without valid banner container ID.");const e=null==c?void 0:c.find(({id:e})=>"checkout"===e);if(l||!(null==e?void 0:e.status))return;const t=yield this.paypalCommerceSdk.getPayPalMessages(o,r.getCartOrThrow().currency.code);return t&&"function"==typeof(null==t?void 0:t.Messages)?this.renderMessages(t,s,e):void console.error("[BC PayPalCommerce PayLater]: banner could not be rendered, due to issues with loading PayPal SDK")}d?this.orderId=null===(t=o.initializationData)||void 0===t?void 0:t.orderId:(this.loadingIndicatorContainer=null==a?void 0:a.split("#")[1],yield this.paypalCommerceIntegrationService.loadPayPalSdk(n),i.onInit&&"function"==typeof i.onInit&&i.onInit(()=>this.renderButton(n,i)),(void 0===i.shouldRenderPayPalButtonOnInitialization||i.shouldRenderPayPalButtonOnInitialization)&&this.renderButton(n,i))})}execute(e,t){var n,i;return Vh(this,void 0,void 0,function*(){const{payment:r}=e,o=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),{onError:a}=this.paypalcommerce||{};if(!r)throw new fo(["payment"]);const{methodId:s,paymentData:d}=r;if(this.isPayPalVaultedInstrumentPaymentData(d)&&!this.orderId&&(this.orderId=yield this.createOrder()),!this.orderId)throw new co;const c=this.isPayPalVaultedInstrumentPaymentData(d)?this.prepareVaultedInstrumentPaymentPayload(s,this.orderId,d):this.preparePaymentPayload(s,this.orderId,d);try{yield this.paymentIntegrationService.submitOrder(o,t),yield this.paymentIntegrationService.submitPayment(c)}catch(e){if(function(e){var t;return wa(e)&&"offsite_redirect"===(null===(t=e.body.additional_action_required)||void 0===t?void 0:t.type)}(e)){const t=null===(i=null===(n=e.body.additional_action_required)||void 0===n?void 0:n.data)||void 0===i?void 0:i.redirect_url;return new Promise(()=>window.location.replace(t))}return this.isProviderError(e)&&(yield this.paypalCommerceIntegrationService.loadPayPalSdk(r.methodId),yield new Promise((e,t)=>{var n;this.paypalcommerce&&(null===(n=this.paypalButton)||void 0===n||n.close(),this.renderButton(r.methodId,this.paypalcommerce),this.handleError(new Error("INSTRUMENT_DECLINED"),a)),t()})),this.handleError(e,a),Promise.reject()}})}finalize(){return Promise.reject(new Id)}deinitialize(){var e;return this.orderId=void 0,null===(e=this.paypalButton)||void 0===e||e.close(),Promise.resolve()}prepareVaultedInstrumentPaymentPayload(e,t,n){const{instrumentId:i,shouldSetAsDefaultInstrument:r}=n,o=!this.isTrustedVaultingFlow(n);return o?{methodId:e,paymentData:{shouldSaveInstrument:o,shouldSetAsDefaultInstrument:r,formattedPayload:{paypal_account:{order_id:t}}}}:{methodId:e,paymentData:{instrumentId:i,shouldSetAsDefaultInstrument:r,formattedPayload:{paypal_account:{order_id:t},bigpay_token:{token:i}}}}}preparePaymentPayload(e,t,n){const{shouldSaveInstrument:i=!1,shouldSetAsDefaultInstrument:r=!1}=Ad(n)?n:{};return{methodId:e,paymentData:{shouldSaveInstrument:i,shouldSetAsDefaultInstrument:r,formattedPayload:{paypal_account:{order_id:t}}}}}renderButton(e,t){var n,i,r,o;const a=this.paypalCommerceIntegrationService.getPayPalSdkOrThrow(),s=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{paymentButtonStyles:d}=s.initializationData||{},{checkoutPaymentButtonStyles:c}=d||{},{container:l,onError:u,onRenderButton:h,onValidate:p,submitForm:m}=t;if(!l)throw new ki('Unable to initialize payment because "container" argument is not provided.');const y=Object.assign(Object.assign({},this.isPaypalCommerceAppSwitchEnabled(e)&&{appSwitchWhenAvailable:!0}),{fundingSource:a.FUNDING.PAYPAL,style:this.paypalCommerceIntegrationService.getValidButtonStyle(c),createOrder:()=>this.createOrder(),onClick:(e,t)=>this.handleClick(t,p),onApprove:e=>this.handleApprove(e,m),onError:e=>this.handleError(e,u),onCancel:()=>this.toggleLoadingIndicator(!1)});this.paypalButton=a.Buttons(y),this.paypalButton.isEligible()&&(h&&"function"==typeof h&&h(),(null===(i=(n=this.paypalButton).hasReturned)||void 0===i?void 0:i.call(n))&&this.isPaypalCommerceAppSwitchEnabled(e)?null===(o=(r=this.paypalButton).resume)||void 0===o||o.call(r):this.paypalButton.render(l))}handleClick(e,t){return Vh(this,void 0,void 0,function*(){const{resolve:n,reject:i}=e;return null==t?void 0:t(()=>(this.toggleLoadingIndicator(!0),n()),i)})}handleApprove({orderID:e},t){this.orderId=e,null==t||t()}handleError(e,t){this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}createOrder(){return Vh(this,void 0,void 0,function*(){const e=this.getFieldsValues();return this.paypalCommerceIntegrationService.createOrder("paypalcommercecheckout",{shouldSaveInstrument:(null==e?void 0:e.shouldSaveInstrument)||!1})})}getFieldsValues(){const{getFieldsValues:e}=this.paypalcommerce||{};return"function"==typeof e?e():void 0}isTrustedVaultingFlow(e){if(e&&Cd(e)){const t=this.paymentIntegrationService.getState().getInstruments(),n=null==t?void 0:t.find(t=>Qd(t)&&t.bigpayToken===e.instrumentId);return!(Qd(n)&&!n.trustedShippingAddress)}return!1}toggleLoadingIndicator(e){e&&this.loadingIndicatorContainer?this.loadingIndicator.show(this.loadingIndicatorContainer):this.loadingIndicator.hide()}isPayPalVaultedInstrumentPaymentData(e){return!!e&&Cd(e)&&Ad(e)}renderMessages(e,t,n){const i={amount:this.paymentIntegrationService.getState().getCheckoutOrThrow().outstandingBalance,placement:"payment",style:qh(n)};e.Messages(i).render(`#${t}`)}isProviderError(e){var t,n,i;return!!function(e){return"object"==typeof e&&null!==e&&"errors"in e}(e)&&"INSTRUMENT_DECLINED"===(null===(i=null===(n=((null===(t=null==e?void 0:e.errors)||void 0===t?void 0:t.filter(e=>e.provider_error))||[])[0])||void 0===n?void 0:n.provider_error)||void 0===i?void 0:i.code)}isPaypalCommerceAppSwitchEnabled(e){var t;return(null===(t=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e).initializationData)||void 0===t?void 0:t.isAppSwitchEnabled)||!1}}const Hh=Rt(e=>new Gh(e,ms(e),new Va(a()),new sd({containerStyles:Uh})),[{id:"paypalcommerce"}]);var $h=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Wh{constructor(e,t,n,i){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t,this.loadingIndicator=n,this.paypalCommerceSdk=i}initialize(e){return $h(this,void 0,void 0,function*(){const{methodId:t,paypalcommerce:n,paypalcommercecredit:i}=e||{},r=i||n;if(!t)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!r)throw new ki('Unable to initialize payment because "options.paypalcommerce" argument is not provided.');yield this.paymentIntegrationService.loadPaymentMethod(t);const o=this.paymentIntegrationService.getState(),a=o.getPaymentMethodOrThrow(t),{paypalBNPLConfiguration:s=[],orderId:d}=a.initializationData||{},{bannerContainerId:c,container:l}=r;if(void 0!==c){if(!document.getElementById(c))return void console.error("Unable to create banner without valid banner container ID.");const e=s&&s.find(({id:e})=>"checkout"===e);if(!(null==e?void 0:e.status))return;const t=yield this.paypalCommerceSdk.getPayPalMessages(a,o.getCartOrThrow().currency.code);return this.renderMessages(t,c,e)}d?this.orderId=d:(yield this.paypalCommerceIntegrationService.loadPayPalSdk(t),this.loadingIndicatorContainer=null==l?void 0:l.split("#")[1],this.renderButton(t,r))})}execute(e,t){return $h(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);if(!this.orderId)throw new co;yield this.paymentIntegrationService.submitOrder(i,t),yield this.paypalCommerceIntegrationService.submitPayment(n.methodId,this.orderId)})}finalize(){return Promise.reject(new Id)}deinitialize(){var e;return this.orderId=void 0,null===(e=this.paypalButton)||void 0===e||e.close(),Promise.resolve()}renderButton(e,t){if(!(null==t?void 0:t.container))throw new ki('Unable to initialize payment because "container" argument is not provided.');const n=this.paypalCommerceIntegrationService.getPayPalSdkOrThrow(),i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{paymentButtonStyles:r}=i.initializationData||{},{checkoutPaymentButtonStyles:o}=r||{},{container:a,onError:s,onRenderButton:d,onValidate:c,submitForm:l}=t,u=[n.FUNDING.PAYLATER,n.FUNDING.CREDIT];let h=!1;u.forEach(e=>{if(h)return;const t={fundingSource:e,style:this.paypalCommerceIntegrationService.getValidButtonStyle(o),createOrder:()=>this.paypalCommerceIntegrationService.createOrder("paypalcommercecreditcheckout"),onClick:(e,t)=>this.handleClick(t,c),onApprove:e=>this.handleApprove(e,l),onCancel:()=>this.toggleLoadingIndicator(!1),onError:e=>this.handleError(e,s)};if(this.paypalButton=n.Buttons(t),this.paypalButton.isEligible()||e!==n.FUNDING.PAYLATER){if(!this.paypalButton.isEligible()&&e===n.FUNDING.CREDIT)throw new Ti(`PayPal ${e} is not available for your region. Please use PayPal Checkout instead.`);d&&"function"==typeof d&&d(),this.paypalButton.render(a),h=!0}})}handleClick(e,t){return $h(this,void 0,void 0,function*(){const{resolve:n,reject:i}=e;if(t&&"function"==typeof t)return t(()=>(this.toggleLoadingIndicator(!0),n()),i)})}handleApprove({orderID:e},t){this.orderId=e,t&&"function"==typeof t&&t()}handleError(e,t){this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}toggleLoadingIndicator(e){e&&this.loadingIndicatorContainer?this.loadingIndicator.show(this.loadingIndicatorContainer):this.loadingIndicator.hide()}renderMessages(e,t,n){const i={amount:this.paymentIntegrationService.getState().getCheckoutOrThrow().outstandingBalance,placement:"payment",style:qh(n)};e.Messages(i).render(`#${t}`)}}const Yh=Rt(e=>new Wh(e,ms(e),new sd({containerStyles:Uh}),bs()),[{id:"paypalcommercecredit"}]);var Kh=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Jh{constructor(e,t,n){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t,this.loadingIndicator=n}initialize(e){var t,n;return Kh(this,void 0,void 0,function*(){const{methodId:i,paypalcommerce:r,paypalcommercevenmo:o}=e||{},a=o||r;if(!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!a)throw new ki('Unable to initialize payment because "options.paypalcommercevenmo" argument is not provided.');yield this.paymentIntegrationService.loadPaymentMethod(i);const s=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(i);(null===(t=s.initializationData)||void 0===t?void 0:t.orderId)?this.orderId=null===(n=s.initializationData)||void 0===n?void 0:n.orderId:(yield this.paypalCommerceIntegrationService.loadPayPalSdk(i),this.loadingIndicatorContainer=a.container.split("#")[1],this.renderButton(i,a))})}execute(e,t){return Kh(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);if(!this.orderId)throw new co;yield this.paymentIntegrationService.submitOrder(i,t),yield this.paypalCommerceIntegrationService.submitPayment(n.methodId,this.orderId)})}finalize(){return Promise.reject(new Id)}deinitialize(){var e;return this.orderId=void 0,null===(e=this.paypalButton)||void 0===e||e.close(),Promise.resolve()}renderButton(e,t){const n=this.paypalCommerceIntegrationService.getPayPalSdkOrThrow(),i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),{paymentButtonStyles:r}=i.initializationData||{},{checkoutPaymentButtonStyles:o}=r||{},{container:a,onError:s,onRenderButton:d,onValidate:c,submitForm:l}=t,u={fundingSource:n.FUNDING.VENMO,style:this.paypalCommerceIntegrationService.getValidButtonStyle(o),createOrder:()=>this.paypalCommerceIntegrationService.createOrder("paypalcommercevenmocheckout"),onClick:(e,t)=>this.handleClick(t,c),onApprove:e=>this.handleApprove(e,l),onCancel:()=>this.toggleLoadingIndicator(!1),onError:e=>this.handleError(e,s)};if(this.paypalButton=n.Buttons(u),!this.paypalButton.isEligible())throw new Ti("PayPal Venmo is not available for your region. Please use PayPal Checkout instead.");d&&"function"==typeof d&&d(),this.paypalButton.render(a)}handleClick(e,t){return Kh(this,void 0,void 0,function*(){const{resolve:n,reject:i}=e;return t(()=>(this.toggleLoadingIndicator(!0),n()),i)})}handleApprove({orderID:e},t){this.orderId=e,t(),this.toggleLoadingIndicator(!1)}handleError(e,t){this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}toggleLoadingIndicator(e){e&&this.loadingIndicatorContainer?this.loadingIndicator.show(this.loadingIndicatorContainer):this.loadingIndicator.hide()}}const Zh=Rt(e=>new Jh(e,ms(e),new sd({styles:{backgroundColor:"black"}})),[{id:"paypalcommercevenmo"}]);var Qh=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Xh{constructor(e,t,n,i,r=3e3,o=3e5){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t,this.paypalCommerceSdk=n,this.loadingIndicator=i,this.pollingInterval=r,this.maxPollingIntervalTime=o,this.pollingTimer=0,this.stopPolling=V,this.isPollingEnabled=!1}initialize(e){return Qh(this,void 0,void 0,function*(){const{gatewayId:t,methodId:n,paypalcommerce:i,paypalcommercealternativemethods:r}=e,o=r||i;if(this.paypalcommercealternativemethods=r,!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.gatewayId" argument is not provided.');if(!o)throw new ki('Unable to initialize payment because "options.paypalcommercealternativemethods" argument is not provided.');const a=this.paymentIntegrationService.getState(),s=a.getPaymentMethodOrThrow(n,t),{orderId:d,shouldRenderFields:c}=s.initializationData||{},l=a.getStoreConfigOrThrow().checkoutSettings.features;this.isPollingEnabled=Wt(l,"PAYPAL-5192.paypal_commerce_ideal_polling"),d?this.orderId=d:(this.paypalApms=yield this.paypalCommerceSdk.getPayPalApmsSdk(s,a.getCartOrThrow().currency.code),this.loadingIndicatorContainer=o.container.split("#")[1],this.renderButton(n,t,o),c&&this.renderFields(n,o))})}execute(e,t){return Qh(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);const{methodId:r,gatewayId:o}=n;if(!this.orderId)throw new co;this.isPollingEnabled&&"ideal"===r&&(yield new Promise((e,t)=>{this.initializePollingMechanism(r,e,t,o)})),this.isNonInstantPaymentMethod(r)||(yield this.paymentIntegrationService.submitOrder(i,t)),yield this.paypalCommerceIntegrationService.submitPayment(r,this.orderId,o)})}finalize(){return Promise.reject(new Id)}deinitialize(){var e;return this.orderId=void 0,this.isPollingEnabled&&this.resetPollingMechanism(),null===(e=this.paypalButton)||void 0===e||e.close(),Promise.resolve()}initializePollingMechanism(e,t,n,i){return Qh(this,void 0,void 0,function*(){yield new Promise((e,t)=>{const n=setTimeout(e,this.pollingInterval);this.stopPolling=()=>(clearTimeout(n),this.toggleLoadingIndicator(!1),t())});try{this.pollingTimer+=this.pollingInterval;const r=yield this.paypalCommerceIntegrationService.getOrderStatus(i),o=r===ss.Approved,a=r===ss.PollingError;if(o)return this.deinitializePollingMechanism(),t();if(a)return n();if(!o&&this.pollingTimer<this.maxPollingIntervalTime)return yield this.initializePollingMechanism(e,t,n,i);yield this.reinitializeStrategy({methodId:e,gatewayId:i,paypalcommercealternativemethods:this.paypalcommercealternativemethods}),this.handleError(new lc)}catch(e){n()}})}deinitializePollingMechanism(){this.stopPolling(),this.pollingTimer=0}resetPollingMechanism(){this.deinitializePollingMechanism()}reinitializeStrategy(e){return Qh(this,void 0,void 0,function*(){yield this.deinitialize(),yield this.initialize(e)})}handleError(e){const{onError:t}=this.paypalcommercealternativemethods||{};this.isPollingEnabled&&this.resetPollingMechanism(),this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}renderButton(e,t,n){const i=this.getPaypalAmpsSdkOrThrow(),r=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e,t),{buttonStyle:o}=r.initializationData||{},{container:a,onError:s,onRenderButton:d,submitForm:c}=n,l={fundingSource:e,style:this.paypalCommerceIntegrationService.getValidButtonStyle(o),onInit:(e,t)=>n.onInitButton(t),createOrder:()=>this.onCreateOrder(e,t,n),onApprove:e=>this.handleApprove(e,c),onCancel:()=>{this.toggleLoadingIndicator(!1),this.deinitializePollingMechanism()},onError:e=>{this.deinitializePollingMechanism(),this.handleFailure(e,s)},onClick:(e,t)=>Qh(this,void 0,void 0,function*(){return n.onValidate(t.resolve,t.reject)})};this.paypalButton=i.Buttons(l),this.paypalButton.isEligible()&&(d&&"function"==typeof d&&d(),this.paypalButton.render(a))}onCreateOrder(e,t,n){return Qh(this,void 0,void 0,function*(){const{onValidate:i}=n;yield i(()=>(this.toggleLoadingIndicator(!0),()=>Promise.resolve()),V);const r=yield this.paypalCommerceIntegrationService.createOrder("paypalcommercealternativemethodscheckout");if(this.isNonInstantPaymentMethod(e)){const n={useStoreCredit:!1},i={params:{methodId:e,gatewayId:t}};yield this.paymentIntegrationService.submitOrder(n,i),yield this.paypalCommerceIntegrationService.submitPayment(e,r,t)}return r})}handleApprove({orderID:e},t){this.orderId=e,t()}handleFailure(e,t){this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}renderFields(e,t){const n=this.getPaypalAmpsSdkOrThrow(),i=this.paymentIntegrationService.getState(),{firstName:r,lastName:o,email:a}=i.getBillingAddressOrThrow(),{apmFieldsContainer:s,apmFieldsStyles:d}=t;if(!s)throw new ki('Unable to initialize payment because "options.paypalcommercealternativemethods" argument should contain "apmFieldsContainer".');const c=document.querySelector(s);c&&(c.innerHTML="");const l={fundingSource:e,style:d||{},fields:{name:{value:`${r} ${o}`},email:{value:a}}};n.PaymentFields(l).render(s)}toggleLoadingIndicator(e){e&&this.loadingIndicatorContainer?this.loadingIndicator.show(this.loadingIndicatorContainer):this.loadingIndicator.hide()}isNonInstantPaymentMethod(e){return e.toUpperCase()in as}getPaypalAmpsSdkOrThrow(){if(!this.paypalApms)throw new Oi;return this.paypalApms}}const ep=Rt(e=>new Xh(e,ms(e),bs(),new sd({containerStyles:Uh})),[{gateway:"paypalcommercealternativemethods"}]);var tp=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class np{constructor(e,t,n,i){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t,this.paypalCommerceSdk=n,this.paypalCommerceFastlaneUtils=i}initialize(e){return tp(this,void 0,void 0,function*(){const{methodId:t,paypalcommercecreditcards:n,paypalcommerce:i}=e,r=n||i,{form:o,onCreditCardFieldsRenderingError:a,onLoadComplete:s}=r||{};if(!t)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!o)throw new ki('Unable to proceed because "options.paypalcommercecreditcards.form" argument is not provided.');this.hostedFormOptions=o,this.isCreditCardForm=gc(o.fields),this.isCreditCardVaultedForm=vc(o.fields)&&!this.hasUndefinedValues(),yield this.paymentIntegrationService.loadPaymentMethod(t),yield this.paypalCommerceIntegrationService.loadPayPalSdk(t,void 0,!0,!0),null==s||s(),(this.isCreditCardForm||this.isCreditCardVaultedForm)&&(yield this.initializeFields(o,a)),this.shouldInitializePayPalFastlane(t)&&(yield this.initializePayPalFastlaneOrThrow(t))})}execute(e,t){return tp(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),{methodId:r,paymentData:o}=n||{};if(!n||!r)throw new fo(["payment"]);if(this.executionPaymentData=o,this.isCreditCardForm||this.isCreditCardVaultedForm)yield this.validateHostedFormOrThrow(),yield this.submitHostedForm();else{const{orderId:e}=yield this.paypalCommerceIntegrationService.createOrderCardFields("paypalcommercecreditcardscheckout",this.getInstrumentParams());this.returnedOrderId=e}const a=this.preparePaymentPayload(r,o,this.returnedOrderId,this.returnedVaultedToken);yield this.paymentIntegrationService.submitOrder(i,t),yield this.paymentIntegrationService.submitPayment(a)})}finalize(){return Promise.reject(new Id)}deinitialize(){var e,t,n,i;return tp(this,void 0,void 0,function*(){return yield null===(e=this.cvvField)||void 0===e?void 0:e.close(),yield null===(t=this.expiryField)||void 0===t?void 0:t.close(),yield null===(n=this.numberField)||void 0===n?void 0:n.close(),yield null===(i=this.nameField)||void 0===i?void 0:i.close(),Promise.resolve()})}preparePaymentPayload(e,t,n,i){const{shouldSaveInstrument:r=!1,shouldSetAsDefaultInstrument:o=!1}=Ad(t)?t:{},a=t&&Cd(t)?t.instrumentId:void 0,s=H({verification_nonce:i,token:a},T);return{methodId:e,paymentData:{shouldSaveInstrument:r,shouldSetAsDefaultInstrument:o,instrumentId:a,formattedPayload:Object.assign(Object.assign({},i||a?{bigpay_token:s}:{}),n?{card_with_order:{order_id:n}}:{})}}}initializeFields(e,t){return tp(this,void 0,void 0,function*(){const{fields:n,styles:i}=e,r=this.paypalCommerceIntegrationService.getPayPalSdkOrThrow(),o=this.getExecuteCallback(n),a=Object.assign({style:this.getInputStyles(i),onApprove:({orderID:e,vaultSetupToken:t,liabilityShift:n})=>{if(n===ts.No||n===ts.Unknown)throw new Error;return this.handleApprove({orderID:e,vaultSetupToken:t})},onError:()=>{throw new so},inputEvents:{onChange:t=>this.onChangeHandler(e,t),onFocus:t=>this.onFocusHandler(e,t),onBlur:t=>this.onBlurHandler(e,t),onInputSubmitRequest:t=>this.onInputSubmitRequest(e,t)}},o);if(this.cardFields=yield r.CardFields(a),!this.cardFields.isEligible())throw new gi(hi.PaymentNotInitialized);try{this.stylizeInputContainers(n),gc(n)&&(yield this.renderFields(n)),vc(n)&&(yield this.renderVaultedFields(n))}catch(e){"function"==typeof t&&t(e)}})}getExecuteCallback(e){return vc(e)?this.createVaultSetupTokenCallback():this.createOrderCallback()}createVaultSetupTokenCallback(){return{createVaultSetupToken:()=>tp(this,void 0,void 0,function*(){const{setupToken:e}=(yield this.paypalCommerceIntegrationService.createOrderCardFields("paypalcommercecreditcardscheckout",Object.assign(Object.assign({},this.getInstrumentParams()),{setupToken:!0})))||{};return e})}}createOrderCallback(){return{createOrder:()=>tp(this,void 0,void 0,function*(){const{orderId:e}=(yield this.paypalCommerceIntegrationService.createOrderCardFields("paypalcommercecreditcardscheckout",this.getInstrumentParams()))||{};return e})}}handleApprove({orderID:e,vaultSetupToken:t}){e&&(this.returnedOrderId=e),t&&(this.returnedVaultedToken=t)}renderFields(e){var t,n,i,r;return tp(this,void 0,void 0,function*(){const o=this.getCardFieldsOrThrow();(null===(t=e.cardCode)||void 0===t?void 0:t.containerId)&&(this.cvvField=o.CVVField({placeholder:""}),yield this.cvvField.render(`#${e.cardCode.containerId}`)),(null===(n=e.cardExpiry)||void 0===n?void 0:n.containerId)&&(this.expiryField=o.ExpiryField(),yield this.expiryField.render(`#${e.cardExpiry.containerId}`)),(null===(i=e.cardName)||void 0===i?void 0:i.containerId)&&(this.nameField=o.NameField({placeholder:""}),yield this.nameField.render(`#${e.cardName.containerId}`)),(null===(r=e.cardNumber)||void 0===r?void 0:r.containerId)&&(this.numberField=o.NumberField({placeholder:""}),yield this.numberField.render(`#${e.cardNumber.containerId}`))})}renderVaultedFields(e){var t,n,i;return tp(this,void 0,void 0,function*(){const r=this.getCardFieldsOrThrow();(null===(t=e.cardCodeVerification)||void 0===t?void 0:t.containerId)&&(this.cvvField=r.CVVField({placeholder:""}),yield this.cvvField.render(`#${e.cardCodeVerification.containerId}`)),(null===(n=e.cardExpiryVerification)||void 0===n?void 0:n.containerId)&&(this.expiryField=r.ExpiryField(),yield this.expiryField.render(`#${e.cardExpiryVerification.containerId}`)),(null===(i=e.cardNumberVerification)||void 0===i?void 0:i.containerId)&&(this.numberField=r.NumberField({placeholder:""}),yield this.numberField.render(`#${e.cardNumberVerification.containerId}`))})}getInstrumentParams(){if(!this.executionPaymentData)return{};if(Ad(this.executionPaymentData)){const{shouldSaveInstrument:e,shouldSetAsDefaultInstrument:t}=this.executionPaymentData;return{shouldSaveInstrument:e,shouldSetAsDefaultInstrument:t}}if(Cd(this.executionPaymentData)){const{instrumentId:e}=this.executionPaymentData;return{instrumentId:e}}return{}}getFieldTypeByEmittedField({emittedBy:e}){return{fieldType:this.mapFieldType(e)}}submitHostedForm(){return tp(this,void 0,void 0,function*(){const e=this.getCardFieldsOrThrow(),t=this.paymentIntegrationService.getState().getBillingAddressOrThrow(),n={billingAddress:{company:t.company,addressLine1:t.address1,addressLine2:t.address2,adminArea1:t.stateOrProvinceCode,adminArea2:t.city,postalCode:t.postalCode,countryCode:t.countryCode}};try{this.isCreditCardVaultedForm?yield e.submit():yield e.submit(n)}catch(e){throw new so("Failed authentication. Please try to authorize again.")}})}validateHostedFormOrThrow(){var e,t;return tp(this,void 0,void 0,function*(){const n=this.getCardFieldsOrThrow(),i=yield n.getState().then(e=>e),r=this.getValidityData(i);if(!r.isValid)throw null===(t=null===(e=this.hostedFormOptions)||void 0===e?void 0:e.onValidate)||void 0===t||t.call(e,r),new So(this.mapValidationErrors(r.errors))})}getValidityData({fields:e}){const t=Object.assign({},e);delete t.cardNameField;const n=Object.keys(t);return{isValid:n.every(e=>{var n;return null===(n=t[e])||void 0===n?void 0:n.isValid}),errors:n.reduce((e,n)=>{var i;const r=this.mapFieldType(n);return Object.assign(Object.assign({},e),{[r]:(null===(i=t[n])||void 0===i?void 0:i.isValid)?void 0:[this.getInvalidErrorByFieldType(r)]})},{})}}getInvalidErrorByFieldType(e){switch(e){case yc.CardCode:case yc.CardCodeVerification:return{fieldType:e,message:"Invalid card code",type:"invalid_card_code"};case yc.CardNumber:case yc.CardNumberVerification:return{fieldType:e,message:"Invalid card number",type:"invalid_card_number"};case yc.CardExpiry:case yc.CardExpiryVerification:return{fieldType:e,message:"Invalid card expiry",type:"invalid_card_expiry"};default:return{fieldType:e,message:"Invalid field",type:"invalid"}}}mapValidationErrors(e={}){const t={};return Object.keys(e).forEach(n=>{var i,r;t[n]=[{message:(null===(r=null===(i=e[n])||void 0===i?void 0:i[0])||void 0===r?void 0:r.message)||"",type:n}]}),t}mapFieldType(e){switch(e){case"name":return yc.CardName;case"cardNumberField":case"number":return this.isCreditCardForm?yc.CardNumber:yc.CardNumberVerification;case"cardExpiryField":case"expiry":return this.isCreditCardForm?yc.CardExpiry:yc.CardExpiryVerification;case"cardCvvField":case"cvv":return this.isCreditCardForm?yc.CardCode:yc.CardCodeVerification;default:throw new Error("Unexpected field type")}}getCardFieldsOrThrow(){if(!this.cardFields)throw new gi(hi.PaymentNotInitialized);return this.cardFields}getInputStyles(e){var t,n,i;const r={"font-size":(null===(t=null==e?void 0:e.default)||void 0===t?void 0:t.fontSize)||"1rem","font-family":(null===(n=null==e?void 0:e.default)||void 0===n?void 0:n.fontFamily)||"Montserrat, Arial, Helvetica, sans-serif","font-weight":(null===(i=null==e?void 0:e.default)||void 0===i?void 0:i.fontWeight)||"400",outline:"none",padding:"9px 13px"},o=Object.assign(Object.assign({},r),{color:"#333333"});return{input:o,".invalid":Object.assign(Object.assign({},r),{color:"red"}),".valid":o,":focus":o}}stylizeInputContainers(e){Object.values(e||{}).forEach(e=>{const t=document.getElementById(`${(null==e?void 0:e.containerId)||""}`);t&&(t.style.padding="0px",t.style.boxShadow="none",t.style.border="none",t.style.background="transparent",t.style.marginBottom="10px",t.style.marginLeft="-5px")})}hasUndefinedValues(){return!this.hostedFormOptions||Object.values(this.hostedFormOptions.fields).some(e=>void 0===e)}onChangeHandler(e,t){var n;null===(n=null==e?void 0:e.onValidate)||void 0===n||n.call(e,this.getValidityData(t))}onFocusHandler(e,t){var n;null===(n=null==e?void 0:e.onFocus)||void 0===n||n.call(e,this.getFieldTypeByEmittedField(t))}onBlurHandler(e,t){var n;null===(n=null==e?void 0:e.onBlur)||void 0===n||n.call(e,this.getFieldTypeByEmittedField(t))}onInputSubmitRequest(e,t){var n;null===(n=null==e?void 0:e.onEnter)||void 0===n||n.call(e,this.getFieldTypeByEmittedField(t))}shouldInitializePayPalFastlane(e){var t,n;const i=this.paymentIntegrationService.getState(),r=i.getPaymentMethodOrThrow(e),o=i.getPaymentProviderCustomer(),a=(s=o)&&("authenticationState"in s||"addresses"in s||"instruments"in s)?o:{};var s;return(null===(t=null==r?void 0:r.initializationData)||void 0===t?void 0:t.isAcceleratedCheckoutEnabled)&&(null===(n=null==r?void 0:r.initializationData)||void 0===n?void 0:n.isPayPalCommerceAnalyticsV2Enabled)&&!(null==a?void 0:a.authenticationState)}initializePayPalFastlaneOrThrow(e){return tp(this,void 0,void 0,function*(){try{const t=this.paymentIntegrationService.getState(),n=t.getCartOrThrow(),i=t.getPaymentMethodOrThrow(e),{initializationData:r}=i;if(!(null==r?void 0:r.connectClientToken))return;const o=yield this.paypalCommerceSdk.getPayPalFastlaneSdk(i,n.currency.code,n.id);yield this.paypalCommerceFastlaneUtils.initializePayPalFastlane(o,!!(null==r?void 0:r.isDeveloperModeApplicable))}catch(e){}})}}const ip=Rt(e=>new np(e,ms(e),bs(),Ns()),[{id:"paypalcommercecreditcards"}]);var rp=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class op{constructor(e,t,n,i=3e3,r=3e5){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t,this.loadingIndicator=n,this.pollingInterval=i,this.maxPollingIntervalTime=r,this.pollingTimer=0,this.stopPolling=V}initialize(e){return rp(this,void 0,void 0,function*(){const{gatewayId:t,methodId:n,paypalcommerceratepay:i}=e;if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.gatewayId" argument is not provided.');if(!i)throw new ki('Unable to initialize payment because "options.paypalcommerceratepay" argument is not provided.');const{legalTextContainer:r,container:o,loadingContainerId:a}=i;if(!o)throw new ki('Unable to initialize payment because "options.container" argument is not provided.');if(!r)throw new ki('Unable to initialize payment because "options.legalTextContainer" argument is not provided.');if(!a)throw new ki('Unable to initialize payment because "options.loadingContainerId" argument is not provided.');this.loadingIndicatorContainer=a;const s=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(n,t),{merchantId:d}=s.initializationData||{};if(!d)throw new ki("Unable to initialize payment because merchantId argument is not provided.");this.paypalcommerceratepay=i,yield this.paypalCommerceIntegrationService.loadPayPalSdk(n),this.createFraudNetScript(d,n,t),this.loadFraudnetConfig(),this.renderLegalText(r,o)})}execute(e,t){return rp(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),{getFieldsValues:r}=this.paypalcommerceratepay||{};if(!n)throw new fo(["payment"]);if(!r||"function"!=typeof r)throw new ki('Unable to initialize payment because "options.getFieldsValues" argument is not provided.');this.toggleLoadingIndicator(!0);try{const e=yield this.paypalCommerceIntegrationService.createOrder("paypalcommercealternativemethodscheckout",{metadataId:this.guid}),{ratepayBirthDate:o,ratepayPhoneNumber:a,ratepayPhoneCountryCode:s}=r(),d={formattedPayload:{vault_payment_instrument:null,set_as_default_stored_instrument:null,device_info:null,method_id:n.methodId,rate_pay:{birth_date:this.normalizeDate(o),phone:{national_number:a,country_code:s.split("+")[1]}},paypal_account:{order_id:e}}};return yield this.paymentIntegrationService.submitOrder(i,t),yield this.paymentIntegrationService.submitPayment({methodId:n.methodId,paymentData:d}),yield new Promise((e,t)=>{this.initializePollingMechanism(n.methodId,e,t,n.gatewayId)})}catch(e){return this.handleError(e),new Promise((e,t)=>t())}})}finalize(){return Promise.reject(new Id)}deinitialize(){const{legalTextContainer:e}=this.paypalcommerceratepay||{},t=document.querySelectorAll('[data-id="fraudnetScript"]')[0],n=document.querySelectorAll('[data-id="fraudnetConfig"]')[0];if(this.deinitializePollingMechanism(),t.remove(),n.remove(),e){const t=document.getElementById(e);null==t||t.remove()}return Promise.resolve()}normalizeDate(e){const t=this.formatDate(e.getDate()),n=this.formatDate(e.getMonth()+1);return`${e.getFullYear()}-${n}-${t}`}formatDate(e){return`${e<10?0:""}${e}`}renderLegalText(e,t){const n=e,i=t.split("#")[1],r=document.getElementById(i),o=null==r?void 0:r.parentNode,a=document.createElement("div");a.style.marginBottom="20px",a.setAttribute("id",n),null==o||o.prepend(a);const s=this.paypalCommerceIntegrationService.getPayPalSdkOrThrow(),d=s.Legal({fundingSource:s.Legal.FUNDING.PAY_UPON_INVOICE});if(!document.getElementById(n))throw new ki('Unable to initialize payment because "legalTextContainerElement" argument is not found.');d.render(`#${n}`)}handleError(e){const{onError:t}=this.paypalcommerceratepay||{};this.resetPollingMechanism(),this.toggleLoadingIndicator(!1),t&&"function"==typeof t&&t(e)}createFraudNetScript(e,t,n){const i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(t,n),{testMode:r}=i.config,o=document.createElement("script");o.setAttribute("type","application/json"),o.setAttribute("fncls","fnparams-dede7cc5-15fd-4c75-a9f4-36c430ee3a99"),o.setAttribute("data-id","fraudnetScript"),this.guid=this.generateGUID();const a={f:this.guid,s:`${e}_checkout-page`,sandbox:r};o.innerHTML=JSON.stringify(a),document.body.appendChild(o)}generateGUID(){let e="";for(let t=0;t<32;t+=1)e+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"[Math.floor(62*Math.random())];return e}loadFraudnetConfig(){const e=document.createElement("script");e.setAttribute("data-id","fraudnetConfig"),e.src="https://c.paypal.com/da/r/fb.js",document.body.appendChild(e)}reinitializeStrategy(e){return rp(this,void 0,void 0,function*(){yield this.deinitialize(),yield this.initialize(e)})}initializePollingMechanism(e,t,n,i){return rp(this,void 0,void 0,function*(){yield new Promise((e,t)=>{const n=setTimeout(e,this.pollingInterval);this.stopPolling=()=>(clearTimeout(n),this.toggleLoadingIndicator(!1),t())});try{this.pollingTimer+=this.pollingInterval;const r=yield this.paypalCommerceIntegrationService.getOrderStatus("paypalcommercealternativemethods",{params:{useMetadata:!0}}),o=r===ss.PollingStop,a=r===ss.PollingError;if(o)return this.deinitializePollingMechanism(),t();if(a)return n();if(!o&&this.pollingTimer<this.maxPollingIntervalTime)return yield this.initializePollingMechanism(e,t,n,i);yield this.reinitializeStrategy({methodId:e,gatewayId:i,paypalcommerceratepay:this.paypalcommerceratepay}),this.handleError(new lc)}catch(e){this.handleError(e),n()}})}deinitializePollingMechanism(){this.stopPolling(),this.pollingTimer=0}resetPollingMechanism(){this.deinitializePollingMechanism()}toggleLoadingIndicator(e){e&&this.loadingIndicatorContainer?this.loadingIndicator.show(this.loadingIndicatorContainer):this.loadingIndicator.hide()}}const ap=Rt(e=>new op(e,ms(e),new sd({containerStyles:Object.assign(Object.assign({},Uh),{position:"fixed"})})),[{gateway:"paypalcommercealternativemethods",id:"ratepay"}]);function sp(e){return!!e&&("authenticationState"in e||"addresses"in e||"instruments"in e)}var dp=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class cp{constructor(e,t,n,i){this.paymentIntegrationService=e,this.paypalCommerceRequestSender=t,this.paypalCommerceSdk=n,this.paypalCommerceFastlaneUtils=i}initialize(e){var t,n;return dp(this,void 0,void 0,function*(){const{methodId:i,paypalcommercefastlane:r}=e;if(this.methodId=i,this.paypalcommercefastlane=r,!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!r)throw new ki('Unable to initialize payment because "options.paypalcommercefastlane" argument is not provided.');if(!r.onInit||"function"!=typeof r.onInit)throw new ki('Unable to initialize payment because "options.paypalcommercefastlane.onInit" argument is not provided or it is not a function.');if(!r.onChange||"function"!=typeof r.onChange)throw new ki('Unable to initialize payment because "options.paypalcommercefastlane.onChange" argument is not provided or it is not a function.');yield this.paymentIntegrationService.loadPaymentMethod(i);const o=this.paymentIntegrationService.getState(),a=o.getCartOrThrow(),s=o.getPaymentMethodOrThrow(i),{isDeveloperModeApplicable:d,isFastlaneStylingEnabled:c}=s.initializationData||{};this.threeDSVerificationMethod=null===(t=s.initializationData)||void 0===t?void 0:t.threeDSVerificationMethod,this.paypalFastlaneSdk=yield this.paypalCommerceSdk.getPayPalFastlaneSdk(s,a.currency.code,a.id);const l=Fs(c?null===(n=null==s?void 0:s.initializationData)||void 0===n?void 0:n.fastlaneStyles:{},null==r?void 0:r.styles);yield this.paypalCommerceFastlaneUtils.initializePayPalFastlane(this.paypalFastlaneSdk,!!d,l),this.shouldRunAuthenticationFlow()&&(yield this.runPayPalAuthenticationFlowOrThrow(i)),yield this.initializePayPalPaymentComponent(),r.onInit(e=>this.renderPayPalPaymentComponent(e)),r.onChange(()=>this.handlePayPalStoredInstrumentChange(i))})}execute(e,t){return dp(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);const{paymentData:r,methodId:o}=n,a=r&&Cd(r);try{yield this.paymentIntegrationService.submitOrder(i,t);const e=a?yield this.prepareVaultedInstrumentPaymentPayload(o,r):yield this.preparePaymentPayload(o,r);yield this.paymentIntegrationService.submitPayment(e),this.paypalCommerceFastlaneUtils.removeStorageSessionId()}catch(e){if(function(e){return"object"==typeof e&&null!==e&&"message"in e&&"response"in e&&"body"in e.response&&"name"in e.response.body}(e)&&"INVALID_REQUEST"===e.response.body.name){const e={translationKey:"payment.errors.invalid_request_error"};return this.handleError(e),Promise.reject()}if(e instanceof Error&&"FastlaneError"!==e.name)throw e;return Promise.reject()}})}finalize(){return Promise.reject(new Id)}deinitialize(){return dp(this,void 0,void 0,function*(){return Promise.resolve()})}shouldRunAuthenticationFlow(){const e=this.paymentIntegrationService.getState(),t=e.getCartOrThrow(),n=e.getCustomerOrThrow(),i=e.getPaymentProviderCustomer(),r=sp(i)?i:{},o=this.paypalCommerceFastlaneUtils.getStorageSessionId();return!(!n.isGuest||(null==r?void 0:r.authenticationState)===Ds.CANCELED||(null==r?void 0:r.authenticationState)||o!==t.id)}runPayPalAuthenticationFlowOrThrow(e){return dp(this,void 0,void 0,function*(){try{const t=this.paymentIntegrationService.getState(),n=t.getCartOrThrow(),i=t.getCustomer(),r=t.getBillingAddress(),o=(null==i?void 0:i.email)||(null==r?void 0:r.email)||"",{customerContextId:a}=yield this.paypalCommerceFastlaneUtils.lookupCustomerOrThrow(o),s=yield this.paypalCommerceFastlaneUtils.triggerAuthenticationFlowOrThrow(a),{authenticationState:d,addresses:c,instruments:l}=this.paypalCommerceFastlaneUtils.mapPayPalFastlaneProfileToBcCustomerData(e,s);yield this.paymentIntegrationService.updatePaymentProviderCustomer({authenticationState:d,addresses:c,instruments:l}),s.authenticationState===Ds.CANCELED?this.paypalCommerceFastlaneUtils.removeStorageSessionId():this.paypalCommerceFastlaneUtils.updateStorageSessionId(n.id)}catch(e){}})}initializePayPalPaymentComponent(){return dp(this,void 0,void 0,function*(){const e=this.paymentIntegrationService.getState().getBillingAddressOrThrow(),t=e.phone,n=`${e.firstName} ${e.lastName}`.trim(),i=this.paypalCommerceFastlaneUtils.getPayPalFastlaneOrThrow(),r={fields:Object.assign({cardholderName:{prefill:n,enabled:!0}},t&&{phoneNumber:{prefill:t}})};this.paypalComponentMethods=yield i.FastlaneCardComponent(r)})}renderPayPalPaymentComponent(e){const t=this.getPayPalComponentMethodsOrThrow();if(!e)throw new ki('Unable to render card component because "container" argument is not provided.');t.render(e)}getPayPalComponentMethodsOrThrow(){if(!this.paypalComponentMethods)throw new Oi;return this.paypalComponentMethods}prepareVaultedInstrumentPaymentPayload(e,t){return dp(this,void 0,void 0,function*(){const{instrumentId:n}=t,i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e),r=this.isPaypalCommerceFastlaneThreeDSAvailable()&&i.config.is3dsEnabled;r||(yield this.createOrder(n));const o=r?yield this.get3DSNonce(n):n;return{methodId:e,paymentData:{formattedPayload:{paypal_fastlane_token:{order_id:this.orderId,token:o}}}}})}preparePaymentPayload(e,t){return dp(this,void 0,void 0,function*(){const n=this.paymentIntegrationService.getState(),i=n.getBillingAddressOrThrow(),r=n.getPaymentMethodOrThrow(e),o=`${i.firstName} ${i.lastName}`.trim(),{getPaymentToken:a}=this.getPayPalComponentMethodsOrThrow(),{id:s}=yield a({name:{fullName:o},billingAddress:this.paypalCommerceFastlaneUtils.mapBcToPayPalAddress(i)}),d=this.isPaypalCommerceFastlaneThreeDSAvailable()&&r.config.is3dsEnabled;d||(yield this.createOrder(s));const c=d?yield this.get3DSNonce(s):s,{shouldSaveInstrument:l=!1,shouldSetAsDefaultInstrument:u=!1}=Ad(t)?t:{};return{methodId:e,paymentData:Object.assign(Object.assign({},t),{shouldSaveInstrument:l,shouldSetAsDefaultInstrument:u,formattedPayload:{paypal_fastlane_token:{order_id:this.orderId,token:c}}})}})}createOrder(e){return dp(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState().getCartOrThrow().id;if(this.methodId){const{orderId:n}=yield this.paypalCommerceRequestSender.createOrder(this.methodId,{cartId:t,fastlaneToken:e});this.orderId=n}})}get3DSNonce(e){var t;return dp(this,void 0,void 0,function*(){const n=this.paymentIntegrationService.getState(),i=n.getCartOrThrow(),r=n.getOrderOrThrow(),o=n.getStoreConfigOrThrow().links.checkoutLink,a=null===(t=this.paypalFastlaneSdk)||void 0===t?void 0:t.ThreeDomainSecureClient;if(!a)throw new Oi;const s={amount:r.orderAmount.toFixed(2),currency:i.currency.code,nonce:e,threeDSRequested:"SCA_ALWAYS"===this.threeDSVerificationMethod,transactionContext:{experience_context:{locale:"en-US",return_url:o,cancel_url:o}}};if(yield a.isEligible(s)){const{liabilityShift:e,authenticationState:t,nonce:n}=yield a.show();if(e===ts.No||e===ts.Unknown||t===Os.Errored||t===Os.Cancelled)throw new co;if(t===Os.Succeeded)return yield this.createOrder(n),n}return e})}handlePayPalStoredInstrumentChange(e){return dp(this,void 0,void 0,function*(){const t=this.paypalCommerceFastlaneUtils.getPayPalFastlaneOrThrow(),{selectionChanged:n,selectedCard:i}=yield t.profile.showCardSelector();if(n){const t=this.paymentIntegrationService.getState().getPaymentProviderCustomer(),n=sp(t)?t:{},r=this.paypalCommerceFastlaneUtils.mapPayPalToBcInstrument(e,i)[0];return yield this.paymentIntegrationService.updatePaymentProviderCustomer(Object.assign(Object.assign({},n),{instruments:[r]})),r}})}isPaypalCommerceFastlaneThreeDSAvailable(){return Wt(this.paymentIntegrationService.getState().getStoreConfigOrThrow().checkoutSettings.features,"PROJECT-7080.paypalcommerce_fastlane_three_ds")}handleError(e){var t;(null===(t=this.paypalcommercefastlane)||void 0===t?void 0:t.onError)&&"function"==typeof this.paypalcommercefastlane.onError&&this.paypalcommercefastlane.onError(e)}}const lp=Rt(e=>{const{getHost:t}=e.getState();return new cp(e,new us(n({host:t()})),bs(),Ns())},[{id:"paypalcommerceacceleratedcheckout"}]);var up,hp,pp,mp,yp,gp;!function(e){e.HORIZONTAL="horizontal",e.VERTICAL="vertical"}(up||(up={})),function(e){e.SMALL="small",e.MEDIUM="medium",e.LARGE="large",e.RESPONSIVE="responsive"}(hp||(hp={})),function(e){e.GOLD="gold",e.BLUE="blue",e.SIlVER="silver",e.BLACK="black"}(pp||(pp={})),function(e){e.CHECKOUT="checkout",e.PAY="pay",e.BUYNOW="buynow",e.PAYPAL="paypal",e.CREDIT="credit"}(mp||(mp={})),function(e){e.PILL="pill",e.RECT="rect"}(yp||(yp={})),function(e){e.ACKNOWLEDGE="ACKNOWLEDGE",e.FINALIZE="FINALIZE",e.INITIALIZE="INITIALIZE"}(gp||(gp={}));var vp=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class fp{constructor(e,t){this.paymentIntegrationService=e,this.scriptLoader=t,this.useRedirectFlow=!1,this.window=window}initialize(e){return vp(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState();this.paymentMethod=t.getPaymentMethodOrThrow(e.methodId),this.useRedirectFlow=!0===(e.paypalexpress&&e.paypalexpress.useRedirectFlow);const n=this.paymentMethod.config.merchantId;if(!this.isInContextEnabled()||!n)throw new pi(ui.MissingPaymentMethod);const i=yield this.scriptLoader.loadPaypalSDK();this.paypalSdk=i,this.paypalSdk.checkout.setup(n,{button:"paypal-button",environment:this.paymentMethod.config.testMode?"sandbox":"production"})})}deinitialize(){return this.isInContextEnabled()&&this.paypalSdk&&(this.paypalSdk.checkout.closeFlow(),this.paypalSdk=void 0),Promise.resolve()}execute(e,t){return vp(this,void 0,void 0,function*(){let n,i;const r=this.paypalSdk;if(!this.isAcknowledgedOrFinalized()){if(!this.isInContextEnabled()||this.useRedirectFlow)return n=yield this.paymentIntegrationService.submitOrder(e,t),i=n.getPaymentRedirectUrl(),i&&this.window.top&&(this.window.top.location.href=i),new Promise(V);if(!r)throw new gi(hi.PaymentNotInitialized);r.checkout.initXO();try{n=yield this.paymentIntegrationService.submitOrder(e,t)}catch(e){return r.checkout.closeFlow(),Promise.reject(e)}return i=n.getPaymentRedirectUrl(),i&&r.checkout.startFlow(i),new Promise(V)}yield this.paymentIntegrationService.submitOrder(e,t)})}finalize(e){return vp(this,void 0,void 0,function*(){return this.paymentIntegrationService.getState().getOrder()&&this.isAcknowledgedOrFinalized()?(yield this.paymentIntegrationService.finalizeOrder(e),Promise.resolve()):Promise.reject(new Id)})}isAcknowledgedOrFinalized(){const e=this.paymentIntegrationService.getState();return e.getPaymentStatus()===gp.ACKNOWLEDGE||e.getPaymentStatus()===gp.FINALIZE}isInContextEnabled(){return!(!this.paymentMethod||!this.paymentMethod.config.merchantId)}}class Sp{constructor(e){this.scriptLoader=e,this.window=window}loadPaypalSDK(e=""){return t=this,n=void 0,r=function*(){const t=Object.assign({async:!0,attributes:{"data-merchant-id":e}},e&&{attributes:{"data-merchant-id":e}});if(yield this.scriptLoader.loadScript("//www.paypalobjects.com/api/checkout.min.js",t),!this.window.paypal)throw new Oi;return this.window.paypal},new((i=void 0)||(i=Promise))(function(e,o){function a(e){try{d(r.next(e))}catch(e){o(e)}}function s(e){try{d(r.throw(e))}catch(e){o(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((r=r.apply(t,n||[])).next())});var t,n,i,r}}const wp=Rt(e=>new fp(e,new Sp(a())),[{id:"paypalexpress",type:"PAYMENT_TYPE_HOSTED"},{id:"paypalexpresscredit",type:"PAYMENT_TYPE_HOSTED"}]);var _p=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Cp extends Ul{constructor(e,t){super(e),this.paymentIntegrationService=e,this.threeDSecureFlow=t}initialize(e){const t=Object.create(null,{initialize:{get:()=>super.initialize}});return _p(this,void 0,void 0,function*(){yield t.initialize.call(this,e);const n=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e.methodId);n.config.is3dsEnabled&&(yield this.threeDSecureFlow.prepare(n))})}execute(e,t){const n=Object.create(null,{execute:{get:()=>super.execute}});return _p(this,void 0,void 0,function*(){const{payment:{methodId:i=""}={}}=e,r=this.paymentIntegrationService.getState();return r.getPaymentStatus()===Yc.ACKNOWLEDGE?(yield this.paymentIntegrationService.submitOrder(Object.assign(Object.assign({},e),{payment:{methodId:i}}),t),Promise.resolve()):r.getPaymentMethodOrThrow(i).config.is3dsEnabled?this.threeDSecureFlow.start(n.execute.bind(this),e,t,this._hostedForm):n.execute.call(this,e,t)})}}const Ip=Rt(e=>new Cp(e,new mu(e,new Iu(new bu(a())))),[{id:"paypal"}]);class bp extends Ul{constructor(e,t){super(e),this.paymentIntegrationService=e,this._formPoster=t}execute(e,t){const{payment:n}=e;if(!n)throw new gi(hi.PaymentNotInitialized);const{paymentData:i}=n;if(!i)throw new pi(ui.MissingPayment);if(this._isThreeDSTwoExperimentOn()){const t=Object.assign(Object.assign({},i),{browser_info:Za()});e.payment&&(e.payment.paymentData=t)}return super.execute(e,t).catch(e=>wa(e)&&Z(e.body.errors,{code:"three_d_secure_required"})?new Promise(()=>{let t;t=this._isThreeDSTwoExperimentOn()&&!e.body.three_ds_result.merchant_data?{creq:e.body.three_ds_result.payer_auth_request}:{PaReq:e.body.three_ds_result.payer_auth_request,TermUrl:e.body.three_ds_result.callback_url,MD:e.body.three_ds_result.merchant_data},this._formPoster.postForm(e.body.three_ds_result.acs_url,t,void 0,"_top")}):Promise.reject(e))}finalize(e){const t=this.paymentIntegrationService.getState();return t.getOrder()&&t.getPaymentStatus()===Yc.FINALIZE&&this.paymentIntegrationService.finalizeOrder(e),super.finalize()}_isThreeDSTwoExperimentOn(){return!0===this.paymentIntegrationService.getState().getStoreConfigOrThrow().checkoutSettings.features["INT-4994.Opayo_3DS2"]}}const Pp=Rt(e=>new bp(e,Ee()),[{id:"sagepay"}]);class Op extends zu{redirectUrl(e){window.location.replace(e)}}const Ep=Rt(e=>new Op(Ee(),e),[{id:"sezzle"}]);var Ap;!function(e){e.CHARGE="CHARGE",e.STORE="STORE"}(Ap||(Ap={}));var kp=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Tp{constructor(e,t){this._scriptLoader=e,this._paymentIntegrationService=t}initialize({testMode:e,applicationId:t,locationId:n}){return kp(this,void 0,void 0,function*(){const i=yield this._scriptLoader.load(e);this._payments=i.payments(t,n)})}deinitialize(){return kp(this,void 0,void 0,function*(){this._formValidationSubscription&&this._formValidationSubscription.unsubscribe(),this._card&&(yield this._card.destroy()),this._formValidationSubscription=void 0,this._card=void 0,this._payments=void 0})}initializeCard({containerId:e,style:t,onValidationChange:n}){return kp(this,void 0,void 0,function*(){const{postalCode:i}=this._paymentIntegrationService.getState().getBillingAddress()||{};this._card=yield this._getPayments().card(),yield this._card.attach(`#${e}`);try{yield this._card.configure({postalCode:i,style:t})}catch(e){}n&&(this._formValidationSubscription=this._subscribeToFormValidation(this._card,n))})}tokenize(){return kp(this,void 0,void 0,function*(){const e=yield this._getCard().tokenize();if("OK"!==e.status||!e.token){let t=`Tokenization failed with status: ${e.status}`;throw e.errors&&(t+=` and errors: ${JSON.stringify(e.errors)}`),new dh("payment.errors.card_error","SquareV2TokenizationError",t)}return e.token})}verifyBuyer(e,t){return kp(this,void 0,void 0,function*(){return t===Ap.CHARGE?this._chargeVerifyBuyer(e):this._storeVerifyBuyer(e)})}_getPayments(){return yi(this._payments,()=>new gi(hi.PaymentNotInitialized))}_subscribeToFormValidation(e,t){const n=["cardNumber","cvv"],i=new Set(n),r=["focusClassAdded","focusClassRemoved","errorClassAdded","errorClassRemoved","cardBrandChanged","postalCodeChanged"].map(t=>ue(e,t));return he(...r).pipe(we(e=>{const{detail:{field:t,currentState:{isCompletelyValid:r}}}=e;return n.includes(t)&&i[r?"delete":"add"](t),0===i.size}),fe()).subscribe(t)}_getCard(){return yi(this._card,()=>new gi(hi.PaymentNotInitialized))}_mapToSquareBillingContact({firstName:e,lastName:t,address1:n,address2:i,city:r,stateOrProvinceCode:o,postalCode:a,countryCode:s,email:d,phone:c}){return{givenName:e,familyName:t,addressLines:[n,i],city:r,state:o,postalCode:a,countryCode:s,email:d,phone:c}}_chargeVerifyBuyer(e){return kp(this,void 0,void 0,function*(){const{getCheckoutOrThrow:t,getBillingAddressOrThrow:n}=this._paymentIntegrationService.getState(),{outstandingBalance:i,cart:r}=t(),o={amount:i.toString(),billingContact:this._mapToSquareBillingContact(n()),currencyCode:r.currency.code,intent:Ap.CHARGE},a=yield this._getPayments().verifyBuyer(e,o);return a?a.token:""})}_storeVerifyBuyer(e){return kp(this,void 0,void 0,function*(){const{getBillingAddressOrThrow:t}=this._paymentIntegrationService.getState(),n={billingContact:this._mapToSquareBillingContact(t()),intent:Ap.STORE},i=yield this._getPayments().verifyBuyer(e,n);return i?i.token:""})}}var Dp=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Mp{constructor(e,t){this._paymentIntegrationService=e,this._squareV2PaymentProcessor=t}initialize(e){var t;return Dp(this,void 0,void 0,function*(){if(!(null===(t=null==e?void 0:e.squarev2)||void 0===t?void 0:t.containerId))throw new ki('Unable to proceed because "containerId" argument is not provided.');const{methodId:n,squarev2:i}=e,{config:{testMode:r},initializationData:o}=this._paymentIntegrationService.getState().getPaymentMethodOrThrow(n),{applicationId:a,locationId:s}=o||{};if(!a)throw new co;yield this._squareV2PaymentProcessor.initialize({applicationId:a,locationId:s,testMode:r}),yield this._squareV2PaymentProcessor.initializeCard(i)})}execute({payment:e}){return Dp(this,void 0,void 0,function*(){if(!e)throw new fo(["payment"]);const{methodId:t,paymentData:n}=e,{shouldSaveInstrument:i,shouldSetAsDefaultInstrument:r}=Ad(n)?n:{shouldSaveInstrument:!1,shouldSetAsDefaultInstrument:!1};yield this._paymentIntegrationService.submitOrder();const o=n&&Cd(n)?yield this._getVaultedInstrumentPayload(t,n):yield this._getCardPayload(t,i);yield this._paymentIntegrationService.submitPayment(Object.assign(Object.assign({},e),{paymentData:{formattedPayload:Object.assign(Object.assign({},o),{vault_payment_instrument:i||!1,set_as_default_stored_instrument:r||!1})}}))})}finalize(){return Promise.reject(new Id)}deinitialize(){return this._squareV2PaymentProcessor.deinitialize()}shouldVerify(){const{features:e}=this._paymentIntegrationService.getState().getStoreConfigOrThrow().checkoutSettings;return e["PROJECT-3828.add_3ds_support_on_squarev2"]}_getCardPayload(e,t){return Dp(this,void 0,void 0,function*(){const{getPaymentMethodOrThrow:n}=this._paymentIntegrationService.getState(),{initializationData:i}=n(e),r=yield this._squareV2PaymentProcessor.tokenize();if(i&&"isSquareV2ApiV2Enabled"in i?!i.isSquareV2ApiV2Enabled:!this.shouldVerify())return{credit_card_token:{token:r}};let o={nonce:r,token:yield this._squareV2PaymentProcessor.verifyBuyer(r,Ap.CHARGE)};if(t){const e=yield this._squareV2PaymentProcessor.tokenize();o=Object.assign(Object.assign({},o),{store_card_nonce:e,store_card_token:yield this._squareV2PaymentProcessor.verifyBuyer(e,Ap.STORE)})}return{credit_card_token:{token:JSON.stringify(o)}}})}_getVaultedInstrumentPayload(e,t){return Dp(this,void 0,void 0,function*(){const{getPaymentMethodOrThrow:n}=this._paymentIntegrationService.getState(),{initializationData:i}=n(e),{instrumentId:r}=t,o=(i&&"isSquareV2ApiV2Enabled"in i?i.isSquareV2ApiV2Enabled:this.shouldVerify())?yield this._squareV2PaymentProcessor.verifyBuyer(yield this._getSquareCardIdOrThrow(e,r),Ap.CHARGE):void 0;return{bigpay_token:Object.assign({token:r},o&&{three_d_secure:{token:o}})}})}_getSquareCardIdOrThrow(e,t){return Dp(this,void 0,void 0,function*(){const n=yield this._paymentIntegrationService.loadPaymentMethod(e,{params:{method:e,bigpayToken:t}}),{initializationData:i}=n.getPaymentMethodOrThrow(e),{cardId:r}=i||{};if(!r)throw new fo(["cardId"]);return r})}}var zp;!function(e){e.LIVE="https://web.squarecdn.com/v1/square.js",e.SANDBOX="https://sandbox.web.squarecdn.com/v1/square.js"}(zp||(zp={}));class Np{constructor(e){this._scriptLoader=e}load(e=!1){return t=this,n=void 0,r=function*(){return yield this._scriptLoader.loadScript(e?zp.SANDBOX:zp.LIVE),function(e){if(!function(e){return"Square"in e}(e))throw new Oi}(window),window.Square},new((i=void 0)||(i=Promise))(function(e,o){function a(e){try{d(r.next(e))}catch(e){o(e)}}function s(e){try{d(r.throw(e))}catch(e){o(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((r=r.apply(t,n||[])).next())});var t,n,i,r}}const xp=Rt(e=>new Mp(e,new Tp(new Np(a()),e)),[{id:"squarev2"}]);function Fp(e){return null!==e&&"object"==typeof e&&"cardNumberElementOptions"in e&&"cardCvcElementOptions"in e&&"cardExpiryElementOptions"in e&&void 0!==e.cardNumberElementOptions&&void 0!==e.cardCvcElementOptions&&void 0!==e.cardExpiryElementOptions}var Rp,Lp,Bp,jp;!function(e){e.Solid="solid",e.Default="default"}(Rp||(Rp={})),function(e){e.Alipay="alipay",e.CardCvc="cardCvc",e.CardExpiry="cardExpiry",e.CardNumber="cardNumber",e.CreditCard="card",e.IDEAL="idealBank",e.Sepa="iban"}(Lp||(Lp={})),function(e){e.Alipay="alipay",e.CreditCard="card",e.IDEAL="ideal",e.Sepa="sepa_debit"}(Bp||(Bp={})),function(e){e.AuthFailure="auth_failure"}(jp||(jp={}));class Up extends li{constructor(e){super(e===jp.AuthFailure?"User did not authenticate":"There was an error while processing your payment. Please try again or contact us."),this.type="stripev3_error",this.subtype=e}}var qp=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};const Vp=[Lp.Alipay,Lp.IDEAL];class Gp{constructor(e,t){this.paymentIntegrationService=e,this.scriptLoader=t}initialize(e){return qp(this,void 0,void 0,function*(){const{stripev3:t,methodId:n,gatewayId:i}=e;if(!i)throw new ki('Unable to initialize payment because "gatewayId" argument is not provided.');this.initializeOptions=t,this.isDeinitialize=!1;const r=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(n),{initializationData:{stripePublishableKey:o,stripeConnectedAccount:a,useIndividualCardFields:s,allowRedisplayForStoredInstruments:d}}=r;this._allowRedisplayForStoredInstruments=d;const c=this.getInitializeOptions().form;this.useIndividualCardFields=s,this.stripeV3Client=yield this.loadStripeJs(o,a),this.isCreditCard(n)&&this.shouldShowTSVHostedForm(n,i)&&c?this.hostedForm=yield this.mountCardVerificationFields(c):this.stripeElement=yield this.mountCardFields(n)})}execute(e,t){var n,i;return qp(this,void 0,void 0,function*(){const{payment:r}=e,o=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);let a,s;if(!r||!r.paymentData)throw new fo(["payment.paymentData"]);const{paymentData:d,gatewayId:c,methodId:l}=r,{shouldSaveInstrument:u,shouldSetAsDefaultInstrument:h}=Ad(d)?d:{shouldSaveInstrument:!1,shouldSetAsDefaultInstrument:!1},p=P(Vp,l),{isStoreCreditApplied:m}=this.paymentIntegrationService.getState().getCheckoutOrThrow();m&&(yield this.paymentIntegrationService.applyStoreCredit(m));try{p&&(yield this.paymentIntegrationService.submitOrder(o,t)),c&&(yield this.paymentIntegrationService.loadPaymentMethod(c,{params:{method:l}}));const e=this.paymentIntegrationService.getState();if(Cd(d)){yield this.paymentIntegrationService.submitOrder(o,t);const{instrumentId:n}=d,i=e.getPaymentMethodOrThrow(r.methodId).clientToken;if(!i)throw new pi(ui.MissingPaymentMethod);return yield this.executeWithVaulted(r,n,h,i)}const m=e.getPaymentMethodOrThrow(l),y=yield this.confirmStripePayment(m),{clientToken:g,method:v}=m,{id:f}=null!==(i=null!==(n=y.paymentIntent)&&void 0!==n?n:y.paymentMethod)&&void 0!==i?i:{id:""};s=y.error,a={credit_card_token:{token:f},vault_payment_instrument:u,confirm:!1,set_as_default_stored_instrument:h},v===Lp.CreditCard&&(a.client_token=g),p||(yield this.paymentIntegrationService.submitOrder(o,t));const S=this.buildPaymentPayload(l,a,h);yield this.paymentIntegrationService.submitPayment(S)}catch(e){yield this.processAdditionalAction(this.handleEmptyPaymentIntentError(e,s),l,u,h)}})}finalize(){return Promise.reject(new Id)}deinitialize(){return this.hostedForm&&this.hostedForm.detach(),this.isDeinitialize=!0,this.unmountElement(),Promise.resolve()}buildPaymentPayload(e,t,n){return{methodId:e,paymentData:n?{formattedPayload:Object.assign(Object.assign({},t),{set_as_default_stored_instrument:n})}:{formattedPayload:t}}}isCancellationError(e){var t,n;return e&&-1!==(null===(n=null===(t=e.payment_intent.last_payment_error)||void 0===t?void 0:t.message)||void 0===n?void 0:n.indexOf("canceled"))}isAuthError(e){return"payment_intent_authentication_failure"===(null==e?void 0:e.code)}isCreditCard(e){return e===Bp.CreditCard}isHostedFieldAvailable(){var e;const t=this.getInitializeOptions(),n=H(null===(e=t.form)||void 0===e?void 0:e.fields,E);return!E(n)}isHostedPaymentFormEnabled(e,t){const{getPaymentMethodOrThrow:n}=this.paymentIntegrationService.getState(),i=n(e,t);return Boolean(i.config.isHostedFormEnabled)}confirmStripePayment(e){return qp(this,void 0,void 0,function*(){const{clientToken:t,method:n,returnUrl:i}=e;if(!t)throw new pi(ui.MissingPaymentMethod);switch(n){case Lp.Alipay:return this.getStripeJs().confirmAlipayPayment(t,{return_url:i},{handleActions:!1});case Lp.IDEAL:{const e=this.mapStripePaymentData(Bp.IDEAL,i);return this.getStripeJs().confirmIdealPayment(t,e,{handleActions:!1})}case Lp.Sepa:{const e=this.mapStripePaymentData(Bp.Sepa);return this.getStripeJs().confirmSepaDebitPayment(t,e)}default:{const e=this.useIndividualCardFields?this.getStripeCardElements()[0]:this.getStripeElement(),t=this.mapStripeBillingDetails(this.paymentIntegrationService.getState().getBillingAddress(),this.paymentIntegrationService.getState().getCustomer()),n=this._allowRedisplayForStoredInstruments;return this.getStripeJs().createPaymentMethod(Object.assign({type:Bp.CreditCard,card:e,billing_details:t},n?{allow_redisplay:"always"}:{}))}}})}executeWithVaulted(e,t,n,i){var r;return qp(this,void 0,void 0,function*(){const o={bigpay_token:{token:t},confirm:!0,client_token:i,set_as_default_stored_instrument:n};if(this.isHostedPaymentFormEnabled(e.methodId,e.gatewayId)&&this.hostedForm){const t=this.hostedForm;return e.paymentData&&Cd(e.paymentData)&&(e.paymentData=Object.assign(Object.assign({},e.paymentData),{instrumentId:JSON.stringify({token:(null===(r=e.paymentData)||void 0===r?void 0:r.instrumentId)||"",client_token:i})})),yield t.validate(),yield t.submit(e),this.paymentIntegrationService.loadCurrentOrder()}const a=this.buildPaymentPayload(e.methodId,o,n);return this.paymentIntegrationService.submitPayment(a)})}getInitializeOptions(){if(!this.initializeOptions)throw new gi(hi.PaymentNotInitialized);return this.initializeOptions}getStripeCardElements(){if(!this.stripeCardElements)throw new gi(hi.PaymentNotInitialized);return this.stripeCardElements}getStripeElement(){if(!this.stripeElement)throw new gi(hi.PaymentNotInitialized);return this.stripeElement}getStripeJs(){if(!this.stripeV3Client)throw new gi(hi.PaymentNotInitialized);return this.stripeV3Client}handleEmptyPaymentIntentError(e,t){return wa(e)&&Z(e.body.errors,{code:"required_field"})&&t?new Error(t.message):e}loadStripeJs(e,t){return qp(this,void 0,void 0,function*(){return this.stripeV3Client?Promise.resolve(this.stripeV3Client):this.scriptLoader.load(e,t,this.paymentIntegrationService.getState().getLocale())})}mapStripeAddress(e){if(e){const{city:t,countryCode:n,address1:i,address2:r,postalCode:o,stateOrProvinceCode:a}=e;return{city:t,country:n,line1:i,line2:r,postal_code:o,state:a}}return{line1:""}}mapStripeBillingDetails(e,t){const{firstName:n,lastName:i}=e||t||{firstName:"Guest",lastName:""},r=`${n} ${i}`.trim(),{options:o}=this.getInitializeOptions();if(this.useIndividualCardFields&&Fp(o)){const{zipCodeElementOptions:t}=o;if(t){const n=document.getElementById(t.containerId)?document.getElementById(t.containerId).value:"";n&&e&&(e=Object.assign(Object.assign({},e),{postalCode:n}))}}const a={address:this.mapStripeAddress(e)};if(t&&t.addresses[0]&&function(e){return"object"==typeof e&&null!==e&&"id"in e&&void 0!==e.id}(t.addresses[0])){const e=t.addresses[0],{email:n}=t,{phone:i}=e;return i?Object.assign(Object.assign({},a),{email:n,name:r,phone:i}):Object.assign(Object.assign({},a),{email:n,name:r})}if(e){const{email:t,phone:n}=e;return n?Object.assign(Object.assign({},a),{email:t,name:r,phone:n}):Object.assign(Object.assign({},a),{email:t,name:r})}return Object.assign(Object.assign({},a),{name:r})}mapStripePaymentData(e,t){const n=this.paymentIntegrationService.getState().getCustomer(),i=this.paymentIntegrationService.getState().getBillingAddress(),r={payment_method:{[e]:this.getStripeElement(),billing_details:this.mapStripeBillingDetails(i,n)}};return e===Bp.IDEAL?Object.assign(Object.assign({},r),{return_url:t}):r}mountCardFields(e){const{options:t,containerId:n}=this.getInitializeOptions();let i;return new Promise((r,o)=>{switch(this.stripeElements||(this.stripeElements=this.getStripeJs().elements()),e){case Lp.CreditCard:if(this.useIndividualCardFields&&Fp(t)){const{cardNumberElementOptions:e,cardExpiryElementOptions:n,cardCvcElementOptions:r}=t,a=this.stripeElements.getElement(Lp.CardNumber)||this.stripeElements.create(Lp.CardNumber,e),s=this.stripeElements.getElement(Lp.CardExpiry)||this.stripeElements.create(Lp.CardExpiry,n),d=this.stripeElements.getElement(Lp.CardCvc)||this.stripeElements.create(Lp.CardCvc,r);this.stripeCardElements=[a,s,d],i=this.stripeCardElements[0];try{a.mount(`#${e.containerId}`),s.mount(`#${n.containerId}`),d.mount(`#${r.containerId}`)}catch(e){this.isDeinitialize||o(new ki("Unable to mount Stripe component without valid container ID."))}}else{i=this.stripeElements.getElement(e)||this.stripeElements.create(e,t);try{i.mount(`#${n}`)}catch(e){this.isDeinitialize||o(new ki("Unable to mount Stripe component without valid container ID."))}}break;case Lp.IDEAL:case Lp.Sepa:i=this.stripeElements.getElement(e)||this.stripeElements.create(e,t);try{i.mount(`#${n}`)}catch(e){this.isDeinitialize||o(new ki("Unable to mount Stripe component without valid container ID."))}case Lp.Alipay:}r(i)})}mountCardVerificationFields(e){return qp(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState().getStoreConfig();if(!t)throw new pi(ui.MissingCheckoutConfig);const n=t.paymentSettings.bigpayBaseUrl,i=this.paymentIntegrationService.createHostedForm(n,e);return yield i.attach(),i})}processAdditionalAction(e,t,n=!1,i=!1){return qp(this,void 0,void 0,function*(){if(!wa(e))throw e;const r=Z(e.body.errors,{code:"additional_action_required"}),o=Z(e.body.errors,{code:"three_d_secure_required"});if(r){const t=e.body.additional_action_required;if(t&&"redirect_to_url"===t.type)return new Promise(()=>{t.data.redirect_url&&window.location.replace(t.data.redirect_url)})}if(o){const r=e.body.three_ds_result.token,o=!1;let a,s=!1;try{a=yield this.getStripeJs().confirmCardPayment(r)}catch(e){s=!0}if(null==a?void 0:a.error){if(this.isCancellationError(a.error))throw new nr;if(this.isAuthError(a.error))throw new Up(jp.AuthFailure);throw new Error(a.error.message)}const d={credit_card_token:{token:this.getPaymentToken(null==a?void 0:a.paymentIntent,r,s)},vault_payment_instrument:n,confirm:o},c=this.buildPaymentPayload(t,d,i);try{return yield this.paymentIntegrationService.submitPayment(c)}catch(e){throw this.handleEmptyPaymentIntentError(e,null==a?void 0:a.error)}}throw e})}getPaymentToken(e,t,n){return!e||n?t:e.id}shouldShowTSVHostedForm(e,t){return this.isHostedFieldAvailable()&&this.isHostedPaymentFormEnabled(e,t)}unmountElement(){this.stripeElement&&(this.stripeElement.unmount(),this.stripeElement=void 0)}}class Hp{constructor(e,t=window){this.scriptLoader=e,this.stripeWindow=t}load(e,t,n){return this.scriptLoader.loadScript("https://js.stripe.com/v3/").then(()=>{if(!this.stripeWindow.Stripe)throw new Oi;return this.stripeWindow.Stripe(e,{stripeAccount:t,locale:n,betas:["payment_intent_beta_3","alipay_pm_beta_1"],apiVersion:"2020-03-02;alipay_beta=v1"})})}}const $p=Rt(e=>new Gp(e,new Hp(a())),[{gateway:"stripev3"}]),Wp={ar:["ar"],bg:["bg"],cs:["cs"],da:["da"],de:["de"],el:["el"],en:["en","en-GB"],es:["es","es-419"],et:["et"],fi:["fi"],fil:["fil"],fr:["fr","fr-CA"],he:["he"],hr:["hr"],hu:["hu"],id:["id"],it:["it"],ja:["ja"],ko:["ko"],lt:["lt"],lv:["lv"],ms:["ms"],mt:["mt"],nb:["nb"],nl:["nl"],pl:["pl"],pt:["pt","pt-BR"],ro:["ro"],ru:["ru"],sk:["sk"],sl:["sl"],sv:["sv"],th:["th"],tr:["tr"],vi:["vi"],zh:["zh","zh-HK","zh-TW"]};function Yp(e){const[t,n]=e.replace(/_/g,"-").toLowerCase().split("-"),i=Wp[t];if(!i)return"auto";const r=n?`${t}-${n.toUpperCase()}`:t;return i.indexOf(r)>-1?r:i[0]}var Kp=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Jp{constructor(e,t,n){this.paymentIntegrationService=e,this.scriptLoader=t,this.stripeIntegrationService=n}initialize(e){return Kp(this,void 0,void 0,function*(){const{stripeupe:t,methodId:n,gatewayId:i}=e;if(!(null==t?void 0:t.containerId))throw new gi(hi.PaymentNotInitialized);if(!i)throw new ki('Unable to initialize payment because "gatewayId" argument is not provided.');return this._loadStripeElement(t,i,n).catch(e=>{var n;return null===(n=t.onError)||void 0===n?void 0:n.call(t,e)}),this.stripeIntegrationService.initCheckoutEventsSubscription(i,n,t,this._stripeElements),Promise.resolve()})}execute(e,t){return Kp(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n||!n.paymentData)throw new fo(["payment.paymentData"]);if(!this._stripeUPEClient)throw new gi(hi.PaymentNotInitialized);const{paymentData:r,methodId:o,gatewayId:a}=n,{shouldSaveInstrument:s=!1,shouldSetAsDefaultInstrument:d=!1}=Ad(r)?r:{},c=this.paymentIntegrationService.getState(),{isStoreCreditApplied:l}=c.getCheckoutOrThrow(),u=c.getPaymentProviderCustomerOrThrow(),h=(Xs(u)?u:{}).stripeLinkAuthenticationState;if(l&&(yield this.paymentIntegrationService.applyStoreCredit(l)),a){yield this.stripeIntegrationService.updateStripePaymentIntent(a,o);const{email:e}=c.getCustomerOrThrow();if(void 0!==h&&!e){const e=c.getBillingAddressOrThrow();yield this.paymentIntegrationService.updateBillingAddress(e)}}if(yield this.paymentIntegrationService.submitOrder(i,t),Cd(r)){const{instrumentId:e}=r;return void(yield this._executeWithVaulted(n.methodId,e,d))}yield this._executeWithStripeConfirmation(n.methodId,!h&&s,d)})}finalize(){return Promise.reject(new Id)}deinitialize(){var e,t;return null===(t=null===(e=this._stripeElements)||void 0===e?void 0:e.getElement(Ks.PAYMENT))||void 0===t||t.unmount(),this.stripeIntegrationService.deinitialize(),this._stripeElements=void 0,this._stripeUPEClient=void 0,Promise.resolve()}_executeWithStripeConfirmation(e,t,n){return Kp(this,void 0,void 0,function*(){const i=this.paymentIntegrationService.getState(),{clientToken:r}=i.getPaymentMethodOrThrow(e),o=this._getPaymentPayload(e,r||"",t,n);try{yield this.paymentIntegrationService.submitPayment(o)}catch(i){yield this._processAdditionalActionWithStripeConfirmation(i,e,t,n)}})}_executeWithVaulted(e,t,n){var i;return Kp(this,void 0,void 0,function*(){const r=this.paymentIntegrationService.getState(),o=r.getPaymentMethodOrThrow(e),a=null===(i=r.getCart())||void 0===i?void 0:i.id;try{const i={methodId:e,paymentData:{formattedPayload:{cart_id:a,bigpay_token:{token:t},confirm:!1,client_token:o.clientToken,set_as_default_stored_instrument:n}}};return yield this.paymentIntegrationService.submitPayment(i)}catch(t){return this._processVaultedAdditionalAction(t,e,n)}})}_loadStripeElement(e,t,n){return Kp(this,void 0,void 0,function*(){const{containerId:i,style:r,render:o,initStripeElementUpdateTrigger:a}=e,s=yield this.paymentIntegrationService.loadPaymentMethod(t,{params:{method:n}}),d=s.getPaymentMethodOrThrow(n),{checkoutSettings:c}=s.getStoreConfigOrThrow();if(!qs(d))throw new pi(ui.MissingPaymentMethod);const{clientToken:l,initializationData:u}=d,{shopperLanguage:h,allowRedisplayForStoredInstruments:p=!1}=u;if(this._allowRedisplayForStoredInstruments=p,!l)throw new pi(ui.MissingPaymentMethod);let m;if(this._stripeUPEClient=yield this._loadStripeJs(u),this._isStripeElementUpdateEnabled=!!c.features["PI-1679.trigger_update_stripe_payment_element"]&&"function"==typeof a,r){const e=r;m={variables:this.stripeIntegrationService.mapAppearanceVariables(r),rules:{".Input":this.stripeIntegrationService.mapInputAppearanceRules(e)}}}this._stripeElements=yield this.scriptLoader.getElements(this._stripeUPEClient,{clientSecret:l,locale:Yp(h),appearance:m});const{getBillingAddress:y,getShippingAddress:g}=s,{postalCode:v}=g()||y()||{},f=this._stripeElements.getElement(Ks.PAYMENT)||this._stripeElements.create(Ks.PAYMENT,Object.assign({fields:{billingDetails:{email:Ys.NEVER,address:{country:Ys.NEVER,city:Ys.NEVER,postalCode:v?Ys.NEVER:Ys.AUTO}}},wallets:{applePay:Ys.NEVER,googlePay:Ys.NEVER}},this._getStripeElementTerms()));this.stripeIntegrationService.mountElement(f,i),f.on(Zs.READY,()=>{o()}),f.on(Zs.CHANGE,e=>{(null==e?void 0:e.value)&&"type"in e.value&&this._updateStripeLinkStateByElementType(e.value.type)}),this._isStripeElementUpdateEnabled&&(null==a||a(this._updateStripeElement.bind(this)))})}_processAdditionalActionWithStripeConfirmation(e,t,n=!1,i=!1){return Kp(this,void 0,void 0,function*(){if(!wa(e)||!this.stripeIntegrationService.isAdditionalActionError(e.body.errors))throw e;if(!this._stripeUPEClient||!this._stripeElements)throw new gi(hi.PaymentNotInitialized);const{data:r}=e.body.additional_action_required,{token:o}=r,{paymentIntent:a}=yield this._confirmStripePaymentOrThrow(t,r),s=this._getPaymentPayload(t,(null==a?void 0:a.id)||o,n,i);try{yield this.paymentIntegrationService.submitPayment(s)}catch(e){this.stripeIntegrationService.throwPaymentConfirmationProceedMessage()}})}_confirmStripePaymentOrThrow(e,t){var n,i;return Kp(this,void 0,void 0,function*(){const{token:r,redirect_url:o}=t,a=this.stripeIntegrationService.mapStripePaymentData(this._stripeElements,o,!!this._allowRedisplayForStoredInstruments);let s;try{const t=(yield this.stripeIntegrationService.isPaymentCompleted(e,this._stripeUPEClient))?yield null===(i=this._stripeUPEClient)||void 0===i?void 0:i.retrievePaymentIntent(r||""):yield null===(n=this._stripeUPEClient)||void 0===n?void 0:n.confirmPayment(a);if(s=null==t?void 0:t.error,s||!(null==t?void 0:t.paymentIntent))throw new so;return t}catch(e){this.stripeIntegrationService.throwStripeError(s)}})}_processVaultedAdditionalAction(e,t,n=!1){var i;return Kp(this,void 0,void 0,function*(){if(!t||!wa(e)||!Z(e.body.errors,{code:"three_d_secure_required"}))throw e;if(!this._stripeUPEClient||!this._stripeElements)throw new gi(hi.PaymentNotInitialized);const r=e.body.three_ds_result.token;let o,a=!1;try{o=yield this._stripeUPEClient.confirmCardPayment(r)}catch(e){try{o=yield this._stripeUPEClient.retrievePaymentIntent(r)}catch(e){a=!0}}if((null==o?void 0:o.error)&&this.stripeIntegrationService.throwStripeError(o.error),!(null==o?void 0:o.paymentIntent)&&!a)throw new hr;const s=this._getPaymentPayload(t,a?r:null===(i=null==o?void 0:o.paymentIntent)||void 0===i?void 0:i.id,!1,n);return this.paymentIntegrationService.submitPayment(s)})}_loadStripeJs(e){return Kp(this,void 0,void 0,function*(){return this._stripeUPEClient?this._stripeUPEClient:this.scriptLoader.getStripeClient(e,Vs,Gs)})}_getPaymentPayload(e,t,n=!1,i=!1){var r;return{methodId:e,paymentData:{formattedPayload:{cart_id:(null===(r=this.paymentIntegrationService.getState().getCart())||void 0===r?void 0:r.id)||"",credit_card_token:{token:t},confirm:!1,vault_payment_instrument:n,set_as_default_stored_instrument:i}}}}_updateStripeElement({shouldShowTerms:e}){var t;const n=null===(t=this._stripeElements)||void 0===t?void 0:t.getElement(Ks.PAYMENT);null==n||n.update(Object.assign({},this._getStripeElementTerms(e)))}_getStripeElementTerms(e){let t=Ys.AUTO;return this._isStripeElementUpdateEnabled&&(t=e?Ys.AUTO:Ys.NEVER),{terms:{card:t}}}_updateStripeLinkStateByElementType(e){const t=this.paymentIntegrationService.getState().getPaymentProviderCustomerOrThrow(),n=e===Ws.Link;!Xs(t)&&n&&this.paymentIntegrationService.updatePaymentProviderCustomer({stripeLinkAuthenticationState:n})}}const Zp=Rt(e=>{const t=new Us(a());return new Jp(e,t,new id(e,t))},[{gateway:"stripeupe"},{gateway:"stripeupe",id:"klarna"}]);var Qp=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Xp{constructor(e,t,n){this.paymentIntegrationService=e,this.scriptLoader=t,this.stripeIntegrationService=n}initialize(e){var t;return Qp(this,void 0,void 0,function*(){const{stripeocs:n,methodId:i,gatewayId:r}=e;if(!(null==n?void 0:n.containerId))throw new gi(hi.PaymentNotInitialized);if(!r)throw new ki('Unable to initialize payment because "gatewayId" argument is not provided.');try{yield this._initializeStripeElement(n,r,i)}catch(e){e instanceof Error&&(null===(t=n.onError)||void 0===t||t.call(n,e))}this.stripeIntegrationService.initCheckoutEventsSubscription(r,i,n,this.stripeElements)})}execute(e,t){return Qp(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),{methodId:r,gatewayId:o}=n||{};if(!this.stripeClient)throw new gi(hi.PaymentNotInitialized);if(!o||!r)throw new ki('Unable to initialize payment because "gatewayId" or "methodId" argument is not provided.');const a=this.paymentIntegrationService.getState(),{isStoreCreditApplied:s}=a.getCheckoutOrThrow();s&&(yield this.paymentIntegrationService.applyStoreCredit(s)),yield this.stripeIntegrationService.updateStripePaymentIntent(o,r),yield this.paymentIntegrationService.submitOrder(i,t);const{clientToken:d}=a.getPaymentMethodOrThrow(r),c=this._getPaymentPayload(r,d||"");try{yield this.paymentIntegrationService.submitPayment(c)}catch(e){yield this._processAdditionalAction(e,r)}})}finalize(){return Promise.reject(new Id)}deinitialize(){var e;const t=null===(e=this.stripeElements)||void 0===e?void 0:e.getElement(Ks.PAYMENT);return null==t||t.unmount(),null==t||t.destroy(),this.stripeIntegrationService.deinitialize(),this.stripeElements=void 0,this.stripeClient=void 0,Promise.resolve()}_initializeStripeElement(e,t,n){return Qp(this,void 0,void 0,function*(){let i=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(n);if((null==i?void 0:i.clientToken)||(i=(yield this.paymentIntegrationService.loadPaymentMethod(t,{params:{method:n}})).getPaymentMethodOrThrow(n)),!qs(i))throw new pi(ui.MissingPaymentMethod);const{clientToken:r,initializationData:o}=i,{shopperLanguage:a,customerSessionToken:s,enableLink:d}=o;if(!r)throw new pi(ui.MissingPaymentMethod);this.stripeClient=yield this._loadStripeJs(o);const{appearance:c,containerId:l,fonts:u,layout:h,render:p,paymentMethodSelect:m,handleClosePaymentMethod:y,togglePreloader:g}=e;this.stripeElements=yield this.scriptLoader.getElements(this.stripeClient,{clientSecret:r,customerSessionClientSecret:s,locale:Yp(a),appearance:c,fonts:u});const{getBillingAddress:v,getShippingAddress:f}=this.paymentIntegrationService.getState(),S=v(),{postalCode:w}=f()||S||{},_=this.stripeElements.getElement(Ks.PAYMENT)||this.stripeElements.create(Ks.PAYMENT,{fields:{billingDetails:{email:Ys.NEVER,address:{country:Ys.NEVER,city:Ys.NEVER,postalCode:w?Ys.NEVER:Ys.AUTO}}},wallets:{applePay:Ys.NEVER,googlePay:Ys.NEVER,link:d?Ys.AUTO:Ys.NEVER},layout:h,savePaymentMethod:{maxVisiblePaymentMethods:20},defaultValues:{billingDetails:{email:(null==S?void 0:S.email)||""}}});this.stripeIntegrationService.mountElement(_,l),_.on(Zs.LOADER_START,()=>{null==g||g(!1)}),_.on(Zs.READY,()=>{p()}),_.on(Zs.CHANGE,e=>{this._onStripeElementChange(e,t,n,m)}),null==y||y(this._collapseStripeElement.bind(this))})}_loadStripeJs(e){return Qp(this,void 0,void 0,function*(){return this.stripeClient?this.stripeClient:this.scriptLoader.getStripeClient(e)})}_collapseStripeElement(){var e;const t=null===(e=this.stripeElements)||void 0===e?void 0:e.getElement(Ks.PAYMENT);null==t||t.collapse()}_getPaymentPayload(e,t,n){var i;const r=(null===(i=this.paymentIntegrationService.getState().getCart())||void 0===i?void 0:i.id)||"",{card:o,us_bank_account:a}=n||{},s=this._shouldSaveInstrument(o)||this._shouldSaveInstrument(a),d=this._getTokenizedOptions(t,n);return{methodId:e,paymentData:{formattedPayload:Object.assign({cart_id:r,confirm:!1,method:this.selectedMethodId,vault_payment_instrument:s},d)}}}_processAdditionalAction(e,t){return Qp(this,void 0,void 0,function*(){if(!wa(e)||!this.stripeIntegrationService.isAdditionalActionError(e.body.errors))throw e;if(!this.stripeClient||!this.stripeElements)throw new gi(hi.PaymentNotInitialized);const{data:n}=e.body.additional_action_required,{token:i}=n,{paymentIntent:r}=yield this._confirmStripePaymentOrThrow(t,n),{client_secret:o,payment_method_options:a}=r||{},s=this._getPaymentPayload(t,o||i,a);try{return yield this.paymentIntegrationService.submitPayment(s)}catch(e){this.stripeIntegrationService.throwPaymentConfirmationProceedMessage()}})}_confirmStripePaymentOrThrow(e,t){var n,i;return Qp(this,void 0,void 0,function*(){const{token:r,redirect_url:o}=t,a=this.stripeIntegrationService.mapStripePaymentData(this.stripeElements,o);let s;try{const t=(yield this.stripeIntegrationService.isPaymentCompleted(e,this.stripeClient))?yield null===(i=this.stripeClient)||void 0===i?void 0:i.retrievePaymentIntent(r||""):yield null===(n=this.stripeClient)||void 0===n?void 0:n.confirmPayment(a);if(s=null==t?void 0:t.error,s||!(null==t?void 0:t.paymentIntent))throw new so;return t}catch(e){return this.stripeIntegrationService.throwStripeError(s)}})}_onStripeElementChange(e,t,n,i){(e=>"object"==typeof e&&null!==e&&"value"in e&&"collapsed"in e)(e)&&!e.collapsed&&(this.selectedMethodId=e.value.type,null==i||i(`${t}-${n}`))}_shouldSaveInstrument(e){const t=null==e?void 0:e.setup_future_usage;return t===Qs.ON_SESSION||t===Qs.OFF_SESSION}_getTokenizedOptions(e,t){return this._shouldSaveInstrument(null==t?void 0:t.us_bank_account)?{tokenized_ach:{token:e}}:{credit_card_token:{token:e}}}}const em=Rt(e=>{const t=new Us(a());return new Xp(e,t,new id(e,t))},[{gateway:"stripeocs",id:"optimized_checkout"}]);var tm;!function(e){e.CARD_NUMBER="card-number",e.CVV="cvv",e.EXPIRY="expiry"}(tm||(tm={}));var nm=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class im{constructor(e,t,n){this.paymentIntegrationService=e,this.tdOnlineMartScriptLoader=t,this.formPoster=n,this.tdInputs=[{id:"ccNumber",fieldType:tm.CARD_NUMBER},{id:"ccCvv",fieldType:tm.CVV},{id:"ccExpiry",fieldType:tm.EXPIRY}]}initialize(e){return nm(this,void 0,void 0,function*(){const{methodId:t}=e;if(!t)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');this.tdOnlineMartClient=yield this.loadTDOnlineMartJs(),this.mountHostedFields(t)})}execute(e,t){return nm(this,void 0,void 0,function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);if(!n.methodId)throw new pi(ui.MissingPaymentMethod);const r=yield this.getPaymentPayloadOrThrow(n);yield this.paymentIntegrationService.submitOrder(i,t);try{yield this.paymentIntegrationService.submitPayment(r)}catch(e){yield this.processWithAdditionalAction(e)}})}finalize(){return Promise.reject(new Id)}deinitialize(){return this.tdOnlineMartClient=void 0,this.tdInputs.forEach(({inputElement:e})=>{null==e||e.unmount()}),Promise.resolve()}getPaymentPayloadOrThrow(e){return nm(this,void 0,void 0,function*(){const{methodId:t,paymentData:n}=e,{shouldSaveInstrument:i=!1,shouldSetAsDefaultInstrument:r=!1}=Ad(n)?n:{},o={browser_info:Za(),shouldSaveInstrument:i,shouldSetAsDefaultInstrument:r};if(Ad(n)&&Cd(n)&&n.instrumentId){const e=!!this.paymentIntegrationService.getState().getCartOrThrow().lineItems.digitalItems.length,i=!this.isTrustedVaultingInstrument(n.instrumentId)||e;return{methodId:t,paymentData:Object.assign(Object.assign(Object.assign({},o),{instrumentId:n.instrumentId}),i?{nonce:n.instrumentId}:{})}}let a;try{a=yield this.getTokenOrThrow()}catch(e){this.throwTokenizationError(e)}return{methodId:t,paymentData:Object.assign(Object.assign({},o),{nonce:a})}})}mountHostedFields(e){const t=this.getHostedFieldsOptions(),n=this.getTDOnlineMartClientOrThrow();this.tdInputs.forEach(i=>{const r=`${e}-${i.id}`;document.getElementById(r)&&(i.inputElement=n.create(i.fieldType,t),i.inputElement.mount(`#${r}`))})}loadTDOnlineMartJs(){return nm(this,void 0,void 0,function*(){return this.tdOnlineMartClient?this.tdOnlineMartClient:this.tdOnlineMartScriptLoader.load()})}getTokenOrThrow(){return new Promise((e,t)=>{this.getTDOnlineMartClientOrThrow().createToken(n=>{const{error:i,token:r}=n;if(i||!r)return t(i);e(r)})})}getTDOnlineMartClientOrThrow(){if(!this.tdOnlineMartClient)throw new gi(hi.PaymentNotInitialized);return this.tdOnlineMartClient}processWithAdditionalAction(e){return nm(this,void 0,void 0,function*(){if(!function(e){return wa(e)&&(t=e.body,D(t)&&"object"==typeof t&&"errors"in t&&"three_ds_result"in t&&O(t.errors)&&Z(t.errors,{code:"three_d_secure_required"}));var t}(e))throw e;const{three_ds_result:t}=e.body,{acs_url:n,payer_auth_request:i,merchant_data:r}=t||{};if(!n||!i||!r)throw new fo(["formUrl","threeDSSessionData","creq"]);return new Promise(e=>{this.formPoster.postForm(n,{threeDSSessionData:i,creq:r},e,"_top")})})}throwTokenizationError(e){if(!function(e){return"object"==typeof e&&null!==e&&"field"in e&&"type"in e&&"message"in e}(e))throw new pi(ui.MissingPaymentToken);throw new Error(e.message)}getHostedFieldsOptions(){return{style:{error:{color:"#d14343"}},classes:{error:"form-input--error"}}}isTrustedVaultingInstrument(e){const t=this.paymentIntegrationService.getState().getInstruments(),n=null==t?void 0:t.find(t=>Qd(t)&&t.bigpayToken===e);return!(Qd(n)&&!n.trustedShippingAddress)}}class rm{constructor(e,t=window){this.scriptLoader=e,this.tdOnlineMartWindow=t}load(){return e=this,t=void 0,i=function*(){if(this.tdOnlineMartWindow.customcheckout||(yield this.scriptLoader.loadScript("https://libs.na.bambora.com/customcheckout/1/customcheckout.js")),!this.tdOnlineMartWindow.customcheckout)throw new Oi;return this.tdOnlineMartWindow.customcheckout()},new((n=void 0)||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())});var e,t,n,i}}const om=Rt(e=>new im(e,new rm(a()),Ee()),[{id:"tdonlinemart"}]);var am=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};const sm="Payment cannot continue";let dm;class cm extends Ul{initialize(e){const t=Object.create(null,{initialize:{get:()=>super.initialize}});return am(this,void 0,void 0,function*(){if(this._initializeOptions=e&&e.worldpay,!this._initializeOptions)throw new gi(hi.PaymentNotInitialized);return t.initialize.call(this,e)})}execute(e,t){const n=Object.create(null,{execute:{get:()=>super.execute}});return am(this,void 0,void 0,function*(){const{payment:i}=e;if(dm=this._submitAdditionalAction(),!i)throw new fo(["payment"]);try{return yield n.execute.call(this,e,t)}catch(e){return this._processAdditionalAction(e,i)}})}_processAdditionalAction(e,t){return am(this,void 0,void 0,function*(){return wa(e)&&Z(e.body.errors,{code:"additional_action_required"})?new Promise((n,i)=>{const r=e=>am(this,void 0,void 0,function*(){if("string"!=typeof e.data||!this._isValidJsonWithSessionId(e.data))return i(new Error(sm));window.removeEventListener("message",r),o.remove();const a=JSON.parse(e.data),s=q({},t,{paymentData:{threeDSecure:{token:a.SessionId}}});try{n(yield dm(s))}catch(e){if(!wa(e)||!Z(e.body.errors,{code:"three_d_secure_required"}))return i(e);if(!this._initializeOptions)return i(new gi(hi.PaymentNotInitialized));const{onLoad:t}=this._initializeOptions,n=this._createIframe(e.body.three_ds_result);try{t(n,()=>i(new Error("Payment was cancelled")))}catch(e){i(new Error(sm))}}});let o;window.addEventListener("message",r);try{o=this._createHiddenIframe(e.body)}catch(e){throw window.removeEventListener("message",r),new Error(sm)}}):Promise.reject(e)})}_createHiddenIframe(e){const t=document.createElement("iframe");if(document.body.appendChild(t),!t.contentWindow)throw new Error;t.id="worldpay_hosted_hidden_payment_page",t.height="0px",t.width="0px";const n=document.createElement("form"),i="collectionForm";n.id=i,n.name="devicedata",n.method="post";const r=e.additional_action_required.data.redirect_url;n.action=r;const o=document.createElement("input");o.name="Bin",o.type="hidden",o.value=e.provider_data.source_id,n.appendChild(o);const a=document.createElement("input");a.name="JWT",a.type="hidden",a.value=e.provider_data.data,n.appendChild(a);const s=document.createElement("button");s.type="submit",s.id="btnsubmit",n.appendChild(s),navigator.userAgent.match("Firefox")?t.srcdoc=n.outerHTML:t.contentWindow.document.body.appendChild(n);const d=document.createElement("script");return d.innerHTML=`\n document.getElementById('${i}').submit();\n `,t.contentWindow.document.body.appendChild(d),t}_createIframe(e){const t=document.createElement("form");t.id="challengeForm",t.method="POST",t.action=e.acs_url;const n=document.createElement("input");n.name="JWT",n.type="hidden",n.value=e.payer_auth_request,t.appendChild(n);const i=document.createElement("input");i.name="MD",i.type="hidden",i.value=`merchantSessionId=${e.merchant_data}`,t.appendChild(i);const r=document.createElement("script");r.type="text/javascript",r.innerHTML="window.onload = function() { document.getElementById('challengeForm').submit(); }";const o=document.createElement("iframe");return o.name="worldpay_hosted_payment_page",o.height="400",o.width="100%",o.srcdoc=`${t.outerHTML} ${r.outerHTML}`,o}_submitAdditionalAction(){if(this._shouldRenderHostedForm){if(!this._hostedForm)throw new gi(hi.PaymentNotInitialized);const e=this._hostedForm;return t=>am(this,void 0,void 0,function*(){yield e.submit(t)})}return e=>am(this,void 0,void 0,function*(){yield this._paymentIntegrationService.submitPayment(e)})}_isValidJsonWithSessionId(e){try{return!!JSON.parse(e).SessionId}catch(e){return!1}}}const lm=Rt(e=>new cm(e),[{id:"worldpayaccess"}]);class um{constructor(e){this._requestSender=e}saveExternalId(e,t){return n=this,i=void 0,o=function*(){const n=`/api/storefront/payment/${e}/save-external-id`,i={headers:Object.assign({Accept:br.JsonV1,"X-API-INTERNAL":Cr},Pr),body:{externalId:t,provider:e}};yield this._requestSender.post(n,i)},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}}class hm{constructor(e,t){this.paymentIntegrationService=e,this.storefrontPaymentRequestSender=t}initialize(){return Promise.resolve()}execute(e,t){return n=this,i=void 0,o=function*(){const{payment:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);if(!n)throw new fo(["payment"]);const{methodId:r}=n,{getPaymentMethodOrThrow:o}=yield this.paymentIntegrationService.loadPaymentMethod(r,t),{clientToken:a,initializationData:s}=o(r),d=null==s?void 0:s.redirectUrl;if(!a||!d)throw new pi(ui.MissingPaymentMethod);const{id:c}=JSON.parse(a);if(!c)throw new pi(ui.MissingPaymentToken);const{isStoreCreditApplied:l}=this.paymentIntegrationService.getState().getCheckoutOrThrow();yield this.paymentIntegrationService.applyStoreCredit(l),yield this.paymentIntegrationService.initializePayment(r,{useStoreCredit:l}),yield this.paymentIntegrationService.submitOrder(i,t),yield this._prepareForReferredRegistration(r,c);try{yield this.paymentIntegrationService.submitPayment({methodId:r,paymentData:{nonce:c}})}catch(e){if(wa(e)&&"additional_action_required"===e.body.status)return new Promise(()=>window.location.replace(d));throw e}},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}finalize(){return Promise.reject(new Id)}deinitialize(){return Promise.resolve()}_prepareForReferredRegistration(e,t){return this.storefrontPaymentRequestSender.saveExternalId(e,t)}}const pm=Rt(e=>{const{getHost:t}=e.getState(),i=n({host:t()}),r=new um(i);return new hm(e,r)},[{id:"zip"},{id:"quadpay"}]);var mm,ym;!function(e){e.LoadCountriesRequested="LOAD_COUNTRIES_REQUESTED",e.LoadCountriesSucceeded="LOAD_COUNTRIES_SUCCEEDED",e.LoadCountriesFailed="LOAD_COUNTRIES_FAILED"}(mm||(mm={}));class gm{constructor(e){this._countryRequestSender=e}loadCountries(e){return oe.create(t=>{t.next(l(mm.LoadCountriesRequested)),this._countryRequestSender.loadCountries(e).then(e=>{t.next(l(mm.LoadCountriesSucceeded,e.body.data)),t.complete()}).catch(e=>{t.error(h(mm.LoadCountriesFailed,e))})})}}class vm{constructor(e,t){this._requestSender=e,this._config=t}loadCountries({timeout:e}={}){const t=Object.assign({"Accept-Language":this._config.locale},rt);return this._requestSender.get("/internalapi/v1/store/countries",{headers:t,timeout:e})}}class fm extends Ze{constructor(e){super(e||"Your checkout could not be processed because some details have changed. Please review your order and try again."),this.name="CartConsistencyError",this.type="cart_consistency"}}class Sm extends Ze{constructor(e){super(e||"The tax provider is unavailable."),this.name="OrderTaxProviderUnavailableError",this.type="tax_provider_unavailable"}}class wm extends Ze{constructor(e){super(e),this.name="MissingShippingMethodError",this.type="missing_shipping_method"}}class _m extends Ze{constructor(e){super(e),this.name="InvalidShippingAddressError",this.type="invalid_shipping_address"}}class Cm{constructor(e){this._requestSender=e}loadOrder(e,{timeout:t}={}){const n=`/api/storefront/orders/${e}`,i=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.get(n,{params:{include:Mt(["payments","lineItems.physicalItems.socialMedia","lineItems.physicalItems.options","lineItems.physicalItems.categories","lineItems.digitalItems.socialMedia","lineItems.digitalItems.options","lineItems.digitalItems.categories"])},headers:i,timeout:t})}submitOrder(e,{headers:t,timeout:n}={}){return this._requestSender.post("/internalapi/v1/checkout/order",{body:e,headers:H(Object.assign({"X-Checkout-Variant":t&&t.checkoutVariant},rt),T),timeout:n}).catch(e=>{if("tax_provider_unavailable"===e.body.type)throw new Sm;if("cart_has_changed"===e.body.type)throw new fm;if("missing_shipping_method"===e.body.type)throw new wm(e.body.detail);if("invalid_shipping_address"===e.body.type)throw new _m(e.body.detail);if("empty_cart"===e.body.type)throw new nt;throw e})}finalizeOrder(e,{timeout:t}={}){const n=`/internalapi/v1/checkout/order/${e}`;return this._requestSender.post(n,{timeout:t,headers:rt})}}class Im extends Ze{constructor(){super("You haven't complete our spam check. Please try again."),this.name="SpamProtectionNotCompletedError",this.type="spam_protection_not_completed"}}!function(e){e.LoadOrderRequested="LOAD_ORDER_REQUESTED",e.LoadOrderSucceeded="LOAD_ORDER_SUCCEEDED",e.LoadOrderFailed="LOAD_ORDER_FAILED",e.LoadOrderPaymentsRequested="LOAD_ORDER_PAYMENTS_REQUESTED",e.LoadOrderPaymentsSucceeded="LOAD_ORDER_PAYMENTS_SUCCEEDED",e.LoadOrderPaymentsFailed="LOAD_ORDER_PAYMENTS_FAILED",e.SubmitOrderRequested="SUBMIT_ORDER_REQUESTED",e.SubmitOrderSucceeded="SUBMIT_ORDER_SUCCEEDED",e.SubmitOrderFailed="SUBMIT_ORDER_FAILED",e.FinalizeOrderRequested="FINALIZE_ORDER_REQUESTED",e.FinalizeOrderSucceeded="FINALIZE_ORDER_SUCCEEDED",e.FinalizeOrderFailed="FINALIZE_ORDER_FAILED"}(ym||(ym={}));var bm,Pm;class Om{constructor(e,t){this._orderRequestSender=e,this._checkoutValidator=t}loadOrder(e,t){return new oe(n=>{n.next(l(ym.LoadOrderRequested)),this._orderRequestSender.loadOrder(e,t).then(e=>{n.next(l(ym.LoadOrderSucceeded,e.body)),n.complete()}).catch(e=>{n.error(h(ym.LoadOrderFailed,e))})})}loadOrderPayments(e,t){return new oe(n=>{n.next(l(ym.LoadOrderPaymentsRequested)),this._orderRequestSender.loadOrder(e,t).then(e=>{n.next(l(ym.LoadOrderPaymentsSucceeded,e.body)),n.complete()}).catch(e=>{n.error(h(ym.LoadOrderPaymentsFailed,e))})})}loadCurrentOrder(e){return t=>de(()=>{const n=this._getCurrentOrderId(t.getState());if(!n)throw new Qe(We.MissingOrderId);return this.loadOrder(n,e)})}submitOrder(e,t){return n=>se(me(l(ym.SubmitOrderRequested)),de(()=>{const i=n.getState(),r=i.config.getExternalSource(),o=i.config.getVariantIdentificationToken(),a=i.checkout.getCheckout();if(!a)throw new Qe(We.MissingCheckout);if(a.shouldExecuteSpamCheck)throw new Im;return le(this._checkoutValidator.validate(a,t).then(()=>this._orderRequestSender.submitOrder(this._mapToOrderRequestBody(null!=e?e:{},a.id,a.customerMessage,r),Object.assign(Object.assign({},t),{headers:{checkoutVariant:o}})))).pipe(Ie(e=>se(this.loadOrder(e.body.data.order.orderId,t),me(l(ym.SubmitOrderSucceeded,e.body.data,Object.assign(Object.assign({},e.body.meta),{token:e.headers.token}))))))}).pipe(ge(e=>Je(ym.SubmitOrderFailed,e))))}finalizeOrder(e,t){return se(me(l(ym.FinalizeOrderRequested)),le(this._orderRequestSender.finalizeOrder(e,t)).pipe(Ie(n=>se(this.loadOrder(e,t),me(l(ym.FinalizeOrderSucceeded,n.body.data)))))).pipe(ge(e=>Je(ym.FinalizeOrderFailed,e)))}_getCurrentOrderId(e){const t=e.order.getOrder(),n=e.checkout.getCheckout();return t&&t.orderId||n&&n.orderId}_mapToOrderRequestBody(e,t,n,i){const{payment:r}=e,o=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]);return r?Object.assign(Object.assign({},o),{cartId:t,customerMessage:n,externalSource:i,payment:{paymentData:r.paymentData,name:r.methodId,gateway:r.gatewayId}}):Object.assign(Object.assign({},o),{cartId:t,customerMessage:n,externalSource:i})}}function Em(e){const t=Te();return e.subscribe(e=>{const n=e.config.getStoreConfig();n&&t.setHost(n.paymentSettings.bigpayBaseUrl)},e=>e.config.getStoreConfig()),t}class Am extends Ze{constructor(){super("The current order does not need to be finalized at this stage."),this.name="OrderFinalizationNotRequiredError",this.type="order_finalization_not_required"}}!function(e){e.ExecuteFailed="PAYMENT_STRATEGY_EXECUTE_FAILED",e.ExecuteRequested="PAYMENT_STRATEGY_EXECUTE_REQUESTED",e.ExecuteSucceeded="PAYMENT_STRATEGY_EXECUTE_SUCCEEDED",e.FinalizeFailed="PAYMENT_STRATEGY_FINALIZE_FAILED",e.FinalizeRequested="PAYMENT_STRATEGY_FINALIZE_REQUESTED",e.FinalizeSucceeded="PAYMENT_STRATEGY_FINALIZE_SUCCEEDED",e.InitializeFailed="PAYMENT_STRATEGY_INITIALIZE_FAILED",e.InitializeRequested="PAYMENT_STRATEGY_INITIALIZE_REQUESTED",e.InitializeSucceeded="PAYMENT_STRATEGY_INITIALIZE_SUCCEEDED",e.DeinitializeFailed="PAYMENT_STRATEGY_DEINITIALIZE_FAILED",e.DeinitializeRequested="PAYMENT_STRATEGY_DEINITIALIZE_REQUESTED",e.DeinitializeSucceeded="PAYMENT_STRATEGY_DEINITIALIZE_SUCCEEDED",e.WidgetInteractionStarted="PAYMENT_STRATEGY_WIDGET_INTERACTION_STARTED",e.WidgetInteractionFinished="PAYMENT_STRATEGY_WIDGET_INTERACTION_FINISHED",e.WidgetInteractionFailed="PAYMENT_STRATEGY_WIDGET_INTERACTION_FAILED"}(bm||(bm={})),function(e){e.ADYENV2="adyenv2",e.ADYENV2_GOOGLEPAY="googlepayadyenv2",e.ADYENV3="adyenv3",e.ADYENV3_GOOGLEPAY="googlepayadyenv3",e.AFFIRM="affirm",e.AFTERPAY="afterpay",e.AUTHORIZENET_GOOGLE_PAY="googlepayauthorizenet",e.AMAZONPAY="amazonpay",e.APPLEPAY="applepay",e.BARCLAYS="barclays",e.BLUESNAPV2="bluesnapv2",e.BOLT="bolt",e.CBA_MPGS="cba_mpgs",e.CHECKOUTCOM="checkoutcom",e.CHECKOUTCOM_APM="checkoutcomapm",e.CHECKOUTCOM_FAWRY="checkoutcomfawry",e.CHECKOUTCOM_SEPA="checkoutcomsepa",e.CHECKOUTCOM_IDEAL="checkoutcomideal",e.CREDIT_CARD="creditcard",e.CHECKOUTCOM_GOOGLE_PAY="googlepaycheckoutcom",e.CLEARPAY="clearpay",e.CONVERGE="converge",e.CYBERSOURCE="cybersource",e.CYBERSOURCEV2="cybersourcev2",e.BNZ="bnz",e.BNZ_GOOGLEPAY="googlepaybnz",e.CYBERSOURCEV2_GOOGLE_PAY="googlepaycybersourcev2",e.HUMM="humm",e.KLARNA="klarna",e.KLARNAV2="klarnav2",e.LAYBUY="laybuy",e.LEGACY="legacy",e.MOLLIE="mollie",e.MONERIS="moneris",e.NO_PAYMENT_DATA_REQUIRED="nopaymentdatarequired",e.OFFLINE="offline",e.OFFSITE="offsite",e.ORBITAL_GOOGLE_PAY="googlepayorbital",e.PAYPAL_EXPRESS="paypalexpress",e.PAYPAL_EXPRESS_CREDIT="paypalexpresscredit",e.PAYPAL_COMMERCE="paypalcommerce",e.PAYPAL_COMMERCE_CREDIT="paypalcommercecredit",e.PAYPAL_COMMERCE_CREDIT_CARD="paypalcommercecreditcards",e.PAYPAL_COMMERCE_ALTERNATIVE_METHODS="paypalcommercealternativemethods",e.PAYPAL_COMMERCE_VENMO="paypalcommercevenmo",e.PPSDK="PAYMENT_TYPE_SDK",e.QUADPAY="quadpay",e.SAGE_PAY="sagepay",e.SQUARE="squarev2",e.STRIPEV3="stripev3",e.STRIPE_UPE="stripeupe",e.STRIPE_UPE_GOOGLE_PAY="googlepaystripeupe",e.BRAINTREE="braintree",e.BRAINTREE_PAYPAL="braintreepaypal",e.BRAINTREE_VENMO="braintreevenmo",e.BRAINTREE_PAYPAL_CREDIT="braintreepaypalcredit",e.BRAINTREE_VISA_CHECKOUT="braintreevisacheckout",e.BRAINTREE_GOOGLE_PAY="googlepaybraintree",e.WE_PAY="wepay",e.WORLDPAYACCESS="worldpayaccess",e.WORLDPAYACCESS_GOOGLE_PAY="googlepayworldpayaccess",e.MASTERPASS="masterpass",e.STRIPE_GOOGLE_PAY="googlepaystripe",e.SEZZLE="sezzle",e.ZIP="zip"}(Pm||(Pm={}));const km=Pm;class Tm{widgetInteraction(e,t){const n={methodId:t&&t.methodId};return se(me(l(bm.WidgetInteractionStarted,void 0,n)),de(()=>e().then(()=>l(bm.WidgetInteractionFinished,void 0,n)))).pipe(ge(e=>Je(bm.WidgetInteractionFailed,e,n)))}}class Dm{constructor(e,t,n,i,r,o){this._strategyRegistry=e,this._strategyRegistryV2=t,this._orderActionCreator=n,this._spamProtectionActionCreator=i,this._paymentIntegrationService=r,this._errorLogger=o,this._paymentStrategyWidgetActionCreator=new Tm}execute(e,t){const{payment:n={},useStoreCredit:i}=e,r={methodId:n.methodId};return o=>{const{checkout:a}=o.getState(),{shouldExecuteSpamCheck:s}=a.getCheckoutOrThrow();return se(s?this._spamProtectionActionCreator.verifyCheckoutSpamProtection()(o):ce(),me(l(bm.ExecuteRequested,void 0,r)),de(()=>{const a=o.getState();let s;if(a.payment.isPaymentDataRequired(i)){const e=a.paymentMethods.getPaymentMethod(n.methodId,n.gatewayId);if(!e)throw new Qe(We.MissingPaymentMethod);s=this._getStrategy(e)}else s=this._strategyRegistryV2.get({id:km.NO_PAYMENT_DATA_REQUIRED});return s.execute(e,Object.assign(Object.assign({},t),{methodId:n.methodId,gatewayId:n.gatewayId})).then(()=>l(bm.ExecuteSucceeded,void 0,r))})).pipe(ge(e=>Je(bm.ExecuteFailed,e,r)))}}finalize(e){return t=>se(me(l(bm.FinalizeRequested)),this._loadOrderPaymentsIfNeeded(t,e),de(()=>{return n=this,i=void 0,o=function*(){const n=t.getState(),{providerId:i="",gatewayId:r=""}=n.payment.getPaymentId()||{},o=n.paymentMethods.getPaymentMethod(i,r);if(!o)throw new Am;const a=this._getStrategy(o);return yield a.finalize(Object.assign(Object.assign({},e),{methodId:o.id,gatewayId:o.gateway})),l(bm.FinalizeSucceeded,void 0,{methodId:o.id})},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o})).pipe(ge(e=>{const n=t.getState().payment.getPaymentId();return Je(bm.FinalizeFailed,e,{methodId:n&&n.providerId})}))}initialize(e){const{methodId:t,gatewayId:n}=e;return i=>de(()=>{var r,o;const a=i.getState(),s=a.paymentMethods.getPaymentMethod(t,n);if(!s)throw new Qe(We.MissingPaymentMethod);if(t&&a.paymentStrategies.isInitialized({methodId:t,gatewayId:n}))return ce();const{features:d}=a.config.getStoreConfigOrThrow().checkoutSettings,c=Wt(d,"CHECKOUT-9450.lazy_load_payment_strategies",!1);let u=!1;try{this._strategyRegistry.getByMethod(s)}catch(e){u=!0}if(c&&u){const t={id:s.id,gateway:s.gateway,type:s.type};Kt(this._strategyRegistryV2,null!==(r=e.integrations)&&void 0!==r?r:[],t,this._errorLogger),Yt(this._strategyRegistryV2,null!==(o=e.integrations)&&void 0!==o?o:[],this._paymentIntegrationService)}const h=this._getStrategy(s).initialize(Object.assign(Object.assign({},e),{methodId:t,gatewayId:n}));return se(me(l(bm.InitializeRequested,void 0,{methodId:t,gatewayId:n})),h.then(()=>l(bm.InitializeSucceeded,void 0,{methodId:t,gatewayId:n})))}).pipe(ge(e=>Je(bm.InitializeFailed,e,{methodId:t,gatewayId:n})))}deinitialize(e){const{methodId:t,gatewayId:n}=e;return i=>de(()=>{const r=i.getState(),o=r.paymentMethods.getPaymentMethod(t,n);if(!o)throw new Qe(We.MissingPaymentMethod);if(t&&!r.paymentStrategies.isInitialized({methodId:t,gatewayId:n}))return ce();const a=this._getStrategy(o).deinitialize(Object.assign(Object.assign({},e),{methodId:t,gatewayId:n}));return se(me(l(bm.DeinitializeRequested,void 0,{methodId:t,gatewayId:n})),a.then(()=>l(bm.DeinitializeSucceeded,void 0,{methodId:t,gatewayId:n})))}).pipe(ge(e=>Je(bm.DeinitializeFailed,e,{methodId:t,gatewayId:n})))}widgetInteraction(e,t){return this._paymentStrategyWidgetActionCreator.widgetInteraction(e,t)}_getStrategy(e){let t;try{t=this._strategyRegistry.getByMethod(e)}catch(n){t=this._strategyRegistryV2.get({id:e.id,gateway:e.gateway,type:e.type})}return t}_loadOrderPaymentsIfNeeded(e,t){const n=e.getState().checkout.getCheckout();return n&&n.orderId?this._orderActionCreator.loadOrderPayments(n.orderId,t):ce()}}class Mm{isEqual(e,t){return A(this._normalize(e),this._normalize(t))}_normalize(e){return{cartAmount:e.cartAmount,currency:e.currency,id:e.id,lineItems:{digitalItems:e.lineItems.digitalItems.slice().sort((e,t)=>`${e.productId}${e.variantId}`.localeCompare(`${t.productId}${t.variantId}`)).map(e=>({extendedSalePrice:e.extendedSalePrice,productId:e.productId,quantity:e.quantity,variantId:e.variantId})),giftCertificates:e.lineItems.giftCertificates.slice().sort((e,t)=>`${e.id}`.localeCompare(`${t.id}`)).map(e=>({amount:e.amount,recipient:e.recipient})),physicalItems:e.lineItems.physicalItems.slice().sort((e,t)=>`${e.productId}${e.variantId}`.localeCompare(`${t.productId}${t.variantId}`)).map(e=>({extendedSalePrice:e.extendedSalePrice,productId:e.productId,quantity:e.quantity,variantId:e.variantId,giftWrapping:e.giftWrapping}))}}}}class zm extends Ze{constructor(e,t){super("An update to your shopping cart has been detected and your available shipping costs have been updated."),this.name="CartChangedError",this.type="cart_changed",this.data={previous:e,updated:t}}}class Nm{constructor(e){this._checkoutRequestSender=e}validate(e,t){if(!e)throw new Qe(We.MissingCheckout);return this._checkoutRequestSender.loadCheckout(e.id,t).then(t=>{const n=new Mm;if(!(e.outstandingBalance===t.body.outstandingBalance&&this._compareCoupons(e.coupons,t.body.coupons)&&this._compareGiftCertificates(e.giftCertificates,t.body.giftCertificates)&&n.isEqual(e.cart,t.body.cart)))throw new zm(this._getComparableCheckout(e),this._getComparableCheckout(t.body))})}_compareCoupons(e,t){return A(B(e,"code"),B(t,"code"))}_compareGiftCertificates(e,t){return A(B(e,"code"),B(t,"code"))}_getComparableCheckout(e){const{cart:t,coupons:n,giftCertificates:i,outstandingBalance:r}=e;return{cart:{cartAmount:t.cartAmount,currency:t.currency,lineItems:t.lineItems},coupons:n,giftCertificates:i,outstandingBalance:r}}}class xm{constructor(e){this._namespace=e}getItem(e){const t=ke.getItem(this.withNamespace(e));if(null===t)return null;try{return JSON.parse(t)}catch(t){return this.removeItem(this.withNamespace(e)),null}}getItemOnce(e){const t=this.getItem(e);return this.removeItem(e),t}setItem(e,t){return ke.setItem(this.withNamespace(e),JSON.stringify(t))}removeItem(e){return ke.removeItem(this.withNamespace(e))}withNamespace(e){return`${this._namespace}.${e}`}}class Fm extends Ze{constructor(){super("Please complete our human verification challenge and try again."),this.name="CardingProtectionChallengeNotCompletedError",this.type="carding_protection_challenge_not_completed"}}class Rm extends Ze{constructor(){super("We were not able to verify that you are not a robot. Please try again."),this.name="CardingProtectionFailedError",this.type="carding_protection_failed"}}var Lm,Bm,jm=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Um{constructor(e){this._googleRecaptcha=e}handle(e,t){return jm(this,void 0,void 0,function*(){return"string"==typeof e?this.handleWithRecaptchaSitekey(e,t):this.handleWithPaymentHumanVerificationRequestError(e)})}handleWithPaymentHumanVerificationRequestError(e){return jm(this,void 0,void 0,function*(){if(!this._isPaymentHumanVerificationRequest(e))throw e;return yield this._initialize(e.body.additional_action_required.data.key),this._performRecaptcha()})}handleWithRecaptchaSitekey(e,t){return jm(this,void 0,void 0,function*(){if("recaptcha_v2"!==e)throw Error("Human verification method is not supported.");if(!t)throw Error("Recaptcha site key is missing.");return yield this._initialize(t),this._performRecaptcha()})}_performRecaptcha(){return this._googleRecaptcha.execute().pipe(be(1)).pipe(Ie(({error:e,token:t})=>jm(this,void 0,void 0,function*(){if(e instanceof mn)throw new Fm;if(e||!t)throw new Rm;return{type:"recaptcha_v2_verification",data:{human_verification_token:t}}}))).toPromise()}_initialize(e){const t="cardingProtectionContainer";let n=document.getElementById(t);return n&&n.parentNode&&n.parentNode.removeChild(n),n=document.createElement("div"),n.setAttribute("id",t),document.body.appendChild(n),this._googleRecaptcha.load(t,e)}_isPaymentHumanVerificationRequest(e){const{additional_action_required:t,status:n}=e.body||{};return"additional_action_required"===n&&t&&"recaptcha_v2_verification"===t.type}}function qm(e,t){const{body:n}=e,{errors:i=[]}=n;return new _t(e,{message:Vm(i)||t,errors:i})}function Vm(e){if(Array.isArray(e))return e.reduce((e,t)=>t&&t.message?[...e,t.message]:e,[]).join(" ")}class Gm extends Ze{constructor(e){super(e||"Unable to proceed due to invalid configuration provided for the hosted payment form."),this.name="InvalidHostedFormConfigError",this.type="invalid_hosted_form_config"}}class Hm extends Ze{constructor(e){super(e||"Unable to proceed due to an unknown error with the hosted payment form."),this.name="InvalidHostedFormError",this.type="invalid_hosted_form"}}class $m extends Ze{constructor(e){super(["Unable to proceed due to invalid user input values",..._(ie(e),e=>B(e,({message:e})=>e))].join(". ")),this.errors=e,this.name="InvalidHostedFormValueError",this.type="invalid_hosted_form_value"}}!function(e){e.AttachRequested="HOSTED_FIELD:ATTACH_REQUESTED",e.SubmitRequested="HOSTED_FIELD:SUBMITTED_REQUESTED",e.ValidateRequested="HOSTED_FIELD:VALIDATE_REQUESTED",e.StoredCardRequested="HOSTED_FIELD:STORED_CARD_REQUESTED"}(Lm||(Lm={})),function(e){e.AttachSucceeded="HOSTED_INPUT:ATTACH_SUCCEEDED",e.AttachFailed="HOSTED_INPUT:ATTACH_FAILED",e.BinChanged="HOSTED_INPUT:BIN_CHANGED",e.Blurred="HOSTED_INPUT:BLURRED",e.Changed="HOSTED_INPUT:CHANGED",e.CardTypeChanged="HOSTED_INPUT:CARD_TYPE_CHANGED",e.Entered="HOSTED_INPUT:ENTERED",e.Focused="HOSTED_INPUT:FOCUSED",e.SubmitSucceeded="HOSTED_INPUT:SUBMIT_SUCCEEDED",e.SubmitFailed="HOSTED_INPUT:SUBMIT_FAILED",e.Validated="HOSTED_INPUT:VALIDATED",e.StoredCardSucceeded="HOSTED_INPUT:STORED_CARD_SUCCEEDED",e.StoredCardFailed="HOSTED_INPUT:STORED_CARD_FAILED"}(Bm||(Bm={}));var Wm=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Ym{constructor(e,t,n,i,r,o,a,s,d,c){this._type=e,this._containerId=t,this._placeholder=n,this._accessibilityLabel=i,this._styles=r,this._eventPoster=o,this._eventListener=a,this._detachmentObserver=s,this._checkoutId=d,this._cardInstrument=c,this._iframe=document.createElement("iframe");const l=this._checkoutId?`/checkout/payment/hosted-field?version=1.819.0&checkoutId=${this._checkoutId}`:"/checkout/payment/hosted-field?version=1.819.0";this._iframe.src=l,this._iframe.style.border="none",this._iframe.style.height="100%",this._iframe.style.overflow="hidden",this._iframe.style.width="100%"}getType(){return this._type}attach(){return Wm(this,void 0,void 0,function*(){const e=document.getElementById(this._containerId);if(!e)throw new Gm("Unable to proceed because the provided container ID is not valid.");e.appendChild(this._iframe),this._eventListener.listen();const t=ue(this._iframe,"load").pipe(Ie(({target:e})=>Wm(this,void 0,void 0,function*(){const t=e&&e.contentWindow;if(!t)throw new Error("The content window of the iframe cannot be accessed.");this._eventPoster.setTarget(t),yield this._eventPoster.post({type:Lm.AttachRequested,payload:{accessibilityLabel:this._accessibilityLabel,cardInstrument:this._cardInstrument,fontUrls:this._getFontUrls(),placeholder:this._placeholder,styles:this._styles,origin:document.location.origin,type:this._type}},{successType:Bm.AttachSucceeded,errorType:Bm.AttachFailed})})),be(1)).toPromise();yield this._detachmentObserver.ensurePresence([this._iframe],t)})}detach(){this._iframe.parentElement&&(this._iframe.parentElement.removeChild(this._iframe),this._eventListener.stopListen())}submitForm(e,t){return Wm(this,void 0,void 0,function*(){try{const n=this._eventPoster.post({type:Lm.SubmitRequested,payload:{fields:e,data:t}},{successType:Bm.SubmitSucceeded,errorType:Bm.SubmitFailed});return yield this._detachmentObserver.ensurePresence([this._iframe],n)}catch(e){if(this._isSubmitErrorEvent(e)){if("hosted_form_error"===e.payload.error.code)throw new Hm(e.payload.error.message);if(e.payload.response)throw qm(e.payload.response);throw new Error(e.payload.error.message)}throw e}})}submitStoredCardForm(e,t){return Wm(this,void 0,void 0,function*(){const n=this._eventPoster.post({type:Lm.StoredCardRequested,payload:{fields:e,data:t}},{successType:Bm.StoredCardSucceeded,errorType:Bm.StoredCardFailed});return this._detachmentObserver.ensurePresence([this._iframe],n)})}validateForm(){return Wm(this,void 0,void 0,function*(){const e=this._eventPoster.post({type:Lm.ValidateRequested},{successType:Bm.Validated}),{payload:t}=yield this._detachmentObserver.ensurePresence([this._iframe],e);if(!t.isValid)throw new $m(t.errors)})}_getFontUrls(){const e="fonts.googleapis.com",t=document.querySelectorAll(`link[href*='${e}'][rel='stylesheet']`);return Array.prototype.slice.call(t).filter(t=>Mn(t.href).hostname===e).filter(e=>ie(this._styles).map(e=>e&&e.fontFamily).filter(e=>"string"==typeof e).some(t=>t.split(/,\s/).some(t=>-1!==e.href.indexOf(t.replace(" ","+"))))).map(e=>e.href)}_isSubmitErrorEvent(e){return e.type===Bm.SubmitFailed}}var Km,Jm=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Zm{constructor(e,t,n,i,r){this._fields=e,this._eventListener=t,this._payloadTransformer=n,this._eventCallbacks=i,this._paymentHumanVerificationHandler=r,this._handleEnter=({payload:e})=>Jm(this,void 0,void 0,function*(){try{yield this.validate()}catch(e){if(e instanceof Error&&"InvalidHostedFormValueError"!==e.name)throw e}const{onEnter:t=V}=this._eventCallbacks;t(e)});const{onBlur:o=V,onCardTypeChange:a=V,onFocus:s=V,onValidate:d=V}=this._eventCallbacks;this._eventListener.addListener(Bm.Blurred,({payload:e})=>o(e)),this._eventListener.addListener(Bm.CardTypeChanged,({payload:e})=>a(e)),this._eventListener.addListener(Bm.Focused,({payload:e})=>s(e)),this._eventListener.addListener(Bm.Validated,({payload:e})=>d(e)),this._eventListener.addListener(Bm.Entered,this._handleEnter),this._eventListener.addListener(Bm.CardTypeChanged,({payload:e})=>this._cardType=e.cardType),this._eventListener.addListener(Bm.BinChanged,({payload:e})=>this._bin=e.bin)}getBin(){return this._bin}getCardType(){return this._cardType}attach(){return Jm(this,void 0,void 0,function*(){this._eventListener.listen();const e=this._getFirstField(),t=re(this._fields,e);yield e.attach(),yield Promise.all(t.map(e=>e.attach()))})}detach(){this._eventListener.stopListen(),this._fields.forEach(e=>{e.detach()})}submit(e,t){return Jm(this,void 0,void 0,function*(){try{return yield this._getFirstField().submitForm(this._fields.map(e=>e.getType()),this._payloadTransformer.transform(e,t))}catch(t){const n=yield this._paymentHumanVerificationHandler.handle(t);return yield this._getFirstField().submitForm(this._fields.map(e=>e.getType()),this._payloadTransformer.transform(e,n))}})}submitStoredCard(e){return Jm(this,void 0,void 0,function*(){return this._getFirstField().submitStoredCardForm(e.fields,e.data)})}validate(){return Jm(this,void 0,void 0,function*(){return this._getFirstField().validateForm()})}_getFirstField(){const e=this._fields[0];if(!e)throw new Gm("Unable to proceed because the payment form has no field defined.");return e}}function Qm(e){return Boolean(e.instrumentId)}class Xm{constructor(e){this._store=e}transform(e,t){const n=this._store.getState(),i=n.checkout.getCheckout(),r=n.config.getConfig(),o=n.instruments.getInstrumentsMeta(),a=n.order.getOrder(),s=n.order.getOrderMeta(),d=G(e.paymentData,"ccExpiry","ccName","ccNumber","ccCvv"),c=n.paymentMethods.getPaymentMethod(e.methodId,e.gatewayId),l=n.paymentMethods.getPaymentMethodsMeta(),u=o&&d&&Qm(d)?`${n.payment.getPaymentToken()}, ${o.vaultAccessToken}`:n.payment.getPaymentToken();if(!u)throw new Qe(We.MissingPaymentToken);return{additionalAction:t,authToken:u,checkout:i,config:r,order:a,orderMeta:s,payment:d,paymentMethod:c,paymentMethodMeta:l}}}class ey{constructor(e){this._store=e}create(e,t,n){const i=Object.keys(t.fields).reduce((i,r)=>{const o=t.fields[r];return o?[...i,new Ym(r,o.containerId,o.placeholder||"",o.accessibilityLabel||"",t.styles||{},new Rn(e),new ai(e),new qn(new Sn),n,"instrumentId"in o?this._getCardInstrument(o.instrumentId):void 0)]:i},[]);return new Zm(i,new ai(e),new Xm(this._store),W(t,"onBlur","onEnter","onFocus","onCardTypeChange","onValidate"),new Um(bn(o())))}_getCardInstrument(e){const{instruments:{getCardInstrument:t}}=this._store.getState(),n=t(e);if(!n)throw new Qe(We.MissingPaymentInstrument);return n}}!function(e){e.SubmitPaymentRequested="SUBMIT_PAYMENT_REQUESTED",e.SubmitPaymentSucceeded="SUBMIT_PAYMENT_SUCCEEDED",e.SubmitPaymentFailed="SUBMIT_PAYMENT_FAILED",e.InitializeOffsitePaymentRequested="INITIALIZE_OFFSITE_PAYMENT_REQUESTED",e.InitializeOffsitePaymentSucceeded="INITIALIZE_OFFSITE_PAYMENT_SUCCEEDED",e.InitializeOffsitePaymentFailed="INITIALIZE_OFFSITE_PAYMENT_FAILED"}(Km||(Km={}));class ty{constructor(e,t,n,i){this._paymentRequestSender=e,this._orderActionCreator=t,this._paymentRequestTransformer=n,this._paymentHumanVerificationHandler=i,this.initializeOffsitePayment=({methodId:e,gatewayId:t,instrumentId:n,target:i,promise:r,shouldSaveInstrument:o,shouldSetAsDefaultInstrument:a})=>s=>{let d;n?d={formattedPayload:{bigpay_token:n}}:o&&(d={formattedPayload:{vault_payment_instrument:o,set_as_default_stored_instrument:a||null}});const c=this._paymentRequestTransformer.transform({gatewayId:t,methodId:e,paymentData:d},s.getState());return se(me(l(Km.InitializeOffsitePaymentRequested)),Promise.race([this._paymentRequestSender.initializeOffsitePayment(c,i),r].filter(Boolean)).then(()=>l(Km.InitializeOffsitePaymentSucceeded))).pipe(ge(e=>Je(Km.InitializeOffsitePaymentFailed,e)))}}submitPayment(e){return t=>se(me(l(Km.SubmitPaymentRequested)),de(()=>{return n=this,i=void 0,o=function*(){try{return yield this._paymentRequestSender.submitPayment(this._paymentRequestTransformer.transform(e,t.getState()))}catch(n){const i=yield this._paymentHumanVerificationHandler.handle(n);return yield this._paymentRequestSender.submitPayment(this._paymentRequestTransformer.transform(Object.assign(Object.assign({},e),{additionalAction:i}),t.getState()))}},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}).pipe(Ie(({body:e})=>se(this._orderActionCreator.loadCurrentOrder()(t),me(l(Km.SubmitPaymentSucceeded,e)))))).pipe(ge(e=>Je(Km.SubmitPaymentFailed,e)))}}class ny{constructor(e){this._client=e}submitPayment(e){return new Promise((t,n)=>{this._client.submitPayment(e,(e,i)=>{e?n(this._transformResponse(e)):t(this._transformResponse(i))})})}initializeOffsitePayment(e,t){return new Promise(()=>{this._client.initializeOffsitePayment(e,null,t)})}_transformResponse(e){return{headers:e.headers,body:e.data,status:e.status,statusText:e.statusText}}}function iy(e,t){let n;return function(e){return void 0!==e.id}(e)?n=e.id:t&&t.length&&(n=t[0].id),{id:n,firstName:e.firstName,lastName:e.lastName,company:e.company,addressLine1:e.address1,addressLine2:e.address2,city:e.city,province:e.stateOrProvince,provinceCode:e.stateOrProvinceCode,postCode:e.postalCode,country:e.country,countryCode:e.countryCode,phone:e.phone,customFields:e.customFields}}const ry=["per_item_discount","percentage_discount","per_total_discount","shipping_discount","free_shipping"];function oy(e){return{code:e.code,discount:e.displayName,discountType:ry.indexOf(e.couponType)}}function ay(e){return{code:e.code,discountedAmount:e.used,remainingBalance:e.remaining,giftCertificate:{balance:e.balance,code:e.code,purchaseDate:e.purchaseDate}}}function sy(e){const t=[];return(e||[]).forEach(e=>{(e.banners||[]).forEach(e=>{t.push({placeholders:[],discountType:null,message:"",messageHtml:e.text})})}),t}function dy(e,t,n="id"){return Object.keys(e).reduce((i,r)=>[...i,...e[r].map(e=>"giftCertificates"===r?function(e,t){const n=new dd(t);return{id:e.id,imageUrl:"",name:e.name,amount:e.amount,amountAfterDiscount:e.amount,discount:0,integerAmount:n.toInteger(e.amount),integerAmountAfterDiscount:n.toInteger(e.amount),integerUnitPrice:n.toInteger(e.amount),integerUnitPriceAfterDiscount:n.toInteger(e.amount),integerDiscount:0,quantity:1,sender:e.sender,recipient:e.recipient,type:"ItemGiftCertificateEntity",attributes:[],variantId:null}}(e,t):function(e,t,n,i="id"){const r=new dd(n);return{id:e[i],imageUrl:e.imageUrl,amount:e.extendedListPrice,amountAfterDiscount:e.extendedSalePrice,discount:e.discountAmount,integerAmount:r.toInteger(e.extendedListPrice),integerAmountAfterDiscount:r.toInteger(e.extendedSalePrice),integerDiscount:r.toInteger(e.discountAmount),integerUnitPrice:r.toInteger(e.listPrice),integerUnitPriceAfterDiscount:r.toInteger(e.salePrice),downloadsPageUrl:e.downloadPageUrl,name:e.name,quantity:e.quantity,brand:e.brand,sku:e.sku,categoryNames:e.categoryNames,variantId:e.variantId,productId:e.productId,attributes:(e.options||[]).map(e=>({name:e.name,value:e.value})),addedByPromotion:e.addedByPromotion,type:t}}(e,function(e){switch(e){case"physicalItems":return"ItemPhysicalEntity";case"digitalItems":return"ItemDigitalEntity";case"giftCertificates":return"ItemGiftCertificateEntity";default:return""}}(r),t,n))],[])}function cy(e){const t=e.cart.currency.decimalPlaces,n=new dd(t);return{id:e.cart.id,items:dy(e.cart.lineItems,t),currency:e.cart.currency.code,coupon:{discountedAmount:K(e.cart.coupons,(e,t)=>e+t.discountedAmount,0),coupons:e.cart.coupons.map(oy)},discount:{amount:e.cart.discountAmount,integerAmount:n.toInteger(e.cart.discountAmount)},discountNotifications:sy(e.promotions),giftCertificate:{totalDiscountedAmount:K(e.giftCertificates,(e,t)=>e+t.used,0),appliedGiftCertificates:F(e.giftCertificates.map(ay),"code")},shipping:{amount:e.shippingCostTotal,integerAmount:n.toInteger(e.shippingCostTotal),amountBeforeDiscount:e.shippingCostBeforeDiscount,integerAmountBeforeDiscount:n.toInteger(e.shippingCostBeforeDiscount),required:Z(e.cart.lineItems.physicalItems,e=>e.isShippingRequired)},subtotal:{amount:e.subtotal,integerAmount:n.toInteger(e.subtotal)},storeCredit:{amount:e.customer?e.customer.storeCredit:0},taxSubtotal:{amount:e.taxTotal,integerAmount:n.toInteger(e.taxTotal)},taxes:e.taxes,taxTotal:{amount:e.taxTotal,integerAmount:n.toInteger(e.taxTotal)},handling:{amount:e.handlingCostTotal,integerAmount:n.toInteger(e.handlingCostTotal)},grandTotal:{amount:e.grandTotal,integerAmount:n.toInteger(e.grandTotal)}}}var ly;!function(e){e.APPLEPAY="applepay",e.AMAZON_PAY_V2="amazonpay",e.BRAINTREE_PAYPAL="braintreepaypal",e.BRAINTREE_VENMO="braintreevenmo",e.BRAINTREE_PAYPAL_CREDIT="braintreepaypalcredit",e.GOOGLEPAY_ADYENV2="googlepayadyenv2",e.GOOGLEPAY_ADYENV3="googlepayadyenv3",e.GOOGLEPAY_AUTHORIZENET="googlepayauthorizenet",e.GOOGLEPAY_BNZ="googlepaybnz",e.GOOGLEPAY_BRAINTREE="googlepaybraintree",e.GOOGLEPAY_CHECKOUTCOM="googlepaycheckoutcom",e.GOOGLEPAY_CYBERSOURCEV2="googlepaycybersourcev2",e.GOOGLEPAY_ORBITAL="googlepayorbital",e.GOOGLEPAY_STRIPE="googlepaystripe",e.GOOGLEPAY_STRIPEUPE="googlepaystripeupe",e.GOOGLEPAY_WORLDPAYACCESS="googlepayworldpayaccess",e.MASTERPASS="masterpass",e.PAYPALEXPRESS="paypalexpress"}(ly||(ly={}));const uy=ly;function hy(e,t){const n=e.firstName||t.firstName||"",i=e.lastName||t.lastName||"";return{addresses:(e.addresses||[]).map(e=>iy(e)),customerId:e.id,isGuest:e.isGuest,storeCredit:e.storeCredit,email:e.email||t.email||"",firstName:n,lastName:i,name:e.fullName||[n,i].join(" "),customerGroupName:e.customerGroup&&e.customerGroup.name}}class py{format(e){const[t="",n=""]=e.split(new RegExp("\\s*/\\s*")),i=t.slice(0,2),r=4===n.length?n.slice(-2):n?n.slice(0,2):t.slice(2);return e.length<2?t:e.length>3&&!r?i:`${i} / ${r}`}toObject(e){const[t="",n=""]=e.split(new RegExp("\\s*/\\s*"));return/^\d+$/.test(t)&&/^\d+$/.test(n)?{month:1===t.length?`0${t}`:t.slice(0,2),year:2===n.length?`20${n}`:n.slice(0,4)}:{month:"",year:""}}}class my{format(e){const{card:t}=Me(e);if(!t)return e;const n=j(De(e).map(e=>j(e.lengths))),i=this.unformat(e).slice(0,n);return t.gaps.filter(e=>i.length>e).reduce((e,t,n)=>[e.slice(0,t+n),e.slice(t+n)].join(" "),i)}unformat(e){const{card:t}=Me(e);return t?e.replace(new RegExp(" ","g"),""):e}}function yy(e,t={}){const n=e.currency.decimalPlaces,i=new dd(n);return{id:e.orderId,items:dy(e.lineItems,e.currency.decimalPlaces,"productId"),orderId:e.orderId,currency:e.currency.code,customerCanBeCreated:e.customerCanBeCreated,payment:fy(e.payments,t.payment),subtotal:{amount:e.baseAmount,integerAmount:i.toInteger(e.baseAmount)},coupon:{discountedAmount:K(e.coupons,(e,t)=>e+t.discountedAmount,0),coupons:e.coupons.map(oy)},discount:{amount:e.discountAmount,integerAmount:i.toInteger(e.discountAmount)},token:t.orderToken,callbackUrl:t.callbackUrl,discountNotifications:[],giftCertificate:vy(e.payments),socialData:wy(e),status:e.status,hasDigitalItems:e.hasDigitalItems,isDownloadable:e.isDownloadable,isComplete:e.isComplete,shipping:{amount:e.shippingCostTotal,integerAmount:i.toInteger(e.shippingCostTotal),amountBeforeDiscount:e.shippingCostBeforeDiscount,integerAmountBeforeDiscount:i.toInteger(e.shippingCostBeforeDiscount)},storeCredit:{amount:gy(e.payments)},taxes:e.taxes,taxTotal:{amount:e.taxTotal,integerAmount:i.toInteger(e.taxTotal)},handling:{amount:e.handlingCostTotal,integerAmount:i.toInteger(e.handlingCostTotal)},grandTotal:{amount:e.orderAmount,integerAmount:e.orderAmountAsInteger}}}function gy(e){const t=S(e,{providerId:"storecredit"});return t?t.amount:0}function vy(e){const t=f(e,{providerId:"giftcertificate"});return{totalDiscountedAmount:K(t,(e,t)=>t.amount+e,0),appliedGiftCertificates:F(t.map(e=>({code:e.detail.code,discountedAmount:e.amount,remainingBalance:e.detail.remaining,giftCertificate:{balance:e.amount+e.detail.remaining,code:e.detail.code,purchaseDate:""}})),"code")}}function fy(e,t={}){const n=S(e,Sy);return n?{id:n.providerId,status:(i=n.detail.step,`PAYMENT_STATUS_${i}`),helpText:n.detail.instructions,returnUrl:t.returnUrl}:{};var i}function Sy(e){return"giftcertificate"!==e.providerId&&"storecredit"!==e.providerId}function wy(e){const t={};return[...e.lineItems.physicalItems,...e.lineItems.digitalItems].forEach(e=>{var n;t[e.id]=(n=e,["fb","tw","gp"].reduce((e,t)=>{const i=n.socialMedia&&S(n.socialMedia,e=>e.code===t);return i?(e[t]={name:n.name,description:n.name,image:n.imageUrl,url:i.link,shareText:i.text,sharingLink:i.link,channelName:i.channel,channelCode:i.code},e):e},{}))}),t}function _y(e,t){return{description:e.description,module:e.type,price:e.cost,id:e.id,selected:t,isRecommended:e.isRecommended,imageUrl:e.imageUrl,transitTime:e.transitTime}}class Cy{constructor(){this._cardExpiryFormatter=new py,this._cardNumberFormatter=new my}transform(e,t){const n=t.billingAddress.getBillingAddress(),i=t.checkout.getCheckout(),r=t.customer.getCustomer(),o=t.order.getOrder(),a=t.paymentMethods.getPaymentMethod(e.methodId,e.gatewayId),s=this._mapShippingAddress(t,a),d=t.consignments.getConsignments(),c=t.consignments.getShippingOption(),l=t.config.getStoreConfig(),u=t.config.getContextConfig(),h=t.instruments.getInstrumentsMeta(),p=t.paymentMethods.getPaymentMethodsMeta(),m=t.order.getOrderMeta(),y=r&&n&&hy(r,n),g=h&&e.paymentData&&(Qm(e.paymentData)||function(e){const t=e.formattedPayload;return!!t&&("string"==typeof t.bigpay_token||Boolean(t.bigpay_token&&t.bigpay_token.token))}(e.paymentData))?`${t.payment.getPaymentToken()}, ${h.vaultAccessToken}`:t.payment.getPaymentToken();if(!g)throw new Qe(We.MissingPaymentToken);return{additionalAction:e.additionalAction,authToken:g,customer:y,billingAddress:n&&iy(n),shippingAddress:s&&iy(s,d),shippingOption:c&&_y(c,!0),cart:i&&cy(i),order:o&&yy(o,m),orderMeta:m,payment:e.paymentData,paymentMethod:a&&this._transformPaymentMethod(a),quoteMeta:{request:Object.assign(Object.assign({},p),{geoCountryCode:u&&u.geoCountryCode})},source:"bigcommerce-checkout-js-sdk",store:W(l&&l.storeProfile,["storeHash","storeId","storeLanguage","storeName"])}}transformWithHostedFormData(e,t,n){const{additionalAction:i,authToken:r,checkout:o,config:a,order:s,orderMeta:d,payment:c={},paymentMethod:l,paymentMethodMeta:u}=t,h=o&&o.consignments[0],p=h&&h.shippingAddress,m=h&&h.selectedShippingOption;return{additionalAction:i,authToken:r,paymentMethod:l&&this._transformPaymentMethod(l),customer:s&&s.billingAddress&&o&&hy(o.customer,s.billingAddress),billingAddress:s&&s.billingAddress&&iy(s.billingAddress),shippingAddress:p&&o&&iy(p,o.consignments),shippingOption:m&&_y(m,!0),cart:o&&cy(o),order:s&&yy(s,d),orderMeta:d,payment:this._transformHostedInputValues(e,c,n),quoteMeta:{request:Object.assign(Object.assign({},u),{geoCountryCode:a&&a.context.geoCountryCode})},source:"bigcommerce-checkout-js-sdk",store:a&&W(a.storeConfig.storeProfile,["storeHash","storeId","storeLanguage","storeName"])}}_transformPaymentMethod(e){return"multi-option"!==e.method||e.gateway?e.initializationData&&e.initializationData.gateway?Object.assign(Object.assign({},e),{id:e.initializationData.gateway}):e.id===uy.BRAINTREE_VENMO?Object.assign(Object.assign({},e),{id:uy.BRAINTREE_PAYPAL}):e:Object.assign(Object.assign({},e),{gateway:e.id})}_transformHostedInputValues(e,t,n){return"instrumentId"in t?Object.assign(Object.assign({},t),{ccCvv:e.cardCodeVerification,ccNumber:e.cardNumberVerification&&this._cardNumberFormatter.unformat(e.cardNumberVerification),hostedFormNonce:n}):Object.assign(Object.assign({},t),{ccCvv:e.cardCode,ccExpiry:this._cardExpiryFormatter.toObject(e.cardExpiry||""),ccName:e.cardName||"",ccNumber:this._cardNumberFormatter.unformat(e.cardNumber||""),hostedFormNonce:n})}_mapShippingAddress(e,t){var n,i,r,o;if(t){const a=null===(i=null===(n=t.initializationData)||void 0===n?void 0:n.bopis)||void 0===i?void 0:i.enabled,s=null===(o=null===(r=t.initializationData)||void 0===r?void 0:r.bopis)||void 0===o?void 0:o.requiredAddress,d=e.consignments.getConsignments(),c=null==d?void 0:d.every(e=>e.selectedPickupOption);if(a&&c&&"none"===s)return}return e.shippingAddress.getShippingAddress()}}const Iy=e=>{const{type:t,initializationStrategy:n}=e;return t===km.PPSDK&&"string"==typeof(null==n?void 0:n.type)};class by extends Bt{getByMethod(e){if(!e)return this.get();const t=this._getToken(e),n=[e.gateway,e.id].filter(e=>null!=e).join("-");return this.get(t,n)}_getToken(e){if(Iy(e))return km.PPSDK;if("klarna"===e.gateway)return km.KLARNAV2;const t=e.gateway||e.id;if(this._hasFactoryForMethod(t))return t;if("PAYMENT_TYPE_OFFLINE"===e.type)return km.OFFLINE;throw new Lt(`'${t}' is not registered.`)}_hasFactoryForMethod(e){return this._hasFactory(e)}}const Py="FINALIZE";class Oy extends Lt{constructor(e){let t="Unable to submit payment for the order because the payload is invalid.";e&&(t=`${t} Make sure the following fields are provided correctly: ${e.join(", ")}.`),super(t),this.name="PaymentArgumentInvalidError"}}var Ey=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n};class Ay{constructor(e,t,n,i){this._store=e,this._orderActionCreator=t,this._paymentActionCreator=n,this._hostedFormFactory=i}execute(e,t){var n,i;return this._isHostedPaymentFormEnabled(null===(n=e.payment)||void 0===n?void 0:n.methodId,null===(i=e.payment)||void 0===i?void 0:i.gatewayId)&&this._shouldRenderHostedForm?this._executeWithHostedForm(e,t):this._executeWithoutHostedForm(e,t)}finalize(e){return Promise.reject(new Am)}initialize(e){if(!this._isHostedPaymentFormEnabled(null==e?void 0:e.methodId,null==e?void 0:e.gatewayId)||!this._isHostedFieldAvailable(e))return this._shouldRenderHostedForm=!1,Promise.resolve(this._store.getState());const t=e&&e.creditCard&&e.creditCard.form,{config:n}=this._store.getState(),{paymentSettings:{bigpayBaseUrl:i=""}={}}=n.getStoreConfig()||{};if(!t)throw new Lt;const r=this._hostedFormFactory.create(i,t);return r.attach().then(()=>(this._shouldRenderHostedForm=!0,this._hostedForm=r,this._store.getState()))}deinitialize(e){return this._hostedForm&&this._hostedForm.detach(),Promise.resolve(this._store.getState())}_executeWithoutHostedForm(e,t){const{payment:n}=e,i=Ey(e,["payment"]),r=n&&n.paymentData;if(!n||!r)throw new Oy(["payment.paymentData"]);return this._store.dispatch(this._orderActionCreator.submitOrder(i,t)).then(()=>this._store.dispatch(this._paymentActionCreator.submitPayment(Object.assign(Object.assign({},n),{paymentData:r}))))}_executeWithHostedForm(e,t){const{payment:n}=e,i=Ey(e,["payment"]),r=this._hostedForm;if(!r)throw new wn(gn.PaymentNotInitialized);if(!n||!n.methodId)throw new Oy(["payment.methodId"]);return r.validate().then(()=>this._store.dispatch(this._orderActionCreator.submitOrder(i,t))).then(()=>r.submit(n)).then(()=>this._store.dispatch(this._orderActionCreator.loadCurrentOrder()))}_isHostedPaymentFormEnabled(e,t){if(!e)return!1;const{paymentMethods:{getPaymentMethodOrThrow:n}}=this._store.getState();return!0===n(e,t).config.isHostedFormEnabled}_isHostedFieldAvailable(e){return!ie(e&&e.creditCard&&e.creditCard.form.fields).every(T)}}class ky extends Ay{constructor(e,t,n,i,r){super(e,t,n,i),this._formPoster=r}execute(e,t){return super.execute(e,t).catch(e=>e instanceof _t&&Z(e.body.errors,{code:"three_d_secure_required"})?new Promise(()=>{this._formPoster.postForm(e.body.three_ds_result.acs_url,{PaReq:e.body.three_ds_result.payer_auth_request,TermUrl:e.body.three_ds_result.callback_url,MD:e.body.three_ds_result.merchant_data})}):Promise.reject(e))}finalize(e){const t=this._store.getState(),n=t.order.getOrder();return n&&t.payment.getPaymentStatus()===Py?this._store.dispatch(this._orderActionCreator.finalizeOrder(n.orderId,e)):Promise.reject(new Am)}}class Ty{constructor(e,t,n,i,r){this._store=e,this._orderActionCreator=t,this._paymentActionCreator=n,this._masterpassScriptLoader=i,this._locale=r}initialize(e){const{methodId:t}=e;if(this._paymentMethod=this._store.getState().paymentMethods.getPaymentMethod(t),!this._paymentMethod)throw new Qe(We.MissingPaymentMethod);const n={useMasterpassSrc:this._paymentMethod.initializationData.isMasterpassSrcEnabled,language:Tn(this._locale),testMode:this._paymentMethod.config.testMode,checkoutId:this._paymentMethod.initializationData.checkoutId};return this._masterpassScriptLoader.load(n).then(t=>{if(this._masterpassClient=t,!e.masterpass)throw new Lt('Unable to initialize payment because "options.masterpass" argument is not provided.');const n=e.masterpass.walletButton&&document.getElementById(e.masterpass.walletButton);return n&&(this._walletButton=n,this._walletButton.addEventListener("click",this._handleWalletButtonClick)),this._store.getState()})}deinitialize(){return this._paymentMethod=void 0,this._walletButton&&this._walletButton.removeEventListener("click",this._handleWalletButtonClick),this._walletButton=void 0,this._masterpassClient=void 0,Promise.resolve(this._store.getState())}execute(e,t){const{payment:n}=e,i={useStoreCredit:e.useStoreCredit};if(!n)throw new Lt('Unable to submit payment because "payload.payment" argument is not provided.');if(!this._paymentMethod||!this._paymentMethod.initializationData||!this._paymentMethod.initializationData.gateway)throw new Qe(We.MissingPaymentMethod);const r=this._paymentMethod.initializationData.paymentData;if(!r)throw new Lt('Unable to proceed because "paymentMethod.initializationData.paymentData" argument is not provided.');return this._store.dispatch(this._orderActionCreator.submitOrder(i,t)).then(()=>this._store.dispatch(this._paymentActionCreator.submitPayment(Object.assign(Object.assign({},n),{paymentData:r}))))}finalize(){return Promise.reject(new Am)}_createMasterpassPayload(){const e=this._store.getState(),t=e.checkout.getCheckout(),n=e.config.getStoreConfig();if(!t)throw new Qe(We.MissingCheckout);if(!n)throw new Qe(We.MissingCheckoutConfig);if(!this._paymentMethod||!this._paymentMethod.initializationData)throw new Qe(We.MissingPaymentMethod);return{checkoutId:this._paymentMethod.initializationData.checkoutId,allowedCardTypes:this._paymentMethod.initializationData.allowedCardTypes,amount:t.subtotal.toFixed(2),currency:n.currency.code,cartId:t.cart.id,callbackUrl:An("checkout")}}_handleWalletButtonClick(e){if(e.preventDefault(),!this._masterpassClient)return;const t=this._createMasterpassPayload();this._masterpassClient.checkout(t)}}!function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);o>3&&a&&Object.defineProperty(t,n,a)}([Kn],Ty.prototype,"_handleWalletButtonClick",null);class Dy extends Ze{constructor(e){super(e||"Payment process was cancelled."),this.name="PaymentMethodCancelledError",this.type="payment_cancelled"}}const My="redirecting";class zy{constructor(){this._isRedirecting=this.currentUrlHasRedirectingParam()}isRedirecting(){return this._isRedirecting}setRedirecting(e){e?this.setRedirectingParamOnUrl():this.removeRedirectingParamFromUrl(),this._isRedirecting=e}currentUrlHasRedirectingParam(){return My in this.getCurrentUrl().query}getCurrentUrl(){return Ne(window.location.href)}replaceCurrentUrl(e){window.history.replaceState(null,"",e)}setRedirectingParamOnUrl(){if(this.currentUrlHasRedirectingParam())return;const e=this.getCurrentUrl(),t=Object.assign(Object.assign({},e),{query:Object.assign(Object.assign({},e.query),{[My]:"true"})});this.replaceCurrentUrl(xe(t))}removeRedirectingParamFromUrl(){this.currentUrlHasRedirectingParam()&&this.replaceCurrentUrl(ze(window.location.href,[My]))}}const Ny=$([e=>"continue"===I(e,"type")&&"redirect"===I(e,"code")&&(e=>{const t=I(e,"form_fields");return z(I(e,"url"))&&(N(t)||D(t))})(I(e,"parameters")),e=>"continue"===I(e,"type")&&"resubmit_with_human_verification"===I(e,"code")&&(e=>{const t=I(e,"available_methods");return O(t)})(I(e,"parameters"))]);class xy{constructor(e,t){this._formPoster=e,this._humanVerificationHandler=t}handle(e,t){switch(e.code){case"redirect":return(({url:e,form_fields:t},n)=>{const i=new zy;return i.isRedirecting()?(i.setRedirecting(!1),Promise.reject(new Dy)):(i.setRedirecting(!0),t?n.postForm(e,t):window.location.assign(e),new Promise(V))})(e.parameters,this._formPoster);case"resubmit_with_human_verification":return(({available_methods:e},t,n)=>{return i=void 0,r=void 0,a=function*(){if(!n)throw new Error("PPSDK human verification callback function is missing.");if(!t)throw new Error("PPSDK human verification handler is missing.");if(0===e.length)throw Error("Human verification method is missing.");const{id:i,parameters:r}=e[0],o=yield t.handle(i,r.key);return n(o)},new((o=void 0)||(o=Promise))(function(e,t){function n(e){try{d(a.next(e))}catch(e){t(e)}}function s(e){try{d(a.throw(e))}catch(e){t(e)}}function d(t){var i;t.done?e(t.value):(i=t.value,i instanceof o?i:new o(function(e){e(i)})).then(n,s)}d((a=a.apply(i,r||[])).next())});var i,r,o,a})(e.parameters,this._humanVerificationHandler,null==t?void 0:t.humanVerification)}}}class Fy{constructor(e){this._continueHandler=e}handle(e,t){const{body:n}=e;return(e=>"success"===I(e,"type"))(n)?Promise.resolve():(e=>Ny(e))(n)?this._continueHandler.handle(n,null==t?void 0:t.continue):(e=>"failure"===I(e.body,"type")&&z(I(e.body,"code")))(e)?(e=>{return Promise.reject(new _t((t=e,Object.assign(Object.assign({},t),{body:{errors:[{code:t.body.code}]}}))));var t})(e):((e=>{I(e.body,"type")})(e),(e=>Promise.reject(new _t(e)))(e))}}const Ry="completed-payments";class Ly{constructor(e){this._browserStorage=e}isCompleted(e){return this.getCompletedPayments().indexOf(e)>=0}setCompleted(e){const t=this.getCompletedPayments();t.push(e),this.setCompletedPayments(t)}getCompletedPayments(){return this._browserStorage.getItem(Ry)||[]}setCompletedPayments(e){this._browserStorage.setItem(Ry,e)}}var By,jy=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Uy{constructor(e,t,n,i,r){this._store=e,this._orderActionCreator=t,this._subStrategyRegistry=n,this._paymentResumer=i,this._completedPayments=new Ly(r)}execute(e,t){var n;return jy(this,void 0,void 0,function*(){const{bigpayBaseUrl:i}=this._store.getState().config.getStoreConfigOrThrow().paymentSettings;if(!(null==t?void 0:t.methodId))throw new Lt('Unable to submit payment because "options.methodId" argument is not provided.');const{methodId:r}=t,{payment:o}=e,a=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["payment"]),{_subStrategy:s}=this;if(!s)throw new wn(gn.PaymentNotInitialized);yield this._store.dispatch(this._orderActionCreator.submitOrder(a,t));const d=null===(n=this._store.getState().order.getOrderMeta())||void 0===n?void 0:n.token;if(!d)throw new Qe(We.MissingOrder);return yield s.execute({methodId:r,payment:o,bigpayBaseUrl:i,token:d}),this._store.getState()})}finalize(e){return jy(this,void 0,void 0,function*(){const t=this._store.getState().order.getOrderOrThrow();if(t.isComplete)return this._store.getState();const{bigpayBaseUrl:n}=this._store.getState().config.getStoreConfigOrThrow().paymentSettings;if(!(null==e?void 0:e.methodId))throw new Lt('Unable to submit payment because "options.methodId" argument is not provided.');const i=this._store.getState().order.getPaymentId(e.methodId);if(!i||!t||this._completedPayments.isCompleted(i))throw new Am;const{orderId:r}=t;return yield this._paymentResumer.resume({paymentId:i,bigpayBaseUrl:n,orderId:r}).catch(e=>{throw this._completedPayments.setCompleted(i),e}),this._store.getState()})}initialize(e){return jy(this,void 0,void 0,function*(){if(!(null==e?void 0:e.methodId))throw new Lt('Unable to submit payment because "options.methodId" argument is not provided.');const t=((e,t)=>{const n=e.getState().paymentMethods.getPaymentMethod(t);if(n&&Iy(n))return n})(this._store,e.methodId);if(!t)throw new wn(gn.PaymentNotInitialized);if(this._subStrategy=this._subStrategyRegistry.getByMethod(t),!this._subStrategy)throw new wn(gn.PaymentNotInitialized);return yield this._subStrategy.initialize(e),this._store.getState()})}deinitialize(e){var t;return jy(this,void 0,void 0,function*(){return null===(t=this._subStrategy)||void 0===t||t.deinitialize(),this._store.getState()})}}!function(e){e.CARD="card_ui",e.NONE="none",e.UNSUPPORTED="unsupported"}(By||(By={}));const qy=m([[e=>"card_ui"===e.type,y(By.CARD)],[e=>"none"===e.type,y(By.NONE)],[Q,y(By.UNSUPPORTED)]]);class Vy extends Bt{getByMethod(e){const t=qy(e.initializationStrategy);return this.get(t)}}var Gy=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Hy{constructor(e,t,n,i){this._store=e,this._orderActionCreator=t,this._hostedFormFactory=n,this._ppsdkStepHandler=i}execute(e){return Gy(this,void 0,void 0,function*(){const t=this._hostedForm;if(!t)throw new wn(gn.PaymentNotInitialized);const{additionalAction:n,payment:i}=e;if(!i||!i.methodId)throw new Oy(["payment.methodId"]);yield t.validate();const{payload:r}=yield t.submit(i,n),{response:o}=r;yield this._ppsdkStepHandler.handle(o,{continue:{humanVerification:t=>Gy(this,void 0,void 0,function*(){return this.execute(Object.assign({additionalAction:t},e))})}}),yield this._store.dispatch(this._orderActionCreator.loadCurrentOrder())})}initialize(e){return Gy(this,void 0,void 0,function*(){const t=e&&e.creditCard&&e.creditCard.form,{config:n,checkout:i}=this._store.getState(),{paymentSettings:{bigpayBaseUrl:r=""}={}}=n.getStoreConfig()||{},o=i.getCheckoutOrThrow().id;if(!t)throw new Lt;const a=t&&this._hostedFormFactory.create(r,t,o);yield a.attach(),this._hostedForm=a})}deinitialize(){this._hostedForm&&this._hostedForm.detach()}}class $y{constructor(e,t){this._requestSender=e,this._stepHandler=t}execute({methodId:e,bigpayBaseUrl:t,token:n}){const i={credentials:!1,body:{payment_method_id:e},headers:{authorization:n,"X-XSRF-TOKEN":null}};return this._requestSender.post(`${t}/payments`,i).then(e=>this._stepHandler.handle(e))}initialize(){return Promise.resolve()}deinitialize(){}}var Wy,Yy,Ky=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Jy{constructor(e,t){this._requestSender=e,this._stepHandler=t}resume({paymentId:e,bigpayBaseUrl:t,orderId:n}){return Ky(this,void 0,void 0,function*(){const i={credentials:!1,headers:{authorization:yield this._getToken(n).catch(()=>{throw new Am}),"X-XSRF-TOKEN":null}};return this._requestSender.get(`${t}/payments/${e}`,i).then(e=>this._stepHandler.handle(e))})}_getToken(e){return Ky(this,void 0,void 0,function*(){const t={params:{order_id:e}};return this._requestSender.get("/api/storefront/payments/auth-token",t).then(({body:e})=>e.auth_token)})}}class Zy extends Ay{constructor(e,t,n,i,r){super(e,t,n,i),this._wepayRiskClient=r}initialize(e){return this._wepayRiskClient.initialize(),super.initialize(e)}execute(e,t){const n=this._wepayRiskClient.getRiskToken(),i=q({},e,{payment:{paymentData:{deviceSessionId:n}}});return super.execute(i,t)}}class Qy{constructor(e){this._scriptLoader=e}initialize(){return this._scriptLoader.loadScript("//static.wepay.com/min/js/risk.1.latest.js").then(()=>this._riskClient=window.WePay.risk).then(()=>this)}getRiskToken(){if(!this._riskClient)throw new wn(gn.PaymentNotInitialized);return this._riskClient.generate_risk_token(),this._riskClient.get_risk_token()}}class Xy{constructor(e){this._requestSender=e}createBuyNowCart(e,{timeout:t}={}){const n=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.post("/api/storefront/carts",{body:e,headers:n,timeout:t})}}!function(e){e.UpdatePaymentProviderCustomer="UPDATE_PAYMENT_PROVIDER_CUSTOMER"}(Wy||(Wy={}));class eg{updatePaymentProviderCustomer(e){return me(l(Wy.UpdatePaymentProviderCustomer,e))}}!function(e){e.CreateConsignmentsRequested="CREATE_CONSIGNMENTS_REQUESTED",e.CreateConsignmentsSucceeded="CREATE_CONSIGNMENTS_SUCCEEDED",e.CreateConsignmentsFailed="CREATE_CONSIGNMENTS_FAILED",e.UpdateConsignmentRequested="UPDATE_CONSIGNMENT_REQUESTED",e.UpdateConsignmentSucceeded="UPDATE_CONSIGNMENT_SUCCEEDED",e.UpdateConsignmentFailed="UPDATE_CONSIGNMENT_FAILED",e.DeleteConsignmentRequested="DELETE_CONSIGNMENT_REQUESTED",e.DeleteConsignmentSucceeded="DELETE_CONSIGNMENT_SUCCEEDED",e.DeleteConsignmentFailed="DELETE_CONSIGNMENT_FAILED",e.UpdateShippingOptionRequested="UPDATE_SHIPPING_OPTION_REQUESTED",e.UpdateShippingOptionSucceeded="UPDATE_SHIPPING_OPTION_SUCCEEDED",e.UpdateShippingOptionFailed="UPDATE_SHIPPING_OPTION_FAILED",e.LoadShippingOptionsRequested="LOAD_SHIPPING_OPTIONS_REQUESTED",e.LoadShippingOptionsSucceeded="LOAD_SHIPPING_OPTIONS_SUCCEEDED",e.LoadShippingOptionsFailed="LOAD_SHIPPING_OPTIONS_FAILED"}(Yy||(Yy={}));class tg{constructor(e,t){this._consignmentRequestSender=e,this._checkoutRequestSender=t}unassignItemsByAddress(e,t){return n=>{const i=n.getState();if(!i.checkout.getCheckout())throw new Qe(We.MissingCheckout);const r=this._consignmentHasAddress(e)?e.address:e.shippingAddress,o=i.consignments.getConsignmentByAddress(r);if(!o)throw new Lt("No consignment found for the specified address");const a=this._removeLineItems(e.lineItems,o,i.cart.getCart());return a.length?this.updateConsignment({id:o.id,address:r,lineItems:a},t)(n):this.deleteConsignment(o.id,t)(n)}}assignItemsByAddress(e,t){return n=>{const i=n.getState(),r=this._consignmentHasAddress(e)?e.address:e.shippingAddress,o=i.consignments.getConsignmentByAddress(r);return this._createOrUpdateConsignment({id:o&&o.id,address:r,lineItems:this._addLineItems(e.lineItems,o,i.cart.getCart())},t)(n)}}selectShippingOption(e,t){return n=>oe.create(i=>{const r=n.getState(),o=r.checkout.getCheckout(),a=r.consignments.getConsignments();if(!o)throw new Qe(We.MissingCheckout);if(!a||!a.length)throw new Qe(We.MissingConsignments);const s={id:a[0].id,shippingOptionId:e},d={id:a[0].id};i.next(l(Yy.UpdateShippingOptionRequested,void 0,d)),this._consignmentRequestSender.updateConsignment(o.id,s,t).then(({body:e})=>{i.next(l(Yy.UpdateShippingOptionSucceeded,e,d)),i.complete()}).catch(e=>{i.error(h(Yy.UpdateShippingOptionFailed,e,d))})})}loadShippingOptions(e){return t=>oe.create(n=>{const i=t.getState().checkout.getCheckout();if(!i)throw new Qe(We.MissingCheckout);n.next(l(Yy.LoadShippingOptionsRequested)),this._checkoutRequestSender.loadCheckout(i.id,Object.assign(Object.assign({},e),{params:{include:[At.AvailableShippingOptions]}})).then(({body:e})=>{n.next(l(Yy.LoadShippingOptionsSucceeded,e)),n.complete()}).catch(e=>{n.error(h(Yy.LoadShippingOptionsFailed,e))})})}updateAddress(e,t){return n=>{const i=this._getUpdateAddressRequestBody(e,n),r=n.getState().consignments.getConsignments();return r&&r.length&&(i.id=r[0].id),this._createOrUpdateConsignment(i,t)(n)}}createConsignments(e,t){return n=>oe.create(i=>{const r=n.getState().checkout.getCheckout();if(!r||!r.id)throw new Qe(We.MissingCheckout);i.next(l(Yy.CreateConsignmentsRequested)),this._consignmentRequestSender.createConsignments(r.id,e,t).then(({body:e})=>{i.next(l(Yy.CreateConsignmentsSucceeded,e)),i.complete()}).catch(e=>{i.error(h(Yy.CreateConsignmentsFailed,e))})})}updateConsignment(e,t){return n=>oe.create(i=>{const r=n.getState().checkout.getCheckout();if(!r||!r.id)throw new Qe(We.MissingCheckout);const o={id:e.id};i.next(l(Yy.UpdateConsignmentRequested,void 0,o)),this._consignmentRequestSender.updateConsignment(r.id,e,t).then(({body:e})=>{i.next(l(Yy.UpdateConsignmentSucceeded,e,o)),i.complete()}).catch(e=>{i.error(h(Yy.UpdateConsignmentFailed,e,o))})})}deleteConsignment(e,t){return n=>oe.create(i=>{const r=n.getState().checkout.getCheckout(),o={id:e};if(!r||!r.id)throw new Qe(We.MissingCheckout);i.next(l(Yy.DeleteConsignmentRequested,void 0,o)),this._consignmentRequestSender.deleteConsignment(r.id,e,t).then(({body:e})=>{i.next(l(Yy.DeleteConsignmentSucceeded,e,o)),i.complete()}).catch(e=>{i.error(h(Yy.DeleteConsignmentFailed,e,o))})})}updateShippingOption(e,t){return n=>oe.create(i=>{var r;const o=n.getState().checkout.getCheckout(),a=n.getState().consignments.getConsignmentById(e.id);if((null===(r=null==a?void 0:a.selectedShippingOption)||void 0===r?void 0:r.id)===e.shippingOptionId)return void i.complete();if(!o||!o.id)throw new Qe(We.MissingCheckout);const s={id:e.id};i.next(l(Yy.UpdateShippingOptionRequested,void 0,s)),this._consignmentRequestSender.updateConsignment(o.id,e,t).then(({body:e})=>{i.next(l(Yy.UpdateShippingOptionSucceeded,e,s)),i.complete()}).catch(e=>{i.error(h(Yy.UpdateShippingOptionFailed,e,s))})})}_createOrUpdateConsignment(e,t){return n=>{const i=n.getState().checkout.getCheckout();if(!i||!i.id)throw new Qe(We.MissingCheckout);return this._isUpdateConsignmentRequest(e)?this.updateConsignment(e,t)(n):this.createConsignments([e],t)(n)}}_getUpdateAddressRequestBody(e,t){const n=t.getState().cart.getCart();if(!n)throw new Qe(We.MissingCart);const{physicalItems:i,customItems:r=[]}=n.lineItems;return{address:e,lineItems:[...i,...r].map(e=>({itemId:e.id,quantity:e.quantity}))}}_removeLineItems(e,t,n){if(!n)throw new Qe(We.MissingCart);return this._hydrateLineItems(t.lineItemIds,n).map(t=>{const n=S(e,e=>e.itemId===t.itemId);return Object.assign(Object.assign({},t),{quantity:n?t.quantity-n.quantity:t.quantity})}).filter(e=>e.quantity>0)}_addLineItems(e,t,n){if(!t)return e;if(!n)throw new Qe(We.MissingCart);return e.concat(this._hydrateLineItems(t.lineItemIds,n)).filter(e=>e.quantity>0)}_hydrateLineItems(e,t){return e.map(e=>{const n=S(t.lineItems.physicalItems,t=>t.id===e);return{itemId:e,quantity:n?n.quantity:0}})}_isUpdateConsignmentRequest(e){return!!e.id}_consignmentHasAddress(e){return"object"==typeof e&&"address"in e}}const ng=["consignments.availableShippingOptions","cart.lineItems.physicalItems.options","cart.lineItems.digitalItems.options","customer","promotions.banners"];class ig{constructor(e){this._requestSender=e}createConsignments(e,t,{timeout:n,params:{include:i}={}}={}){const r=`/api/storefront/checkouts/${e}/consignments`,o=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.post(r,{body:t,params:{include:Zt(ng,i)},headers:o,timeout:n}).catch(e=>{if("empty_cart"===e.body.type)throw new nt;throw e})}updateConsignment(e,t,{timeout:n,params:{include:i}={}}={}){const{id:r}=t,o=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(t,["id"]),a=`/api/storefront/checkouts/${e}/consignments/${r}`,s=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.put(a,{body:o,params:{include:Zt(ng,i)},headers:s,timeout:n}).catch(e=>{if("empty_cart"===e.body.type)throw new nt;throw e})}deleteConsignment(e,t,{timeout:n}={}){const i=`/api/storefront/checkouts/${e}/consignments/${t}`,r=Object.assign({Accept:it.JsonV1},rt),o=Mt(ng);return this._requestSender.delete(i,{params:{include:o},headers:r,timeout:n}).catch(e=>{if("empty_cart"===e.body.type)throw new nt;throw e})}}var rg,og;!function(e){e.LoadShippingCountriesRequested="LOAD_SHIPPING_COUNTRIES_REQUESTED",e.LoadShippingCountriesSucceeded="LOAD_SHIPPING_COUNTRIES_SUCCEEDED",e.LoadShippingCountriesFailed="LOAD_SHIPPING_COUNTRIES_FAILED"}(rg||(rg={}));class ag{constructor(e,t){this._shippingCountryRequestSender=e,this._store=t}loadCountries(e){const{checkout:t}=this._store.getState(),n=t.getCheckout(),i=n?n.channelId:null;return oe.create(t=>{t.next(l(rg.LoadShippingCountriesRequested)),this._shippingCountryRequestSender.loadCountries(i,e).then(e=>{t.next(l(rg.LoadShippingCountriesSucceeded,e.body.data)),t.complete()}).catch(e=>{t.error(h(rg.LoadShippingCountriesFailed,e))})})}}class sg{constructor(e,t){this._requestSender=e,this._config=t}loadCountries(e,{timeout:t}={}){const n="/internalapi/v1/shipping/countries"+(e?`?channel_id=${e}`:""),i=Object.assign({"Accept-Language":this._config.locale},rt);return this._requestSender.get(n,{headers:i,timeout:t})}}!function(e){e.ApplyStoreCreditRequested="APPLY_STORE_CREDIT_REQUESTED",e.ApplyStoreCreditSucceeded="APPLY_STORE_CREDIT_SUCCEEDED",e.ApplyStoreCreditFailed="APPLY_STORE_CREDIT_FAILED"}(og||(og={}));var dg;class cg{constructor(e){this._storeCreditRequestSender=e}applyStoreCredit(e,t){return n=>se(me(l(og.ApplyStoreCreditRequested)),de(()=>{return i=this,r=void 0,a=function*(){const i=n.getState().checkout.getCheckout();if(!i)throw new Qe(We.MissingCheckout);const{body:r}=yield e?this._storeCreditRequestSender.applyStoreCredit(i.id,t):this._storeCreditRequestSender.removeStoreCredit(i.id,t);return l(og.ApplyStoreCreditSucceeded,r)},new((o=void 0)||(o=Promise))(function(e,t){function n(e){try{d(a.next(e))}catch(e){t(e)}}function s(e){try{d(a.throw(e))}catch(e){t(e)}}function d(t){var i;t.done?e(t.value):(i=t.value,i instanceof o?i:new o(function(e){e(i)})).then(n,s)}d((a=a.apply(i,r||[])).next())});var i,r,o,a})).pipe(ge(e=>Je(og.ApplyStoreCreditFailed,e)))}}class lg{constructor(e){this._requestSender=e}applyStoreCredit(e,{timeout:t}={}){const n=`/api/storefront/checkouts/${e}/store-credit`,i=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.post(n,{headers:i,timeout:t,params:{include:Mt(Et)}})}removeStoreCredit(e,{timeout:t}={}){const n=`/api/storefront/checkouts/${e}/store-credit`,i=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.delete(n,{headers:i,timeout:t,params:{include:Mt(Et)}})}}!function(e){e.UpdateSubscriptionsRequested="UPDATE_SUBSCRIPTIONS_REQUESTED",e.UpdateSubscriptionsSucceeded="UPDATE_SUBSCRIPTIONS_SUCCEEDED",e.UpdateSubscriptionsFailed="UPDATE_SUBSCRIPTIONS_FAILED"}(dg||(dg={}));class ug extends _t{constructor(e){super(e),this.name="UpdateSubscriptionsError",this.type="update_subscriptions"}}class hg{constructor(e){this._subscriptionsRequestSender=e}updateSubscriptions(e,t){return se(me(l(dg.UpdateSubscriptionsRequested)),de(()=>{return n=this,i=void 0,o=function*(){const{body:n}=yield this._subscriptionsRequestSender.updateSubscriptions(e,t);return l(dg.UpdateSubscriptionsSucceeded,n)},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o})).pipe(ge(e=>Je(dg.UpdateSubscriptionsFailed,new ug(e))))}}class pg{constructor(e){this._requestSender=e}updateSubscriptions(e,{timeout:t}={}){const n=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.post("/api/storefront/subscriptions",{body:e,headers:n,timeout:t})}}function mg(e){return M(e)}const yg=U(e=>Array.isArray(e)?e.map(e=>gg(e)):mg(e)?Object.keys(e).reduce((t,n)=>Object.assign(Object.assign({},t),{[n]:gg(e[n])}),{}):e);yg.cache=new WeakMap;const gg=e=>"object"==typeof e&&null!==e?yg(e):e;function vg(e){return(...t)=>gg(e(...t))}function fg({billingAddress:{getBillingAddress:e,getBillingAddressOrThrow:t},cart:{getCart:n,getCartOrThrow:i},checkout:{getCheckout:r,getCheckoutOrThrow:o,getOutstandingBalance:a},config:{getContextConfig:s,getHost:d,getLocale:c,getStoreConfig:l,getStoreConfigOrThrow:u,getConfig:h},consignments:{getConsignments:p,getConsignmentsOrThrow:m},countries:{getCountries:y},customer:{getCustomer:g,getCustomerOrThrow:v},instruments:{getCardInstrument:f,getCardInstrumentOrThrow:S,getInstruments:w,getInstrumentsMeta:_},order:{getOrder:C,getOrderOrThrow:I,getOrderMeta:b},payment:{getPaymentToken:P,getPaymentTokenOrThrow:O,getPaymentId:E,getPaymentIdOrThrow:A,getPaymentStatus:k,getPaymentStatusOrThrow:T,getPaymentRedirectUrl:D,getPaymentRedirectUrlOrThrow:M,isPaymentDataRequired:z},paymentMethods:{getPaymentMethod:N,getPaymentMethodOrThrow:x,getPaymentMethodsMeta:F},paymentProviderCustomer:{getPaymentProviderCustomer:R,getPaymentProviderCustomerOrThrow:L},paymentStrategies:{isInitialized:B},shippingAddress:{getShippingAddress:j,getShippingAddressOrThrow:U,getShippingAddresses:q,getShippingAddressesOrThrow:V},shippingCountries:{getShippingCountries:G}}){return{getHost:vg(d),getLocale:vg(c),getBillingAddress:vg(e),getBillingAddressOrThrow:vg(t),getCart:vg(n),getCartOrThrow:vg(i),getCheckout:vg(r),getCheckoutOrThrow:vg(o),getCountries:vg(y),getStoreConfig:vg(l),getStoreConfigOrThrow:vg(u),getConfig:vg(h),getConsignments:vg(p),getConsignmentsOrThrow:vg(m),getContextConfig:vg(s),getCustomer:vg(g),getCustomerOrThrow:vg(v),getCardInstrument:vg(f),getInstruments:vg(w),getCardInstrumentOrThrow:vg(S),getOrder:vg(C),getOrderOrThrow:vg(I),getOrderMeta:vg(b),getInstrumentsMeta:vg(_),getPaymentToken:P,getPaymentTokenOrThrow:O,getPaymentId:E,getPaymentIdOrThrow:A,getPaymentStatus:k,getPaymentStatusOrThrow:T,getPaymentRedirectUrl:D,getPaymentRedirectUrlOrThrow:M,getPaymentMethod:vg(N),getPaymentMethodOrThrow:vg(x),getPaymentMethodsMeta:vg(F),getPaymentProviderCustomer:vg(R),getPaymentProviderCustomerOrThrow:vg(L),getShippingAddress:vg(j),getShippingAddressOrThrow:vg(U),getShippingAddresses:vg(q),getShippingAddressesOrThrow:vg(V),getShippingCountries:vg(G),getOutstandingBalance:vg(a),isPaymentDataRequired:z,isPaymentMethodInitialized:B}}var Sg,wg=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class _g{constructor(e,t,n,i,r,o,a,s,d,c,l,u,h,p,m,y,g,v,f,S){this._store=e,this._storeProjectionFactory=t,this._checkoutActionCreator=n,this._checkoutValidator=i,this._hostedFormFactory=r,this._orderActionCreator=o,this._billingAddressActionCreator=a,this._consignmentActionCreator=s,this._paymentMethodActionCreator=d,this._paymentActionCreator=c,this._paymentHumanVerificationHandler=l,this._customerActionCreator=u,this._cartRequestSender=h,this._storeCreditActionCreator=p,this._couponActionCreator=m,this._spamProtectionActionCreator=y,this._paymentProviderCustomerActionCreator=g,this._shippingCountryActionCreator=v,this._remoteCheckoutActionCreator=f,this._paymentStrategyWidgetActionCreator=S,this._storeProjection=this._storeProjectionFactory.create(this._store)}createHostedForm(e,t){const n=this._storeProjection.getState().getCheckoutOrThrow().id;return this._hostedFormFactory.create(e,t,n)}subscribe(e,...t){return this._storeProjection.subscribe(e,...t)}getState(){return this._storeProjection.getState()}initializeOffsitePayment(e){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._paymentActionCreator.initializeOffsitePayment(e)),this._storeProjection.getState()})}loadCheckout(e){return wg(this,void 0,void 0,function*(){return e?yield this._store.dispatch(this._checkoutActionCreator.loadCheckout(e)):yield this._store.dispatch(this._checkoutActionCreator.loadCurrentCheckout()),this._storeProjection.getState()})}loadDefaultCheckout(){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._checkoutActionCreator.loadDefaultCheckout()),this._storeProjection.getState()})}loadPaymentMethod(e,t){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._paymentMethodActionCreator.loadPaymentMethod(e,t)),this._storeProjection.getState()})}loadPaymentMethods(e){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._paymentMethodActionCreator.loadPaymentMethods(e)),this._storeProjection.getState()})}submitOrder(e,t){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._orderActionCreator.submitOrder(e,t)),this._storeProjection.getState()})}submitPayment(e){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._paymentActionCreator.submitPayment(e)),this._storeProjection.getState()})}finalizeOrder(e){return wg(this,void 0,void 0,function*(){const{order:{getOrderOrThrow:t}}=this._store.getState();return yield this._store.dispatch(this._orderActionCreator.finalizeOrder(t().orderId,e)),this._storeProjection.getState()})}updateBillingAddress(e){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._billingAddressActionCreator.updateAddress(e)),this._storeProjection.getState()})}updateShippingAddress(e){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._consignmentActionCreator.updateAddress(e)),this._storeProjection.getState()})}selectShippingOption(e,t){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._consignmentActionCreator.selectShippingOption(e,t)),this._storeProjection.getState()})}signInCustomer(e,t){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._customerActionCreator.signInCustomer(e,t)),this._storeProjection.getState()})}signOutCustomer(e){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._customerActionCreator.signOutCustomer(e)),this._storeProjection.getState()})}createBuyNowCart(e,t){return wg(this,void 0,void 0,function*(){const{body:n}=yield this._cartRequestSender.createBuyNowCart(e,t);return n})}applyStoreCredit(e,t){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._storeCreditActionCreator.applyStoreCredit(e,t)),this._storeProjection.getState()})}applyCoupon(e,t){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._couponActionCreator.applyCoupon(e,t)),this._storeProjection.getState()})}removeCoupon(e,t){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._couponActionCreator.removeCoupon(e,t)),this._storeProjection.getState()})}verifyCheckoutSpamProtection(){return wg(this,void 0,void 0,function*(){const{checkout:e}=this._store.getState(),{shouldExecuteSpamCheck:t}=e.getCheckoutOrThrow();return t&&(yield this._store.dispatch(this._spamProtectionActionCreator.verifyCheckoutSpamProtection())),this._storeProjection.getState()})}loadCurrentOrder(e){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._orderActionCreator.loadCurrentOrder(e)),this._storeProjection.getState()})}updatePaymentProviderCustomer(e){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._paymentProviderCustomerActionCreator.updatePaymentProviderCustomer(e)),this._storeProjection.getState()})}loadShippingCountries(e){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._shippingCountryActionCreator.loadCountries(e)),this._storeProjection.getState()})}deleteConsignment(e,t){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._consignmentActionCreator.deleteConsignment(e,t)),this._storeProjection.getState()})}initializePayment(e,t,n){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._remoteCheckoutActionCreator.initializePayment(e,t,n)),this._storeProjection.getState()})}forgetCheckout(e,t){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._remoteCheckoutActionCreator.forgetCheckout(e,t)),this._storeProjection.getState()})}remoteCheckoutSignOut(e,t){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._remoteCheckoutActionCreator.signOut(e,t)),this._storeProjection.getState()})}validateCheckout(e,t){return wg(this,void 0,void 0,function*(){yield this._checkoutValidator.validate(e,t)})}handlePaymentHumanVerification(e,t){return wg(this,void 0,void 0,function*(){return"string"==typeof e?this._paymentHumanVerificationHandler.handle(e,null!=t?t:""):this._paymentHumanVerificationHandler.handle(e)})}widgetInteraction(e){return wg(this,void 0,void 0,function*(){return yield this._store.dispatch(this._paymentStrategyWidgetActionCreator.widgetInteraction(e),{queueId:"widgetInteraction"}),this._storeProjection.getState()})}}class Cg{constructor(e){this._transformSelectors=e}create(e){return ct(e,this._transformSelectors)}}function Ig(e){const{config:{getHost:t,getLocale:i}}=e.getState(),r=n({host:t()}),a=new Cg(fg),s=new en(new Qt(r),new St(new bt(r)),new nn(new rn(r))),d=new Nm(new Qt(r)),c=new ey(e),l=new Om(new Cm(r),new Nm(new Qt(r))),u=new tt(new at(r),new hg(new pg(r))),h=new tg(new ig(r),new Qt(r)),p=new an(new sn(r)),m=new ty(new ny(Em(e)),l,new Cy,new Um(bn(o()))),y=new Um(bn(o())),g=new Ht(new $t(r),s,new fn(bn(o()),new Pn(r))),v=new cg(new lg(r)),f=new Ot(new zt(r)),S=bn(o()),w=new Pn(r),_=new fn(S,w),C=new Xy(r),I=new eg,b=new ag(new sg(r,{locale:i()}),e),P=new pn(new un(r),s),O=new Tm;return new _g(e,a,s,d,c,l,u,h,p,m,y,g,C,v,f,_,I,b,P,O)}!function(e){e.LoadInstrumentsRequested="LOAD_INSTRUMENTS_REQUESTED",e.LoadInstrumentsSucceeded="LOAD_INSTRUMENTS_SUCCEEDED",e.LoadInstrumentsFailed="LOAD_INSTRUMENTS_FAILED",e.DeleteInstrumentRequested="DELETE_INSTRUMENT_REQUESTED",e.DeleteInstrumentSucceeded="DELETE_INSTRUMENT_SUCCEEDED",e.DeleteInstrumentFailed="DELETE_INSTRUMENT_FAILED"}(Sg||(Sg={}));class bg{constructor(e){this._instrumentRequestSender=e}loadInstruments(){return e=>oe.create(t=>{t.next(l(Sg.LoadInstrumentsRequested));const n=this._getSessionContext(e),i=this._getCurrentAccessToken(e),r=this._getShippingAddress(e);return this._getValidAccessToken(i).then(e=>this._instrumentRequestSender.loadInstruments(Object.assign(Object.assign({},n),{authToken:e.vaultAccessToken}),r).then(({body:n})=>{t.next(l(Sg.LoadInstrumentsSucceeded,n,e)),t.complete()})).catch(e=>{t.error(h(Sg.LoadInstrumentsFailed,e))})})}deleteInstrument(e){return t=>oe.create(n=>{n.next(l(Sg.DeleteInstrumentRequested,void 0,{instrumentId:e}));const i=this._getSessionContext(t),r=this._getCurrentAccessToken(t);return this._getValidAccessToken(r).then(t=>this._instrumentRequestSender.deleteInstrument(Object.assign(Object.assign({},i),{authToken:t.vaultAccessToken}),e).then(({body:i})=>{n.next(l(Sg.DeleteInstrumentSucceeded,i,Object.assign({instrumentId:e},t))),n.complete()})).catch(t=>{n.error(h(Sg.DeleteInstrumentFailed,t,{instrumentId:e}))})})}_isValidVaultAccessToken(e){if(!e||!e.vaultAccessToken)return!1;return function(e){const t=new Date(e.getTime());return t.setMinutes(e.getMinutes()+2),t}(new Date(e.vaultAccessExpiry)).valueOf()>Date.now()}_getCurrentAccessToken(e){const{instruments:t}=e.getState(),n=t.getInstrumentsMeta();if(n)return{vaultAccessToken:n.vaultAccessToken,vaultAccessExpiry:n.vaultAccessExpiry}}_getValidAccessToken(e){return e&&this._isValidVaultAccessToken(e)?Promise.resolve(e):this._instrumentRequestSender.getVaultAccessToken().then(({body:e})=>e)}_getShippingAddress(e){const t=e.getState(),n=t.shippingAddress.getShippingAddresses();return n.length>1?n:t.shippingAddress.getShippingAddress()}_getSessionContext(e){const t=e.getState(),n=t.config.getStoreConfig(),i=t.cart.getCart();if(!n)throw new Qe(We.MissingCheckoutConfig);if(!i)throw new Qe(We.MissingCart);const{customerId:r}=i,{storeId:o}=n.storeProfile,{code:a}=n.shopperCurrency.isTransactional?n.shopperCurrency:n.currency;return{customerId:r,storeId:o,currencyCode:a}}}var Pg,Og,Eg=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n};class Ag{transformResponse(e){const t=this._transformResponse(e),{body:n}=t,i=Eg(t,["body"]);return Object.assign(Object.assign({},i),{body:{vaultedInstruments:this._transformVaultedInstruments(n.vaulted_instruments)}})}transformErrorResponse(e){return this._transformResponse(e)}transformVaultAccessResponse(e){return Object.assign(Object.assign({},e),{body:{vaultAccessToken:e.body.data.token,vaultAccessExpiry:e.body.data.expires_at}})}_transformVaultedInstruments(e=[]){return e.map(e=>this._isPayPalInstrument(e)?function(e){return{bigpayToken:e.bigpay_token,defaultInstrument:e.default_instrument,provider:e.provider,externalId:e.external_id,trustedShippingAddress:e.trusted_shipping_address,method:"paypal",type:"account"}}(e):this._isBankInstrument(e)?function(e){return{bigpayToken:e.bigpay_token,defaultInstrument:e.default_instrument,provider:e.provider,trustedShippingAddress:e.trusted_shipping_address,accountNumber:e.account_number,issuer:e.issuer,iban:e.iban,method:e.method,type:"bank"}}(e):function(e){return{bigpayToken:e.bigpay_token,defaultInstrument:e.default_instrument,provider:e.provider,iin:e.iin,last4:e.last_4,expiryMonth:e.expiry_month,expiryYear:e.expiry_year,brand:e.brand,trustedShippingAddress:e.trusted_shipping_address,untrustedShippingCardVerificationMode:e.untrusted_shipping_address_card_verification_mode,method:e.method,type:"card"}}(e))}_isPayPalInstrument(e){return"paypal"===e.method_type}_isBankInstrument(e){return"bank"===e.method_type}_transformResponse(e){const{data:t}=e,n=Eg(e,["data"]);return Object.assign(Object.assign({},n),{body:t})}}class kg{constructor(e,t){this._client=e,this._requestSender=t,this._transformer=new Ag}getVaultAccessToken({timeout:e}={}){return this._requestSender.get("/internalapi/v1/checkout/payments/vault-access-token",{timeout:e}).then(e=>Object.assign(Object.assign({},e),{body:{vaultAccessToken:e.body.data.token,vaultAccessExpiry:e.body.data.expires_at}}))}loadInstruments(e,t){return t?this._loadInstrumentsWithAddress(e,t):this._loadInstruments(e)}deleteInstrument(e,t){const n=Object.assign(Object.assign({},e),{instrumentId:t});return new Promise((e,t)=>{this._client.deleteShopperInstrument(n,(n,i)=>n?t(this._transformer.transformErrorResponse(n)):e(this._transformer.transformResponse(i)))})}_loadInstruments(e){return new Promise((t,n)=>{this._client.loadInstruments(e,(e,i)=>e?n(this._transformer.transformErrorResponse(e)):t(this._transformer.transformResponse(i)))})}_loadInstrumentsWithAddress(e,t){const n=Object.assign(Object.assign({},e),{shippingAddress:Array.isArray(t)?t.map(e=>iy(e)):iy(t)});return new Promise((e,t)=>{this._client.loadInstrumentsWithAddress(n,(n,i)=>n?t(this._transformer.transformErrorResponse(n)):e(this._transformer.transformResponse(i)))})}}!function(e){e.LoadPickupOptionsRequested="LOAD_PICKUP_OPTIONS_REQUESTED",e.LoadPickupOptionsSucceeded="LOAD_PICKUP_OPTIONS_SUCCEEDED",e.LoadPickupOptionsFailed="LOAD_PICKUP_OPTIONS_FAILED"}(Pg||(Pg={}));class Tg{constructor(e){this._pickupOptionRequestSender=e}loadPickupOptions(e){return t=>new oe(n=>{const i=this._hydrateApiQuery(t,e);n.next(l(Pg.LoadPickupOptionsRequested)),this._pickupOptionRequestSender.fetchPickupOptions(i).then(t=>{n.next(l(Pg.LoadPickupOptionsSucceeded,t.body.results,e)),n.complete()}).catch(e=>{n.error(h(Pg.LoadPickupOptionsFailed,e))})})}_hydrateApiQuery(e,t){const n=e.getState(),i=n.cart.getCartOrThrow();if(!i)throw new Qe(We.MissingCart);const r=n.consignments.getConsignmentById(t.consignmentId);if(!r)throw new Qe(We.MissingConsignments);const o=r.lineItemIds,a=i.lineItems.physicalItems.filter(e=>P(o,e.id)).map(e=>({variantId:e.variantId,quantity:e.quantity}));return{searchArea:t.searchArea,items:a}}}class Dg{constructor(e){this._requestSender=e}fetchPickupOptions(e){return this._requestSender.post("/api/storefront/pickup-options",{headers:Object.assign({Accept:it.Json},rt),body:e})}}!function(e){e.UpdateAddressFailed="SHIPPING_STRATEGY_UPDATE_ADDRESS_FAILED",e.UpdateAddressRequested="SHIPPING_STRATEGY_UPDATE_ADDRESS_REQUESTED",e.UpdateAddressSucceeded="SHIPPING_STRATEGY_UPDATE_ADDRESS_SUCCEEDED",e.SelectOptionFailed="SHIPPING_STRATEGY_SELECT_OPTION_FAILED",e.SelectOptionRequested="SHIPPING_STRATEGY_SELECT_OPTION_REQUESTED",e.SelectOptionSucceeded="SHIPPING_STRATEGY_SELECT_OPTION_SUCCEEDED",e.InitializeFailed="SHIPPING_STRATEGY_INITIALIZE_FAILED",e.InitializeRequested="SHIPPING_STRATEGY_INITIALIZE_REQUESTED",e.InitializeSucceeded="SHIPPING_STRATEGY_INITIALIZE_SUCCEEDED",e.DeinitializeFailed="SHIPPING_STRATEGY_DEINITIALIZE_FAILED",e.DeinitializeRequested="SHIPPING_STRATEGY_DEINITIALIZE_REQUESTED",e.DeinitializeSucceeded="SHIPPING_STRATEGY_DEINITIALIZE_SUCCEEDED",e.WidgetInteractionStarted="SHIPPING_STRATEGY_WIDGET_INTERACTION_STARTED",e.WidgetInteractionFinished="SHIPPING_STRATEGY_WIDGET_INTERACTION_FINISHED",e.WidgetInteractionFailed="SHIPPING_STRATEGY_WIDGET_INTERACTION_FAILED"}(Og||(Og={}));class Mg{constructor(e){this._strategyRegistry=e}updateAddress(e,t){return n=>oe.create(i=>{const r=n.getState().payment.getPaymentId(),o=t&&t.methodId||r&&r.providerId;i.next(l(Og.UpdateAddressRequested,void 0,{methodId:o})),this._strategyRegistry.get(o).updateAddress(e,Object.assign(Object.assign({},t),{methodId:o})).then(()=>{i.next(l(Og.UpdateAddressSucceeded,void 0,{methodId:o})),i.complete()}).catch(e=>{i.error(h(Og.UpdateAddressFailed,e,{methodId:o}))})})}selectOption(e,t){return n=>oe.create(i=>{const r=n.getState().payment.getPaymentId(),o=t&&t.methodId||r&&r.providerId;i.next(l(Og.SelectOptionRequested,void 0,{methodId:o})),this._strategyRegistry.get(o).selectOption(e,Object.assign(Object.assign({},t),{methodId:o})).then(()=>{i.next(l(Og.SelectOptionSucceeded,void 0,{methodId:o})),i.complete()}).catch(e=>{i.error(h(Og.SelectOptionFailed,e,{methodId:o}))})})}initialize(e){return t=>oe.create(n=>{const i=t.getState(),r=i.payment.getPaymentId(),o=e&&e.methodId||r&&r.providerId,a=Object.assign(Object.assign({},e),{methodId:o});if(o&&i.shippingStrategies.isInitialized(o))return n.complete();n.next(l(Og.InitializeRequested,void 0,{methodId:o})),this._strategyRegistry.get(o).initialize(a).then(()=>{n.next(l(Og.InitializeSucceeded,void 0,{methodId:o})),n.complete()}).catch(e=>{n.error(h(Og.InitializeFailed,e,{methodId:o}))})})}deinitialize(e){return t=>oe.create(n=>{const i=t.getState(),r=i.payment.getPaymentId(),o=e&&e.methodId||r&&r.providerId;if(o&&!i.shippingStrategies.isInitialized(o))return n.complete();n.next(l(Og.DeinitializeRequested,void 0,{methodId:o})),this._strategyRegistry.get(o).deinitialize(Object.assign(Object.assign({},e),{methodId:o})).then(()=>{n.next(l(Og.DeinitializeSucceeded,void 0,{methodId:o})),n.complete()}).catch(e=>{n.error(h(Og.DeinitializeFailed,e,{methodId:o}))})})}widgetInteraction(e,t){return oe.create(n=>{const i={methodId:t&&t.methodId};n.next(l(Og.WidgetInteractionStarted,void 0,i)),e().then(()=>{n.next(l(Og.WidgetInteractionFinished,void 0,i)),n.complete()}).catch(e=>{n.error(h(Og.WidgetInteractionFailed,e,i))})})}}var zg,Ng,xg,Fg,Rg,Lg,Bg,jg,Ug,qg=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Vg{constructor(e){this.scriptLoader=e,this.window=window}getPayPalSDK(e,t,n,i){return qg(this,void 0,void 0,function*(){if(!this.window.paypal||i){const i=this.getPayPalSdkScriptConfigOrThrow(e,t,n);if(yield this.loadPayPalSdk(i),!this.window.paypal)throw new Oi}return this.window.paypal})}getPayPalFastlaneSdk(e,t,n){return qg(this,void 0,void 0,function*(){if(!this.window.paypalFastlaneSdk){const i=this.getPayPalFastlaneSdkConfiguration(e,t,n);if(yield this.loadPayPalSdk(i),!this.window.paypalFastlaneSdk)throw new Oi}return this.window.paypalFastlaneSdk})}getPayPalGooglePaySdk(e,t,n,i){return qg(this,void 0,void 0,function*(){if(!this.window.paypalGooglePay||i){const i=this.getPayPalGooglePaySdkScriptConfigOrThrow(e,t,n);yield this.loadPayPalSdk(i)}if(!this.window.paypalGooglePay)throw new Oi;return this.window.paypalGooglePay})}getPayPalApmsSdk(e,t){return qg(this,void 0,void 0,function*(){if(!this.window.paypalApms){const n=this.getPayPalApmSdkConfiguration(e,t);if(yield this.loadPayPalSdk(n),!this.window.paypalApms)throw new Oi}return this.window.paypalApms})}getPayPalMessages(e,t){return qg(this,void 0,void 0,function*(){if(!this.window.paypalMessages){const n=this.getPayPalSdkMessagesConfiguration(e,t);yield this.loadPayPalSdk(n)}if(!this.window.paypalMessages)throw new Oi;return this.window.paypalMessages})}loadPayPalSdk({options:e,attributes:t}){return qg(this,void 0,void 0,function*(){const n=this.transformConfig(e),i=this.transformConfig(t),r=`https://www.paypal.com/sdk/js?${new URLSearchParams(n).toString()}`;yield this.scriptLoader.loadScript(r,{async:!0,attributes:i})})}getPayPalSdkScriptConfigOrThrow(e,t,n=!0){const{id:i,clientToken:r,initializationData:o}=e;if(!o||!o.clientId)throw new pi(ui.MissingPaymentMethod);const{intent:a,clientId:s,merchantId:d,buyerCountry:c,attributionId:l,isVenmoEnabled:u,isHostedCheckoutEnabled:h,isPayPalCreditAvailable:p,isDeveloperModeApplicable:m,availableAlternativePaymentMethods:y=[],enabledAlternativePaymentMethods:g=[],isGooglePayEnabled:v}=o,f=h||n,S="paypalcommercecreditcards"===i||"bigcommerce_payments_creditcards"===i,w=S?["card"]:[],_=p?["credit","paylater"]:[],C=n||!f,I=u?["venmo"]:[],b=C?g:[],P=v?["googlepay"]:[],O=n?["card-fields"]:[],E=[...S?[]:["card"],...p?[]:["credit","paylater"],...u?[]:["venmo"],...C?y.filter(e=>!g.includes(e)):y],A=[...w,..._,...I,...b];return{options:Object.assign({"client-id":s,"merchant-id":d,"enable-funding":A.length>0?A:void 0,"disable-funding":E.length>0?E:void 0,commit:f,components:["buttons","hosted-fields","payment-fields","legal",...P,...O],currency:t,intent:a},m&&{"buyer-country":c}),attributes:{"data-partner-attribution-id":l,"data-client-token":r}}}getPayPalFastlaneSdkConfiguration(e,t,n){const{clientToken:i,initializationData:r}=e;if(!r||!r.clientId)throw new pi(ui.MissingPaymentMethod);const{intent:o,clientId:a,merchantId:s,attributionId:d}=r;return{options:{"client-id":a,"merchant-id":s,commit:!0,components:["fastlane","buttons","payment-fields","hosted-fields","three-domain-secure"],currency:t,intent:o},attributes:{"data-client-metadata-id":n.replace(/-/g,""),"data-namespace":"paypalFastlaneSdk","data-partner-attribution-id":d,"data-sdk-client-token":i}}}getPayPalGooglePaySdkScriptConfigOrThrow(e,t,n=!0){const{clientToken:i,initializationData:r}=e;if(!r||!r.clientId)throw new pi(ui.MissingPaymentMethod);const{intent:o,clientId:a,merchantId:s,buyerCountry:d,attributionId:c,isHostedCheckoutEnabled:l,isDeveloperModeApplicable:u}=r,h=l||n;return{options:Object.assign({"client-id":a,"merchant-id":s,commit:h,components:["googlepay"],currency:t,intent:o},u&&{"buyer-country":d}),attributes:{"data-partner-attribution-id":c,"data-client-token":i,"data-namespace":"paypalGooglePay"}}}getPayPalApmSdkConfiguration(e,t){const{initializationData:n}=e;if(!n||!n.clientId)throw new pi(ui.MissingPaymentMethod);const{intent:i,clientId:r,merchantId:o,buyerCountry:a,attributionId:s,isDeveloperModeApplicable:d,availableAlternativePaymentMethods:c=[],enabledAlternativePaymentMethods:l=[]}=n,u=l,h=c.filter(e=>!l.includes(e));return{options:Object.assign({"client-id":r,"merchant-id":o,"enable-funding":u.length>0?u:void 0,"disable-funding":h.length>0?h:void 0,commit:!0,components:["buttons","payment-fields"],currency:t,intent:i},d&&{"buyer-country":a}),attributes:{"data-partner-attribution-id":s,"data-namespace":"paypalApms"}}}getPayPalSdkMessagesConfiguration(e,t){const{initializationData:n}=e;if(!n||!n.clientId)throw new pi(ui.MissingPaymentMethod);const{clientId:i,merchantId:r,attributionId:o,isDeveloperModeApplicable:a,buyerCountry:s}=n;return{options:Object.assign({"client-id":i,"merchant-id":r,components:["messages"],currency:t},a&&{"buyer-country":s}),attributes:{"data-namespace":"paypalMessages","data-partner-attribution-id":o}}}transformConfig(e){let t={};return Object.keys(e).forEach(n=>{const i=e[n];null==i||""===i||Array.isArray(i)&&0===i.length||(t=Object.assign(Object.assign({},t),{[n]:Array.isArray(i)?i.join(","):i}))}),t}}!function(e){e.AUTHORIZE="authorize",e.CAPTURE="capture"}(zg||(zg={})),function(e){e.Succeeded="succeeded",e.Cancelled="cancelled",e.Errored="errored"}(Ng||(Ng={})),function(e){e.Possible="POSSIBLE",e.No="NO",e.Unknown="UNKNOWN",e.Yes="YES"}(xg||(xg={})),function(e){e.paypal="paypal",e.checkout="checkout",e.buynow="buynow",e.pay="pay",e.installment="installment"}(Fg||(Fg={})),function(e){e.gold="gold",e.blue="blue",e.silver="silver",e.black="black",e.white="white"}(Rg||(Rg={})),function(e){e.pill="pill",e.rect="rect"}(Lg||(Lg={})),function(e){e.SUCCEEDED="succeeded",e.FAILED="failed",e.CANCELED="canceled",e.UNRECOGNIZED="unrecognized"}(Bg||(Bg={})),(jg||(jg={})).OXXO="oxxo",function(e){e.Approved="APPROVED",e.Created="CREATED",e.PayerActionRequired="PAYER_ACTION_REQUIRED",e.PollingStop="POLLING_STOP",e.PollingError="POLLING_ERROR"}(Ug||(Ug={}));var Gg=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Hg{constructor(){this.window=window}initializePayPalFastlane(e,t,n){return Gg(this,void 0,void 0,function*(){if(t&&(window.localStorage.setItem("fastlaneEnv","sandbox"),window.localStorage.setItem("axoEnv","sandbox")),!this.window.paypalFastlane){const t={root:{backgroundColorPrimary:"transparent"}};this.window.paypalFastlane=yield e.Fastlane({styles:n||t})}return this.window.paypalFastlane})}getPayPalFastlaneOrThrow(){if(!this.window.paypalFastlane)throw new Oi;return this.window.paypalFastlane}lookupCustomerOrThrow(e){return Gg(this,void 0,void 0,function*(){return this.getPayPalFastlaneOrThrow().identity.lookupCustomerByEmail(e)})}triggerAuthenticationFlowOrThrow(e){return Gg(this,void 0,void 0,function*(){return e?this.getPayPalFastlaneOrThrow().identity.triggerAuthenticationFlow(e):{}})}updateStorageSessionId(e){const t=new Date;t.setDate(t.getDate()+14);const n={expires:t,secure:!0};$r.set("bc-fastlane-sessionId",e,n)}removeStorageSessionId(){$r.remove("bc-fastlane-sessionId")}getStorageSessionId(){return $r.get("bc-fastlane-sessionId")||""}mapPayPalFastlaneProfileToBcCustomerData(e,t){var n,i,r;const{authenticationState:o,profileData:a}=t,s=null===(r=null===(i=null===(n=null==a?void 0:a.card)||void 0===n?void 0:n.paymentSource)||void 0===i?void 0:i.card)||void 0===r?void 0:r.billingAddress,d=null==a?void 0:a.shippingAddress,c=null==a?void 0:a.name,l=null==a?void 0:a.card,u=d?this.mapPayPalToBcAddress(d.address,d.name,d.phoneNumber):void 0,h=s&&c?this.mapPayPalToBcAddress(s,c,null==d?void 0:d.phoneNumber):void 0,p=l?this.mapPayPalToBcInstrument(e,l):[],m=this.filterAddresses([u,h]);return{authenticationState:o||Bg.UNRECOGNIZED,addresses:m,billingAddress:h,shippingAddress:u,instruments:p}}mapPayPalToBcInstrument(e,t){const{id:n,paymentSource:i}=t,{brand:r,expiry:o,lastDigits:a}=i.card,[s,d]=o.split("-");return[{bigpayToken:n,brand:r,defaultInstrument:!1,expiryMonth:d,expiryYear:s,iin:"",last4:a,method:e,provider:e,trustedShippingAddress:!1,untrustedShippingCardVerificationMode:xr.PAN,type:"card"}]}mapBcToPayPalAddress(e){return{company:(null==e?void 0:e.company)||"",addressLine1:(null==e?void 0:e.address1)||"",addressLine2:(null==e?void 0:e.address2)||"",adminArea1:(null==e?void 0:e.stateOrProvinceCode)||(null==e?void 0:e.stateOrProvince)||"",adminArea2:(null==e?void 0:e.city)||"",postalCode:(null==e?void 0:e.postalCode)||"",countryCode:(null==e?void 0:e.countryCode)||""}}mapPayPalToBcAddress(e,t,n,i){const[r,o]=t.fullName.split(" "),a=(null==n?void 0:n.nationalNumber)||"",s=(null==n?void 0:n.countryCode)||"";return{id:Date.now(),type:"paypal-address",firstName:t.firstName||r||"",lastName:t.lastName||o||"",company:e.company||"",address1:e.addressLine1,address2:e.addressLine2||"",city:e.adminArea2,stateOrProvince:e.adminArea1,stateOrProvinceCode:e.adminArea1,country:e.countryCode||"",countryCode:e.countryCode||"",postalCode:e.postalCode,phone:s+a,customFields:i||[]}}filterAddresses(e){return e.reduce((e,t)=>t?e.some(e=>this.isEqualAddresses(e,t))?e:[...e,t]:e,[])}isEqualAddresses(e,t){return A(this.normalizeAddress(e),this.normalizeAddress(t))}normalizeAddress(e){return G(e,["id","phone"])}}var $g,Wg=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Yg{constructor(e,t,n,i,r){this._store=e,this._consignmentActionCreator=t,this._paymentMethodActionCreator=n,this._amazonPayV2PaymentProcessor=i,this._shippingStrategyActionCreator=r}updateAddress(e,t){const n=this._store.getState().shippingAddress.getShippingAddress();if(!n)throw new Qe(We.MissingShippingAddress);const i=Object.assign(Object.assign({},n),{customFields:e.customFields});return this._store.dispatch(this._consignmentActionCreator.updateAddress(i,t))}selectOption(e,t){return this._store.dispatch(this._consignmentActionCreator.selectShippingOption(e,t))}initialize(e){return Wg(this,void 0,void 0,function*(){const{amazonpay:t,methodId:n}=e;if(!t||!n)throw new Lt('Unable to proceed because "options.amazonpay" argument is not provided.');const i=(yield this._store.dispatch(this._paymentMethodActionCreator.loadPaymentMethod(n))).paymentMethods.getPaymentMethodOrThrow(n);yield this._amazonPayV2PaymentProcessor.initialize(i);const{paymentToken:r,region:o}=i.initializationData,a=t.editAddressButtonId;if(r&&a){const e=this._shouldShowLoadingSpinner(o);this._bindEditButton(a,r,"changeAddress",e)}return this._store.getState()})}deinitialize(){return Wg(this,void 0,void 0,function*(){return yield this._amazonPayV2PaymentProcessor.deinitialize(),Promise.resolve(this._store.getState())})}_bindEditButton(e,t,n,i){const r=document.getElementById(e);if(r&&r.parentNode){if(i){const e=r.cloneNode(!0);r.parentNode.replaceChild(e,r),e.addEventListener("click",()=>this._showLoadingSpinner())}this._amazonPayV2PaymentProcessor.bindButton(e,t,n)}}_showLoadingSpinner(){return this._store.dispatch(this._shippingStrategyActionCreator.widgetInteraction(()=>new Promise(pe)),{queueId:"widgetInteraction"})}_shouldShowLoadingSpinner(e){return"us"!==e}}!function(e){e.CVV="cvv",e.PAN="pan"}($g||($g={}));var Kg=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Jg{constructor(e,t,n,i,r,o){this._store=e,this._billingAddressActionCreator=t,this._consignmentActionCreator=n,this._paymentMethodActionCreator=i,this._paymentProviderCustomerActionCreator=r,this._braintreeIntegrationService=o}updateAddress(e,t){return this._store.dispatch(this._consignmentActionCreator.updateAddress(e,t))}selectOption(e,t){return this._store.dispatch(this._consignmentActionCreator.selectShippingOption(e,t))}deinitialize(){return Promise.resolve(this._store.getState())}initialize(e){var t;return Kg(this,void 0,void 0,function*(){const{methodId:n,braintreefastlane:i}=e||{},{onPayPalFastlaneAddressChange:r}=i||{};if(!n)throw new Lt('Unable to proceed because "methodId" argument is not provided.');const o=this._store.getState();if(!o.customer.getCustomerOrThrow().isGuest)return Promise.resolve(this._store.getState());try{if(this._shouldRunAuthenticationFlow()){const e=o.paymentMethods.getPaymentMethod(n),{clientToken:r,isFastlaneStylingEnabled:a}=(null==e?void 0:e.initializationData)||{};r||(yield this._store.dispatch(this._paymentMethodActionCreator.loadPaymentMethod(n)));const s=Fo(a?null===(t=null==e?void 0:e.initializationData)||void 0===t?void 0:t.fastlaneStyles:void 0,null==i?void 0:i.styles);yield this._runAuthenticationFlowOrThrow(n,s)}"function"==typeof r&&(yield this._shouldUseBraintreeFastlaneShippingComponent(n))&&r(()=>this._handleBraintreeFastlaneShippingAddressChange())}catch(e){}return Promise.resolve(this._store.getState())})}_shouldRunAuthenticationFlow(){var e;const t=this._store.getState(),n=null===(e=t.cart.getCart())||void 0===e?void 0:e.id,i=$r.get("bc-fastlane-sessionId")||"",r=t.paymentProviderCustomer.getPaymentProviderCustomer(),o=_l(r)?r:{};return(null==o?void 0:o.authenticationState)!==qi.CANCELED&&!(null==o?void 0:o.authenticationState)&&i===n}_runAuthenticationFlowOrThrow(e,t){var n,i;return Kg(this,void 0,void 0,function*(){const r=this._store.getState(),o=r.cart.getCartOrThrow(),a=r.countries.getCountries()||[],s=r.paymentMethods.getPaymentMethodOrThrow(e),{clientToken:d,config:c}=s;if(!d)throw new Qe(We.MissingPaymentMethod);this._braintreeIntegrationService.initialize(d);const l=yield this._braintreeIntegrationService.getBraintreeFastlane(null==o?void 0:o.id,null==c?void 0:c.testMode,t),u=(null===(n=r.customer.getCustomer())||void 0===n?void 0:n.email)||(null===(i=r.billingAddress.getBillingAddress())||void 0===i?void 0:i.email);if(!u)return;const{lookupCustomerByEmail:h,triggerAuthenticationFlow:p}=l.identity,{customerContextId:m}=yield h(u);if(!m)return;const{authenticationState:y,profileData:g}=yield p(m);if(y===qi.CANCELED)return yield this._store.dispatch(this._paymentProviderCustomerActionCreator.updatePaymentProviderCustomer({authenticationState:y,addresses:[],instruments:[]})),void $r.remove("bc-fastlane-sessionId");const v=this._getPayPalBillingAddress(g),f=g.shippingAddress,S=g.shippingAddress.phoneNumber,w=this._mapPayPalToBcAddress(f,a,S),_=this._mapPayPalToBcAddress(v,a,S);if(_&&w){const t=this._mergeShippingAndBillingAddresses(w,_),n=this._mapPayPalToBcInstrument(e,g.card),i=n?[n]:[];yield this._store.dispatch(this._paymentProviderCustomerActionCreator.updatePaymentProviderCustomer({authenticationState:y,addresses:t,instruments:i})),_&&(yield this._store.dispatch(this._billingAddressActionCreator.updateAddress(Object.assign(Object.assign({},_),{id:String(_.id)})))),w&&o.lineItems.physicalItems.length>0&&(yield this._store.dispatch(this._consignmentActionCreator.updateAddress(w)))}})}_getPayPalBillingAddress(e){const{name:t,card:n}=e,i=n.paymentSource.card.billingAddress;return Object.assign(Object.assign({},i),{firstName:i.firstName||(null==t?void 0:t.firstName),lastName:i.lastName||(null==t?void 0:t.lastName)})}_getCountryNameByCountryCode(e,t){const n=t.find(t=>t.code===e);return(null==n?void 0:n.name)||""}_mapPayPalToBcAddress(e,t,n,i){return{id:Number(Date.now()),type:"paypal-address",firstName:e.firstName||"",lastName:e.lastName||"",company:e.company||"",address1:e.streetAddress,address2:e.extendedAddress||"",city:e.locality,stateOrProvince:e.region,stateOrProvinceCode:e.region,country:this._getCountryNameByCountryCode(e.countryCodeAlpha2,t),countryCode:e.countryCodeAlpha2,postalCode:e.postalCode,phone:n||"",customFields:i||[]}}_normalizeAddress(e){return G(e,["id"])}_mergeShippingAndBillingAddresses(e,t){return A(this._normalizeAddress(e),this._normalizeAddress(t))?[e]:[e,t]}_mapPayPalToBcInstrument(e,t){if(!t)return;const{id:n,paymentSource:i}=t,{brand:r,expiry:o,lastDigits:a}=i.card,[s,d]=o.split("-");return{bigpayToken:n,brand:r,defaultInstrument:!1,expiryMonth:d,expiryYear:s,iin:"",last4:a,method:e,provider:e,trustedShippingAddress:!1,untrustedShippingCardVerificationMode:$g.CVV,type:"card"}}_handleBraintreeFastlaneShippingAddressChange(){var e;return Kg(this,void 0,void 0,function*(){const t=this._store.getState().countries.getCountries()||[],n=yield this._braintreeIntegrationService.getBraintreeFastlane(),{selectionChanged:i,selectedAddress:r}=yield n.profile.showShippingAddressSelector();if(i){const n=this._store.getState(),i=n.shippingAddress.getShippingAddressesOrThrow(),o=n.paymentProviderCustomer.getPaymentProviderCustomer(),a=_l(o)?o:{},s=this._mapPayPalToBcAddress(r,t,r.phoneNumber,null===(e=i[0])||void 0===e?void 0:e.customFields);if(s){const e=this._filterAddresses([s,...a.addresses||[]]);return yield this._store.dispatch(this._paymentProviderCustomerActionCreator.updatePaymentProviderCustomer(Object.assign(Object.assign({},a),{addresses:e}))),yield this._store.dispatch(this._consignmentActionCreator.updateAddress(s)),s}}})}_filterAddresses(e){return e.reduce((e,t)=>t?e.some(e=>this._isEqualAddresses(e,t))?e:[...e,t]:e,[])}_isEqualAddresses(e,t){return A(this._normalizeAddress(e),this._normalizeAddress(t))}_shouldUseBraintreeFastlaneShippingComponent(e){var t;return Kg(this,void 0,void 0,function*(){const n=this._store.getState().paymentProviderCustomer.getPaymentProviderCustomer(),i=_l(n)?n:{};if(i&&i!==qi.CANCELED){const n=yield this._getBraintreePaymentMethodOrThrow(e);return!!(null===(t=null==n?void 0:n.initializationData)||void 0===t?void 0:t.isFastlaneEnabled)}return!1})}_getBraintreePaymentMethodOrThrow(e){return Kg(this,void 0,void 0,function*(){const t=this._store.getState().paymentMethods.getPaymentMethod(e);return t||(yield this._store.dispatch(this._paymentMethodActionCreator.loadPaymentMethod(e))).paymentMethods.getPaymentMethodOrThrow(e)})}}class Zg{constructor(e,t){this._store=e,this._consignmentActionCreator=t}updateAddress(e,t){return this._store.dispatch(this._consignmentActionCreator.updateAddress(e,t))}selectOption(e,t){return this._store.dispatch(this._consignmentActionCreator.selectShippingOption(e,t))}initialize(){return Promise.resolve(this._store.getState())}deinitialize(){return Promise.resolve(this._store.getState())}}function Qg(e){return"string"!=typeof e}var Xg=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class ev{constructor(e,t,n,i,r,o,a){this._store=e,this._billingAddressActionCreator=t,this._consignmentActionCreator=n,this._paymentMethodActionCreator=i,this._paymentProviderCustomerActionCreator=r,this._paypalCommerceSdk=o,this._paypalCommerceFastlaneUtils=a}updateAddress(e,t){return this._store.dispatch(this._consignmentActionCreator.updateAddress(e,t))}selectOption(e,t){return this._store.dispatch(this._consignmentActionCreator.selectShippingOption(e,t))}deinitialize(){return Promise.resolve(this._store.getState())}initialize(e){return Xg(this,void 0,void 0,function*(){const{methodId:t,paypalcommercefastlane:n}=e||{},{onPayPalFastlaneAddressChange:i,styles:r}=n||{};if(!t)throw new Lt('Unable to proceed because "methodId" argument is not provided.');const o=this._store.getState().customer.getCustomerOrThrow();if(!(null==o?void 0:o.isGuest))return Promise.resolve(this._store.getState());try{this._shouldAuthenticateUserWithFastlane()&&(yield this._initializePayPalSdk(t,r),yield this._authenticateUserWithFastlaneOtp(t)),"function"==typeof i&&this._shouldUsePayPalFastlaneShippingComponent()&&(yield this._initializePayPalSdk(t,r),i(()=>this._handlePayPalShippingAddressChange()))}catch(e){}return Promise.resolve(this._store.getState())})}_getPayPalPaymentMethodOrThrow(e){return Xg(this,void 0,void 0,function*(){const t=this._store.getState().paymentMethods.getPaymentMethod(e);return t||(yield this._store.dispatch(this._paymentMethodActionCreator.loadPaymentMethod(e))).paymentMethods.getPaymentMethodOrThrow(e)})}_getPayPalCustomerAuthenticationState(){const e=this._store.getState().paymentProviderCustomer.getPaymentProviderCustomerOrThrow();var t;return((t=e)&&("authenticationState"in t||"addresses"in t||"instruments"in t)?e:{}).authenticationState}_shouldAuthenticateUserWithFastlane(){const e=this._store.getState().cart.getCartOrThrow(),t=this._paypalCommerceFastlaneUtils.getStorageSessionId();return!this._getPayPalCustomerAuthenticationState()&&t===e.id}_shouldUsePayPalFastlaneShippingComponent(){const e=this._getPayPalCustomerAuthenticationState();return!!e&&e!==Bg.CANCELED}_initializePayPalSdk(e,t){var n;return Xg(this,void 0,void 0,function*(){const i=this._store.getState().cart.getCartOrThrow(),r=yield this._getPayPalPaymentMethodOrThrow(e),{isDeveloperModeApplicable:o,isFastlaneStylingEnabled:a}=(null==r?void 0:r.initializationData)||{},s=!!o,d=function(e,t){if(t||e)return function(e){var t,n;const i={},r=H(e.root,Qg),o=H(e.input,Qg),a=H(e.toggle,Qg),s=H(null===(t=e.text)||void 0===t?void 0:t.body,Qg),d=H(null===(n=e.text)||void 0===n?void 0:n.caption,Qg),c=e.branding;return Object.keys(r).length&&(i.root=r),Object.keys(o).length&&(i.input=o),Object.keys(a).length&&(i.toggle=a),Object.keys(s).length&&(i.text={},i.text.body=s),Object.keys(d).length&&(i.text=Object.assign({},i.text),i.text.caption=d),c&&(i.branding=c),i}(function(e,t){var n,i,r,o,a,s,d,c,l,u,h,p,m,y,g,v,f,S,w,_,C,I;return{root:{backgroundColorPrimary:(null==e?void 0:e.fastlaneRootSettingsBackgroundColor)||(null===(n=null==t?void 0:t.root)||void 0===n?void 0:n.backgroundColorPrimary),errorColor:(null==e?void 0:e.fastlaneRootSettingsErrorColor)||(null===(i=null==t?void 0:t.root)||void 0===i?void 0:i.errorColor),fontFamily:(null==e?void 0:e.fastlaneRootSettingsFontFamily)||(null===(r=null==t?void 0:t.root)||void 0===r?void 0:r.fontFamily),fontSizeBase:(null==e?void 0:e.fastlaneRootSettingsFontSize)||(null===(o=null==t?void 0:t.root)||void 0===o?void 0:o.fontSizeBase),padding:(null==e?void 0:e.fastlaneRootSettingsPadding)||(null===(a=null==t?void 0:t.root)||void 0===a?void 0:a.padding),primaryColor:(null==e?void 0:e.fastlaneRootSettingsPrimaryColor)||(null===(s=null==t?void 0:t.root)||void 0===s?void 0:s.primaryColor)},input:{borderRadius:(null==e?void 0:e.fastlaneInputSettingsBorderRadius)||(null===(d=null==t?void 0:t.input)||void 0===d?void 0:d.borderRadius),borderColor:(null==e?void 0:e.fastlaneInputSettingsBorderColor)||(null===(c=null==t?void 0:t.input)||void 0===c?void 0:c.borderColor),focusBorderColor:(null==e?void 0:e.fastlaneInputSettingsFocusBorderBase)||(null===(l=null==t?void 0:t.input)||void 0===l?void 0:l.focusBorderColor),backgroundColor:(null==e?void 0:e.fastlaneInputSettingsBackgroundColor)||(null===(u=null==t?void 0:t.input)||void 0===u?void 0:u.backgroundColor),borderWidth:(null==e?void 0:e.fastlaneInputSettingsBorderWidth)||(null===(h=null==t?void 0:t.input)||void 0===h?void 0:h.borderWidth),textColorBase:(null==e?void 0:e.fastlaneInputSettingsTextColorBase)||(null===(p=null==t?void 0:t.input)||void 0===p?void 0:p.textColorBase)},toggle:{colorPrimary:(null==e?void 0:e.fastlaneToggleSettingsColorPrimary)||(null===(m=null==t?void 0:t.toggle)||void 0===m?void 0:m.colorPrimary),colorSecondary:(null==e?void 0:e.fastlaneToggleSettingsColorSecondary)||(null===(y=null==t?void 0:t.toggle)||void 0===y?void 0:y.colorSecondary)},text:{body:{color:(null==e?void 0:e.fastlaneTextBodySettingsColor)||(null===(v=null===(g=null==t?void 0:t.text)||void 0===g?void 0:g.body)||void 0===v?void 0:v.color),fontSize:(null==e?void 0:e.fastlaneTextBodySettingsFontSize)||(null===(S=null===(f=null==t?void 0:t.text)||void 0===f?void 0:f.body)||void 0===S?void 0:S.fontSize)},caption:{color:(null==e?void 0:e.fastlaneTextCaptionSettingsColor)||(null===(_=null===(w=null==t?void 0:t.text)||void 0===w?void 0:w.caption)||void 0===_?void 0:_.color),fontSize:(null==e?void 0:e.fastlaneTextCaptionSettingsFontSize)||(null===(I=null===(C=null==t?void 0:t.text)||void 0===C?void 0:C.caption)||void 0===I?void 0:I.fontSize)}},branding:(null==e?void 0:e.fastlaneBrandingSettings)||(null==t?void 0:t.branding)}}(e,t))}(a?null===(n=null==r?void 0:r.initializationData)||void 0===n?void 0:n.fastlaneStyles:{},t),c=yield this._paypalCommerceSdk.getPayPalFastlaneSdk(r,i.currency.code,i.id);yield this._paypalCommerceFastlaneUtils.initializePayPalFastlane(c,s,d)})}_authenticateUserWithFastlaneOtp(e){var t,n;return Xg(this,void 0,void 0,function*(){const i=this._store.getState(),r=i.cart.getCartOrThrow(),o=null===(t=i.customer.getCustomer())||void 0===t?void 0:t.email,a=null===(n=i.billingAddress.getBillingAddress())||void 0===n?void 0:n.email,s=o||a||"",{customerContextId:d}=yield this._paypalCommerceFastlaneUtils.lookupCustomerOrThrow(s),c=yield this._paypalCommerceFastlaneUtils.triggerAuthenticationFlowOrThrow(d),{authenticationState:l,addresses:u,billingAddress:h,shippingAddress:p,instruments:m}=this._paypalCommerceFastlaneUtils.mapPayPalFastlaneProfileToBcCustomerData(e,c);yield this._store.dispatch(this._paymentProviderCustomerActionCreator.updatePaymentProviderCustomer({authenticationState:l,addresses:u,instruments:m})),c.authenticationState===Bg.CANCELED?this._paypalCommerceFastlaneUtils.removeStorageSessionId():this._paypalCommerceFastlaneUtils.updateStorageSessionId(r.id),h&&(yield this._store.dispatch(this._billingAddressActionCreator.updateAddress(Object.assign(Object.assign({},h),{id:String(h.id)})))),p&&r.lineItems.physicalItems.length>0&&(yield this._store.dispatch(this._consignmentActionCreator.updateAddress(p)))})}_handlePayPalShippingAddressChange(){var e;return Xg(this,void 0,void 0,function*(){const t=this._paypalCommerceFastlaneUtils.getPayPalFastlaneOrThrow(),{selectionChanged:n,selectedAddress:i}=yield t.profile.showShippingAddressSelector();if(n){const t=this._store.getState(),n=t.shippingAddress.getShippingAddressesOrThrow(),o=t.paymentProviderCustomer.getPaymentProviderCustomer(),a=(r=o)&&("authenticationState"in r||"addresses"in r||"instruments"in r)?o:{},s=this._paypalCommerceFastlaneUtils.mapPayPalToBcAddress(i.address,i.name,i.phoneNumber,null===(e=n[0])||void 0===e?void 0:e.customFields),d=this._paypalCommerceFastlaneUtils.filterAddresses([s,...a.addresses||[]]);return yield this._store.dispatch(this._paymentProviderCustomerActionCreator.updatePaymentProviderCustomer(Object.assign(Object.assign({},a),{addresses:d}))),yield this._store.dispatch(this._consignmentActionCreator.updateAddress(s)),s}var r})}}var tv;class nv{constructor(e,t,n,i){this._store=e,this._stripeUPEScriptLoader=t,this._consignmentActionCreator=n,this._paymentMethodActionCreator=i}updateAddress(e,t){return this._store.dispatch(this._consignmentActionCreator.updateAddress(e,t))}selectOption(e,t){return this._store.dispatch(this._consignmentActionCreator.selectShippingOption(e,t))}initialize(e){return t=this,n=void 0,r=function*(){if(!e.stripeupe)throw new Lt('Unable to proceed because "options" argument is not provided.');const{container:t,gatewayId:n,methodId:i,onChangeShipping:r,getStyles:o,availableCountries:a,getStripeState:s}=e.stripeupe;Object.entries(e.stripeupe).forEach(([e,t])=>{if(!t)throw new Lt(`Unable to proceed because "${e}" argument is not provided.`)});const d=(yield this._store.dispatch(this._paymentMethodActionCreator.loadPaymentMethod(n,{params:{method:i}}))).paymentMethods.getPaymentMethodOrThrow(i,n),{initializationData:c}=d;if(!d||!d.initializationData.stripePublishableKey||!d.clientToken)throw new Qe(We.MissingPaymentMethod);let l;this._stripeUPEClient=yield this._stripeUPEScriptLoader.getStripeClient(c,Vs,Gs);const u=o&&o(),{form:{getShippingAddressFields:h},shippingAddress:{getShippingAddress:p}}=this._store.getState(),m=h([],"");l=u?{variables:{colorPrimary:u.fieldInnerShadow,colorBackground:u.fieldBackground,colorText:u.labelText,colorDanger:u.fieldErrorText,colorTextSecondary:u.labelText,colorTextPlaceholder:u.fieldPlaceholderText,spacingUnit:"4px",borderRadius:"4px"},rules:{".Input":{borderColor:u.fieldBorder,color:u.fieldText,boxShadow:u.fieldInnerShadow}}}:{variables:{spacingUnit:"4px",borderRadius:"4px"}},this._stripeElements=yield this._stripeUPEScriptLoader.getElements(this._stripeUPEClient,{clientSecret:d.clientToken,appearance:l});const y=p(),g=m.find(e=>"phone"===e.name);let v={mode:Hs.SHIPPING,allowedCountries:[a],fields:{phone:"always"},validation:{phone:{required:g&&g.required?"always":"never"}},display:{name:$s.SPLIT}};if(y){const{stateOrProvinceCode:e,countryCode:t,lastName:n,firstName:i,phone:r,address1:o,address2:a,city:d,postalCode:c}=y,l=e&&t?s(t,e):e;v=Object.assign(Object.assign({},v),{defaultValues:{firstName:i,lastName:n,phone:r,address:{line1:o,line2:a,city:d,state:l,postal_code:c,country:t}}})}let f=this._stripeElements.getElement(Ks.SHIPPING);return f&&f.destroy(),f=this._stripeElements.create(Ks.SHIPPING,v),f.on(Zs.CHANGE,e=>{if(!("isNewAddress"in e))throw new Qe(We.MissingShippingAddress);(e.complete||e.isNewAddress)&&(this.sendData&&clearTimeout(this.sendData),this.sendData=setTimeout(()=>{r(Object.assign(Object.assign({},e),{phoneFieldRequired:!!g&&g.required}))},1e3))}),f.mount(`#${t}`),Promise.resolve(this._store.getState())},new((i=void 0)||(i=Promise))(function(e,o){function a(e){try{d(r.next(e))}catch(e){o(e)}}function s(e){try{d(r.throw(e))}catch(e){o(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((r=r.apply(t,n||[])).next())});var t,n,i,r}deinitialize(){return Promise.resolve(this._store.getState())}}!function(e){e.SendSignInEmailRequested="SEND_SIGNIN_EMAIL_REQUESTED",e.SendSignInEmailSucceeded="SEND_SIGNIN_EMAIL_SUCCEEDED",e.SendSignInEmailFailed="SEND_SIGNIN_EMAIL_FAILED"}(tv||(tv={}));class iv{constructor(e){this._requestSender=e}sendSignInEmail(e,t){return se(me(l(tv.SendSignInEmailRequested)),de(()=>{return n=this,i=void 0,o=function*(){const{body:n}=yield this._requestSender.sendSignInEmail(e,t);return l(tv.SendSignInEmailSucceeded,n)},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o})).pipe(ge(e=>Je(tv.SendSignInEmailFailed,e)))}}class rv{constructor(e){this._requestSender=e}sendSignInEmail({email:e,redirectUrl:t},{timeout:n}={}){const i=Object.assign({Accept:it.JsonV1},rt);return this._requestSender.post("/login.php?action=passwordless_login",{body:{email:e,redirect_url:t||Mn(window.top?window.top.location.href:"").pathname},headers:i,timeout:n})}}class ov{constructor(e){this._messageCustomizer=e}transform(e){var t;return e.message=(t=this._messageCustomizer(e))?t.split(/(?:\r\n|\n|\r)/).map(e=>e.replace(/^\s+/gm,"")).join(" ").trim():"",e}}let av=class{constructor(e,t,n,i,r,o,a,s,d,c,l,u,h,p,m,y,g,v,f,S,w,_,C,I,b,P,O,E){this._store=e,this._storeProjection=t,this._extensionMessenger=n,this._extensionEventBroadcaster=i,this._billingAddressActionCreator=r,this._checkoutActionCreator=o,this._configActionCreator=a,this._customerActionCreator=s,this._consignmentActionCreator=d,this._countryActionCreator=c,this._couponActionCreator=l,this._customerStrategyActionCreator=u,this._errorActionCreator=h,this._giftCertificateActionCreator=p,this._instrumentActionCreator=m,this._orderActionCreator=y,this._paymentMethodActionCreator=g,this._paymentStrategyActionCreator=v,this._pickupOptionActionCreator=f,this._shippingCountryActionCreator=S,this._shippingStrategyActionCreator=w,this._signInEmailActionCreator=_,this._spamProtectionActionCreator=C,this._storeCreditActionCreator=I,this._subscriptionsActionCreator=b,this._formFieldsActionCreator=P,this._extensionActionCreator=O,this._workerExtensionMessenger=E,this._errorTransformer=function(e="development"===ht()){return new ov(t=>{if(!e||!function(e){return!(!e.subtype&&!e.type)}(t))return t.message;switch(t.subtype||t.type){case We.MissingConsignments:return`\n ${t.message}\n The data could be unavailable because no shipping address has been provided.\n To fix this, create a consignment or update the shipping address before performing\n the same action again.\n `;case We.MissingCart:case We.MissingCheckout:return`\n ${t.message}\n The data could be unavailable because it has not loaded from the server yet.\n To fix this issue, you can try calling \`CheckoutService#loadCheckout\`\n before performing the same action again.\n `;case We.MissingCheckoutConfig:return`\n ${t.message}\n The data could be unavailable because it has not loaded from the server yet.\n To fix this issue, you need to make sure \`CheckoutService\` is initialized\n properly by calling \`CheckoutService#loadCheckout\` before performing any\n other actions.\n `;case We.MissingOrder:return`\n ${t.message}\n The data could be unavailable because it has not loaded from the server yet.\n To fix this issue, you can try calling \`CheckoutService#loadOrder\`\n before performing the same action again.\n `;case We.MissingOrderId:return`\n ${t.message}\n The data could be unavailable because no order has been created yet. You have\n to first create the order before you can perform the action.\n `;case We.MissingPaymentMethod:return`\n ${t.message}\n The data could be unavailable because it has not loaded from the server, or\n configured by the merchant yet. To fix the former issue, you can try calling\n \`CheckoutService#loadPaymentMethods\` before performing the same action again.\n `;case gn.CustomerNotInitialized:return"\n In order to initialize the customer step of checkout, you need to call\n `CheckoutService#initializeCustomer`. Afterwards, you should be able to\n submit customer details.\n ";case gn.PaymentNotInitialized:return`\n ${t.message}\n In order to initialize the payment step of checkout, you need to call\n \`CheckoutService#initializePayment\`. Afterwards, you should be able to\n submit payment details.\n `;case gn.ShippingNotInitialized:return`\n ${t.message}\n In order to initialize the shipping step of checkout, you need to call\n \`CheckoutService#initializeShipping\`. Afterwards, you should be able to\n submit shipping details.\n `;default:return t.message}})}()}getState(){return this._storeProjection.getState()}notifyState(){this._storeProjection.notifyState()}subscribe(e,...t){return this._storeProjection.subscribe(e,...t)}hydrateInitialState(e){return this._dispatch(this._checkoutActionCreator.hydrateInitialState(e))}loadCheckout(e,t){return this._dispatch(e?this._checkoutActionCreator.loadCheckout(e,t):this._checkoutActionCreator.loadDefaultCheckout(t))}updateCheckout(e,t){const n=this._checkoutActionCreator.updateCheckout(e,t);return this._dispatch(n)}loadOrder(e,t){const n=this._orderActionCreator.loadOrder(e,t),i=this._formFieldsActionCreator.loadFormFields(t),r=this._configActionCreator.loadConfig(t);return Promise.all([this._dispatch(n),this._dispatch(r,{queueId:"config"}),this._dispatch(i,{queueId:"formFields"})]).then(()=>this.getState())}submitOrder(e,t){const n=this._paymentStrategyActionCreator.execute(e,t);return this._dispatch(n,{queueId:"paymentStrategy"})}finalizeOrderIfNeeded(e){const t=this._paymentStrategyActionCreator.finalize(e);return this._dispatch(t,{queueId:"paymentStrategy"})}loadPaymentMethods(e){const t=this._paymentMethodActionCreator.loadPaymentMethods(e);return this._dispatch(t,{queueId:"paymentMethods"})}loadPaymentMethodByIds(e,t){const n=this._paymentMethodActionCreator.loadPaymentMethodsById(e,t);return this._dispatch(n,{queueId:"paymentMethods"})}loadPaymentMethod(e,t){const n=this._paymentMethodActionCreator.loadPaymentMethod(e,t);return this._dispatch(n,{queueId:"paymentMethods"})}initializePayment(e){const t=this._paymentStrategyActionCreator.initialize(e);return this._dispatch(t,{queueId:"paymentStrategy"})}deinitializePayment(e){const t=this._paymentStrategyActionCreator.deinitialize(e);return this._dispatch(t,{queueId:"paymentStrategy"})}loadBillingCountries(e){const t=this._countryActionCreator.loadCountries(e);return this._dispatch(t,{queueId:"billingCountries"})}loadShippingCountries(e){const t=this._shippingCountryActionCreator.loadCountries(e);return this._dispatch(t,{queueId:"shippingCountries"})}loadPickupOptions(e){const t=this._pickupOptionActionCreator.loadPickupOptions(e);return this._dispatch(t,{queueId:"pickupOptions"})}loadBillingAddressFields(e){return this.loadBillingCountries(e)}loadShippingAddressFields(e){return this.loadShippingCountries(e)}initializeCustomer(e){const t=this._customerStrategyActionCreator.initialize(e);return this._dispatch(t,{queueId:"customerStrategy"})}deinitializeCustomer(e){const t=this._customerStrategyActionCreator.deinitialize(e);return this._dispatch(t,{queueId:"customerStrategy"})}sendSignInEmail(e,t){const n=this._signInEmailActionCreator.sendSignInEmail(e,t);return this._dispatch(n,{queueId:"signInEmail"})}createCustomerAccount(e,t){const n=this._customerActionCreator.createCustomer(e,t);return this._dispatch(n)}createCustomerAddress(e,t){const n=this._customerActionCreator.createAddress(e,t);return this._dispatch(n)}updateSubscriptions(e,t){const n=this._subscriptionsActionCreator.updateSubscriptions(e,t);return this._dispatch(n,{queueId:"subscriptions"})}continueAsGuest(e,t){const n=this._billingAddressActionCreator.continueAsGuest(e,t);return this._dispatch(n)}signInCustomer(e,t){const n=this._customerStrategyActionCreator.signIn(e,t);return this._dispatch(n,{queueId:"customerStrategy"})}signOutCustomer(e){const t=this._customerStrategyActionCreator.signOut(e);return this._dispatch(t,{queueId:"customerStrategy"})}executePaymentMethodCheckout(e){const t=this._customerStrategyActionCreator.executePaymentMethodCheckout(e);return this._dispatch(t,{queueId:"customerStrategy"})}loadShippingOptions(e){const t=this._consignmentActionCreator.loadShippingOptions(e);return this._dispatch(t)}initializeShipping(e){const t=this._shippingStrategyActionCreator.initialize(e);return this._dispatch(t,{queueId:"shippingStrategy"})}deinitializeShipping(e){const t=this._shippingStrategyActionCreator.deinitialize(e);return this._dispatch(t,{queueId:"shippingStrategy"})}selectShippingOption(e,t){const n=this._shippingStrategyActionCreator.selectOption(e,t);return this._dispatch(n,{queueId:"shippingStrategy"})}updateShippingAddress(e,t){const n=this._shippingStrategyActionCreator.updateAddress(e,t);return this._dispatch(n,{queueId:"shippingStrategy"})}createConsignments(e,t){const n=this._consignmentActionCreator.createConsignments(e,t);return this._dispatch(n,{queueId:"shippingStrategy"})}deleteConsignment(e,t){const n=this._consignmentActionCreator.deleteConsignment(e,t);return this._dispatch(n,{queueId:"shippingStrategy"})}updateConsignment(e,t){const n=this._consignmentActionCreator.updateConsignment(e,t);return this._dispatch(n,{queueId:"shippingStrategy"})}assignItemsToAddress(e,t){const n=this._consignmentActionCreator.assignItemsByAddress(e,t);return this._dispatch(n,{queueId:"shippingStrategy"})}unassignItemsToAddress(e,t){const n=this._consignmentActionCreator.unassignItemsByAddress(e,t);return this._dispatch(n,{queueId:"shippingStrategy"})}selectConsignmentShippingOption(e,t,n){const i=this._consignmentActionCreator.updateShippingOption({id:e,shippingOptionId:t},n);return this._dispatch(i,{queueId:"shippingStrategy"})}updateBillingAddress(e,t={}){const n=this._billingAddressActionCreator.updateAddress(e,t);return this._dispatch(n)}applyStoreCredit(e,t){const n=this._storeCreditActionCreator.applyStoreCredit(e,t);return this._dispatch(n)}applyCoupon(e,t){const n=this._couponActionCreator.applyCoupon(e,t);return this._dispatch(n)}removeCoupon(e,t){const n=this._couponActionCreator.removeCoupon(e,t);return this._dispatch(n)}applyGiftCertificate(e,t){const n=this._giftCertificateActionCreator.applyGiftCertificate(e,t);return this._dispatch(n)}removeGiftCertificate(e,t){const n=this._giftCertificateActionCreator.removeGiftCertificate(e,t);return this._dispatch(n)}loadInstruments(){const e=this._instrumentActionCreator.loadInstruments();return this._dispatch(e)}deleteInstrument(e){const t=this._instrumentActionCreator.deleteInstrument(e);return this._dispatch(t).then(()=>this.loadInstruments())}clearError(e){const t=this._errorActionCreator.clearError(e);return this._dispatch(t)}initializeSpamProtection(e){const t=this._spamProtectionActionCreator.initialize(e);return this._dispatch(t,{queueId:"spamProtection"})}executeSpamCheck(){const e=this._spamProtectionActionCreator.verifyCheckoutSpamProtection();return this._dispatch(e,{queueId:"spamProtection"})}loadExtensions(e){const t=this._extensionActionCreator.loadExtensions(e);return this._dispatch(t,{queueId:"extensions"})}renderExtension(e,t){return n=this,i=void 0,o=function*(){const n=this._extensionActionCreator.renderExtension(e,t,this._workerExtensionMessenger),i=yield this._dispatch(n,{queueId:"extensions"});return this._extensionEventBroadcaster.listen(),i},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}clearExtensionCache(e){this._extensionMessenger.clearCacheByRegion(e)}postMessageToExtension(e,t){this._extensionMessenger.post(e,t)}handleExtensionCommand(e,t,n){return this._extensionMessenger.listenForCommand(e,t,n)}handleExtensionQuery(e,t,n){return this._extensionMessenger.listenForQuery(e,t,n)}_dispatch(e,t){return this._store.dispatch(e,t).then(()=>this.getState()).catch(e=>{throw this._errorTransformer.transform(e)})}};av=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([Kn],av);const sv=av;function dv(e){return(...t)=>{const n=t.pop();return e(...t,(...e)=>{const t=n(...e);return"function"==typeof t?Pe(t):t})}}const cv=dv(Fe),lv=dv(Re(Le,(e,t)=>Be(e,t)));class uv extends _t{constructor(e,t){super(e,{message:t||"An unexpected error has occurred. The checkout process cannot continue as a result."}),this.name="UnrecoverableError",this.type="unrecoverable"}}function hv(e){return e.reduce((e,t)=>t?[...e,t]:e,[]).join(" ")}class pv extends _t{constructor(e){super(e,{message:"The request has timed out or aborted."}),this.name="TimeoutError",this.type="timeout"}}class mv{constructor(){this._factoryMethods={},this.register("default",(e,t)=>new _t(e,{message:t})),this.register("internal",(e,t)=>function(e,t){const{body:n}=e,{errors:i=[]}=n;return new _t(e,{message:hv(i)||n.detail||n.title||t,errors:i.length?i.map(e=>({code:n.type,message:e})):[{code:n.type,message:n.detail||n.title}]})}(e,t)),this.register("storefront",(e,t)=>function(e,t){const{body:n}=e;return new _t(e,{message:t||n.detail||n.title,errors:[{code:n.code||n.type,message:n.detail||n.title}]})}(e,t)),this.register("payment",(e,t)=>qm(e,t)),this.register("timeout",e=>new pv(e))}register(e,t){this._factoryMethods[e]=t}createError(e,t){return(this._factoryMethods[this._getType(e)]||this._factoryMethods.default)(e,t)}_getType(e){if(0===e.status)return"timeout";if(this._isStorefrontErrorResponseBody(e.body))return"storefront";if(this._isInternalErrorResponseBody(e.body)){const t=L(e.body.type.split("/"));return t&&this._factoryMethods[t]?t:"internal"}const t=L(e.body&&e.body.errors);return t&&t.code&&this._factoryMethods[t.code]?t.code:"payment"}_isStorefrontErrorResponseBody(e){const t=e;return!this._isInternalErrorResponseBody(e)&&"string"==typeof t.title&&"string"==typeof t.type&&"number"==typeof t.status&&"string"==typeof t.detail}_isInternalErrorResponseBody(e){const t=e;return"object"==typeof t.errors&&"string"==typeof t.title&&"string"==typeof t.type&&"number"==typeof t.status}}function yv(e,t){return Array.isArray(e)?e.map(e=>yv(e,t)):M(e)?X(H(e,t),(e,n,i)=>{e[i]=yv(n,t)},{}):e}function gv(e,t){return function(e){return e.type===dt.ClearError}(t)?yv(e,e=>e===t.payload):e}function vv(e,t,n){return e===t||(e&&t&&"object"==typeof e&&"object"==typeof t?Array.isArray(e)&&Array.isArray(t)?function(e,t,n){if(e.length!==t.length)return!1;for(let i=0,r=e.length;i<r;i++)if(!vv(e[i],t[i],n))return!1;return!0}(e,t,n):!Array.isArray(e)&&!Array.isArray(t)&&(e instanceof Date&&t instanceof Date?function(e,t){return e.getTime()===t.getTime()}(e,t):!(e instanceof Date||t instanceof Date)&&(e instanceof RegExp&&t instanceof RegExp?function(e,t){return e.toString()===t.toString()}(e,t):!(e instanceof RegExp||t instanceof RegExp)&&function(e,t,n){const i=n&&n.keyFilter,r=i?Object.keys(e).filter(i):Object.keys(e),o=i?Object.keys(t).filter(i):Object.keys(t);if(r.length!==o.length)return!1;for(let i=0,o=r.length;i<o;i++){const o=r[i];if(!Object.prototype.hasOwnProperty.call(t,o))return!1;if(!vv(e[o],t[o],n))return!1}return!0}(e,t,n))):e===t)}function fv(e,t){return void 0===t||vv(e,t)?e:t}function Sv(e,t,n){return e&&Object.prototype.hasOwnProperty.call(e,t)&&vv(e[t],n)?e:Object.assign(Object.assign({},e),{[t]:n})}const wv={errors:{},statuses:{}};function _v(e=wv,t){return d({data:Cv,errors:c(Iv,gv),statuses:bv})(e,t)}function Cv(e,t){var n,i;switch(t.type){case Ye.UpdateBillingAddressSucceeded:case Ye.ContinueAsGuestSucceeded:case Vt.LoadCheckoutSucceeded:return fv(e,t.payload&&t.payload.billingAddress);case Gt.HydrateInitialState:return fv(e,null===(i=null===(n=t.payload)||void 0===n?void 0:n.checkout)||void 0===i?void 0:i.billingAddress);default:return e}}function Iv(e=wv.errors,t){switch(t.type){case Vt.LoadCheckoutRequested:case Vt.LoadCheckoutSucceeded:return Sv(e,"loadError",void 0);case Vt.LoadCheckoutFailed:return Sv(e,"loadError",t.payload);case Ye.UpdateBillingAddressRequested:case Ye.UpdateBillingAddressSucceeded:return Sv(e,"updateError",void 0);case Ye.UpdateBillingAddressFailed:return Sv(e,"updateError",t.payload);case dg.UpdateSubscriptionsRequested:case dg.UpdateSubscriptionsSucceeded:case Ye.ContinueAsGuestRequested:case Ye.ContinueAsGuestSucceeded:return Sv(e,"continueAsGuestError",void 0);case dg.UpdateSubscriptionsFailed:case Ye.ContinueAsGuestFailed:return Sv(e,"continueAsGuestError",t.payload);default:return e}}function bv(e=wv.statuses,t){switch(t.type){case Vt.LoadCheckoutRequested:return Sv(e,"isLoading",!0);case Vt.LoadCheckoutSucceeded:case Vt.LoadCheckoutFailed:return Sv(e,"isLoading",!1);case Ye.UpdateBillingAddressRequested:return Sv(e,"isUpdating",!0);case Ye.UpdateBillingAddressFailed:case Ye.UpdateBillingAddressSucceeded:return Sv(e,"isUpdating",!1);case Ye.ContinueAsGuestRequested:case dg.UpdateSubscriptionsRequested:return Sv(e,"isContinuingAsGuest",!0);case dg.UpdateSubscriptionsSucceeded:case dg.UpdateSubscriptionsFailed:case Ye.ContinueAsGuestFailed:case Ye.ContinueAsGuestSucceeded:return Sv(e,"isContinuingAsGuest",!1);default:return e}}const Pv=function e(t,n,i){const{matchObject:r=(e,t)=>void 0!==e.id&&e.id===t.id}=i||{};if(!t)return n;if(!n||t===n)return t;let o=0,a=0;const s=(e,t,n)=>(o+=e===t?1:0,a+=e===n?1:0,e),d=n.map((n,i)=>{const o=t&&t[i];return mg(o)&&mg(n)?r(o,n)?s(Ov(o,n),o,n):s(fv(o,n),o,n):O(o)&&O(n)?s(e(o,n),o,n):s(fv(o,n),o,n)});return o===n.length&&t&&t.length===n.length?t:a===n.length?n:d},Ov=function e(t,n){return t?n&&t!==n?Object.keys(n).reduce((t,i)=>{const r=t[i],o=n[i];return mg(r)&&mg(o)?Sv(t,i,e(r,o)):O(r)&&O(o)?Sv(t,i,Pv(r,o)):Sv(t,i,o)},t):t:n},Ev={errors:{},statuses:{}};function Av(e=Ev,t){return d({data:kv,errors:c(Dv,gv),statuses:Tv})(e,t)}function kv(e,t){var n,i;switch(t.type){case Ye.UpdateBillingAddressSucceeded:case Vt.LoadCheckoutSucceeded:case Yy.CreateConsignmentsSucceeded:case Yy.DeleteConsignmentSucceeded:case Yy.UpdateConsignmentSucceeded:case Yy.UpdateShippingOptionSucceeded:case Yy.LoadShippingOptionsSucceeded:case Pt.ApplyCouponSucceeded:case Pt.RemoveCouponSucceeded:case kt.ApplyGiftCertificateSucceeded:case kt.RemoveGiftCertificateSucceeded:return Ov(e,t.payload&&t.payload.cart);case Gt.HydrateInitialState:return Ov(e,null===(i=null===(n=t.payload)||void 0===n?void 0:n.checkout)||void 0===i?void 0:i.cart);default:return e}}function Tv(e=Ev.statuses,t){switch(t.type){case Vt.LoadCheckoutRequested:return Sv(e,"isLoading",!0);case Vt.LoadCheckoutFailed:case Vt.LoadCheckoutSucceeded:return Sv(e,"isLoading",!1);default:return e}}function Dv(e=Ev.errors,t){switch(t.type){case Vt.LoadCheckoutRequested:case Vt.LoadCheckoutSucceeded:return Sv(e,"loadError",void 0);case Vt.LoadCheckoutFailed:return Sv(e,"loadError",t.payload);default:return e}}var Mv;!function(e){e.InitializeButtonFailed="INITIALIZE_BUTTON_FAILED",e.InitializeButtonRequested="INITIALIZE_BUTTON_REQUESTED",e.InitializeButtonSucceeded="INITIALIZE_BUTTON_SUCCEEDED",e.DeinitializeButtonFailed="DEINITIALIZE_BUTTON_FAILED",e.DeinitializeButtonRequested="DEINITIALIZE_BUTTON_REQUESTED",e.DeinitializeButtonSucceeded="DEINITIALIZE_BUTTON_SUCCEEDED"}(Mv||(Mv={}));const zv={data:{},errors:{},statuses:{}},Nv={initializedContainers:{}},xv={},Fv={};function Rv(e=zv,t){return t.meta&&t.meta.methodId?d({data:d({[t.meta.methodId]:Lv}),errors:d({[t.meta.methodId]:Bv}),statuses:d({[t.meta.methodId]:jv})})(e,t):e}function Lv(e=Nv,t){switch(t.type){case Mv.InitializeButtonSucceeded:return t.meta&&t.meta.containerId?Ov(e,{initializedContainers:{[t.meta.containerId]:!0}}):e;case Mv.DeinitializeButtonSucceeded:return Sv(e,"initializedContainers",{})}return e}function Bv(e=xv,t){switch(t.type){case Mv.InitializeButtonRequested:case Mv.InitializeButtonSucceeded:return Sv(e,"initializeError",void 0);case Mv.InitializeButtonFailed:return Sv(e,"initializeError",t.payload);case Mv.DeinitializeButtonRequested:case Mv.DeinitializeButtonSucceeded:return Sv(e,"deinitializeError",void 0);case Mv.DeinitializeButtonFailed:return Sv(e,"deinitializeError",t.payload);default:return e}}function jv(e=Fv,t){switch(t.type){case Mv.InitializeButtonRequested:return Sv(e,"isInitializing",!0);case Mv.InitializeButtonFailed:case Mv.InitializeButtonSucceeded:return Sv(e,"isInitializing",!1);case Mv.DeinitializeButtonRequested:return Sv(e,"isDeinitializing",!0);case Mv.DeinitializeButtonFailed:case Mv.DeinitializeButtonSucceeded:return Sv(e,"isDeinitializing",!1);default:return e}}const Uv={meta:{},errors:{},statuses:{}};function qv(e=Uv,t){return d({data:Vv,errors:c(Gv,gv),statuses:Hv})(e,t)}function Vv(e,t){var n;switch(t.type){case ft.LoadConfigSucceeded:return Ov(e,t.payload);case Gt.HydrateInitialState:return Ov(e,null===(n=t.payload)||void 0===n?void 0:n.config);default:return e}}function Gv(e=Uv.errors,t){switch(t.type){case ft.LoadConfigSucceeded:return Sv(e,"loadError",void 0);case ft.LoadConfigFailed:return Sv(e,"loadError",t.payload);default:return e}}function Hv(e=Uv.statuses,t){switch(t.type){case ft.LoadConfigRequested:return Sv(e,"isLoading",!0);case ft.LoadConfigSucceeded:case ft.LoadConfigFailed:return Sv(e,"isLoading",!1);default:return e}}const $v={errors:{},statuses:{}};function Wv(e=$v,t){return d({data:Yv,errors:c(Kv,gv),statuses:Jv})(e,t)}function Yv(e,t){var n,i;switch(t.type){case Vt.LoadCheckoutSucceeded:case Pt.ApplyCouponSucceeded:case Yy.UpdateShippingOptionSucceeded:case Pt.RemoveCouponSucceeded:case ym.LoadOrderSucceeded:return Pv(e,t.payload&&t.payload.coupons);case Gt.HydrateInitialState:return Pv(e,null===(i=null===(n=t.payload)||void 0===n?void 0:n.checkout)||void 0===i?void 0:i.coupons);default:return e}}function Kv(e={},t){switch(t.type){case Pt.ApplyCouponRequested:case Pt.ApplyCouponSucceeded:return Sv(e,"applyCouponError",void 0);case Pt.ApplyCouponFailed:return Sv(e,"applyCouponError",t.payload);case Pt.RemoveCouponRequested:case Pt.RemoveCouponSucceeded:return Sv(e,"removeCouponError",void 0);case Pt.RemoveCouponFailed:return Sv(e,"removeCouponError",t.payload);default:return e}}function Jv(e={},t){switch(t.type){case Pt.ApplyCouponRequested:return Sv(e,"isApplyingCoupon",!0);case Pt.ApplyCouponSucceeded:case Pt.ApplyCouponFailed:return Sv(e,"isApplyingCoupon",!1);case Pt.RemoveCouponRequested:return Sv(e,"isRemovingCoupon",!0);case Pt.RemoveCouponSucceeded:case Pt.RemoveCouponFailed:return Sv(e,"isRemovingCoupon",!1);default:return e}}const Zv={errors:{},statuses:{}};function Qv(e=Zv,t){return d({data:Xv,errors:c(ef,gv),statuses:tf})(e,t)}function Xv(e,t){var n,i;switch(t.type){case Vt.LoadCheckoutSucceeded:case Yy.CreateConsignmentsSucceeded:case Yy.UpdateConsignmentSucceeded:case Yy.DeleteConsignmentSucceeded:case Yy.UpdateShippingOptionSucceeded:case Pt.ApplyCouponSucceeded:case Pt.RemoveCouponSucceeded:case kt.ApplyGiftCertificateSucceeded:case kt.RemoveGiftCertificateSucceeded:return Pv(e,t.payload&&t.payload.giftCertificates);case Gt.HydrateInitialState:return Pv(e,null===(i=null===(n=t.payload)||void 0===n?void 0:n.checkout)||void 0===i?void 0:i.giftCertificates);default:return e}}function ef(e=Zv.errors,t){switch(t.type){case kt.ApplyGiftCertificateRequested:case kt.ApplyGiftCertificateSucceeded:return Sv(e,"applyGiftCertificateError",void 0);case kt.ApplyGiftCertificateFailed:return Sv(e,"applyGiftCertificateError",t.payload);case kt.RemoveGiftCertificateRequested:case kt.RemoveGiftCertificateSucceeded:return Sv(e,"removeGiftCertificateError",void 0);case kt.RemoveGiftCertificateFailed:return Sv(e,"removeGiftCertificateError",t.payload);default:return e}}function tf(e=Zv.statuses,t){switch(t.type){case kt.ApplyGiftCertificateRequested:return Sv(e,"isApplyingGiftCertificate",!0);case kt.ApplyGiftCertificateSucceeded:case kt.ApplyGiftCertificateFailed:return Sv(e,"isApplyingGiftCertificate",!1);case kt.RemoveGiftCertificateRequested:return Sv(e,"isRemovingGiftCertificate",!0);case kt.RemoveGiftCertificateSucceeded:case kt.RemoveGiftCertificateFailed:return Sv(e,"isRemovingGiftCertificate",!1);default:return e}}const nf={errors:{},statuses:{}};function rf(e=nf,t){return d({data:of,errors:c(af,gv),statuses:sf})(e,t)}function of(e,t){var n,i;switch(t.type){case Ye.ContinueAsGuestSucceeded:case Vt.LoadCheckoutSucceeded:return Ov(e,t.payload&&t.payload.customer);case Dt.CreateCustomerAddressSucceeded:return Ov(e,t.payload);case Gt.HydrateInitialState:return Ov(e,null===(i=null===(n=t.payload)||void 0===n?void 0:n.checkout)||void 0===i?void 0:i.customer);default:return e}}function af(e=nf.errors,t){switch(t.type){case Dt.CreateCustomerRequested:case Dt.CreateCustomerSucceeded:return Sv(e,"createError",void 0);case Dt.CreateCustomerFailed:return Sv(e,"createError",t.payload);case Dt.CreateCustomerAddressRequested:case Dt.CreateCustomerAddressSucceeded:return Sv(e,"createAddressError",void 0);case Dt.CreateCustomerAddressFailed:return Sv(e,"createAddressError",t.payload);default:return e}}function sf(e=nf.statuses,t){switch(t.type){case Dt.CreateCustomerRequested:return Sv(e,"isCreating",!0);case Dt.CreateCustomerFailed:case Dt.CreateCustomerSucceeded:return Sv(e,"isCreating",!1);case Dt.CreateCustomerAddressRequested:return Sv(e,"isCreatingAddress",!0);case Dt.CreateCustomerAddressFailed:case Dt.CreateCustomerAddressSucceeded:return Sv(e,"isCreatingAddress",!1);default:return e}}const df={data:{},errors:{},statuses:{}};function cf(e=df,t){return d({data:lf,errors:c(uf,gv),statuses:hf})(e,t)}function lf(e=df.data,t){switch(t.type){case qt.InitializeSucceeded:return Ov(e,{[t.meta&&t.meta.methodId]:{isInitialized:!0}});case qt.DeinitializeSucceeded:return Ov(e,{[t.meta&&t.meta.methodId]:{isInitialized:!1}})}return e}function uf(e=df.errors,t){switch(t.type){case qt.InitializeRequested:case qt.InitializeSucceeded:return Ov(e,{initializeErrors:Object.assign({},e.initializeErrors),initializeMethodId:e.initializeMethodId?e.initializeMethodId:void 0});case qt.InitializeFailed:return Ov(e,{initializeErrors:Object.assign(Object.assign({},e.initializeErrors),{[t.meta&&t.meta.methodId]:t.payload}),initializeMethodId:t.meta&&t.meta.methodId});case qt.DeinitializeRequested:case qt.DeinitializeSucceeded:return Ov(e,{deinitializeError:void 0,deinitializeMethodId:void 0});case qt.DeinitializeFailed:return Ov(e,{deinitializeError:t.payload,deinitializeMethodId:t.meta&&t.meta.methodId});case qt.SignInRequested:case qt.SignInSucceeded:return Ov(e,{signInError:void 0,signInMethodId:void 0});case qt.SignInFailed:return Ov(e,{signInError:t.payload,signInMethodId:t.meta&&t.meta.methodId});case qt.SignOutRequested:case qt.SignOutSucceeded:return Ov(e,{signOutError:void 0,signOutMethodId:void 0});case qt.SignOutFailed:return Ov(e,{signOutError:t.payload,signOutMethodId:t.meta&&t.meta.methodId});case qt.ExecutePaymentMethodCheckoutRequested:case qt.ExecutePaymentMethodCheckoutSucceeded:return Ov(e,{executePaymentMethodCheckoutError:void 0,executePaymentMethodCheckoutMethodId:void 0});case qt.ExecutePaymentMethodCheckoutFailed:return Ov(e,{executePaymentMethodCheckoutError:t.payload,executePaymentMethodCheckoutMethodId:t.meta&&t.meta.methodId});case qt.WidgetInteractionStarted:case qt.WidgetInteractionFinished:return Ov(e,{widgetInteractionError:void 0,widgetInteractionMethodId:void 0});case qt.WidgetInteractionFailed:return Ov(e,{widgetInteractionError:t.payload,widgetInteractionMethodId:t.meta.methodId});default:return e}}function hf(e=df.statuses,t){switch(t.type){case qt.InitializeRequested:return Ov(e,{isInitializing:!0,initializeMethodId:t.meta&&t.meta.methodId});case qt.InitializeFailed:case qt.InitializeSucceeded:return Ov(e,{isInitializing:!1,initializeMethodId:void 0});case qt.DeinitializeRequested:return Ov(e,{isDeinitializing:!0,deinitializeMethodId:t.meta&&t.meta.methodId});case qt.DeinitializeFailed:case qt.DeinitializeSucceeded:return Ov(e,{isDeinitializing:!1,deinitializeMethodId:void 0});case qt.SignInRequested:return Ov(e,{isSigningIn:!0,signInMethodId:t.meta&&t.meta.methodId});case qt.SignInFailed:case qt.SignInSucceeded:return Ov(e,{isSigningIn:!1,signInMethodId:void 0});case qt.SignOutRequested:return Ov(e,{isSigningOut:!0,signOutMethodId:t.meta&&t.meta.methodId});case qt.SignOutFailed:case qt.SignOutSucceeded:return Ov(e,{isSigningOut:!1,signOutMethodId:void 0});case qt.ExecutePaymentMethodCheckoutRequested:return Ov(e,{isExecutingPaymentMethodCheckout:!0,executePaymentMethodCheckoutMethodId:t.meta&&t.meta.methodId});case qt.ExecutePaymentMethodCheckoutFailed:case qt.ExecutePaymentMethodCheckoutSucceeded:return Ov(e,{isExecutingPaymentMethodCheckout:!1,executePaymentMethodCheckoutMethodId:void 0});case qt.WidgetInteractionStarted:return Ov(e,{isWidgetInteracting:!0,widgetInteractionMethodId:t.meta.methodId});case qt.WidgetInteractionFinished:case qt.WidgetInteractionFailed:return Ov(e,{isWidgetInteracting:!1,widgetInteractionMethodId:void 0});default:return e}}const pf={errors:{},statuses:{}};function mf(e=pf,t){return d({data:yf,errors:c(gf,gv),statuses:vf})(e,t)}function yf(e,t){var n;return t.type===Nn.LoadExtensionsSucceeded?Pv(e,t.payload):t.type===Gt.HydrateInitialState?Pv(e,null===(n=t.payload)||void 0===n?void 0:n.extensions):e}function gf(e=pf.errors,t){switch(t.type){case Nn.LoadExtensionsRequested:case Nn.LoadExtensionsSucceeded:return Sv(e,"loadError",void 0);case Nn.RenderExtensionRequested:case Nn.RenderExtensionSucceeded:return Sv(e,"renderError",void 0);case Nn.LoadExtensionsFailed:return Sv(e,"loadError",t.payload);case Nn.RenderExtensionFailed:return Sv(e,"renderError",t.payload);default:return e}}function vf(e=pf.statuses,t){switch(t.type){case Nn.LoadExtensionsRequested:return Sv(e,"isLoading",!0);case Nn.LoadExtensionsSucceeded:case Nn.LoadExtensionsFailed:return Sv(e,"isLoading",!1);default:return e}}const ff={errors:{},statuses:{}};function Sf(e=ff,t){return d({data:wf,errors:c(_f,gv),statuses:Cf})(e,t)}function wf(e,t){var n;switch(t.type){case Xt.LoadFormFieldsSucceeded:return Ov(e,t.payload);case Gt.HydrateInitialState:return Ov(e,null===(n=t.payload)||void 0===n?void 0:n.formFields);default:return e}}function _f(e=ff.errors,t){switch(t.type){case Xt.LoadFormFieldsSucceeded:return Sv(e,"loadError",void 0);case Xt.LoadFormFieldsFailed:return Sv(e,"loadError",t.payload);default:return e}}function Cf(e=ff.statuses,t){switch(t.type){case Xt.LoadFormFieldsRequested:return Sv(e,"isLoading",!0);case Xt.LoadFormFieldsSucceeded:case Xt.LoadFormFieldsFailed:return Sv(e,"isLoading",!1);default:return e}}const If={errors:{},statuses:{}};function bf(e=If,t){return d({data:Pf,errors:c(Of,gv),statuses:Ef})(e,t)}function Pf(e,t){return t.type===mm.LoadCountriesSucceeded?Pv(e,t.payload):e}function Of(e=If.errors,t){switch(t.type){case mm.LoadCountriesRequested:case mm.LoadCountriesSucceeded:return Sv(e,"loadError",void 0);case mm.LoadCountriesFailed:return Sv(e,"loadError",t.payload);default:return e}}function Ef(e=If.statuses,t){switch(t.type){case mm.LoadCountriesRequested:return Sv(e,"isLoading",!0);case mm.LoadCountriesSucceeded:case mm.LoadCountriesFailed:return Sv(e,"isLoading",!1);default:return e}}const Af={errors:{},meta:{},statuses:{}};function kf(e=Af,t){return d({data:Tf,errors:c(Mf,gv),meta:Df,statuses:zf})(e,t)}function Tf(e,t){switch(t.type){case ym.LoadOrderSucceeded:case ym.LoadOrderPaymentsSucceeded:return Ov(e,G(t.payload,["billingAddress","coupons"]));default:return e}}function Df(e,t){switch(t.type){case ym.FinalizeOrderSucceeded:case ym.SubmitOrderSucceeded:return Ov(e,Object.assign(Object.assign({},t.meta),{callbackUrl:t.payload&&t.payload.order.callbackUrl,orderToken:t.payload&&t.payload.order.token,payment:t.payload&&t.payload.order&&t.payload.order.payment}));default:return e}}function Mf(e=Af.errors,t){switch(t.type){case ym.LoadOrderRequested:case ym.LoadOrderSucceeded:case ym.LoadOrderPaymentsSucceeded:case ym.LoadOrderPaymentsRequested:return Sv(e,"loadError",void 0);case ym.LoadOrderFailed:case ym.LoadOrderPaymentsFailed:return Sv(e,"loadError",t.payload);default:return e}}function zf(e=Af.statuses,t){switch(t.type){case ym.LoadOrderRequested:case ym.LoadOrderPaymentsRequested:return Sv(e,"isLoading",!0);case ym.LoadOrderSucceeded:case ym.LoadOrderFailed:case ym.LoadOrderPaymentsSucceeded:case ym.LoadOrderPaymentsFailed:return Sv(e,"isLoading",!1);default:return e}}const Nf={};function xf(e=Nf,t){return d({data:Ff})(e,t)}function Ff(e,t){switch(t.type){case ym.LoadOrderPaymentsSucceeded:case ym.LoadOrderSucceeded:return fv(e,t.payload&&t.payload.billingAddress);default:return e}}function Rf(e={},t){return d({data:Lf})(e,t)}function Lf(e,t){return t.type===Km.SubmitPaymentSucceeded?t.payload:e}const Bf={errors:{},statuses:{}};function jf(e=Bf,t){return d({data:Uf,errors:c(Vf,gv),meta:qf,statuses:Gf})(e,t)}function Uf(e,t){switch(t.type){case tn.LoadPaymentMethodSucceeded:return function(e,t,n){if(!t)return e;const i=W(t,"id"),r="object"==typeof n?Y(n):n||i,o=w(e,r),a=[...e];if(-1===o)a.push(t);else{const n=e[o];a[o]=mg(n)&&mg(t)?Ov(n,t):t}return a}(e||[],t.payload,t.payload&&{id:t.payload.id,gateway:t.payload.gateway});case tn.LoadPaymentMethodsSucceeded:return Pv(e,t.payload,{matchObject:(e,t)=>e.id===t.id&&e.gateway===t.gateway});default:return e}}function qf(e,t){return t.type===tn.LoadPaymentMethodsSucceeded?Ov(e,t.meta):e}function Vf(e=Bf.errors,t){switch(t.type){case tn.LoadPaymentMethodsRequested:case tn.LoadPaymentMethodsSucceeded:return Sv(e,"loadError",void 0);case tn.LoadPaymentMethodsFailed:return Sv(e,"loadError",t.payload);case tn.LoadPaymentMethodRequested:case tn.LoadPaymentMethodSucceeded:return Ov(e,{loadMethodId:void 0,loadMethodError:void 0});case tn.LoadPaymentMethodFailed:return Ov(e,{loadMethodId:t.meta.methodId,loadMethodError:t.payload});default:return e}}function Gf(e=Bf.statuses,t){switch(t.type){case tn.LoadPaymentMethodsRequested:return Sv(e,"isLoading",!0);case tn.LoadPaymentMethodsSucceeded:case tn.LoadPaymentMethodsFailed:return Sv(e,"isLoading",!1);case tn.LoadPaymentMethodRequested:return Ov(e,{isLoadingMethod:!0,loadMethodId:t.meta.methodId});case tn.LoadPaymentMethodSucceeded:case tn.LoadPaymentMethodFailed:return Ov(e,{isLoadingMethod:!1,loadMethodId:void 0});default:return e}}const Hf={data:{},errors:{},statuses:{}};function $f(e=Hf,t){return d({data:Wf,errors:c(Yf,gv),statuses:Kf})(e,t)}function Wf(e=Hf.data,t){switch(t.type){case bm.InitializeSucceeded:if(t.meta){const{methodId:n,gatewayId:i}=t.meta,r=i?`${n}.${i}`:n;return Ov(e,{[r]:{isInitialized:!0}})}break;case bm.DeinitializeSucceeded:if(t.meta){const{methodId:n,gatewayId:i}=t.meta,r=i?`${n}.${i}`:n;return Ov(e,{[r]:{isInitialized:!1}})}}return e}function Yf(e=Hf.errors,t){switch(t.type){case bm.InitializeRequested:case bm.InitializeSucceeded:return Ov(e,{initializeError:void 0,initializeMethodId:void 0});case bm.InitializeFailed:{let n=t.meta&&t.meta.methodId;if(t.meta){const{methodId:e,gatewayId:i}=t.meta;n=i?`${e}.${i}`:e}return Ov(e,{initializeError:t.payload,initializeMethodId:n})}case bm.DeinitializeRequested:case bm.DeinitializeSucceeded:return Ov(e,{deinitializeError:void 0,deinitializeMethodId:void 0});case bm.DeinitializeFailed:{let n=t.meta&&t.meta.methodId;if(t.meta){const{methodId:e,gatewayId:i}=t.meta;n=i?`${e}.${i}`:e}return Ov(e,{deinitializeError:t.payload,deinitializeMethodId:n})}case bm.ExecuteRequested:case bm.ExecuteSucceeded:return Ov(e,{executeError:void 0,executeMethodId:void 0});case bm.ExecuteFailed:return Ov(e,{executeError:t.payload,executeMethodId:t.meta&&t.meta.methodId});case bm.FinalizeRequested:case bm.FinalizeSucceeded:return Ov(e,{finalizeError:void 0,finalizeMethodId:void 0});case bm.FinalizeFailed:return Ov(e,{finalizeError:t.payload,finalizeMethodId:t.meta&&t.meta.methodId});case bm.WidgetInteractionStarted:case bm.WidgetInteractionFinished:return Ov(e,{widgetInteractionError:void 0,widgetInteractionMethodId:void 0});case bm.WidgetInteractionFailed:return Ov(e,{widgetInteractionError:t.payload,widgetInteractionMethodId:t.meta.methodId});default:return e}}function Kf(e=Hf.statuses,t){switch(t.type){case bm.InitializeRequested:{let n=t.meta&&t.meta.methodId;if(t.meta){const{methodId:e,gatewayId:i}=t.meta;n=i?`${e}.${i}`:e}return Ov(e,{isInitializing:!0,initializeMethodId:n})}case bm.InitializeFailed:case bm.InitializeSucceeded:return Ov(e,{isInitializing:!1,initializeMethodId:void 0});case bm.DeinitializeRequested:{let n=t.meta&&t.meta.methodId;if(t.meta){const{methodId:e,gatewayId:i}=t.meta;n=i?`${e}.${i}`:e}return Ov(e,{isDeinitializing:!0,deinitializeMethodId:n})}case bm.DeinitializeFailed:case bm.DeinitializeSucceeded:return Ov(e,{isDeinitializing:!1,deinitializeMethodId:void 0});case bm.ExecuteRequested:return Ov(e,{isExecuting:!0,executeMethodId:t.meta&&t.meta.methodId});case bm.ExecuteFailed:case bm.ExecuteSucceeded:return Ov(e,{isExecuting:!1,executeMethodId:void 0});case bm.FinalizeRequested:return Ov(e,{isFinalizing:!0,finalizeMethodId:t.meta&&t.meta.methodId});case bm.FinalizeFailed:case bm.FinalizeSucceeded:return Ov(e,{isFinalizing:!1,finalizeMethodId:void 0});case bm.WidgetInteractionStarted:return Ov(e,{isWidgetInteracting:!0,widgetInteractionMethodId:t.meta.methodId});case bm.WidgetInteractionFinished:case bm.WidgetInteractionFailed:return Ov(e,{isWidgetInteracting:!1,widgetInteractionMethodId:void 0});default:return e}}const Jf={data:{}};function Zf(e=Jf,t){return d({data:Qf})(e,t)}function Qf(e=Jf.data,t){return t.type===Wy.UpdatePaymentProviderCustomer?Ov(e,t.payload):e}const Xf={data:[],errors:{},statuses:{}};function eS(e=Xf,t){return d({data:tS,errors:c(iS,gv),meta:nS,statuses:rS})(e,t)}function tS(e=Xf.data,t){return t.type===Sg.LoadInstrumentsSucceeded?Pv(e,t.payload&&t.payload.vaultedInstruments||[]):e}function nS(e,t){switch(t.type){case Sg.LoadInstrumentsSucceeded:case Sg.DeleteInstrumentSucceeded:return Ov(e,t.meta);default:return e}}function iS(e=Xf.errors,t){switch(t.type){case Sg.LoadInstrumentsRequested:case Sg.LoadInstrumentsSucceeded:return Sv(e,"loadError",void 0);case Sg.DeleteInstrumentRequested:case Sg.DeleteInstrumentSucceeded:return Ov(e,{deleteError:void 0,failedInstrument:void 0});case Sg.LoadInstrumentsFailed:return Sv(e,"loadError",t.payload);case Sg.DeleteInstrumentFailed:return Ov(e,{deleteError:t.payload,failedInstrument:t.meta.instrumentId});default:return e}}function rS(e=Xf.statuses,t){switch(t.type){case Sg.LoadInstrumentsRequested:return Sv(e,"isLoading",!0);case Sg.DeleteInstrumentRequested:return Ov(e,{isDeleting:!0,deletingInstrument:t.meta.instrumentId});case Sg.LoadInstrumentsSucceeded:case Sg.LoadInstrumentsFailed:return Sv(e,"isLoading",!1);case Sg.DeleteInstrumentSucceeded:case Sg.DeleteInstrumentFailed:return Ov(e,{isDeleting:!1,deletingInstrument:void 0});default:return e}}const oS={data:{}};function aS(e=oS,t){return t.meta&&t.meta.methodId?d({data:d({[t.meta.methodId]:sS})})(e,t):e}function sS(e,t){switch(t.type){case cn.InitializeRemoteBillingSucceeded:return Sv(e,"billing",t.payload&&t.payload.billing);case cn.InitializeRemoteShippingSucceeded:return Sv(e,"shipping",t.payload&&t.payload.shipping);case cn.LoadRemoteSettingsSucceeded:return Sv(e,"settings",t.payload);case cn.UpdateRemoteCheckout:return Ov(e,t.payload);default:return e}}const dS={errors:{updateShippingOptionError:{},updateError:{},deleteError:{}},statuses:{isUpdating:{},isUpdatingShippingOption:{},isDeleting:{}}};function cS(e=dS,t){return d({data:lS,errors:c(uS,gv),statuses:hS})(e,t)}function lS(e,t){var n,i;switch(t.type){case Vt.LoadCheckoutSucceeded:case Yy.LoadShippingOptionsSucceeded:case Yy.CreateConsignmentsSucceeded:case Yy.UpdateConsignmentSucceeded:case Yy.DeleteConsignmentSucceeded:case Yy.UpdateShippingOptionSucceeded:case Pt.ApplyCouponSucceeded:case Pt.RemoveCouponSucceeded:return Pv(e,t.payload&&t.payload.consignments);case Dt.SignOutCustomerSucceeded:return Pv(e,[]);case Gt.HydrateInitialState:return Pv(e,null===(i=null===(n=t.payload)||void 0===n?void 0:n.checkout)||void 0===i?void 0:i.consignments);default:return e}}function uS(e=dS.errors,t){switch(t.type){case Vt.LoadCheckoutRequested:case Vt.LoadCheckoutSucceeded:case Yy.LoadShippingOptionsSucceeded:case Yy.LoadShippingOptionsRequested:return Sv(e,"loadError",void 0);case Vt.LoadCheckoutFailed:case Yy.LoadShippingOptionsFailed:return Sv(e,"loadError",t.payload);case Yy.CreateConsignmentsRequested:case Yy.CreateConsignmentsSucceeded:return Sv(e,"createError",void 0);case Yy.CreateConsignmentsFailed:return Sv(e,"createError",t.payload);case Yy.UpdateConsignmentSucceeded:case Yy.UpdateConsignmentRequested:return t.meta?Ov(e,{updateError:{[t.meta.id]:void 0}}):e;case Yy.UpdateConsignmentFailed:return t.meta?Ov(e,{updateError:{[t.meta.id]:t.payload}}):e;case Yy.DeleteConsignmentSucceeded:case Yy.DeleteConsignmentRequested:return t.meta?Ov(e,{deleteError:{[t.meta.id]:void 0}}):e;case Yy.DeleteConsignmentFailed:return t.meta?Ov(e,{deleteError:{[t.meta.id]:t.payload}}):e;case Yy.UpdateShippingOptionRequested:case Yy.UpdateShippingOptionSucceeded:return t.meta?Ov(e,{updateShippingOptionError:{[t.meta.id]:void 0}}):e;case Yy.UpdateShippingOptionFailed:return t.meta?Ov(e,{updateShippingOptionError:{[t.meta.id]:t.payload}}):e;default:return e}}function hS(e=dS.statuses,t){switch(t.type){case Vt.LoadCheckoutRequested:return Sv(e,"isLoading",!0);case Yy.LoadShippingOptionsRequested:return Sv(e,"isLoadingShippingOptions",!0);case Vt.LoadCheckoutSucceeded:case Vt.LoadCheckoutFailed:return Sv(e,"isLoading",!1);case Yy.LoadShippingOptionsSucceeded:case Yy.LoadShippingOptionsFailed:return Sv(e,"isLoadingShippingOptions",!1);case Yy.CreateConsignmentsRequested:return Sv(e,"isCreating",!0);case Yy.CreateConsignmentsSucceeded:case Yy.CreateConsignmentsFailed:return Sv(e,"isCreating",!1);case Yy.UpdateConsignmentRequested:return t.meta?Ov(e,{isUpdating:{[t.meta.id]:!0}}):e;case Yy.UpdateConsignmentSucceeded:case Yy.UpdateConsignmentFailed:return t.meta?Ov(e,{isUpdating:{[t.meta.id]:!1}}):e;case Yy.DeleteConsignmentRequested:return t.meta?Ov(e,{isDeleting:{[t.meta.id]:!0}}):e;case Yy.DeleteConsignmentSucceeded:case Yy.DeleteConsignmentFailed:return t.meta?Ov(e,{isDeleting:{[t.meta.id]:!1}}):e;case Yy.UpdateShippingOptionRequested:return t.meta?Ov(e,{isUpdatingShippingOption:{[t.meta.id]:!0}}):e;case Yy.UpdateShippingOptionSucceeded:case Yy.UpdateShippingOptionFailed:return t.meta?Ov(e,{isUpdatingShippingOption:{[t.meta.id]:!1}}):e;default:return e}}function pS(e,t){const n={};return Object.keys(e).forEach(i=>{const r=e[i],o=t?`${t}.${i}`:i;"object"==typeof r?Object.assign(n,pS(r,o)):n[o]=r}),n}function mS(e){return Object.keys(e).sort().reduce((t,n)=>Object.assign(Object.assign({},t),{[n]:e[n]}),{})}const yS={errors:{},statuses:{}};function gS(e=yS,t){return d({data:vS,errors:c(fS,gv),statuses:SS})(e,t)}function vS(e,t){if(t.type!==Pg.LoadPickupOptionsSucceeded)return e;if(t.meta){const n=mS(pS({consignmentId:t.meta.consignmentId,searchArea:t.meta.searchArea}));return Sv(e,btoa(`${JSON.stringify(n)}`),t.payload)}}function fS(e=yS.errors,t){switch(t.type){case Pg.LoadPickupOptionsRequested:case Pg.LoadPickupOptionsSucceeded:return Sv(e,"loadError",void 0);case Pg.LoadPickupOptionsFailed:return Sv(e,"loadError",t.payload);default:return e}}function SS(e=yS.statuses,t){switch(t.type){case Pg.LoadPickupOptionsRequested:return Sv(e,"isLoading",!0);case Pg.LoadPickupOptionsSucceeded:case Pg.LoadPickupOptionsFailed:return Sv(e,"isLoading",!1);default:return e}}const wS={errors:{},statuses:{}};function _S(e=wS,t){return d({data:CS,errors:c(IS,gv),statuses:bS})(e,t)}function CS(e,t){return t.type===rg.LoadShippingCountriesSucceeded?Pv(e,t.payload):e}function IS(e=wS.errors,t){switch(t.type){case rg.LoadShippingCountriesRequested:case rg.LoadShippingCountriesSucceeded:return Sv(e,"loadError",void 0);case rg.LoadShippingCountriesFailed:return Sv(e,"loadError",t.payload);default:return e}}function bS(e=wS.statuses,t){switch(t.type){case rg.LoadShippingCountriesRequested:return Sv(e,"isLoading",!0);case rg.LoadShippingCountriesSucceeded:case rg.LoadShippingCountriesFailed:return Sv(e,"isLoading",!1);default:return e}}const PS={data:{},errors:{},statuses:{}};function OS(e=PS,t){return d({data:ES,errors:c(AS,gv),statuses:kS})(e,t)}function ES(e=PS.data,t){switch(t.type){case Og.InitializeSucceeded:return Ov(e,{[t.meta&&t.meta.methodId]:{isInitialized:!0}});case Og.DeinitializeSucceeded:return Ov(e,{[t.meta&&t.meta.methodId]:{isInitialized:!1}})}return e}function AS(e=PS.errors,t){switch(t.type){case Og.InitializeRequested:case Og.InitializeSucceeded:return Ov(e,{initializeError:void 0,initializeMethodId:void 0});case Og.InitializeFailed:return Ov(e,{initializeError:t.payload,initializeMethodId:t.meta&&t.meta.methodId});case Og.DeinitializeRequested:case Og.DeinitializeSucceeded:return Ov(e,{deinitializeError:void 0,deinitializeMethodId:void 0});case Og.DeinitializeFailed:return Ov(e,{deinitializeError:t.payload,deinitializeMethodId:t.meta&&t.meta.methodId});case Og.UpdateAddressRequested:case Og.UpdateAddressSucceeded:return Ov(e,{updateAddressError:void 0,updateAddressMethodId:void 0});case Og.UpdateAddressFailed:return Ov(e,{updateAddressError:t.payload,updateAddressMethodId:t.meta&&t.meta.methodId});case Og.SelectOptionRequested:case Og.SelectOptionSucceeded:return Ov(e,{selectOptionError:void 0,selectOptionMethodId:void 0});case Og.SelectOptionFailed:return Ov(e,{selectOptionError:t.payload,selectOptionMethodId:t.meta&&t.meta.methodId});case Og.WidgetInteractionStarted:case Og.WidgetInteractionFinished:return Ov(e,{widgetInteractionError:void 0,widgetInteractionMethodId:void 0});case Og.WidgetInteractionFailed:return Ov(e,{widgetInteractionError:t.payload,widgetInteractionMethodId:t.meta&&t.meta.methodId});default:return e}}function kS(e=PS.statuses,t){switch(t.type){case Og.InitializeRequested:return Ov(e,{isInitializing:!0,initializeMethodId:t.meta&&t.meta.methodId});case Og.InitializeFailed:case Og.InitializeSucceeded:return Ov(e,{isInitializing:!1,initializeMethodId:void 0});case Og.DeinitializeRequested:return Ov(e,{isDeinitializing:!0,deinitializeMethodId:t.meta&&t.meta.methodId});case Og.DeinitializeFailed:case Og.DeinitializeSucceeded:return Ov(e,{isDeinitializing:!1,deinitializeMethodId:void 0});case Og.UpdateAddressRequested:return Ov(e,{isUpdatingAddress:!0,updateAddressMethodId:t.meta&&t.meta.methodId});case Og.UpdateAddressFailed:case Og.UpdateAddressSucceeded:return Ov(e,{isUpdatingAddress:!1,updateAddressMethodId:void 0});case Og.SelectOptionRequested:return Ov(e,{isSelectingOption:!0,selectOptionMethodId:t.meta&&t.meta.methodId});case Og.SelectOptionFailed:case Og.SelectOptionSucceeded:return Ov(e,{isSelectingOption:!1,selectOptionMethodId:void 0});case Og.WidgetInteractionStarted:return Ov(e,{isWidgetInteracting:!0,widgetInteractionMethodId:t.meta&&t.meta.methodId});case Og.WidgetInteractionFinished:case Og.WidgetInteractionFailed:return Ov(e,{isWidgetInteracting:!1,widgetInteractionMethodId:void 0});default:return e}}const TS={errors:{},statuses:{}};function DS(e=TS,t){return d({data:MS,errors:c(zS,gv),statuses:NS})(e,t)}function MS(e,t){return t.type===tv.SendSignInEmailSucceeded?Ov(e,t.payload):e}function zS(e=TS.errors,t){switch(t.type){case tv.SendSignInEmailRequested:case tv.SendSignInEmailSucceeded:return Sv(e,"sendError",void 0);case tv.SendSignInEmailFailed:return Sv(e,"sendError",t.payload);default:return e}}function NS(e=TS.statuses,t){switch(t.type){case tv.SendSignInEmailRequested:return Sv(e,"isSending",!0);case tv.SendSignInEmailFailed:case tv.SendSignInEmailSucceeded:return Sv(e,"isSending",!1);default:return e}}const xS={errors:{},statuses:{}};function FS(e=xS,t){return d({errors:c(RS,gv),statuses:LS})(e,t)}function RS(e=xS.errors,t){switch(t.type){case og.ApplyStoreCreditRequested:case og.ApplyStoreCreditSucceeded:return Sv(e,"applyError",void 0);case og.ApplyStoreCreditFailed:return Sv(e,"applyError",t.payload);default:return e}}function LS(e=xS.statuses,t){switch(t.type){case og.ApplyStoreCreditRequested:return Sv(e,"isApplying",!0);case og.ApplyStoreCreditSucceeded:case og.ApplyStoreCreditFailed:return Sv(e,"isApplying",!1);default:return e}}const BS={errors:{},statuses:{}};function jS(e=BS,t){return d({errors:c(US,gv),statuses:qS})(e,t)}function US(e=BS.errors,t){switch(t.type){case dg.UpdateSubscriptionsRequested:case dg.UpdateSubscriptionsSucceeded:return Sv(e,"updateError",void 0);case dg.UpdateSubscriptionsFailed:return Sv(e,"updateError",t.payload);default:return e}}function qS(e=BS.statuses,t){switch(t.type){case dg.UpdateSubscriptionsRequested:return Sv(e,"isUpdating",!0);case dg.UpdateSubscriptionsFailed:case dg.UpdateSubscriptionsSucceeded:return Sv(e,"isUpdating",!1);default:return e}}const VS={errors:{},statuses:{}};function GS(e=VS,t){return d({data:HS,errors:c($S,gv),statuses:WS})(e,t)}function HS(e,t){var n;switch(t.type){case Vt.LoadCheckoutSucceeded:case Vt.UpdateCheckoutSucceeded:case og.ApplyStoreCreditSucceeded:case Ye.UpdateBillingAddressSucceeded:case Pt.ApplyCouponSucceeded:case Pt.RemoveCouponSucceeded:case Yy.CreateConsignmentsSucceeded:case Yy.UpdateConsignmentSucceeded:case Yy.DeleteConsignmentSucceeded:case Yy.UpdateShippingOptionSucceeded:case Yy.LoadShippingOptionsSucceeded:case kt.ApplyGiftCertificateSucceeded:case kt.RemoveGiftCertificateSucceeded:case hn.VerifyCheckoutSucceeded:return Ov(e,G(t.payload,["billingAddress","cart","consignments","customer","coupons","giftCertificates"]));case ym.SubmitOrderSucceeded:return Sv(e,"orderId",t.payload&&t.payload.order.orderId);case Gt.HydrateInitialState:return Ov(e,G(null===(n=t.payload)||void 0===n?void 0:n.checkout,["billingAddress","cart","consignments","customer","coupons","giftCertificates"]));default:return e}}function $S(e=VS.errors,t){switch(t.type){case Vt.LoadCheckoutRequested:case Vt.LoadCheckoutSucceeded:return Sv(e,"loadError",void 0);case Vt.LoadCheckoutFailed:return Sv(e,"loadError",t.payload);case Vt.UpdateCheckoutRequested:case Vt.UpdateCheckoutSucceeded:return Sv(e,"updateError",void 0);case Vt.UpdateCheckoutFailed:return Sv(e,"updateError",t.payload);default:return e}}function WS(e=VS.statuses,t){switch(t.type){case Vt.LoadCheckoutRequested:return Sv(e,"isLoading",!0);case Vt.LoadCheckoutFailed:case Vt.LoadCheckoutSucceeded:return Sv(e,"isLoading",!1);case Vt.UpdateCheckoutRequested:return Sv(e,"isUpdating",!0);case Vt.UpdateCheckoutFailed:case Vt.UpdateCheckoutSucceeded:return Sv(e,"isUpdating",!1);case hn.ExecuteRequested:return Sv(e,"isExecutingSpamCheck",!0);case hn.ExecuteFailed:case hn.ExecuteSucceeded:return Sv(e,"isExecutingSpamCheck",!1);default:return e}}function YS(e,t){if(null==e)throw t?t():new Error("An unexpected error has occurred.");return e}function KS(e){return function(e){const t=Object.create(e);return function(e,t){let n=Object.getPrototypeOf(e);for(;n;)t(n),n=Object.getPrototypeOf(n)}(e,n=>{Object.getOwnPropertyNames(n).forEach(n=>{"constructor"!==n&&"function"==typeof t[n]&&"_"!==n.charAt(0)&&(t[n]=((e,t)=>(...n)=>p(e[t].call(e,...n)))(e,n))})}),t}(e)}const JS={"mollie.credit_card":{provider:"mollie",method:"credit_card"},"adyenv2.scheme":{provider:"adyenv2",method:"scheme"},"adyenv3.scheme":{provider:"adyenv3",method:"scheme"},"adyenv2.bcmc":{provider:"adyenv2",method:"bcmc"},"adyenv2.ideal":{provider:"adyenv2",method:"ideal"},"adyenv2.sepadirectdebit":{provider:"adyenv2",method:"sepadirectdebit"},"adyenv2.directEbanking":{provider:"adyenv2",method:"directEbanking"},"adyenv2.giropay":{provider:"adyenv2",method:"giropay"},barclays:{provider:"barclays",method:"credit_card"},braintree:{provider:"braintree",method:"credit_card"},braintreepaypal:{provider:"braintree",method:"paypal"},braintreeach:{provider:"braintree",method:"ach"},authorizenet:{provider:"authorizenet",method:"credit_card"},elavon:{provider:"elavon",method:"credit_card"},checkoutcom:{provider:"checkoutcom",method:"credit_card"},"checkoutcom.credit_card":{provider:"checkoutcom",method:"credit_card"},"checkoutcom.card":{provider:"checkoutcom",method:"card"},sagepay:{provider:"sagepay",method:"credit_card"},stripe:{provider:"stripe",method:"credit_card"},"stripev3.card":{provider:"stripev3",method:"card"},"stripeupe.card":{provider:"stripeupe",method:"card"},cybersource:{provider:"cybersource",method:"credit_card"},cybersourcev2:{provider:"cybersourcev2",method:"credit_card"},bnz:{provider:"bnz",method:"credit_card"},converge:{provider:"converge",method:"credit_card"},bluesnapv2:{provider:"bluesnapv2",method:"credit_card"},"bluesnapdirect.credit_card":{provider:"bluesnapdirect",method:"credit_card"},"bluesnapdirect.ecp":{provider:"bluesnapdirect",method:"ecp"},"bluesnapdirect.sepa_direct_debit":{provider:"bluesnapdirect",method:"sepa_direct_debit"},orbital:{provider:"orbital",method:"credit_card"},paymetric:{provider:"paymetric",method:"credit_card"},bolt:{provider:"bolt",method:"credit_card"},"barclaycard.credit_card":{provider:"barclaycard",method:"credit_card"},moneris:{provider:"moneris",method:"credit_card"},cba_mpgs:{provider:"cba_mpgs",method:"credit_card"},worldpayaccess:{provider:"worldpayaccess",method:"credit_card"},squarev2:{provider:"squarev2",method:"credit_card"},paypalcommercecreditcards:{provider:"paypalcommerce",method:"credit_card"},paypalcommerce:{provider:"paypalcommerce",method:"paypal"},bigcommerce_payments_creditcards:{provider:"bigcommerce_payments",method:"credit_card"},bigcommerce_payments:{provider:"bigcommerce_payments",method:"paypal"},tdonlinemart:{provider:"tdonlinemart",method:"credit_card"}};function ZS(e){return Y({firstName:e.firstName,lastName:e.lastName,company:e.company,address1:e.address1,address2:e.address2,city:e.city,stateOrProvince:e.stateOrProvince,countryCode:e.countryCode,postalCode:e.postalCode,phone:e.phone,customFields:e.customFields},b)}const QS={errors:{},statuses:{}};function XS(){const e=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e,e=>()=>YS(e(),()=>new Qe(We.MissingBillingAddress))),n=cv(e=>e.errors.updateError,e=>()=>e),i=cv(e=>e.errors.continueAsGuestError,e=>()=>e),r=cv(e=>e.errors.loadError,e=>()=>e),o=cv(e=>!!e.statuses.isUpdating,e=>()=>e),a=cv(e=>!!e.statuses.isContinuingAsGuest,e=>()=>e),s=cv(e=>!!e.statuses.isLoading,e=>()=>e);return Oe((d=wv)=>({getBillingAddress:e(d),getBillingAddressOrThrow:t(d),getUpdateError:n(d),getContinueAsGuestError:i(d),getLoadError:r(d),isUpdating:o(d),isContinuingAsGuest:a(d),isLoading:s(d)}))}(),t=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e,e=>()=>YS(e(),()=>new Qe(We.MissingCart))),n=cv(e=>e.errors.loadError,e=>()=>e),i=cv(e=>!!e.statuses.isLoading,e=>()=>e);return Oe((r=Ev)=>({getCart:e(r),getCartOrThrow:t(r),getLoadError:n(r),isLoading:i(r)}))}(),n=function(){const e=cv(e=>e,e=>()=>e),t=cv(e=>e.statuses,e=>Pe(t=>{if(t){const n=e[t];return!0===(n&&n.isInitializing)}return Z(e,{isInitializing:!0})})),n=cv(e=>e.data,e=>Pe((t,n)=>{const i=e[t];return!!i&&(n?!0===i.initializedContainers[n]:Z(i.initializedContainers,e=>!0===e))})),i=cv(e=>e.statuses,e=>Pe(t=>{if(t){const n=e[t];return!0===(n&&n.isDeinitializing)}return Z(e,{isDeinitializing:!0})})),r=cv(e=>e.errors,e=>Pe(t=>{const n=t?e[t]:S(ie(e),e=>!(!e||!e.initializeError));return n&&n.initializeError})),o=cv(e=>e.errors,e=>Pe(t=>{const n=t?e[t]:S(ie(e),e=>!(!e||!e.deinitializeError));return n&&n.deinitializeError}));return Oe((a=zv)=>({getState:e(a),isInitializing:t(a),isInitialized:n(a),isDeinitializing:i(a),getInitializeError:r(a),getDeinitializeError:o(a)}))}(),i=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e=>e.data,e=>t=>{if(!e)return;const{flashMessages:n}=e.context;return n?void 0!==t?n.filter(({type:e})=>t===e):n:void 0}),n=cv(e=>e.data,(e,{formState:t})=>t&&t.data,(e,t={customerAccount:[],shippingAddress:[],billingAddress:[]})=>()=>e?Object.assign(Object.assign({},e.storeConfig),{formFields:t}):void 0),i=cv(n,e=>()=>YS(e(),()=>new Qe(We.MissingCheckoutConfig))),r=cv(e=>e.data&&e.data.context,e=>()=>e),o=cv(e=>e.meta&&e.meta.externalSource,e=>()=>e),a=cv(e=>{var t;return null===(t=e.meta)||void 0===t?void 0:t.host},e=>()=>e),s=cv(e=>{var t;return null===(t=e.meta)||void 0===t?void 0:t.locale},e=>()=>e),d=cv(e=>e.meta&&e.meta.variantIdentificationToken,e=>()=>e),c=cv(e=>e.errors.loadError,e=>()=>e),l=cv(e=>!!e.statuses.isLoading,e=>()=>e);return Oe((u=Uv,h)=>({getConfig:e(u),getFlashMessages:t(u),getStoreConfig:n(u,{formState:h}),getStoreConfigOrThrow:i(u,{formState:h}),getContextConfig:r(u),getExternalSource:o(u),getHost:a(u),getLocale:s(u),getVariantIdentificationToken:d(u),getLoadError:c(u),isLoading:l(u)}))}(),r=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e=>e.errors.loadError,e=>()=>e),n=cv(e=>!!e.statuses.isLoading,e=>()=>e);return Oe((i=If)=>({getCountries:e(i),getLoadError:t(i),isLoading:n(i)}))}(),o=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e=>e.errors.removeCouponError,e=>()=>e),n=cv(e=>e.errors.applyCouponError,e=>()=>e),i=cv(e=>!!e.statuses.isApplyingCoupon,e=>()=>e),r=cv(e=>!!e.statuses.isRemovingCoupon,e=>()=>e);return Oe((o=$v)=>({getCoupons:e(o),getRemoveError:t(o),getApplyError:n(o),isApplying:i(o),isRemoving:r(o)}))}(),a=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e,e=>()=>YS(e(),()=>new Qe(We.MissingCustomer))),n=cv(e=>e.errors.createError,e=>()=>e),i=cv(e=>!!e.statuses.isCreating,e=>()=>e),r=cv(e=>e.errors.createAddressError,e=>()=>e),o=cv(e=>!!e.statuses.isCreatingAddress,e=>()=>e);return Oe((a=nf)=>({getCustomer:e(a),getCustomerOrThrow:t(a),getCreateAccountError:n(a),isCreatingCustomerAccount:i(a),getCreateAddressError:r(a),isCreatingCustomerAddress:o(a)}))}(),s=function(){const e=cv(e=>e.errors.signInMethodId,e=>e.errors.signInError,(e,t)=>n=>{if(!n||e===n)return t}),t=cv(e=>e.errors.signOutMethodId,e=>e.errors.signOutError,(e,t)=>n=>{if(!n||e===n)return t}),n=cv(e=>e.errors.executePaymentMethodCheckoutMethodId,e=>e.errors.executePaymentMethodCheckoutError,(e,t)=>n=>{if(!n||e===n)return t}),i=cv(e=>e.errors.initializeMethodId,e=>e.errors.initializeErrors,(e,t)=>n=>{if(e&&t)return n?t[n]:t[e]}),r=cv(e=>e.errors.widgetInteractionMethodId,e=>e.errors.widgetInteractionError,(e,t)=>n=>{if(!n||e===n)return t}),o=cv(e=>e.statuses.signInMethodId,e=>e.statuses.isSigningIn,(e,t)=>n=>!(n&&e!==n||!t)),a=cv(e=>e.statuses.signOutMethodId,e=>e.statuses.isSigningOut,(e,t)=>n=>!(n&&e!==n||!t)),s=cv(e=>e.statuses.executePaymentMethodCheckoutMethodId,e=>e.statuses.isExecutingPaymentMethodCheckout,(e,t)=>n=>!(n&&e!==n||!t)),d=cv(e=>e.statuses.initializeMethodId,e=>e.statuses.isInitializing,(e,t)=>n=>!(n&&e!==n||!t)),c=cv(e=>e.data,e=>t=>!(!e[t]||!e[t].isInitialized)),l=cv(e=>e.statuses.widgetInteractionMethodId,e=>e.statuses.isWidgetInteracting,(e,t)=>n=>!(n&&e!==n||!t));return Oe((u=df)=>({getSignInError:e(u),getSignOutError:t(u),getExecutePaymentMethodCheckoutError:n(u),getInitializeError:i(u),getWidgetInteractionError:r(u),isSigningIn:o(u),isSigningOut:a(u),isExecutingPaymentMethodCheckout:s(u),isInitializing:d(u),isInitialized:c(u),isWidgetInteracting:l(u)}))}(),d=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e=>e.errors.removeGiftCertificateError,e=>()=>e),n=cv(e=>e.errors.applyGiftCertificateError,e=>()=>e),i=cv(e=>!!e.statuses.isApplyingGiftCertificate,e=>()=>e),r=cv(e=>!!e.statuses.isRemovingGiftCertificate,e=>()=>e);return Oe((o=Zv)=>({getGiftCertificates:e(o),getRemoveError:t(o),getApplyError:n(o),isApplying:i(o),isRemoving:r(o)}))}(),c=function(){const e=cv(e=>e.data,e=>t=>{if(!e)return;const n=t.gateway?`${t.gateway}.${t.id}`:t.id,i=JS[n];return i?f(e,i):[]}),t=cv(e=>e.data,(e=[])=>t=>{const n=ie(JS);return e.find(e=>e.bigpayToken===t&&"card"===e.type&&n.some(t=>k(e,t)))}),n=cv(t,e=>t=>YS(e(t),()=>new Qe(We.MissingPaymentInstrument))),i=cv(e=>e.data,e=>()=>{if(e)return _(JS,t=>f(e,e=>k(e,t)))}),r=cv(e=>e.meta,e=>()=>e),o=cv(e=>e.errors.loadError,e=>()=>e),a=cv(e=>e.errors.failedInstrument,e=>e.errors.deleteError,(e,t)=>n=>{if(!n||e===n)return t}),s=cv(e=>e.statuses.isLoading,e=>()=>!!e),d=cv(e=>e.statuses.deletingInstrument,e=>e.statuses.isDeleting,(e,t)=>n=>!(n&&e!==n||!t));return Oe((c=Xf)=>({getCardInstrument:t(c),getCardInstrumentOrThrow:n(c),getInstruments:i(c),getInstrumentsByPaymentMethod:e(c),getInstrumentsMeta:r(c),getLoadError:o(c),getDeleteError:a(c),isLoading:s(c),isDeleting:d(c)}))}(),l=function(){const e=cv(e=>e.data,e=>(t=[],n)=>{const i=S(t,{code:n});return(e?e.shippingAddress:[]).map(e=>o(e,t,i))}),t=cv(e=>e.data,e=>(t=[],n)=>{const i=S(t,{code:n});return(e?e.billingAddress:[]).map(e=>o(e,t,i))}),n=cv(e=>e.data,e=>()=>e?e.customerAccount:[]),i=cv(e=>e.errors.loadError,e=>()=>e),r=cv(e=>!!e.statuses.isLoading,e=>()=>e);function o(e,t,n){return"countryCode"===e.name?function(e,t=[],n){if(!t.length)return e;const{code:i=""}=n||{},r=t.map(({code:e,name:t})=>({value:e,label:t}));return Object.assign(Object.assign({},e),{options:{items:r},default:i,type:"array",fieldType:"dropdown",itemtype:"string"})}(e,t,n):"stateOrProvince"===e.name?function(e,t){const{subdivisions:n=[],requiresState:i}=t||{};if(!n.length)return Object.assign(Object.assign({},e),{required:null!=i&&i});const r=n.map(({code:e,name:t})=>({value:e,label:t}));return Object.assign(Object.assign({},e),{name:"stateOrProvinceCode",options:{items:r},required:null==i||i,type:"array",fieldType:"dropdown",itemtype:"string"})}(e,n):"postalCode"===e.name?function(e,t){const{hasPostalCodes:n=[]}=t||{};return void 0===n?e:Object.assign(Object.assign({},e),{required:Boolean(n)})}(e,n):e}return Oe((o=ff)=>({getShippingAddressFields:e(o),getBillingAddressFields:t(o),getCustomerAccountFields:n(o),getLoadError:i(o),isLoading:r(o)}))}(),u=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e=>e.meta,e=>()=>e),n=cv(e=>e.data,e=>(t,n)=>S(e,n?{id:t,gateway:n}:{id:t})),i=cv(n,e=>(t,n)=>YS(e(t,n),()=>new Qe(We.MissingPaymentMethod))),r=cv(e=>e.errors.loadError,e=>()=>e),o=cv(e=>e.errors.loadMethodId,e=>e.errors.loadMethodError,(e,t)=>n=>{if(!n||e===n)return t}),a=cv(e=>e.statuses.isLoading,e=>()=>!!e),s=cv(e=>e.statuses.loadMethodId,e=>e.statuses.isLoadingMethod,(e,t)=>n=>!(n&&e!==n||!t));return Oe((d=Bf)=>({getPaymentMethods:e(d),getPaymentMethodsMeta:t(d),getPaymentMethod:n(d),getPaymentMethodOrThrow:i(d),getLoadError:r(d),getLoadMethodError:o(d),isLoading:a(d),isLoadingMethod:s(d)}))}(),h=function(){const e=cv(e=>e.errors.initializeMethodId,e=>e.errors.initializeError,(e,t)=>n=>{if(!n||e===n)return t}),t=cv(e=>e.errors.executeMethodId,e=>e.errors.executeError,(e,t)=>n=>{if(!n||e===n)return t}),n=cv(e=>e.errors.finalizeMethodId,e=>e.errors.finalizeError,(e,t)=>n=>{if(!n||e===n)return t}),i=cv(e=>e.errors.widgetInteractionMethodId,e=>e.errors.widgetInteractionError,(e,t)=>n=>{if(!n||e===n)return t}),r=cv(e=>e.statuses.initializeMethodId,e=>e.statuses.isInitializing,(e,t)=>n=>!(n&&e!==n||!t)),o=cv(e=>e.data,e=>t=>{const n=t.gatewayId?`${t.methodId}.${t.gatewayId}`:t.methodId;return!(!e[n]||!e[n].isInitialized)}),a=cv(e=>e.statuses.executeMethodId,e=>e.statuses.isExecuting,(e,t)=>n=>!(n&&e!==n||!t)),s=cv(e=>e.statuses.finalizeMethodId,e=>e.statuses.isFinalizing,(e,t)=>n=>!(n&&e!==n||!t)),d=cv(e=>e.statuses.widgetInteractionMethodId,e=>e.statuses.isWidgetInteracting,(e,t)=>n=>!(n&&e!==n||!t));return Oe((c=Hf)=>({getInitializeError:e(c),getExecuteError:t(c),getFinalizeError:n(c),getWidgetInteractingError:i(c),isInitializing:r(c),isInitialized:o(c),isExecuting:a(c),isFinalizing:s(c),isWidgetInteracting:d(c)}))}(),p=function(){const e=cv(e=>e.data,e=>(t,n)=>{if(!e)return;const i=mS(pS({consignmentId:t,searchArea:n})),r=btoa(`${JSON.stringify(i)}`);return e[r]}),t=cv(e=>e.errors.loadError,e=>()=>e),n=cv(e=>!!e.statuses.isLoading,e=>()=>e);return Oe((i=yS)=>({getPickupOptions:e(i),getLoadError:t(i),isLoading:n(i)}))}(),m=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e,e=>()=>YS(e(),()=>new Qe(We.MissingPaymentProviderCustomer)));return Oe((n=Jf)=>({getPaymentProviderCustomer:e(n),getPaymentProviderCustomerOrThrow:t(n)}))}(),y=function(){const e=cv(e=>e.data,e=>t=>e[t]);return Oe((t=oS)=>({getCheckout:e(t)}))}(),g=function(){const e=cv(e=>e.data,e=>()=>{const t=null==e?void 0:e.find(e=>!e.selectedPickupOption);return null==t?void 0:t.shippingAddress}),t=cv(e,e=>()=>YS(e(),()=>new Qe(We.MissingShippingAddress))),n=cv(e=>e.data,e=>()=>{const t=null==e?void 0:e.filter(e=>!e.selectedPickupOption);return t?t.map(e=>e.shippingAddress):[]}),i=cv(n,e=>()=>YS(e(),()=>new Qe(We.MissingShippingAddress)));return Oe((r=dS)=>({getShippingAddress:e(r),getShippingAddressOrThrow:t(r),getShippingAddresses:n(r),getShippingAddressesOrThrow:i(r)}))}(),v=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e=>e.errors.loadError,e=>()=>e),n=cv(e=>e.statuses.isLoading,e=>()=>!!e);return Oe((i=wS)=>({getShippingCountries:e(i),getLoadError:t(i),isLoading:n(i)}))}(),w=function(){const e=cv(e=>e.errors.updateAddressMethodId,e=>e.errors.updateAddressError,(e,t)=>n=>{if(!n||e===n)return t}),t=cv(e=>e.errors.selectOptionMethodId,e=>e.errors.selectOptionError,(e,t)=>n=>{if(!n||e===n)return t}),n=cv(e=>e.errors.initializeMethodId,e=>e.errors.initializeError,(e,t)=>n=>{if(!n||e===n)return t}),i=cv(e=>e.errors.widgetInteractionMethodId,e=>e.errors.widgetInteractionError,(e,t)=>n=>{if(!n||e===n)return t}),r=cv(e=>e.statuses.updateAddressMethodId,e=>e.statuses.isUpdatingAddress,(e,t)=>n=>!(n&&e!==n||!t)),o=cv(e=>e.statuses.selectOptionMethodId,e=>e.statuses.isSelectingOption,(e,t)=>n=>!(n&&e!==n||!t)),a=cv(e=>e.statuses.initializeMethodId,e=>e.statuses.isInitializing,(e,t)=>n=>!(n&&e!==n||!t)),s=cv(e=>e.data,e=>t=>!(!e[t]||!e[t].isInitialized)),d=cv(e=>e.statuses.widgetInteractionMethodId,e=>e.statuses.isWidgetInteracting,(e,t)=>n=>!(n&&e!==n||!t));return Oe((c=PS)=>({getUpdateAddressError:e(c),getSelectOptionError:t(c),getInitializeError:n(c),getWidgetInteractionError:i(c),isUpdatingAddress:r(c),isSelectingOption:o(c),isInitializing:a(c),isInitialized:s(c),isWidgetInteracting:d(c)}))}(),C=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e,e=>()=>YS(e(),()=>new Qe(We.MissingConsignments))),n=cv(e=>e.data,e=>t=>{if(e&&e.length)return S(e,{id:t})}),i=cv(e=>e.data,e=>t=>{if(e&&e.length)return S(e,e=>{return n=e.shippingAddress,i=t,A(ZS(n),ZS(i));var n,i})}),r=cv(e=>e.data,e=>()=>{if(e&&e.length)return e[0].selectedShippingOption}),o=cv(e=>e.errors.loadError,e=>()=>e),a=cv(e=>e.errors.createError,e=>()=>e),s=cv(e=>e.errors.loadShippingOptionsError,e=>()=>e),d=cv(e,(e,{cart:t})=>t.getCart,(e,t)=>()=>{const n=t();if(!n)return[];const i=(e()||[]).reduce((e,t)=>e.concat(t.lineItemIds),[]);return(n.lineItems.physicalItems||[]).filter(e=>i.indexOf(e.id)<0)}),c=cv(e=>e.errors.updateError,e=>t=>t?e[t]:S(e)),l=cv(e=>e.errors.deleteError,e=>t=>t?e[t]:S(e)),u=cv(i,c,a,(e,t,n)=>i=>{const r=e(i);return r?t(r.id):n()}),h=cv(e=>e.errors.updateShippingOptionError,e=>t=>t?e[t]:S(e)),p=cv(e=>e.statuses.isLoading,e=>()=>!0===e),m=cv(e=>e.statuses.isLoadingShippingOptions,e=>()=>!0===e),y=cv(e=>e.statuses.isCreating,e=>()=>!0===e),g=cv(e=>e.statuses.isUpdating,e=>t=>t?!0===e[t]:!0===S(e)),v=cv(e=>e.statuses.isDeleting,e=>t=>t?!0===e[t]:!0===S(e)),f=cv(i,g,y,(e,t,n)=>i=>{const r=e(i);return r?t(r.id):n()}),w=cv(e=>e.statuses.isUpdatingShippingOption,e=>t=>t?!0===e[t]:!0===S(e));return Oe((S=dS,_)=>({getConsignments:e(S),getConsignmentsOrThrow:t(S),getConsignmentById:n(S),getConsignmentByAddress:i(S),getShippingOption:r(S),getLoadError:o(S),getCreateError:a(S),getLoadShippingOptionsError:s(S),getUnassignedItems:d(S,{cart:_}),getUpdateError:c(S),getDeleteError:l(S),getItemAssignmentError:u(S),getUpdateShippingOptionError:h(S),isLoading:p(S),isLoadingShippingOptions:m(S),isCreating:y(S),isUpdating:g(S),isDeleting:v(S),isAssigningItems:f(S),isUpdatingShippingOption:w(S)}))}(),I=function(){const e=cv(e=>e.data,(e,{billingAddress:t})=>t.getBillingAddress,(e,{cart:t})=>t.getCart,(e,{customer:t})=>t.getCustomer,(e,{consignments:t})=>t.getConsignments,(e,{coupons:t})=>t.getCoupons,(e,{giftCertificates:t})=>t.getGiftCertificates,(e,t,n,i,r,o,a)=>()=>{const s=t(),d=n(),c=i(),l=r()||[],u=o()||[],h=a()||[];if(e&&d&&c)return Object.assign(Object.assign({},e),{billingAddress:s,cart:d,customer:c,consignments:l,coupons:u,giftCertificates:h})}),t=cv(e,e=>()=>YS(e(),()=>new Qe(We.MissingCheckout))),n=cv(e,e=>t=>{const n=e();if(!n)return;const i=n.grandTotal||0,r=n.customer.storeCredit||0;return t?Math.max(i-r,0):n.outstandingBalance}),i=cv(e=>e.errors.loadError,e=>()=>e),r=cv(e=>e.errors.updateError,e=>()=>e),o=cv(e=>e.statuses.isExecutingSpamCheck,e=>()=>!0===e),a=cv(e=>e.statuses.isLoading,e=>()=>!0===e),s=cv(e=>e.statuses.isUpdating,e=>()=>!0===e);return Oe((d=VS,c,l,u,h,p,m)=>({getCheckout:e(d,{billingAddress:c,cart:l,consignments:u,coupons:h,customer:p,giftCertificates:m}),getCheckoutOrThrow:t(d,{billingAddress:c,cart:l,consignments:u,coupons:h,customer:p,giftCertificates:m}),getOutstandingBalance:n(d,{billingAddress:c,cart:l,consignments:u,coupons:h,customer:p,giftCertificates:m}),getLoadError:i(d),getUpdateError:r(d),isExecutingSpamCheck:o(d),isLoading:a(d),isUpdating:s(d)}))}(),b=function(){const e=cv(e=>e.data,(e,{billingAddress:t})=>t.getOrderBillingAddress(),(e,{coupons:t})=>t.getCoupons(),(e,t,n=[])=>()=>{if(e&&t)return Object.assign(Object.assign({},e),{billingAddress:t,coupons:n})}),t=cv(e,e=>()=>YS(e(),()=>new Qe(We.MissingOrder))),n=cv(e=>e.meta,e=>()=>e),i=cv(e=>e.errors.loadError,e=>()=>e),r=cv(e=>{var t;return null===(t=e.data)||void 0===t?void 0:t.payments},(e=[])=>t=>{const n=e.find(({providerId:e})=>e===t);return null==n?void 0:n.paymentId}),o=cv(e=>!!e.statuses.isLoading,e=>()=>e);return Oe((a=Af,s,d)=>({getOrder:e(a,{billingAddress:s,coupons:d}),getOrderOrThrow:t(a,{billingAddress:s,coupons:d}),getOrderMeta:n(a),getLoadError:i(a),getPaymentId:r(a),isLoading:o(a)}))}(),P=function(){const e=cv(e=>e.data,e=>()=>e);return Oe((t=Nf)=>({getOrderBillingAddress:e(t)}))}(),O=function(){const e=cv(({order:e})=>e.getOrderMeta,e=>()=>{const t=e();return t&&t.payment}),t=cv(({order:e})=>e.getOrder,e=>()=>{const t=e();return S(t&&t.payments,({providerId:e})=>"giftcertificate"!==e&&"storecredit"!==e)}),n=cv(({checkout:e})=>e.getCheckout,e=>()=>{const t=e();return S(t&&t.payments,({providerType:e})=>"PAYMENT_TYPE_HOSTED"===e)}),i=cv(e,n,t,(e,t,n)=>()=>{const i=e();if(i&&i.id)return{providerId:i.id,gatewayId:i.gateway};const r=t()||n();return r&&r.providerId?{providerId:r.providerId,gatewayId:r.gatewayId}:void 0}),r=cv(i,e=>()=>YS(e(),()=>new Qe(We.MissingPaymentId))),o=cv(e,n,t,(e,t,n)=>()=>{const i=e();if(i&&i.status)return i.status.replace("PAYMENT_STATUS_","");const r=t()||n();return r?r.detail.step:void 0}),a=cv(o,e=>()=>YS(e(),()=>new Qe(We.MissingPaymentStatus))),s=cv(({order:e})=>e.getOrderMeta,e=>()=>{const t=e();return t&&t.token}),d=cv(s,e=>()=>YS(e(),()=>new Qe(We.MissingPaymentToken))),c=cv(e,e=>()=>{const t=e();return t&&t.redirectUrl}),l=cv(c,e=>()=>YS(e(),()=>new Qe(We.MissingPaymentRedirectUrl))),u=cv(({checkout:e})=>e.getOutstandingBalance,e=>(t=!1)=>{const n=e(t);return!!n&&n>0}),h=cv(o,e=>t=>!(!t||!t.nonce)||"ACKNOWLEDGE"===e()||e()===Py);return Oe((e,t)=>({getPaymentId:i({checkout:e,order:t}),getPaymentIdOrThrow:r({checkout:e,order:t}),getPaymentStatus:o({checkout:e,order:t}),getPaymentStatusOrThrow:a({checkout:e,order:t}),getPaymentToken:s({checkout:e,order:t}),getPaymentTokenOrThrow:d({checkout:e,order:t}),getPaymentRedirectUrl:c({checkout:e,order:t}),getPaymentRedirectUrlOrThrow:l({checkout:e,order:t}),isPaymentDataRequired:u({checkout:e,order:t}),isPaymentDataSubmitted:h({checkout:e,order:t})}))}(),E=function(){const e=cv(e=>e.errors.applyError,e=>()=>e),t=cv(e=>!!e.statuses.isApplying,e=>()=>e);return Oe((n=QS)=>({getApplyError:e(n),isApplying:t(n)}))}(),T=function(){const e=cv(e=>e.errors.updateError,e=>()=>e),t=cv(e=>!!e.statuses.isUpdating,e=>()=>e);return Oe((n=BS)=>({getUpdateError:e(n),isUpdating:t(n)}))}(),D=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e=>e.errors.sendError,e=>()=>e),n=cv(e=>!!e.statuses.isSending,e=>()=>e);return Oe((i=TS)=>({getEmail:e(i),getSendError:t(i),isSending:n(i)}))}(),M=function(){const e=cv(e=>e.data,e=>()=>e),t=cv(e=>e.data,e=>t=>null==e?void 0:e.find(e=>e.region===t)),n=cv(e=>e.errors.loadError,e=>()=>e),i=cv(e=>e.statuses.isLoading,e=>()=>!!e);return Oe((r=pf)=>({getExtensions:e(r),getExtensionByRegion:t(r),getLoadError:n(r),isLoading:i(r)}))}();return(f,S={})=>{const _=e(f.billingAddress),A=t(f.cart),k=n(f.checkoutButton),z=r(f.countries),N=o(f.coupons),x=a(f.customer),F=s(f.customerStrategies),R=M(f.extensions),L=l(f.formFields),B=d(f.giftCertificates),j=c(f.instruments),U=P(f.orderBillingAddress),q=u(f.paymentMethods),V=m(f.paymentProviderCustomer),G=h(f.paymentStrategies),H=p(f.pickupOptions),$=y(f.remoteCheckout),W=g(f.consignments),Y=v(f.shippingCountries),K=w(f.shippingStrategies),J=T(f.subscriptions),Z=E(f.storeCredit),Q=D(f.signInEmail),X=C(f.consignments,A),ee=I(f.checkout,_,A,X,N,x,B),te=b(f.order,U,N),ne=O(ee,te),ie={billingAddress:_,cart:A,checkout:ee,checkoutButton:k,config:i(f.config,f.formFields),consignments:X,countries:z,coupons:N,customer:x,customerStrategies:F,extensions:R,form:L,giftCertificates:B,instruments:j,order:te,orderBillingAddress:U,payment:ne,paymentMethods:q,paymentProviderCustomer:V,paymentStrategies:G,pickupOptions:H,remoteCheckout:$,shippingAddress:W,shippingCountries:Y,shippingStrategies:K,signInEmail:Q,subscriptions:J,storeCredit:Z};return S.shouldWarnMutation?function(e){return Object.keys(e).reduce((t,n)=>(t[n]=KS(e[n]),t),{})}(ie):ie}}function ew(e={},t){const n=(o=function(){const e=new mv;return["catalog_only","empty_cart","invalid_order_id","invalid_order_token","missing_order_token","missing_provider_token","missing_shipping_method","order_completion_error","order_could_not_be_finalized_error","order_create_failed","provider_fatal_error","provider_setup_error","stock_too_low"].forEach(t=>{e.register(t,(e,t)=>new uv(e,t))}),e.register("invalid_payment_provider",e=>new co(e)),e.register("payment_config_not_found",e=>new co(e)),e}(),e=>le(e).pipe(ge(e=>{if(e instanceof Error||e.payload instanceof Error)throw e;if((t=e.payload)&&"object"==typeof t&&["body","headers","status","statusText"].every(e=>Object.prototype.hasOwnProperty.call(t,e))){const t=e.payload.body&&e.payload.body.detail;throw Object.assign(Object.assign({},e),{payload:o.createError(e.payload,t)})}var t;throw e}))),i=XS(),r=d({billingAddress:_v,cart:Av,checkout:GS,checkoutButton:Rv,config:qv,consignments:cS,countries:bf,coupons:Wv,customer:rf,customerStrategies:cf,extensions:mf,formFields:Sf,giftCertificates:Qv,instruments:eS,orderBillingAddress:xf,order:kf,payment:Rf,paymentMethods:jf,paymentStrategies:$f,pickupOptions:gS,paymentProviderCustomer:Zf,remoteCheckout:aS,shippingCountries:_S,shippingStrategies:OS,signInEmail:DS,subscriptions:jS,storeCredit:FS});var o;return u(r,e,Object.assign({actionTransformer:n,stateTransformer:e=>i(e)},t))}function tw(e){"https:"!==document.location.protocol&&gt().warn("The BigCommerce Checkout SDK should not be used on a non-HTTPS page"),"production"!==ht()&&gt().warn("Note that the development build is not optimized. To create a production build, set process​.env.NODE_ENV to `production`.");const t={meta:{externalSource:e&&e.externalSource,host:null==e?void 0:e.host,locale:null==e?void 0:e.locale,variantIdentificationToken:window.checkoutVariantIdentificationToken},errors:{},statuses:{}},{locale:i="",shouldWarnMutation:r=!0,errorLogger:s=new lt}=e||{},d=n({host:e&&e.host}),c=ew({config:t},{shouldWarnMutation:r}),l=Em(c),u=new Cm(d),h=new Qt(d),p=new St(new bt(d)),m=bn(o()),y=new Pn(d),g=new fn(m,y),v=new Om(u,new Nm(h)),f=new hg(new pg(d)),S=new nn(new rn(d)),w=new en(h,p,S),_=Ig(c),C=function(e,t,n={useFallback:!1}){const{useFallback:i}=n,r=new jt(i);for(const[,n]of Object.entries(t))if(Ft(n))for(const t of n.resolveIds){const i=Rt(()=>n(e),n.resolveIds);r.register(t,i)}return r}(_,$e,{useFallback:!0}),I=function(e,t){const n=new jt;for(const[,i]of Object.entries(t))if(Ft(i))for(const t of i.resolveIds){const r=Rt(()=>i(e),i.resolveIds);n.register(t,r)}return n}(_,He),b=new Wn(new Yn(d)),P=new ii,O=new si(c,P),E=ct(c,function(){const e=function(){const e=cv(({checkout:e})=>e.getCheckout,e=>vg(e)),t=cv(({order:e})=>e.getOrder,e=>vg(e)),n=cv(({config:e})=>e.getStoreConfig,e=>vg(e)),i=cv(({shippingAddress:e})=>e.getShippingAddress,({config:e})=>e.getContextConfig,(e,t)=>vg(()=>{const n=e(),i=t();if(!n){if(!i||!i.geoCountryCode)return;return{firstName:"",lastName:"",company:"",address1:"",address2:"",city:"",stateOrProvince:"",stateOrProvinceCode:"",postalCode:"",country:"",phone:"",customFields:[],countryCode:i.geoCountryCode}}return n})),r=cv(({consignments:e})=>e.getConsignments,e=>vg(()=>{const t=e(),n=null==t?void 0:t.find(e=>!e.selectedPickupOption);return null==n?void 0:n.availableShippingOptions})),o=cv(({consignments:e})=>e.getConsignments,e=>vg(e)),a=cv(({consignments:e})=>e.getConsignments,e=>vg(()=>{const t=e(),n=null==t?void 0:t.find(e=>!e.selectedPickupOption);return null==n?void 0:n.selectedShippingOption})),s=cv(({shippingCountries:e})=>e.getShippingCountries,e=>vg(e)),d=cv(({billingAddress:e})=>e.getBillingAddress,({config:e})=>e.getContextConfig,(e,t)=>vg(()=>{const n=e(),i=t();return(!n||ie(G(n,"shouldSaveAddress","email","id")).every(e=>!e||!e.length))&&i&&i.geoCountryCode?{id:n?n.id:"",firstName:"",lastName:"",company:"",address1:"",address2:"",city:"",email:n?n.email:"",stateOrProvince:"",stateOrProvinceCode:"",postalCode:"",country:"",phone:"",customFields:[],countryCode:i.geoCountryCode}:n})),c=cv(({countries:e})=>e.getCountries,e=>vg(e)),l=cv(({paymentMethods:e})=>e.getPaymentMethods,e=>vg(e)),u=cv(({paymentMethods:e})=>e.getPaymentMethod,e=>vg(e)),h=cv(({payment:e})=>e.getPaymentId,({paymentMethods:e})=>e.getPaymentMethod,(e,t)=>vg(()=>{const n=e();return n&&t(n.providerId,n.gatewayId)})),p=cv(({cart:e})=>e.getCart,e=>vg(e)),m=cv(({coupons:e})=>e.getCoupons,e=>vg(e)),y=cv(({giftCertificates:e})=>e.getGiftCertificates,e=>vg(e)),g=cv(({customer:e})=>e.getCustomer,e=>vg(e)),v=cv(({signInEmail:e})=>e.getEmail,e=>vg(e)),f=cv(({payment:e})=>e.isPaymentDataRequired,e=>vg(e)),S=cv(({payment:e})=>e.isPaymentDataSubmitted,({paymentMethods:e})=>e.getPaymentMethod,(e,t)=>vg((n,i)=>e(t(n,i)))),w=cv(({instruments:e})=>e.getInstruments,({instruments:e})=>e.getInstrumentsByPaymentMethod,(e,t)=>vg(function(n){return n?t(n):e()})),_=cv(({form:e})=>e.getCustomerAccountFields,e=>vg(e)),C=cv(({form:e})=>e.getBillingAddressFields,({countries:e})=>e.getCountries,(e,t)=>vg(n=>e(t(),n))),I=cv(({form:e})=>e.getShippingAddressFields,({shippingCountries:e})=>e.getShippingCountries,(e,t)=>vg(n=>e(t(),n))),b=cv(({config:e})=>e.getFlashMessages,e=>vg(e)),P=cv(({pickupOptions:e})=>e.getPickupOptions,e=>vg(e)),O=cv(({config:e})=>e.getStoreConfig,e=>vg(()=>{const t=e();if(t)return t.checkoutSettings.checkoutUserExperienceSettings})),E=cv(({extensions:e})=>e.getExtensions,e=>vg(e)),A=cv(({paymentProviderCustomer:e})=>e.getPaymentProviderCustomer,e=>vg(e)),k=cv(({extensions:e})=>e.getExtensionByRegion,e=>vg(e));return Oe(T=>({getCheckout:e(T),getOrder:t(T),getConfig:n(T),getExtensions:E(T),getExtensionByRegion:k(T),getFlashMessages:b(T),getShippingAddress:i(T),getShippingOptions:r(T),getConsignments:o(T),getSelectedShippingOption:a(T),getShippingCountries:s(T),getBillingAddress:d(T),getBillingCountries:c(T),getPaymentMethods:l(T),getPaymentMethod:u(T),getSelectedPaymentMethod:h(T),getCart:p(T),getCoupons:m(T),getGiftCertificates:y(T),getCustomer:g(T),isPaymentDataRequired:f(T),isPaymentDataSubmitted:S(T),getSignInEmail:v(T),getInstruments:w(T),getCustomerAccountFields:_(T),getBillingAddressFields:C(T),getShippingAddressFields:I(T),getPickupOptions:P(T),getUserExperienceSettings:O(T),getPaymentProviderCustomer:A(T)}))}(),t=function(){const e=lv(e=>e,e=>()=>{for(const t of Object.keys(e)){const n=e[t]();if(n)return n}}),t=cv(({shippingStrategies:e})=>e.getSelectOptionError,({consignments:e})=>e.getUpdateShippingOptionError,(e,t)=>n=>e()||t(n));return Oe(n=>{const i={getLoadCheckoutError:n.checkout.getLoadError,getUpdateCheckoutError:n.checkout.getUpdateError,getSubmitOrderError:n.paymentStrategies.getExecuteError,getFinalizeOrderError:n.paymentStrategies.getFinalizeError,getLoadOrderError:n.order.getLoadError,getLoadCartError:n.cart.getLoadError,getLoadBillingCountriesError:n.countries.getLoadError,getLoadShippingCountriesError:n.shippingCountries.getLoadError,getLoadPaymentMethodsError:n.paymentMethods.getLoadError,getLoadPaymentMethodError:n.paymentMethods.getLoadMethodError,getInitializePaymentError:n.paymentStrategies.getInitializeError,getSignInError:n.customerStrategies.getSignInError,getSignOutError:n.customerStrategies.getSignOutError,getInitializeCustomerError:n.customerStrategies.getInitializeError,getLoadShippingOptionsError:n.consignments.getLoadShippingOptionsError,getSelectShippingOptionError:t(n),getContinueAsGuestError:n.billingAddress.getContinueAsGuestError,getUpdateBillingAddressError:n.billingAddress.getUpdateError,getUpdateSubscriptionsError:n.subscriptions.getUpdateError,getUpdateShippingAddressError:n.shippingStrategies.getUpdateAddressError,getDeleteConsignmentError:n.consignments.getDeleteError,getUpdateConsignmentError:n.consignments.getUpdateError,getCreateConsignmentsError:n.consignments.getCreateError,getInitializeShippingError:n.shippingStrategies.getInitializeError,getApplyStoreCreditError:n.storeCredit.getApplyError,getApplyCouponError:n.coupons.getApplyError,getRemoveCouponError:n.coupons.getRemoveError,getApplyGiftCertificateError:n.giftCertificates.getApplyError,getRemoveGiftCertificateError:n.giftCertificates.getRemoveError,getLoadInstrumentsError:n.instruments.getLoadError,getDeleteInstrumentError:n.instruments.getDeleteError,getLoadConfigError:n.config.getLoadError,getSignInEmailError:n.signInEmail.getSendError,getCreateCustomerAccountError:n.customer.getCreateAccountError,getCreateCustomerAddressError:n.customer.getCreateAddressError,getPickupOptionsError:n.pickupOptions.getLoadError,getLoadExtensionsError:n.extensions.getLoadError};return Object.assign({getError:e(i)},i)})}(),n=function(){const e=lv(e=>e,e=>()=>Object.keys(e).some(t=>e[t]())),t=cv(({shippingStrategies:e})=>e.isSelectingOption,({consignments:e})=>e.isUpdatingShippingOption,(e,t)=>n=>e()||t(n)),n=cv(({customerStrategies:e})=>e.isInitializing,({customerStrategies:e})=>e.isSigningIn,({customerStrategies:e})=>e.isSigningOut,({customerStrategies:e})=>e.isExecutingPaymentMethodCheckout,({customerStrategies:e})=>e.isWidgetInteracting,(e,t,n,i,r)=>o=>e(o)||t(o)||n(o)||i(o)||r(o)),i=cv(({shippingStrategies:e})=>e.isInitializing,({shippingStrategies:e})=>e.isUpdatingAddress,({shippingStrategies:e})=>e.isSelectingOption,({shippingStrategies:e})=>e.isWidgetInteracting,(e,t,n,i)=>r=>e(r)||t(r)||n(r)||i(r)),r=cv(({paymentStrategies:e})=>e.isInitializing,({paymentStrategies:e})=>e.isExecuting,({paymentStrategies:e})=>e.isFinalizing,({paymentStrategies:e})=>e.isWidgetInteracting,(e,t,n,i)=>r=>e(r)||t(r)||n(r)||i(r)),o=cv(({paymentStrategies:e})=>e.isExecuting,({checkout:e})=>e.isExecutingSpamCheck,(e,t)=>n=>e(n)||t());return Oe(a=>{const s={isLoadingCheckout:a.checkout.isLoading,isUpdatingCheckout:a.checkout.isUpdating,isExecutingSpamCheck:a.checkout.isExecutingSpamCheck,isSubmittingOrder:o(a),isFinalizingOrder:a.paymentStrategies.isFinalizing,isLoadingOrder:a.order.isLoading,isLoadingCart:a.cart.isLoading,isLoadingBillingCountries:a.countries.isLoading,isLoadingShippingCountries:a.shippingCountries.isLoading,isLoadingPaymentMethods:a.paymentMethods.isLoading,isLoadingPaymentMethod:a.paymentMethods.isLoadingMethod,isInitializingPayment:a.paymentStrategies.isInitializing,isSigningIn:a.customerStrategies.isSigningIn,isSigningOut:a.customerStrategies.isSigningOut,isExecutingPaymentMethodCheckout:a.customerStrategies.isExecutingPaymentMethodCheckout,isInitializingCustomer:a.customerStrategies.isInitializing,isInitializedCustomer:a.customerStrategies.isInitialized,isLoadingShippingOptions:a.consignments.isLoadingShippingOptions,isSelectingShippingOption:t(a),isUpdatingBillingAddress:a.billingAddress.isUpdating,isUpdatingSubscriptions:a.subscriptions.isUpdating,isCreatingCustomerAccount:a.customer.isCreatingCustomerAccount,isCreatingCustomerAddress:a.customer.isCreatingCustomerAddress,isContinuingAsGuest:a.billingAddress.isContinuingAsGuest,isUpdatingShippingAddress:a.shippingStrategies.isUpdatingAddress,isUpdatingConsignment:a.consignments.isUpdating,isDeletingConsignment:a.consignments.isDeleting,isCreatingConsignments:a.consignments.isCreating,isInitializingShipping:a.shippingStrategies.isInitializing,isApplyingStoreCredit:a.storeCredit.isApplying,isApplyingCoupon:a.coupons.isApplying,isRemovingCoupon:a.coupons.isRemoving,isApplyingGiftCertificate:a.giftCertificates.isApplying,isRemovingGiftCertificate:a.giftCertificates.isRemoving,isLoadingInstruments:a.instruments.isLoading,isDeletingInstrument:a.instruments.isDeleting,isLoadingConfig:a.config.isLoading,isSendingSignInEmail:a.signInEmail.isSending,isCustomerStepPending:n(a),isShippingStepPending:i(a),isPaymentStepPending:r(a),isLoadingPickupOptions:a.pickupOptions.isLoading};return Object.assign({isPending:e(s)},s)})}();return i=>({data:e(i),errors:t(i),statuses:n(i)})}());return new sv(c,E,O,function(e,t){const n={[oi.ConsignmentsChanged]:ci};return new di(e,t,n)}(E,O),new tt(new at(d),f),w,p,new Ht(new $t(d),w,g),new tg(new ig(d),h),new gm(new vm(d,{locale:i})),new Ot(new zt(d)),new Jt(function(e,t,n){const i=new Bt,r=a(),o=new Qt(t),s=new en(o,new St(new bt(t)),new nn(new rn(t))),d=new an(new sn(t)),c=new un(t),l=new pn(c,s),u=new fn(bn(r),new Pn(t)),h=new Ht(new $t(t),s,u);return i.register("masterpass",()=>new Dn(e,d,l,new ln(r),n)),i.register("default",()=>new On(e,h)),i}(c,d,i),I,_,s),new ut,new Nt(new xt(d)),new bg(new kg(l,d)),v,new an(new sn(d)),new Dm(function(e,t,n,i){const r=new by({defaultToken:km.CREDIT_CARD}),s=a(),d=new Cy,c=new ny(t),l=new Qt(n),u=new Nm(l),h=new Om(new Cm(n),u),p=new Um(bn(o())),m=new ty(c,h,d,p),y=Ee(),g=((e,t)=>new Fy(new xy(e,t)))(y,p),v=new ey(e);return r.register(km.CONVERGE,()=>new ky(e,h,m,v,y)),r.register(km.MASTERPASS,()=>new Ty(e,h,m,new ln(s),i)),r.register(km.PPSDK,()=>new Uy(e,h,((e,t,n,i,r)=>{const o=new Vy;return o.register(By.CARD,()=>new Hy(e,t,r,i)),o.register(By.NONE,()=>new $y(n,i)),o.register(By.UNSUPPORTED,()=>{}),o})(e,h,n,g,v),new Jy(n,g),new xm("PPSDK"))),r.register(km.WE_PAY,()=>new Zy(e,h,m,v,new Qy(s))),r}(c,l,d,i),C,v,g,_,s),new Tg(new Dg(d)),new ag(new sg(d,{locale:i}),c),new Mg(function(e,t){const n=new Bt,i=Ig(e),r=new Qt(t),s=new ig(t),d=new tg(s,r),c=new an(new sn(t)),l=a(),u=new hg(new pg(t)),h=new tt(new at(t),u),p=window,m=new Ri(i);return n.register("amazonpay",()=>new Yg(e,d,new an(new sn(t)),Ai(),new Mg(n))),n.register("stripeupe",()=>new nv(e,new Us(l),d,c)),n.register("braintreeacceleratedcheckout",()=>new Jg(e,h,d,c,new eg,new Ao(new tr(a(),p,m),p))),n.register("paypalcommerceacceleratedcheckout",()=>new ev(e,h,d,c,new eg,new Vg(o()),new Hg)),n.register("default",()=>new Zg(e,d)),n}(c,d)),new iv(new rv(d)),g,new cg(new lg(d)),f,S,b,P)}class nw extends li{constructor(e){super(e||"An unexpected error has occurred during config creation process. Please try again later."),this.name="AmazonPayV2ConfigCreationError",this.type="amazon_pay_v2_config_creation_error"}}function iw(e){return e instanceof Object&&"buyNowInitializeOptions"in e}var rw=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class ow{constructor(e,t,n){this.paymentIntegrationService=e,this.amazonPayV2PaymentProcessor=t,this.amazonPayV2ConfigRequestSender=n}initialize(e){var t;return rw(this,void 0,void 0,function*(){const{methodId:n,containerId:i,amazonpay:r}=e,{buttonColor:o}=r||{};if(!n||!i)throw new ki('Unable to proceed because "methodId" or "containerId" argument is not provided.');const{getPaymentMethodOrThrow:a}=this.paymentIntegrationService.getState(),s=a(n),{initializationData:d}=s;yield this.amazonPayV2PaymentProcessor.initialize(s),r||(yield this.paymentIntegrationService.loadDefaultCheckout());const c=iw(r)?void 0:r;iw(r)&&"function"==typeof(null===(t=r.buyNowInitializeOptions)||void 0===t?void 0:t.getBuyNowCartRequestBody)&&(this._buyNowInitializeOptions=r.buyNowInitializeOptions,this.amazonPayV2PaymentProcessor.updateBuyNowFlowFlag(!0)),this.amazonPayV2PaymentProcessor.renderAmazonPayButton({checkoutState:this.paymentIntegrationService.getState(),containerId:i,methodId:n,options:c,placement:Si.Cart,buttonColor:o,isButtonMicroTextDisabled:null==d?void 0:d.isButtonMicroTextDisabled}),this._buyNowInitializeOptions&&this.amazonPayV2PaymentProcessor.prepareCheckoutWithCreationRequestConfig(this._getCheckoutCreationRequestConfig.bind(this))})}deinitialize(){return this.amazonPayV2PaymentProcessor.deinitialize()}_createBuyNowCartOrThrow(){var e,t;return rw(this,void 0,void 0,function*(){const n=null===(t=null===(e=this._buyNowInitializeOptions)||void 0===e?void 0:e.getBuyNowCartRequestBody)||void 0===t?void 0:t.call(e);if(!n)throw new pi(ui.MissingCart);try{return yield this.paymentIntegrationService.createBuyNowCart(n)}catch(e){throw new lr}})}_createCheckoutConfig(e){return rw(this,void 0,void 0,function*(){try{const t=(yield this.amazonPayV2ConfigRequestSender.createCheckoutConfig(e)).body,{payload:n,public_key:i}=t,r=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(t,["payload","public_key"]);return Object.assign({payloadJSON:n,publicKeyId:i},r)}catch(e){throw new nw}})}_getCheckoutCreationRequestConfig(){return rw(this,void 0,void 0,function*(){const e=yield this._createBuyNowCartOrThrow(),t={amount:String(e.baseAmount),currencyCode:e.currency.code};return{createCheckoutSessionConfig:yield this._createCheckoutConfig(e.id),estimatedOrderAmount:t,productType:0===mi(e)?_i.PayOnly:_i.PayAndShip}})}}class aw{constructor(e){this._requestSender=e}createCheckoutConfig(e){const t={cartId:e},n=Object.assign({"X-API-INTERNAL":Cr,"Content-Type":br.Json},Pr);return this._requestSender.post("/api/storefront/payment/amazonpay",{headers:n,body:t})}}const sw=Rt(e=>{const t=n(),i=new aw(t),r=Ai();return new ow(e,r,i)},[{id:"amazonpay"}]);var dw,cw,lw=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};!function(e){e.Subtotal="Subtotal",e.Shipping="Shipping"}(dw||(dw={})),function(e){e.Black="black",e.White="white",e.WhiteBorder="white-border"}(cw||(cw={}));class uw{constructor(e,t,n,i,r){this._requestSender=e,this._paymentIntegrationService=t,this._sessionFactory=n,this._braintreeSdk=i,this._applePayScriptLoader=r,this._onAuthorizeCallback=V,this._subTotalLabel=dw.Subtotal,this._shippingLabel=dw.Shipping}initialize(e){var t,n;return lw(this,void 0,void 0,function*(){const{methodId:i,containerId:r,applepay:o}=e;if(!i||!o)throw new pi(ui.MissingPaymentMethod);yield this._applePayScriptLoader.loadSdk();const{onPaymentAuthorize:a,buyNowInitializeOptions:s,requiresShipping:d}=o;this._requiresShipping=d,this._buyNowInitializeOptions=s,this._onAuthorizeCallback=a,s||(yield this._paymentIntegrationService.loadDefaultCheckout()),yield this._paymentIntegrationService.loadPaymentMethod(i);const c=this._paymentIntegrationService.getState();return this._paymentMethod=c.getPaymentMethodOrThrow(i),c.getCart()&&(yield this._paymentIntegrationService.verifyCheckoutSpamProtection()),(null===(t=this._paymentMethod.initializationData)||void 0===t?void 0:t.gateway)===Xi.BRAINTREE&&(yield this._initializeBraintreeSdk()),this._applePayButton=this._createButton(r,null===(n=this._paymentMethod.initializationData)||void 0===n?void 0:n.styleOption),this._applePayButton.addEventListener("click",this._handleWalletButtonClick.bind(this)),Promise.resolve()})}deinitialize(){return Promise.resolve()}_createButton(e,t){const n=document.getElementById(e);if(!n)throw new ki("Unable to create wallet button without valid container ID.");const i=this._createApplePayButtonElement(t);return n.appendChild(i),i}_createApplePayButtonElement(e){const t=document.createElement("apple-pay-button");return t.setAttribute("buttonstyle",(e=>{switch(e){case cw.White:return"white";case cw.WhiteBorder:return"white-outline";case cw.Black:default:return"black"}})(e)),t.setAttribute("type","plain"),t.setAttribute("style","--apple-pay-button-width: 100%; --apple-pay-button-height: 40px; --apple-pay-button-border-radius: 4px;"),t}_handleWalletButtonClick(e){var t;return lw(this,void 0,void 0,function*(){if(e.preventDefault(),!this._paymentMethod||!this._paymentMethod.initializationData)throw new pi(ui.MissingPaymentMethod);if(this._buyNowInitializeOptions&&"function"==typeof this._buyNowInitializeOptions.getBuyNowCartRequestBody){const{countryCode:e,currencyCode:n,merchantCapabilities:i,supportedNetworks:r,storeName:o}=this._paymentMethod.initializationData,a=this._getRequestWithEmptyTotal(e,n,r,i);this._requiresShipping&&(null===(t=a.requiredShippingContactFields)||void 0===t||t.push("postalAddress"));const s=this._sessionFactory.create(a);this._handleApplePayEvents(s,this._paymentMethod,o),s.begin()}else{const e=this._paymentIntegrationService.getState(),t=e.getCartOrThrow(),n=e.getStoreConfigOrThrow(),i=e.getCheckoutOrThrow(),r=this._getBaseRequest(t,i,n,this._paymentMethod),o=this._sessionFactory.create(r);this._handleApplePayEvents(o,this._paymentMethod,n.storeProfile.storeName),o.begin()}})}_getRequestWithEmptyTotal(e,t,n,i){return{countryCode:e,currencyCode:t,supportedNetworks:n,merchantCapabilities:i,total:{label:"",amount:"0",type:"pending"},requiredBillingContactFields:["postalAddress"],requiredShippingContactFields:["email","phone"]}}_getBaseRequest(e,t,n,i){var r;const{storeProfile:{storeCountryCode:o,storeName:a}}=n,{currency:{code:s,decimalPlaces:d}}=e,{initializationData:{merchantCapabilities:c,supportedNetworks:l}}=i,u=e.lineItems.physicalItems.length>0,h={requiredBillingContactFields:["postalAddress"],requiredShippingContactFields:["email","phone"],countryCode:o,currencyCode:s,merchantCapabilities:c,supportedNetworks:l,lineItems:[],total:u?{label:a,amount:`${t.grandTotal.toFixed(d)}`,type:"pending"}:{label:a,amount:`${t.grandTotal.toFixed(d)}`,type:"final"}};if(u)null===(r=h.requiredShippingContactFields)||void 0===r||r.push("postalAddress");else{const e=[{label:this._subTotalLabel,amount:`${t.subtotal.toFixed(d)}`}];t.taxes.forEach(t=>e.push({label:t.name,amount:`${t.amount.toFixed(d)}`})),h.lineItems=e}return h}_handleApplePayEvents(e,t,n){e.onvalidatemerchant=n=>lw(this,void 0,void 0,function*(){try{const{body:i}=yield this._onValidateMerchant(t,n);e.completeMerchantValidation(i)}catch(e){throw new Error("Merchant validation failed")}}),this._buyNowInitializeOptions&&!this._requiresShipping&&(e.onpaymentmethodselected=()=>lw(this,void 0,void 0,function*(){yield this._createBuyNowCart(),this._handlePaymentMethodSelected(e)})),e.onshippingcontactselected=t=>lw(this,void 0,void 0,function*(){this._buyNowInitializeOptions&&this._requiresShipping&&(yield this._createBuyNowCart()),yield this._handleShippingContactSelected(e,n,t)}),e.onshippingmethodselected=t=>lw(this,void 0,void 0,function*(){yield this._handleShippingMethodSelected(e,n,t)}),e.oncancel=()=>lw(this,void 0,void 0,function*(){try{const e=`/remote-checkout/${t.id}/signout`;return yield this._requestSender.get(e),yield this._paymentIntegrationService.loadCheckout()}catch(e){throw new nr}}),e.onpaymentauthorized=n=>lw(this,void 0,void 0,function*(){return this._onPaymentAuthorized(n,e,t)})}_createBuyNowCart(){var e,t;return lw(this,void 0,void 0,function*(){try{const n=null===(t=null===(e=this._buyNowInitializeOptions)||void 0===e?void 0:e.getBuyNowCartRequestBody)||void 0===t?void 0:t.call(e);if(!n)throw new pi(ui.MissingCart);const i=yield this._paymentIntegrationService.createBuyNowCart(n);yield this._paymentIntegrationService.loadCheckout(i.id);const r=this._paymentIntegrationService.getState(),{shouldExecuteSpamCheck:o}=r.getCheckoutOrThrow();o&&(yield this._paymentIntegrationService.verifyCheckoutSpamProtection())}catch(e){throw new lr}})}_handlePaymentMethodSelected(e){const t=this._paymentIntegrationService.getState(),n=t.getCartOrThrow(),i=t.getStoreConfigOrThrow(),r=t.getCheckoutOrThrow();if(!this._paymentMethod||!this._paymentMethod.initializationData)throw new pi(ui.MissingPaymentMethod);const o=this._getBaseRequest(n,r,i,this._paymentMethod);delete o.total.type,e.completePaymentMethodSelection({newTotal:o.total,newLineItems:o.lineItems})}_handleShippingContactSelected(e,t,n){var i;return lw(this,void 0,void 0,function*(){const r=this._transformContactToAddress(n.shippingContact);try{yield this._paymentIntegrationService.updateShippingAddress(r)}catch(t){throw e.abort(),new Error("Shipping address update failed")}let o=this._paymentIntegrationService.getState();const{currency:{decimalPlaces:a}}=o.getCartOrThrow();let s=o.getCheckoutOrThrow();const d=null===(i=s.consignments[0].selectedShippingOption)||void 0===i?void 0:i.id,c=s.consignments[0].availableShippingOptions,l=null==c?void 0:c.find(({id:e})=>e===d),u=null==c?void 0:c.filter(e=>e.id!==d),h=l?[{label:l.description,amount:`${l.cost.toFixed(a)}`,detail:l.additionalDescription,identifier:l.id}]:[];if(u&&[...u.filter(e=>e.isRecommended),...u.filter(e=>!e.isRecommended)].forEach(e=>h.push({label:e.description,amount:`${e.cost.toFixed(a)}`,detail:e.additionalDescription,identifier:e.id})),!(c instanceof Array))throw new Error("Shipping options not available.");if(0===c.length)return void e.completeShippingContactSelection(ApplePaySession.STATUS_INVALID_SHIPPING_POSTAL_ADDRESS,[],{type:"pending",label:t,amount:`${s.grandTotal.toFixed(a)}`},[]);const p=c.find(e=>e.isRecommended),m=p?p.id:c[0].id,y=l?l.id:m;try{yield this._updateShippingOption(y)}catch(e){throw new Error("Shipping options update failed")}o=this._paymentIntegrationService.getState(),s=o.getCheckoutOrThrow(),e.completeShippingContactSelection({newShippingMethods:h,newTotal:{type:"final",label:t,amount:`${s.grandTotal.toFixed(a)}`},newLineItems:this._getUpdatedLineItems(s,a)})})}_handleShippingMethodSelected(e,t,n){return lw(this,void 0,void 0,function*(){const{shippingMethod:{identifier:i}}=n;try{yield this._updateShippingOption(i)}catch(t){throw e.abort(),new Error("Shipping option selection update failed.")}const r=this._paymentIntegrationService.getState(),{currency:{decimalPlaces:o}}=r.getCartOrThrow(),a=r.getCheckoutOrThrow();e.completeShippingMethodSelection({newTotal:{type:"final",label:t,amount:`${a.grandTotal.toFixed(o)}`},newLineItems:this._getUpdatedLineItems(a,o)})})}_getUpdatedLineItems(e,t){const n=[{label:this._subTotalLabel,amount:`${e.subtotal.toFixed(t)}`}];return e.taxes.forEach(e=>n.push({label:e.name,amount:`${e.amount.toFixed(t)}`})),n.push({label:this._shippingLabel,amount:`${e.shippingCostTotal.toFixed(t)}`}),n}_updateShippingOption(e){return lw(this,void 0,void 0,function*(){return this._paymentIntegrationService.selectShippingOption(e)})}_onValidateMerchant(e,t){return lw(this,void 0,void 0,function*(){const n=[`validationUrl=${t.validationURL}`,`merchantIdentifier=${e.initializationData.merchantId}`,`displayName=${e.initializationData.storeName}`,`domainName=${window.location.hostname}`].join("&");return this._requestSender.post(`${e.initializationData.paymentsUrl}/api/public/v1/payments/applepay/validate_merchant`,{credentials:!1,headers:{Accept:"application/json","Content-Type":"application/x-www-form-urlencoded","X-XSRF-TOKEN":null},body:n})})}_onPaymentAuthorized(e,t,n){var i;return lw(this,void 0,void 0,function*(){const{token:r,billingContact:o,shippingContact:a}=e.payment,s=this._paymentIntegrationService.getState().getCartOrThrow().lineItems.physicalItems.length>0;let d;(null===(i=n.initializationData)||void 0===i?void 0:i.gateway)===Xi.BRAINTREE&&(d=yield this._getBraintreeDeviceData());const c={methodId:n.id,paymentData:{deviceSessionId:d,formattedPayload:{apple_pay_token:{payment_data:r.paymentData,payment_method:r.paymentMethod,transaction_id:r.transactionIdentifier}}}},l=this._transformContactToAddress(o),u=this._transformContactToAddress(a),h=null==a?void 0:a.emailAddress,p=(null==a?void 0:a.phoneNumber)||"";try{return yield this._paymentIntegrationService.updateBillingAddress(Object.assign(Object.assign({},l),{email:h,phone:p})),s&&(yield this._paymentIntegrationService.updateShippingAddress(u)),yield this._paymentIntegrationService.submitOrder({useStoreCredit:!1}),yield this._paymentIntegrationService.submitPayment(c),t.completePayment(ApplePaySession.STATUS_SUCCESS),this._onAuthorizeCallback()}catch(e){throw t.completePayment(ApplePaySession.STATUS_FAILURE),new Error("Payment cannot complete")}})}_transformContactToAddress(e){return{firstName:(null==e?void 0:e.givenName)||"",lastName:(null==e?void 0:e.familyName)||"",city:(null==e?void 0:e.locality)||"",company:"",address1:(null==e?void 0:e.addressLines)&&e.addressLines[0]||"",address2:(null==e?void 0:e.addressLines)&&e.addressLines[1]||"",postalCode:(null==e?void 0:e.postalCode)||"",countryCode:(null==e?void 0:e.countryCode)||"",phone:(null==e?void 0:e.phoneNumber)||"",stateOrProvince:(null==e?void 0:e.administrativeArea)||"",stateOrProvinceCode:(null==e?void 0:e.administrativeArea)||"",customFields:[]}}_getBraintreeDeviceData(){return lw(this,void 0,void 0,function*(){try{const{deviceData:e}=yield this._braintreeSdk.getDataCollectorOrThrow();return e}catch(e){}})}_initializeBraintreeSdk(){return lw(this,void 0,void 0,function*(){yield this._paymentIntegrationService.loadPaymentMethod(Xi.BRAINTREE);const e=this._paymentIntegrationService.getState().getPaymentMethod(Xi.BRAINTREE);e&&e.clientToken&&e.initializationData&&this._braintreeSdk.initialize(e.clientToken)})}}const hw=Rt(e=>{const{getHost:t}=e.getState(),i=new Ri(e);return new uw(n({host:t()}),e,new sr,new Zi(new tr(a(),window,i)),new dr(new r))},[{id:"applepay"}]);var pw=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class mw{constructor(e,t){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t}initialize(e){var t;return pw(this,void 0,void 0,function*(){const{bigcommerce_payments:n,containerId:i,methodId:r}=e,o=Boolean(null==n?void 0:n.buyNowInitializeOptions);if(!r)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!i)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');if(!n)throw new ki('Unable to initialize payment because "options.bigcommerce_payments" argument is not provided.');if(o&&!n.currencyCode)throw new ki('Unable to initialize payment because "options.bigcommerce_payments.currencyCode" argument is not provided.');if(o&&"function"!=typeof(null===(t=n.buyNowInitializeOptions)||void 0===t?void 0:t.getBuyNowCartRequestBody))throw new ki('Unable to initialize payment because "options.bigcommerce_payments.buyNowInitializeOptions.getBuyNowCartRequestBody" argument is not provided or it is not a function.');o||(yield this.paymentIntegrationService.loadDefaultCheckout());const a=o?n.currencyCode:this.paymentIntegrationService.getState().getCartOrThrow().currency.code;yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(r,a,!1),this.renderButton(i,r,n)})}deinitialize(){return Promise.resolve()}renderButton(e,t,n){const{buyNowInitializeOptions:i,style:r,onComplete:o,onEligibilityFailure:a}=n,s=this.bigCommercePaymentsIntegrationService.getPayPalSdkOrThrow(),d=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(t),{isHostedCheckoutEnabled:c}=d.initializationData||{},l={createOrder:()=>this.bigCommercePaymentsIntegrationService.createOrder("bigcommerce_payments"),onApprove:({orderID:e})=>this.bigCommercePaymentsIntegrationService.tokenizePayment(t,e)},u={onClick:()=>this.handleClick(i),onCancel:()=>this.paymentIntegrationService.loadDefaultCheckout()},h={onShippingAddressChange:e=>this.onShippingAddressChange(e),onShippingOptionsChange:e=>this.onShippingOptionsChange(e),onApprove:(e,n)=>this.onHostedCheckoutApprove(e,n,t,o)},p=Object.assign(Object.assign(Object.assign({fundingSource:s.FUNDING.PAYPAL,style:this.bigCommercePaymentsIntegrationService.getValidButtonStyle(r)},l),i&&u),c&&h),m=s.Buttons(p);m.isEligible()?m.render(`#${e}`):a&&"function"==typeof a?a():this.bigCommercePaymentsIntegrationService.removeElement(e)}handleClick(e){return pw(this,void 0,void 0,function*(){if(e){const t=yield this.bigCommercePaymentsIntegrationService.createBuyNowCartOrThrow(e);yield this.paymentIntegrationService.loadCheckout(t.id)}})}onHostedCheckoutApprove(e,t,n,i){return pw(this,void 0,void 0,function*(){if(!e.orderID)throw new pi(ui.MissingOrderId);const r=this.paymentIntegrationService.getState().getCartOrThrow(),o=yield t.order.get();try{const t=this.bigCommercePaymentsIntegrationService.getBillingAddressFromOrderDetails(o);if(yield this.paymentIntegrationService.updateBillingAddress(t),r.lineItems.physicalItems.length>0){const e=this.bigCommercePaymentsIntegrationService.getShippingAddressFromOrderDetails(o);yield this.paymentIntegrationService.updateShippingAddress(e),yield this.bigCommercePaymentsIntegrationService.updateOrder()}return yield this.paymentIntegrationService.submitOrder({},{params:{methodId:n}}),yield this.bigCommercePaymentsIntegrationService.submitPayment(n,e.orderID),i&&"function"==typeof i&&i(),!0}catch(e){if("string"==typeof e)throw new Error(e);throw e}})}onShippingAddressChange(e){return pw(this,void 0,void 0,function*(){const t=this.bigCommercePaymentsIntegrationService.getAddress({city:e.shippingAddress.city,countryCode:e.shippingAddress.countryCode,postalCode:e.shippingAddress.postalCode,stateOrProvinceCode:e.shippingAddress.state});try{yield this.paymentIntegrationService.updateBillingAddress(t),yield this.paymentIntegrationService.updateShippingAddress(t);const e=this.bigCommercePaymentsIntegrationService.getShippingOptionOrThrow();yield this.paymentIntegrationService.selectShippingOption(e.id),yield this.bigCommercePaymentsIntegrationService.updateOrder()}catch(e){if("string"==typeof e)throw new Error(e);throw e}})}onShippingOptionsChange(e){return pw(this,void 0,void 0,function*(){const t=this.bigCommercePaymentsIntegrationService.getShippingOptionOrThrow(e.selectedShippingOption.id);try{yield this.paymentIntegrationService.selectShippingOption(t.id),yield this.bigCommercePaymentsIntegrationService.updateOrder()}catch(e){if("string"==typeof e)throw new Error(e);throw e}})}}const yw=Rt(e=>new mw(e,Tr(e)),[{id:"bigcommerce_payments"}]);var gw=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class vw{constructor(e,t,n){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t,this.payPalSdkHelper=n}initialize(e){return gw(this,void 0,void 0,function*(){const{bigcommerce_payments_paylater:t,containerId:n,methodId:i}=e,{buyNowInitializeOptions:r,currencyCode:o,messagingContainerId:a}=t||{},s=!!r;if(!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!n)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_paylater" argument is not provided.');if(s&&!o)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_paylater.currencyCode" argument is not provided.');if(s&&"function"!=typeof(null==r?void 0:r.getBuyNowCartRequestBody))throw new ki('Unable to initialize payment because "options.bigcommerce_payments_paylater.buyNowInitializeOptions.getBuyNowCartRequestBody" argument is not provided or it is not a function.');s||(yield this.paymentIntegrationService.loadDefaultCheckout());const d=this.paymentIntegrationService.getState(),c=s?o:d.getCartOrThrow().currency.code;yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(i,c,!1),this.renderButton(n,i,t);const l=a&&document.getElementById(a);if(c&&l){const e=d.getPaymentMethodOrThrow(i),{paypalBNPLConfiguration:t=[]}=e.initializationData||{},n=t&&t.find(({id:e})=>"cart"===e);if(!(null==n?void 0:n.status))return;l.removeAttribute("data-pp-style-logo-type"),l.removeAttribute("data-pp-style-logo-position"),l.removeAttribute("data-pp-style-text-color"),l.removeAttribute("data-pp-style-text-size");const r=yield this.payPalSdkHelper.getPayPalMessages(e,c);this.renderMessages(r,a,n)}})}deinitialize(){return Promise.resolve()}renderButton(e,t,n){const{buyNowInitializeOptions:i,style:r,onComplete:o,onEligibilityFailure:a}=n,s=this.bigCommercePaymentsIntegrationService.getPayPalSdkOrThrow(),d=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(t),{isHostedCheckoutEnabled:c}=d.initializationData||{},l={createOrder:()=>this.bigCommercePaymentsIntegrationService.createOrder("bigcommerce_payments_paylater"),onApprove:({orderID:e})=>this.bigCommercePaymentsIntegrationService.tokenizePayment(t,e)},u={onClick:()=>this.handleClick(i),onCancel:()=>this.paymentIntegrationService.loadDefaultCheckout()},h={onShippingAddressChange:e=>this.onShippingAddressChange(e),onShippingOptionsChange:e=>this.onShippingOptionsChange(e),onApprove:(e,n)=>this.onHostedCheckoutApprove(e,n,t,o)},p=[s.FUNDING.PAYLATER,s.FUNDING.CREDIT];let m=!1;p.forEach(t=>{if(!m){const n=Object.assign(Object.assign(Object.assign({fundingSource:t,style:this.bigCommercePaymentsIntegrationService.getValidButtonStyle(r)},l),i&&u),c&&h),o=s.Buttons(n);o.isEligible()?(o.render(`#${e}`),m=!0):a&&"function"==typeof a&&a()}}),m||this.bigCommercePaymentsIntegrationService.removeElement(e)}handleClick(e){return gw(this,void 0,void 0,function*(){if(e){const t=yield this.bigCommercePaymentsIntegrationService.createBuyNowCartOrThrow(e);yield this.paymentIntegrationService.loadCheckout(t.id)}})}onHostedCheckoutApprove(e,t,n,i){return gw(this,void 0,void 0,function*(){if(!e.orderID)throw new pi(ui.MissingOrderId);const r=this.paymentIntegrationService.getState().getCartOrThrow(),o=yield t.order.get();try{const t=this.bigCommercePaymentsIntegrationService.getBillingAddressFromOrderDetails(o);if(yield this.paymentIntegrationService.updateBillingAddress(t),r.lineItems.physicalItems.length>0){const e=this.bigCommercePaymentsIntegrationService.getShippingAddressFromOrderDetails(o);yield this.paymentIntegrationService.updateShippingAddress(e),yield this.bigCommercePaymentsIntegrationService.updateOrder()}return yield this.paymentIntegrationService.submitOrder({},{params:{methodId:n}}),yield this.bigCommercePaymentsIntegrationService.submitPayment(n,e.orderID),i&&"function"==typeof i&&i(),!0}catch(e){if("string"==typeof e)throw new Error(e);throw e}})}onShippingAddressChange(e){return gw(this,void 0,void 0,function*(){const t=this.bigCommercePaymentsIntegrationService.getAddress({city:e.shippingAddress.city,countryCode:e.shippingAddress.countryCode,postalCode:e.shippingAddress.postalCode,stateOrProvinceCode:e.shippingAddress.state});try{yield this.paymentIntegrationService.updateBillingAddress(t),yield this.paymentIntegrationService.updateShippingAddress(t);const e=this.bigCommercePaymentsIntegrationService.getShippingOptionOrThrow();yield this.paymentIntegrationService.selectShippingOption(e.id),yield this.bigCommercePaymentsIntegrationService.updateOrder()}catch(e){if("string"==typeof e)throw new Error(e);throw e}})}onShippingOptionsChange(e){return gw(this,void 0,void 0,function*(){const t=this.bigCommercePaymentsIntegrationService.getShippingOptionOrThrow(e.selectedShippingOption.id);try{yield this.paymentIntegrationService.selectShippingOption(t.id),yield this.bigCommercePaymentsIntegrationService.updateOrder()}catch(e){if("string"==typeof e)throw new Error(e);throw e}})}renderMessages(e,t,n){const i={amount:this.paymentIntegrationService.getState().getCheckoutOrThrow().outstandingBalance,placement:"cart",style:ac(n)};e.Messages(i).render(`#${t}`)}}const fw=Rt(e=>new vw(e,Tr(e),Hr()),[{id:"bigcommerce_payments_paylater"}]);var Sw=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class ww{constructor(e,t){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t}initialize(e){return Sw(this,void 0,void 0,function*(){const{bigcommerce_payments_apms:t,containerId:n,methodId:i}=e,{apm:r,buyNowInitializeOptions:o,currencyCode:a}=t||{},s=!!o;if(!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!n)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_apms" argument is not provided.');if(!r)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_apms.apm" argument is not provided.');if(s&&!a)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_apms.currencyCode" argument is not provided.');if(s&&"function"!=typeof(null==o?void 0:o.getBuyNowCartRequestBody))throw new ki('Unable to initialize payment because "options.bigcommerce_payments_apms.buyNowInitializeOptions.getBuyNowCartRequestBody" argument is not provided or it is not a function.');s||(yield this.paymentIntegrationService.loadDefaultCheckout());const d=s?a:this.paymentIntegrationService.getState().getCartOrThrow().currency.code;yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(i,d,!1),this.renderButton(n,i,t)})}deinitialize(){return Promise.resolve()}renderButton(e,t,n){const{apm:i,buyNowInitializeOptions:r,style:o,onEligibilityFailure:a}=n,s=this.bigCommercePaymentsIntegrationService.getPayPalSdkOrThrow();if(!Object.values(s.FUNDING).includes(i))throw new ki('Unable to initialize PayPal button because "options.bigcommerce_payments_apms.apm" argument is not valid funding source.');const d={createOrder:()=>this.bigCommercePaymentsIntegrationService.createOrder("bigcommerce_payments_apms"),onApprove:({orderID:e})=>this.bigCommercePaymentsIntegrationService.tokenizePayment(t,e)},c={onClick:()=>this.handleClick(r),onCancel:()=>this.paymentIntegrationService.loadDefaultCheckout()},l=Object.assign(Object.assign({fundingSource:i,style:this.bigCommercePaymentsIntegrationService.getValidButtonStyle(o)},d),r&&c),u=s.Buttons(l);u.isEligible()?u.render(`#${e}`):a&&"function"==typeof a?a():this.bigCommercePaymentsIntegrationService.removeElement(e)}handleClick(e){return Sw(this,void 0,void 0,function*(){if(e){const t=yield this.bigCommercePaymentsIntegrationService.createBuyNowCartOrThrow(e);yield this.paymentIntegrationService.loadCheckout(t.id)}})}}const _w=Rt(e=>new ww(e,Tr(e)),[{id:"bigcommerce_payments_apms"}]);var Cw=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Iw{constructor(e,t){this.paymentIntegrationService=e,this.bigCommercePaymentsIntegrationService=t}initialize(e){return Cw(this,void 0,void 0,function*(){const{bigcommerce_payments_venmo:t,containerId:n,methodId:i}=e,{buyNowInitializeOptions:r,currencyCode:o}=t||{},a=!!r;if(!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!n)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_venmo" argument is not provided.');if(a&&!o)throw new ki('Unable to initialize payment because "options.bigcommerce_payments_venmo.currencyCode" argument is not provided.');if(a&&"function"!=typeof(null==r?void 0:r.getBuyNowCartRequestBody))throw new ki('Unable to initialize payment because "options.bigcommerce_payments_venmo.buyNowInitializeOptions.getBuyNowCartRequestBody" argument is not provided or it is not a function.');a||(yield this.paymentIntegrationService.loadDefaultCheckout());const s=a?o:this.paymentIntegrationService.getState().getCartOrThrow().currency.code;yield this.bigCommercePaymentsIntegrationService.loadPayPalSdk(i,s,!1),this.renderButton(n,i,t)})}deinitialize(){return Promise.resolve()}renderButton(e,t,n){const{buyNowInitializeOptions:i,style:r,onEligibilityFailure:o}=n,a=this.bigCommercePaymentsIntegrationService.getPayPalSdkOrThrow(),s=a.FUNDING.VENMO,d={createOrder:()=>this.bigCommercePaymentsIntegrationService.createOrder("bigcommerce_payments_venmo"),onApprove:({orderID:e})=>this.bigCommercePaymentsIntegrationService.tokenizePayment(t,e)},c={onClick:()=>this.handleClick(i),onCancel:()=>this.paymentIntegrationService.loadDefaultCheckout()},l=Object.assign(Object.assign({fundingSource:s,style:this.getValidVenmoButtonStyles(r)},d),i&&c),u=a.Buttons(l);u.isEligible()?u.render(`#${e}`):o&&"function"==typeof o?o():this.bigCommercePaymentsIntegrationService.removeElement(e)}getValidVenmoButtonStyles(e){const t=this.bigCommercePaymentsIntegrationService.getValidButtonStyle(e);return t.color===gr.gold?Object.assign(Object.assign({},t),{color:void 0}):t}handleClick(e){return Cw(this,void 0,void 0,function*(){if(e){const t=yield this.bigCommercePaymentsIntegrationService.createBuyNowCartOrThrow(e);yield this.paymentIntegrationService.loadCheckout(t.id)}})}}const bw=Rt(e=>new Iw(e,Tr(e)),[{id:"bigcommerce_payments_venmo"}]);class Pw{constructor(e,t,n=window){this.paymentIntegrationService=e,this.boltScriptLoader=t,this.boltHostWindow=n}initialize(e){return t=this,n=void 0,r=function*(){const{bolt:t,containerId:n,methodId:i}=e,{buyNowInitializeOptions:r,style:o}=t||{};if(!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!n)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.bolt" argument is not provided.');if(!Boolean(r))throw new Ti("Only buy now flow is implemented for Bolt button");if(!(null==r?void 0:r.storefrontApiToken)||"string"!=typeof r.storefrontApiToken)throw new ki('Unable to initialize payment because "options.storefrontApiToken" argument is not provided.');const a=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(i),{initializationData:s,config:d}=a,{publishableKey:c,developerConfig:l}=s||{};yield this.boltScriptLoader.loadBoltClient(c,d.testMode,l,"BigCommerce",r.storefrontApiToken),this.renderButton(n,a,o)},new((i=void 0)||(i=Promise))(function(e,o){function a(e){try{d(r.next(e))}catch(e){o(e)}}function s(e){try{d(r.throw(e))}catch(e){o(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((r=r.apply(t,n||[])).next())});var t,n,i,r}deinitialize(){return Promise.resolve()}renderButton(e,t,n){var i;"function"==typeof(null===(i=this.boltHostWindow.BoltConnect)||void 0===i?void 0:i.setupProductPageCheckout)&&(this.addButtonContainer(e,t,n),this.boltHostWindow.BoltConnect.setupProductPageCheckout())}addButtonContainer(e,t,n){const i=document.getElementById(e);if(!i)return;const r=document.createElement("div"),o=document.createElement("object");r.setAttribute("id","product-page-checkout-wrapper"),r.setAttribute("class","bolt-button-wrapper"),r.setAttribute("style","display:none"),r.setAttribute("data-tid","product-page-checkout-wrapper"),o.setAttribute("data",this.getBoltObjectData(t,n)),o.setAttribute("class","bolt-product-checkout-button"),r.append(o),i.innerHTML="",i.append(r)}getBoltObjectData(e,t){const{initializationData:n,config:i}=e,{publishableKey:r,developerConfig:o}=n||{},a=this.boltScriptLoader.getDomainURL(!!i.testMode,o),s=this.getButtonHeight(null==t?void 0:t.size),d=this.getButtonBorderRadius(null==t?void 0:t.shape,s);return xe({url:`https://${a}/v1/checkout_button`,query:{publishable_key:r,variant:"ppc",height:s,border_radius:d}})}getButtonHeight(e){if(e)switch(e){case uo.Small:return 25;case uo.Large:return 45;case uo.Medium:default:return 40}}getButtonBorderRadius(e,t){if(e)switch(e){case ho.Pill:return t?Math.round(t/2):void 0;case ho.Rect:default:return 4}}}const Ow=Rt(e=>new Pw(e,new go(a())),[{id:"bolt"}]);function Ew(e){const{color:t,fundingicons:n,height:i=40,layout:r,shape:o,size:a,tagline:s}=e||{},d={color:t,fundingicons:n,height:Aw(i),layout:r,shape:o||"rect",size:a,tagline:s};return H(d,T)}function Aw(e){const t=Number(e);return!t||Number.isNaN(t)?40:t>55?55:t<25?25:t}var kw=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Tw{constructor(e,t,n,i){this.paymentIntegrationService=e,this.formPoster=t,this.braintreeIntegrationService=n,this.braintreeHostWindow=i}initialize(e){return kw(this,void 0,void 0,function*(){const{braintreepaypal:t,containerId:n,methodId:i}=e;if(!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!n)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.braintreepaypal" argument is not provided.');let r,o=this.paymentIntegrationService.getState();if(t.buyNowInitializeOptions){if(!t.currencyCode)throw new ki('Unable to initialize payment because "options.braintreepaypalcredit.currencyCode" argument is not provided.');r=t.currencyCode}else yield this.paymentIntegrationService.loadDefaultCheckout(),o=this.paymentIntegrationService.getState(),r=o.getCartOrThrow().currency.code;const a=o.getPaymentMethodOrThrow(i),{clientToken:s,config:d,initializationData:c}=a;if(!s||!c)throw new pi(ui.MissingPaymentMethod);const l={currency:r,intent:c.intent,isCreditEnabled:c.isCreditEnabled};this.braintreeIntegrationService.initialize(s),yield this.braintreeIntegrationService.getPaypalCheckout(l,e=>{this.renderPayPalButton(e,t,n,i,!!d.testMode)},e=>this.handleError(e,n,t.onError))})}deinitialize(){return kw(this,void 0,void 0,function*(){yield this.braintreeIntegrationService.teardown()})}renderPayPalButton(e,t,n,i,r){const{style:o,shouldProcessPayment:a,onAuthorizeError:s,onEligibilityFailure:d}=t,{paypal:c}=this.braintreeHostWindow;if(c){const l=c.Buttons({env:r?"sandbox":"production",fundingSource:c.FUNDING.PAYPAL,style:Ew(o),createOrder:()=>this.setupPayment(e,t,i),onApprove:t=>this.tokenizePayment(t,e,i,a,s)});l.isEligible()?l.render(`#${n}`):d&&"function"==typeof d&&d()}else this.braintreeIntegrationService.removeElement(n)}setupPayment(e,t,n){var i;return kw(this,void 0,void 0,function*(){const{onPaymentError:r,shippingAddress:o,buyNowInitializeOptions:a}=t;try{const r="function"==typeof(null==a?void 0:a.getBuyNowCartRequestBody)?yield this.createBuyNowCart(a.getBuyNowCartRequestBody()):void 0;this.buyNowCartId=null==r?void 0:r.id;const s=this.paymentIntegrationService.getState(),d=s.getCustomer(),c=s.getPaymentMethodOrThrow(n),l=r?r.cartAmount:s.getCartOrThrow().cartAmount,u=r?t.currencyCode:s.getCartOrThrow().currency.code,h=o||(null==d?void 0:d.addresses[0]),p=h?pl(h):void 0;return yield e.createPayment({flow:"checkout",enableShippingAddress:!0,shippingAddressEditable:!1,shippingAddressOverride:p,amount:l,currency:u,offerCredit:!1,intent:null===(i=c.initializationData)||void 0===i?void 0:i.intent})}catch(e){throw r&&($i(e)||e instanceof li)&&r(e),e}})}tokenizePayment(e,t,n,i,r){return kw(this,void 0,void 0,function*(){try{const{deviceData:r}=yield this.braintreeIntegrationService.getDataCollector({paypal:!0}),o=yield t.tokenizePayment(e),{details:a,nonce:s}=o,d=this.braintreeIntegrationService.mapToLegacyBillingAddress(a),c=this.braintreeIntegrationService.mapToLegacyShippingAddress(a);return this.formPoster.postForm("/checkout.php",Object.assign({payment_type:"paypal",provider:n,action:i?"process_payment":"set_external_checkout",nonce:s,device_data:r,billing_address:JSON.stringify(d),shipping_address:JSON.stringify(c)},this.buyNowCartId&&{cart_id:this.buyNowCartId})),o}catch(e){throw r&&($i(e)||e instanceof li)&&r(e),e}})}createBuyNowCart(e){return kw(this,void 0,void 0,function*(){if(!e)throw new pi(ui.MissingCart);try{return yield this.paymentIntegrationService.createBuyNowCart(e)}catch(e){throw new lr}})}handleError(e,t,n){if(this.braintreeIntegrationService.removeElement(t),!n||!$i(e))throw e;n(e)}}const Dw=Rt(e=>{const t=window,n=new Ri(e),i=new Ao(new tr(a(),t,n),t);return new Tw(e,Ee(),i,t)},[{id:"braintreepaypal"}]);var Mw=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class zw{constructor(e,t,n,i,r){this.paymentIntegrationService=e,this.formPoster=t,this.braintreeIntegrationService=n,this.braintreeMessages=i,this.braintreeHostWindow=r}initialize(e){var t,n;return Mw(this,void 0,void 0,function*(){const{braintreepaypalcredit:i,containerId:r,methodId:o}=e;if(!o)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!r)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');if(!i)throw new ki('Unable to initialize payment because "options.braintreepaypalcredit" argument is not provided.');let a,s=this.paymentIntegrationService.getState();if(i.buyNowInitializeOptions){if(!i.currencyCode)throw new ki('Unable to initialize payment because "options.braintreepaypalcredit.currencyCode" argument is not provided.');a=i.currencyCode}else yield this.paymentIntegrationService.loadDefaultCheckout(),s=this.paymentIntegrationService.getState(),a=s.getCartOrThrow().currency.code;const d=s.getPaymentMethodOrThrow(o),{clientToken:c,config:l,initializationData:u}=d;if(!c||!u)throw new pi(ui.MissingPaymentMethod);const h={currency:a,intent:u.intent,isCreditEnabled:u.isCreditEnabled},p=Wt(null!==(n=null===(t=s.getStoreConfig())||void 0===t?void 0:t.checkoutSettings.features)&&void 0!==n?n:{},"PAYPAL-5663.hide_braintree_card_banner_implementation_in_checkout_sdk");this.braintreeIntegrationService.initialize(c),yield this.braintreeIntegrationService.getPaypalCheckout(h,e=>{!p&&i.messagingContainerId&&this.renderPayPalMessages(o,i.messagingContainerId),this.renderPayPalButton(e,i,r,o,!!l.testMode)},e=>this.handleError(e,r,i.onError))})}deinitialize(){return Mw(this,void 0,void 0,function*(){yield this.braintreeIntegrationService.teardown()})}renderPayPalMessages(e,t){this.braintreeMessages.render(e,t,Oo.CART)}renderPayPalButton(e,t,n,i,r){const{style:o,shouldProcessPayment:a,onAuthorizeError:s,onEligibilityFailure:d}=t,{paypal:c}=this.braintreeHostWindow;let l=!1;c&&[c.FUNDING.PAYLATER,c.FUNDING.CREDIT].forEach(u=>{const h=u===c.FUNDING.CREDIT?Object.assign({label:bo.CREDIT},Ew(o)):Ew(o);if(!l){const o=c.Buttons({env:r?"sandbox":"production",fundingSource:u,style:h,createOrder:()=>this.setupPayment(e,t,i),onApprove:t=>this.tokenizePayment(t,e,i,a,s)});o.isEligible()?(o.render(`#${n}`),l=!0):c.FUNDING.CREDIT&&d&&"function"==typeof d&&d()}}),c&&l||this.braintreeIntegrationService.removeElement(n)}setupPayment(e,t,n){var i;return Mw(this,void 0,void 0,function*(){const{onPaymentError:r,shippingAddress:o,buyNowInitializeOptions:a}=t;try{const r="function"==typeof(null==a?void 0:a.getBuyNowCartRequestBody)?yield this.createBuyNowCart(a.getBuyNowCartRequestBody()):void 0;this.buyNowCartId=null==r?void 0:r.id;const s=this.paymentIntegrationService.getState(),d=s.getCustomer(),c=s.getPaymentMethodOrThrow(n),l=r?r.cartAmount:s.getCartOrThrow().cartAmount,u=r?t.currencyCode:s.getCartOrThrow().currency.code,h=o||(null==d?void 0:d.addresses[0]),p=h?pl(h):void 0;return yield e.createPayment({flow:"checkout",enableShippingAddress:!0,shippingAddressEditable:!1,shippingAddressOverride:p,amount:l,currency:u,offerCredit:!0,intent:null===(i=c.initializationData)||void 0===i?void 0:i.intent})}catch(e){throw r&&($i(e)||e instanceof li)&&r(e),e}})}tokenizePayment(e,t,n,i,r){return Mw(this,void 0,void 0,function*(){try{const{deviceData:r}=yield this.braintreeIntegrationService.getDataCollector({paypal:!0}),o=yield t.tokenizePayment(e),{details:a,nonce:s}=o,d=this.braintreeIntegrationService.mapToLegacyBillingAddress(a),c=this.braintreeIntegrationService.mapToLegacyShippingAddress(a);return this.formPoster.postForm("/checkout.php",Object.assign({payment_type:"paypal",provider:n,action:i?"process_payment":"set_external_checkout",nonce:s,device_data:r,billing_address:JSON.stringify(d),shipping_address:JSON.stringify(c)},this.buyNowCartId&&{cart_id:this.buyNowCartId})),o}catch(e){throw r&&($i(e)||e instanceof li)&&r(e),e}})}createBuyNowCart(e){return Mw(this,void 0,void 0,function*(){if(!e)throw new pi(ui.MissingCart);try{return yield this.paymentIntegrationService.createBuyNowCart(e)}catch(e){throw new lr}})}handleError(e,t,n){if(this.braintreeIntegrationService.removeElement(t),!n||!$i(e))throw e;n(e)}}const Nw=Rt(e=>{const t=window,n=new Ri(e),i=new Ao(new tr(a(),t,n),t),r=new cl(e);return new zw(e,Ee(),i,r,t)},[{id:"braintreepaypalcredit"}]);var xw=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Fw{constructor(e,t,n){this.paymentIntegrationService=e,this.formPoster=t,this.braintreeSdk=n}initialize(e){return xw(this,void 0,void 0,function*(){const{containerId:t,methodId:n}=e;if(!n)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');yield this.paymentIntegrationService.loadPaymentMethod(n);const i=this.paymentIntegrationService.getState(),{clientToken:r,initializationData:o,config:a}=i.getPaymentMethodOrThrow(n);if(!r||!o)throw new pi(ui.MissingPaymentMethod);this.braintreeSdk.initialize(r);const s=yield this.braintreeSdk.getBraintreeVisaCheckout(),{currency:{code:d},cartAmount:c}=i.getCartOrThrow(),l=yield this.braintreeSdk.getVisaCheckoutSdk(a.testMode),u=s.createInitOptions({paymentRequest:{currencyCode:d,subtotal:String(c)},settings:{shipping:{collectShipping:!0}}});this.createSignInButton(t),yield l.init(u),l.on("payment.success",e=>xw(this,void 0,void 0,function*(){yield this.paymentSuccess(s,e)}))})}deinitialize(){return Promise.resolve()}paymentSuccess(e,t){return xw(this,void 0,void 0,function*(){return Promise.all([e.tokenize(t),this.braintreeSdk.getDataCollectorOrThrow()]).then(([e,t])=>{const n=this.paymentIntegrationService.getState(),i=n.getShippingAddress(),r=n.getBillingAddress(),{shippingAddress:o=this.toVisaCheckoutAddress(i),billingAddress:a=this.toVisaCheckoutAddress(r)}=e;return this.postForm(Object.assign(Object.assign({},e),{shippingAddress:o,billingAddress:a}),t)})})}postForm(e,t){const{userData:n,billingAddress:i,shippingAddress:r,details:o}=e,{userEmail:a}=n,{deviceData:s}=t;return this.formPoster.postForm("/checkout.php",{payment_type:e.type,nonce:e.nonce,provider:"braintreevisacheckout",action:"set_external_checkout",device_data:s,card_information:JSON.stringify({type:o.cardType,number:o.lastTwo}),billing_address:JSON.stringify(this.getAddress(a,i)),shipping_address:JSON.stringify(this.getAddress(a,r))})}toVisaCheckoutAddress(e){return e?{firstName:e.firstName,lastName:e.lastName,phoneNumber:e.phone,streetAddress:e.address1,extendedAddress:e.address2,locality:e.city,region:e.stateOrProvinceCode,countryCode:e.countryCode,postalCode:e.postalCode}:{}}getAddress(e,t={}){return{email:e,first_name:t.firstName,last_name:t.lastName,phone_number:t.phoneNumber,address_line_1:t.streetAddress,address_line_2:t.extendedAddress,city:t.locality,state:t.region,country_code:t.countryCode,postal_code:t.postalCode}}createSignInButton(e){const t=document.querySelector(`#${e}`);if(!t)throw new Error("Need a container to place the button");return this.insertVisaCheckoutButton(t)}insertVisaCheckoutButton(e){const t=document.createElement("div");return t.style.display="flex",t.style.flexDirection="column",t.style.alignItems="flex-end",t.innerHTML='\n <img\n alt="Visa Checkout"\n class="v-button"\n role="button"\n src="https://secure.checkout.visa.com/wallet-services-web/xo/button.png?acceptCanadianVisaDebit=false&cobrand=true&height=34&width=178"\n />\n <a class="v-learn v-learn-default" style="text-align: right; display: block; font-size: 10px; color: #003366;" href="#" data-locale="en_US">Tell Me More</a>',e.appendChild(t),t}}const Rw=Rt(e=>{const t=window,n=new Ri(e),i=new Zi(new tr(a(),t,n));return new Fw(e,Ee(),i)},[{id:"braintreevisacheckout"}]);function Lw(e){const{billingAddress:t,email:n,firstName:i,lastName:r,phone:o,shippingAddress:a}=e,s=t||a;return{email:n,first_name:i,last_name:r,phone_number:o,address_line_1:null==s?void 0:s.line1,address_line_2:null==s?void 0:s.line2,city:null==s?void 0:s.city,state:null==s?void 0:s.state,country_code:null==s?void 0:s.countryCode,postal_code:null==s?void 0:s.postalCode}}function Bw(e){const{email:t,phone:n,shippingAddress:i}=e,r=(null==i?void 0:i.recipientName)||"",[o,a]=r.split(" ");return{email:t,first_name:o||"",last_name:a||"",phone_number:n,address_line_1:null==i?void 0:i.line1,address_line_2:null==i?void 0:i.line2,city:null==i?void 0:i.city,state:null==i?void 0:i.state,country_code:null==i?void 0:i.countryCode,postal_code:null==i?void 0:i.postalCode}}var jw=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};const Uw=e=>{const{color:t,height:n}=e;return{backgroundColor:(i=t||"",i===Io.WHITE?"#FFFFFF":"#3D95CE"),backgroundPosition:"50% 50%",backgroundSize:"80px auto",backgroundImage:`url("/app/assets/img/payment-providers/venmo-logo-${t===Io.WHITE?Io.BLUE:Io.WHITE}.svg")`,backgroundRepeat:"no-repeat",borderRadius:"4px",cursor:"pointer",transition:"0.2s ease",minHeight:`${n||40}px`,minWidth:"150px",height:"100%",width:"100%",border:t===Io.WHITE?"1px solid black":"none"};var i};class qw{constructor(e,t,n){this.paymentIntegrationService=e,this.formPoster=t,this.braintreeSdk=n,this.onError=V}initialize(e){return jw(this,void 0,void 0,function*(){const{braintreevenmo:t,containerId:n,methodId:i}=e;if(!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');const r=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(i),{clientToken:o,initializationData:a}=r,{paymentButtonStyles:s}=a,{cartButtonStyles:d}=s||{},c=(null==t?void 0:t.style)||d;if(!o||!a)throw new pi(ui.MissingPaymentMethod);if(!n)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');yield this.paymentIntegrationService.loadDefaultCheckout(),this.onError=(null==t?void 0:t.onError)||this.handleError,this.braintreeSdk.initialize(o);try{const e=yield this.braintreeSdk.getVenmoCheckoutOrThrow();this.renderVenmoButton(e,n,null==t?void 0:t.buyNowInitializeOptions,c)}catch(e){(hl(e)||function(e){return e instanceof Li}(e))&&this.handleInitializationVenmoError(e,n)}})}deinitialize(){return jw(this,void 0,void 0,function*(){return yield this.braintreeSdk.deinitialize(),Promise.resolve()})}handleError(e){throw new Error(e.message)}createBuyNowCart(e){return jw(this,void 0,void 0,function*(){if("function"==typeof(null==e?void 0:e.getBuyNowCartRequestBody)){const t=null==e?void 0:e.getBuyNowCartRequestBody();if(!t)throw new pi(ui.MissingCart);try{return yield this.paymentIntegrationService.createBuyNowCart(t)}catch(e){throw new lr}}})}handleInitializationVenmoError(e,t){return this.removeVenmoContainer(t),this.onError(e)}removeVenmoContainer(e){const t=document.getElementById(e);t&&t.remove()}renderVenmoButton(e,t,n,i){const r=document.getElementById(t),{color:o}=i||{};if(!r)throw new ki("Unable to create wallet button without valid container ID.");r.setAttribute("aria-label","Venmo"),Object.assign(r.style,Uw(i||{})),r.addEventListener("click",()=>jw(this,void 0,void 0,function*(){r.setAttribute("disabled","true");const t=yield this.createBuyNowCart(n);e.tokenize&&e.tokenize((e,n)=>jw(this,void 0,void 0,function*(){r.removeAttribute("disabled"),e&&this.onError(e),yield this.handlePostForm(n,null==t?void 0:t.id)}))})),o===Io.BLUE&&(r.addEventListener("mouseenter",()=>{r.style.backgroundColor="#0a7fc2"}),r.addEventListener("mouseleave",()=>{r.style.backgroundColor=Uw(i||{}).backgroundColor}))}handlePostForm(e,t){return jw(this,void 0,void 0,function*(){const{deviceData:n}=yield this.braintreeSdk.getDataCollectorOrThrow(),{nonce:i,details:r}=e;this.formPoster.postForm("/checkout.php",Object.assign({nonce:i,provider:"braintreevenmo",payment_type:"paypal",device_data:n,action:"set_external_checkout",billing_address:JSON.stringify(Lw(r)),shipping_address:JSON.stringify(Bw(r))},t&&{cart_id:t}))})}}const Vw=Rt(e=>{const t=window,n=a(),i=new Ri(e),r=new tr(n,t,i),o=new Zi(r);return new qw(e,Ee(),o)},[{id:"braintreevenmo"}]);var Gw=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class Hw{constructor(e,t){this._paymentIntegrationService=e,this._googlePayPaymentProcessor=t}initialize(e){var t,n;return Gw(this,void 0,void 0,function*(){if(!e.methodId||!ca(e.methodId))throw new ki('Unable to proceed because "methodId" is not a valid key.');if(this._methodId=e.methodId,!e.containerId)throw new ki('Unable to proceed because "containerId" is not a valid key.');const i=e[this._getMethodOrThrow()];if(!i)throw new ki("Unable to proceed without valid options.");const{buyNowInitializeOptions:r,currencyCode:o,buttonColor:a,buttonType:s,onError:d}=i;let c,l=this._paymentIntegrationService.getState();try{c=l.getPaymentMethodOrThrow(this._getMethodOrThrow())}catch(e){l=yield this._paymentIntegrationService.loadPaymentMethod(this._getMethodOrThrow()),c=l.getPaymentMethodOrThrow(this._getMethodOrThrow())}if(this._countryCode=null===(t=c.initializationData)||void 0===t?void 0:t.storeCountry,r){if(!o)throw new ki('Unable to initialize payment because "options.currencyCode" argument is not provided.');this._currencyCode=o,this._buyNowInitializeOptions=r,yield this._googlePayPaymentProcessor.initialize(()=>c,this._getGooglePayClientOptions(),!!r,o)}else yield this._paymentIntegrationService.loadDefaultCheckout(),yield this._googlePayPaymentProcessor.initialize(()=>c,this._getGooglePayClientOptions());this._paymentButton=null!==(n=this._paymentButton)&&void 0!==n?n:this._googlePayPaymentProcessor.addPaymentButton(e.containerId,{buttonColor:null!=a?a:"default",buttonType:null!=s?s:"plain",onClick:this._handleClick(d)})})}deinitialize(){var e;return null===(e=this._paymentButton)||void 0===e||e.remove(),this._paymentButton=void 0,this._methodId=void 0,Promise.resolve()}_handleClick(e){return t=>Gw(this,void 0,void 0,function*(){t.preventDefault();try{this._buyNowInitializeOptions?yield this._createBuyNowCartOrThrow(this._buyNowInitializeOptions):yield this._paymentIntegrationService.loadDefaultCheckout(),yield this._googlePayPaymentProcessor.initializeWidget(),yield this._interactWithPaymentSheet()}catch(t){let n=t;if(da(t)){if("CANCELED"===t.statusCode)throw new nr;n=new so(JSON.stringify(t))}throw null==e||e(new so("An error occurred while requesting your Google Pay payment details.")),n}})}_interactWithPaymentSheet(){var e;return Gw(this,void 0,void 0,function*(){const t=yield this._googlePayPaymentProcessor.showPaymentSheet(),n=this._googlePayPaymentProcessor.mapToBillingAddressRequestBody(t),i=this._googlePayPaymentProcessor.mapToShippingAddressRequestBody(t),r="/embedded-checkout"===window.location.pathname?this._paymentIntegrationService.getState().getStoreConfigOrThrow().links.siteLink:void 0;n&&(yield this._paymentIntegrationService.updateBillingAddress(n)),i&&!(null===(e=this._buyNowCart)||void 0===e?void 0:e.lineItems.digitalItems.length)&&(yield this._paymentIntegrationService.updateShippingAddress(i)),yield this._googlePayPaymentProcessor.setExternalCheckoutForm(this._getMethodOrThrow(),t,r)})}_getGooglePayClientOptions(){return{paymentDataCallbacks:{onPaymentDataChanged:({callbackTrigger:e,shippingAddress:t,shippingOptionData:n,offerData:i})=>Gw(this,void 0,void 0,function*(){const{availableTriggers:r,addressChangeTriggers:o,shippingOptionsChangeTriggers:a,offerChangeTriggers:s}=this._googlePayPaymentProcessor.getCallbackTriggers();if(!r.includes(e))return;const d=o.includes(e)?yield this._googlePayPaymentProcessor.handleShippingAddressChange(t):void 0;a.includes(e)&&(yield this._googlePayPaymentProcessor.handleShippingOptionChange(n.id));const{newOfferInfo:c,error:l}=s.includes(e)?yield this._googlePayPaymentProcessor.handleCoupons(i):{},u=l;return this._buyNowInitializeOptions?this._getBuyNowTransactionInfo(d,c,u):this._getTransactionInfo(d,c,u)})}}}_createBuyNowCartOrThrow(e){return Gw(this,void 0,void 0,function*(){if("function"==typeof(null==e?void 0:e.getBuyNowCartRequestBody)){const t=e.getBuyNowCartRequestBody();try{this._buyNowCart=yield this._paymentIntegrationService.createBuyNowCart(t),yield this._paymentIntegrationService.loadCheckout(this._buyNowCart.id)}catch(e){if("string"==typeof e)throw new lr(e);throw e}}})}_getBuyNowTransactionInfo(e,t,n){if(!this._buyNowCart)return;const{cartAmount:i}=this._buyNowCart,r=this._googlePayPaymentProcessor.getTotalPrice();return Object.assign(Object.assign(Object.assign({newTransactionInfo:Object.assign(Object.assign({},this._countryCode&&{countryCode:this._countryCode}),{currencyCode:this._getCurrencyCodeOrThrow(),totalPrice:r||String(i),totalPriceStatus:Xo.FINAL})},e&&{newShippingOptionParameters:e}),t&&{newOfferInfo:t}),n&&{error:n})}_getTransactionInfo(e,t,n){return Gw(this,void 0,void 0,function*(){yield this._paymentIntegrationService.loadCheckout();const i=this._googlePayPaymentProcessor.getTotalPrice(),{code:r}=this._paymentIntegrationService.getState().getCartOrThrow().currency;return Object.assign(Object.assign(Object.assign({newTransactionInfo:Object.assign(Object.assign({},this._countryCode&&{countryCode:this._countryCode}),{currencyCode:r,totalPriceStatus:Xo.FINAL,totalPrice:i})},e&&{newShippingOptionParameters:e}),t&&{newOfferInfo:t}),n&&{error:n})})}_getMethodOrThrow(){return yi(this._methodId,()=>new gi(hi.PaymentNotInitialized))}_getCurrencyCodeOrThrow(){return yi(this._currencyCode,()=>new ki('Unable to initialize payment because "options.currencyCode" argument is not provided.'))}}const $w=Rt(e=>{const t=n(),i=window,r=new Ri(e),o=new Zi(new tr(a(),i,r));return new Hw(e,new pa(ya(),new ja(e,o),t,Ee()))},[{id:"googlepaybraintree"}]),Ww=Rt(e=>new Hw(e,new pa(ya(),new $a(e,new Va(a())),n(),Ee())),[{id:"googlepaypaypalcommerce"}]),Yw=Rt(e=>new Hw(e,new pa(ya(),new Ka(e,new Gr(a())),n(),Ee())),[{id:"googlepay_bigcommerce_payments"}]),Kw=Rt(e=>{const t=n();return new Hw(e,new pa(ya(),new sa("adyen",e),t,Ee()))},[{id:"googlepayadyenv2"}]),Jw=Rt(e=>{const t=n();return new Hw(e,new pa(ya(),new sa("adyen",e),t,Ee()))},[{id:"googlepayadyenv3"}]),Zw=Rt(e=>new Hw(e,new pa(ya(),new fa(e),n(),Ee())),[{id:"googlepayauthorizenet"}]),Qw=Rt(e=>{const t=n();return new Hw(e,new pa(ya(),new Ia(e,t),t,Ee()))},[{id:"googlepaycheckoutcom"}]),Xw=Rt(e=>new Hw(e,new pa(ya(),new Pa(e),n(),Ee())),[{id:"googlepaycybersourcev2"},{id:"googlepaybnz"}]),e_=Rt(e=>new Hw(e,new pa(ya(),new Aa(e),n(),Ee())),[{id:"googlepayorbital"}]),t_=Rt(e=>new Hw(e,new pa(ya(),new Ma(e,new Na(a())),n(),Ee())),[{id:"googlepaystripe"},{id:"googlepaystripeupe"},{id:"googlepaystripeocs"}]),n_=Rt(e=>new Hw(e,new pa(ya(),new Ra(e),n(),Ee())),[{id:"googlepayworldpayaccess"}]),i_=Rt(e=>new Hw(e,new pa(ya(),new Xa(e,Ee()),n(),Ee())),[{id:"googlepaytdonlinemart"}]);var r_=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class o_{constructor(e,t){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t}initialize(e){var t;return r_(this,void 0,void 0,function*(){const{paypalcommerce:n,containerId:i,methodId:r}=e,o=Boolean(null==n?void 0:n.buyNowInitializeOptions);if(!r)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!i)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');if(!n)throw new ki('Unable to initialize payment because "options.paypalcommerce" argument is not provided.');if(o&&!n.currencyCode)throw new ki('Unable to initialize payment because "options.paypalcommerce.currencyCode" argument is not provided.');if(o&&"function"!=typeof(null===(t=n.buyNowInitializeOptions)||void 0===t?void 0:t.getBuyNowCartRequestBody))throw new ki('Unable to initialize payment because "options.paypalcommerce.buyNowInitializeOptions.getBuyNowCartRequestBody" argument is not provided or it is not a function.');o||(yield this.paymentIntegrationService.loadDefaultCheckout());const a=o?n.currencyCode:this.paymentIntegrationService.getState().getCartOrThrow().currency.code;yield this.paypalCommerceIntegrationService.loadPayPalSdk(r,a,!1),this.renderButton(i,r,n,o)})}deinitialize(){return Promise.resolve()}renderButton(e,t,n,i){var r,o;const{buyNowInitializeOptions:a,style:s,onComplete:d,onEligibilityFailure:c}=n,l=this.paypalCommerceIntegrationService.getPayPalSdkOrThrow(),u=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(t),{isHostedCheckoutEnabled:h,isAppSwitchEnabled:p}=u.initializationData||{},m=Object.assign(Object.assign({},!i&&this.isPaypalCommerceAppSwitchEnabled(t)&&{appSwitchWhenAvailable:!0}),{createOrder:()=>this.paypalCommerceIntegrationService.createOrder("paypalcommerce"),onApprove:({orderID:e})=>this.paypalCommerceIntegrationService.tokenizePayment(t,e)}),y={onClick:()=>this.handleClick(a),onCancel:()=>this.paymentIntegrationService.loadDefaultCheckout()},g=Object.assign(Object.assign({},!p&&{onShippingAddressChange:e=>this.onShippingAddressChange(e),onShippingOptionsChange:e=>this.onShippingOptionsChange(e)}),{onApprove:(e,n)=>this.onHostedCheckoutApprove(e,n,t,d)}),v=Object.assign(Object.assign(Object.assign({fundingSource:l.FUNDING.PAYPAL,style:this.paypalCommerceIntegrationService.getValidButtonStyle(s)},m),a&&y),h&&g),f=l.Buttons(v);f.isEligible()?(null===(r=f.hasReturned)||void 0===r?void 0:r.call(f))&&this.isPaypalCommerceAppSwitchEnabled(t)?null===(o=f.resume)||void 0===o||o.call(f):f.render(`#${e}`):c&&"function"==typeof c?c():this.paypalCommerceIntegrationService.removeElement(e)}handleClick(e){return r_(this,void 0,void 0,function*(){if(e){const t=yield this.paypalCommerceIntegrationService.createBuyNowCartOrThrow(e);yield this.paymentIntegrationService.loadCheckout(t.id)}})}onHostedCheckoutApprove(e,t,n,i){return r_(this,void 0,void 0,function*(){if(!e.orderID)throw new pi(ui.MissingOrderId);const r=this.paymentIntegrationService.getState().getCartOrThrow(),o=yield t.order.get();try{const t=this.paypalCommerceIntegrationService.getBillingAddressFromOrderDetails(o);if(yield this.paymentIntegrationService.updateBillingAddress(t),r.lineItems.physicalItems.length>0){const e=this.paypalCommerceIntegrationService.getShippingAddressFromOrderDetails(o);yield this.paymentIntegrationService.updateShippingAddress(e),yield this.paypalCommerceIntegrationService.updateOrder()}return yield this.paymentIntegrationService.submitOrder({},{params:{methodId:n}}),yield this.paypalCommerceIntegrationService.submitPayment(n,e.orderID),i&&"function"==typeof i&&i(),!0}catch(e){if("string"==typeof e)throw new Error(e);throw e}})}onShippingAddressChange(e){return r_(this,void 0,void 0,function*(){const t=this.paypalCommerceIntegrationService.getAddress({city:e.shippingAddress.city,countryCode:e.shippingAddress.countryCode,postalCode:e.shippingAddress.postalCode,stateOrProvinceCode:e.shippingAddress.state});try{yield this.paymentIntegrationService.updateBillingAddress(t),yield this.paymentIntegrationService.updateShippingAddress(t);const e=this.paypalCommerceIntegrationService.getShippingOptionOrThrow();yield this.paymentIntegrationService.selectShippingOption(e.id),yield this.paypalCommerceIntegrationService.updateOrder()}catch(e){if("string"==typeof e)throw new Error(e);throw e}})}onShippingOptionsChange(e){return r_(this,void 0,void 0,function*(){const t=this.paypalCommerceIntegrationService.getShippingOptionOrThrow(e.selectedShippingOption.id);try{yield this.paymentIntegrationService.selectShippingOption(t.id),yield this.paypalCommerceIntegrationService.updateOrder()}catch(e){if("string"==typeof e)throw new Error(e);throw e}})}isPaypalCommerceAppSwitchEnabled(e){var t;return(null===(t=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e).initializationData)||void 0===t?void 0:t.isAppSwitchEnabled)||!1}}const a_=Rt(e=>new o_(e,ms(e)),[{id:"paypalcommerce"}]);var s_=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class d_{constructor(e,t,n){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t,this.paypalCommerceSdk=n}initialize(e){var t;return s_(this,void 0,void 0,function*(){const{paypalcommercecredit:n,containerId:i,methodId:r}=e,{buyNowInitializeOptions:o,currencyCode:a,messagingContainerId:s}=n||{},d=!!o;if(!r)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!i)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');if(!n)throw new ki('Unable to initialize payment because "options.paypalcommercecredit" argument is not provided.');if(d&&!a)throw new ki('Unable to initialize payment because "options.paypalcommercecredit.currencyCode" argument is not provided.');if(d&&"function"!=typeof(null==o?void 0:o.getBuyNowCartRequestBody))throw new ki('Unable to initialize payment because "options.paypalcommercecredit.buyNowInitializeOptions.getBuyNowCartRequestBody" argument is not provided or it is not a function.');d||(yield this.paymentIntegrationService.loadDefaultCheckout());const c=this.paymentIntegrationService.getState(),l=d?a:c.getCartOrThrow().currency.code;yield this.paypalCommerceIntegrationService.loadPayPalSdk(r,l,!1),this.renderButton(i,r,n);const u=c.getStoreConfigOrThrow().checkoutSettings.features;if(null!==(t=u["PAYPAL-5557.Hide_ppc_banner_implementation"])&&void 0!==t&&t)return;const h=s&&document.getElementById(s);if(l&&h){const e=c.getPaymentMethodOrThrow(r),{paypalBNPLConfiguration:t=[]}=e.initializationData||{},n=t&&t.find(({id:e})=>"cart"===e);if(!(null==n?void 0:n.status))return;h.removeAttribute("data-pp-style-logo-type"),h.removeAttribute("data-pp-style-logo-position"),h.removeAttribute("data-pp-style-text-color"),h.removeAttribute("data-pp-style-text-size");const i=yield this.paypalCommerceSdk.getPayPalMessages(e,l);this.renderMessages(i,s,n)}})}deinitialize(){return Promise.resolve()}renderButton(e,t,n){const{buyNowInitializeOptions:i,style:r,onComplete:o,onEligibilityFailure:a}=n,s=this.paypalCommerceIntegrationService.getPayPalSdkOrThrow(),d=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(t),{isHostedCheckoutEnabled:c,isAppSwitchEnabled:l}=d.initializationData||{},u={createOrder:()=>this.paypalCommerceIntegrationService.createOrder("paypalcommercecredit"),onApprove:({orderID:e})=>this.paypalCommerceIntegrationService.tokenizePayment(t,e)},h={onClick:()=>this.handleClick(i),onCancel:()=>this.paymentIntegrationService.loadDefaultCheckout()},p=Object.assign(Object.assign({},!l&&{onShippingAddressChange:e=>this.onShippingAddressChange(e),onShippingOptionsChange:e=>this.onShippingOptionsChange(e)}),{onApprove:(e,n)=>this.onHostedCheckoutApprove(e,n,t,o)}),m=[s.FUNDING.PAYLATER,s.FUNDING.CREDIT];let y=!1;m.forEach(t=>{if(!y){const n=Object.assign(Object.assign(Object.assign({fundingSource:t,style:this.paypalCommerceIntegrationService.getValidButtonStyle(r)},u),i&&h),c&&p),o=s.Buttons(n);o.isEligible()?(o.render(`#${e}`),y=!0):a&&"function"==typeof a&&a()}}),y||this.paypalCommerceIntegrationService.removeElement(e)}handleClick(e){return s_(this,void 0,void 0,function*(){if(e){const t=yield this.paypalCommerceIntegrationService.createBuyNowCartOrThrow(e);yield this.paymentIntegrationService.loadCheckout(t.id)}})}onHostedCheckoutApprove(e,t,n,i){return s_(this,void 0,void 0,function*(){if(!e.orderID)throw new pi(ui.MissingOrderId);const r=this.paymentIntegrationService.getState().getCartOrThrow(),o=yield t.order.get();try{const t=this.paypalCommerceIntegrationService.getBillingAddressFromOrderDetails(o);if(yield this.paymentIntegrationService.updateBillingAddress(t),r.lineItems.physicalItems.length>0){const e=this.paypalCommerceIntegrationService.getShippingAddressFromOrderDetails(o);yield this.paymentIntegrationService.updateShippingAddress(e),yield this.paypalCommerceIntegrationService.updateOrder()}return yield this.paymentIntegrationService.submitOrder({},{params:{methodId:n}}),yield this.paypalCommerceIntegrationService.submitPayment(n,e.orderID),i&&"function"==typeof i&&i(),!0}catch(e){if("string"==typeof e)throw new Error(e);throw e}})}onShippingAddressChange(e){return s_(this,void 0,void 0,function*(){const t=this.paypalCommerceIntegrationService.getAddress({city:e.shippingAddress.city,countryCode:e.shippingAddress.countryCode,postalCode:e.shippingAddress.postalCode,stateOrProvinceCode:e.shippingAddress.state});try{yield this.paymentIntegrationService.updateBillingAddress(t),yield this.paymentIntegrationService.updateShippingAddress(t);const e=this.paypalCommerceIntegrationService.getShippingOptionOrThrow();yield this.paymentIntegrationService.selectShippingOption(e.id),yield this.paypalCommerceIntegrationService.updateOrder()}catch(e){if("string"==typeof e)throw new Error(e);throw e}})}onShippingOptionsChange(e){return s_(this,void 0,void 0,function*(){const t=this.paypalCommerceIntegrationService.getShippingOptionOrThrow(e.selectedShippingOption.id);try{yield this.paymentIntegrationService.selectShippingOption(t.id),yield this.paypalCommerceIntegrationService.updateOrder()}catch(e){if("string"==typeof e)throw new Error(e);throw e}})}renderMessages(e,t,n){const i={amount:this.paymentIntegrationService.getState().getCheckoutOrThrow().outstandingBalance,placement:"cart",style:qh(n)};e.Messages(i).render(`#${t}`)}}const c_=Rt(e=>new d_(e,ms(e),bs()),[{id:"paypalcommercecredit"}]);var l_=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class u_{constructor(e,t){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t}initialize(e){return l_(this,void 0,void 0,function*(){const{paypalcommercevenmo:t,containerId:n,methodId:i}=e,{buyNowInitializeOptions:r,currencyCode:o}=t||{},a=!!r;if(!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!n)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.paypalcommercevenmo" argument is not provided.');if(a&&!o)throw new ki('Unable to initialize payment because "options.paypalcommercevenmo.currencyCode" argument is not provided.');if(a&&"function"!=typeof(null==r?void 0:r.getBuyNowCartRequestBody))throw new ki('Unable to initialize payment because "options.paypalcommercevenmo.buyNowInitializeOptions.getBuyNowCartRequestBody" argument is not provided or it is not a function.');a||(yield this.paymentIntegrationService.loadDefaultCheckout());const s=a?o:this.paymentIntegrationService.getState().getCartOrThrow().currency.code;yield this.paypalCommerceIntegrationService.loadPayPalSdk(i,s,!1),this.renderButton(n,i,t)})}deinitialize(){return Promise.resolve()}renderButton(e,t,n){const{buyNowInitializeOptions:i,style:r,onEligibilityFailure:o}=n,a=this.paypalCommerceIntegrationService.getPayPalSdkOrThrow(),s=a.FUNDING.VENMO,d={createOrder:()=>this.paypalCommerceIntegrationService.createOrder("paypalcommercevenmo"),onApprove:({orderID:e})=>this.paypalCommerceIntegrationService.tokenizePayment(t,e)},c={onClick:()=>this.handleClick(i),onCancel:()=>this.paymentIntegrationService.loadDefaultCheckout()},l=Object.assign(Object.assign({fundingSource:s,style:this.getValidVenmoButtonStyles(r)},d),i&&c),u=a.Buttons(l);u.isEligible()?u.render(`#${e}`):o&&"function"==typeof o?o():this.paypalCommerceIntegrationService.removeElement(e)}getValidVenmoButtonStyles(e){const t=this.paypalCommerceIntegrationService.getValidButtonStyle(e);return t.color===rs.gold?Object.assign(Object.assign({},t),{color:void 0}):t}handleClick(e){return l_(this,void 0,void 0,function*(){if(e){const t=yield this.paypalCommerceIntegrationService.createBuyNowCartOrThrow(e);yield this.paymentIntegrationService.loadCheckout(t.id)}})}}const h_=Rt(e=>new u_(e,ms(e)),[{id:"paypalcommercevenmo"}]);var p_=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class m_{constructor(e,t){this.paymentIntegrationService=e,this.paypalCommerceIntegrationService=t}initialize(e){return p_(this,void 0,void 0,function*(){const{paypalcommercealternativemethods:t,containerId:n,methodId:i}=e,{apm:r,buyNowInitializeOptions:o,currencyCode:a}=t||{},s=!!o;if(!i)throw new ki('Unable to initialize payment because "options.methodId" argument is not provided.');if(!n)throw new ki('Unable to initialize payment because "options.containerId" argument is not provided.');if(!t)throw new ki('Unable to initialize payment because "options.paypalcommercealternativemethods" argument is not provided.');if(!r)throw new ki('Unable to initialize payment because "options.paypalcommercealternativemethods.apm" argument is not provided.');if(s&&!a)throw new ki('Unable to initialize payment because "options.paypalcommercealternativemethods.currencyCode" argument is not provided.');if(s&&"function"!=typeof(null==o?void 0:o.getBuyNowCartRequestBody))throw new ki('Unable to initialize payment because "options.paypalcommercealternativemethods.buyNowInitializeOptions.getBuyNowCartRequestBody" argument is not provided or it is not a function.');s||(yield this.paymentIntegrationService.loadDefaultCheckout());const d=s?a:this.paymentIntegrationService.getState().getCartOrThrow().currency.code;yield this.paypalCommerceIntegrationService.loadPayPalSdk(i,d,!1),this.renderButton(n,i,t)})}deinitialize(){return Promise.resolve()}renderButton(e,t,n){const{apm:i,buyNowInitializeOptions:r,style:o,onEligibilityFailure:a}=n,s=this.paypalCommerceIntegrationService.getPayPalSdkOrThrow();if(!Object.values(s.FUNDING).includes(i))throw new ki('Unable to initialize PayPal button because "options.paypalcommercealternativemethods.apm" argument is not valid funding source.');const d={createOrder:()=>this.paypalCommerceIntegrationService.createOrder("paypalcommercealternativemethod"),onApprove:({orderID:e})=>this.paypalCommerceIntegrationService.tokenizePayment(t,e)},c={onClick:()=>this.handleClick(r),onCancel:()=>this.paymentIntegrationService.loadDefaultCheckout()},l=Object.assign(Object.assign({fundingSource:i,style:this.paypalCommerceIntegrationService.getValidButtonStyle(o)},d),r&&c),u=s.Buttons(l);u.isEligible()?u.render(`#${e}`):a&&"function"==typeof a?a():this.paypalCommerceIntegrationService.removeElement(e)}handleClick(e){return p_(this,void 0,void 0,function*(){if(e){const t=yield this.paypalCommerceIntegrationService.createBuyNowCartOrThrow(e);yield this.paymentIntegrationService.loadCheckout(t.id)}})}}const y_=Rt(e=>new m_(e,ms(e)),[{id:"paypalcommercealternativemethods"}]);var g_=function(e,t,n,i){return new(n||(n=Promise))(function(r,o){function a(e){try{d(i.next(e))}catch(e){o(e)}}function s(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,s)}d((i=i.apply(e,t||[])).next())})};class v_{constructor(e,t,n){this.paymentIntegrationService=e,this.paypalExpressScriptLoader=t,this.formPoster=n}initialize(e){return g_(this,void 0,void 0,function*(){const t=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e.methodId);if(!e.paypal)throw new ki;if(!t.config.merchantId)throw new pi(ui.MissingPaymentMethod);const n=yield this.paypalExpressScriptLoader.loadPaypalSDK(t.config.merchantId);this.renderButton(e,n)})}deinitialize(){return Promise.resolve()}renderButton(e,t){const{containerId:n,methodId:i,paypal:r}=e,{allowCredit:o,clientId:a,onPaymentError:s,shouldProcessPayment:d,style:c}=r,l=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(e.methodId);if(!l.config.merchantId)throw new pi(ui.MissingPaymentMethod);const u=l.config.merchantId,h=l.config.testMode?"sandbox":"production",p={[h]:a},m=t.FUNDING.CREDIT||"credit",y=o?[m]:[],g=o?[]:[m];return t.Button.render({env:h,client:p,commit:d,funding:{allowed:y,disallowed:g},style:this.getStyle(c),payment:(e,t)=>this.setupPayment(u,t,s),onAuthorize:(e,t)=>this.tokenizePayment(e,i,t,d)},n)}getStyle(e){const{color:t,fundingicons:n,label:i,layout:r,shape:o,size:a,tagline:s}=e||{};return{color:t,fundingicons:n,label:i,layout:r,shape:o||yp.RECT,size:"small"===a?hp.RESPONSIVE:a,tagline:s}}setupPayment(e,t,n){return g_(this,void 0,void 0,function*(){if(!t)throw new gi(hi.CheckoutButtonNotInitialized);try{const n=yield this.paymentIntegrationService.loadDefaultCheckout(),{id:i}=n.getCartOrThrow(),r=n.getHost()||"";return(yield t.request.post(`${r}/api/storefront/payment/paypalexpress`,{merchantId:e,cartId:i},{headers:Object.assign({"X-API-INTERNAL":Cr},Pr)})).id}catch(e){throw n&&e instanceof li&&n(e),e}})}tokenizePayment(e,t,n,i){return g_(this,void 0,void 0,function*(){if(!n)throw new gi(hi.CheckoutButtonNotInitialized);if(!e.paymentID||!e.payerID)throw new pi(ui.MissingPayment);const r=this.paymentIntegrationService.getState().getPaymentMethodOrThrow(t),o=yield n.payment.get(e.paymentID);return this.formPoster.postForm("/checkout.php",{payment_type:"paypal",provider:r.id,action:i?"process_payment":"set_external_checkout",paymentId:e.paymentID,payerId:e.payerID,payerInfo:JSON.stringify(o.payer.payer_info)})})}}const f_=Rt(e=>new v_(e,new Sp(a()),Ee()),[{id:"paypalexpress"}]),S_=e=>{const t=ne(e);return document.getElementById(t)?S_(e):t};function w_(e){return Object.prototype.hasOwnProperty.call(e,"cacheKey")}class __{constructor(e){this._lastId=0,this._map={maps:[]},this._usedMaps=[],this._options=Object.assign({maxSize:0,isEqual:Be,onExpire:V},e)}getKey(...e){const t=this._resolveMap(...e),{index:n,parentMap:i}=t;let{map:r}=t;return r&&r.cacheKey?r.usedCount++:r=this._generateMap(i,e.slice(n)),this._removeLeastUsedMap(r),r.cacheKey}getUsedCount(...e){const{map:t}=this._resolveMap(...e);return t?t.usedCount:0}_resolveMap(...e){let t=0,n=this._map;for(;n.maps.length;){let i=!1;for(let r=0;r<n.maps.length;r++){const o=n.maps[r];if(this._options.isEqual(o.value,e[t])){if(n.maps.unshift(...n.maps.splice(r,1)),(0===e.length||t===e.length-1)&&w_(o))return{index:t,map:o,parentMap:n};i=!0,n=o,t++;break}}if(!i)break}return{index:t,parentMap:n}}_generateMap(e,t){let n,i=0,r=e;do{n={maps:[],parentMap:r,usedCount:1,value:t[i]},r.maps.unshift(n),r=n,i++}while(i<t.length);const o=n;return o.cacheKey=""+ ++this._lastId,o}_removeLeastUsedMap(e){if(!this._options.maxSize)return;const t=this._usedMaps.indexOf(e);if(this._usedMaps.splice(-1===t?0:t,-1===t?0:1,e),this._usedMaps.length<=this._options.maxSize)return;const n=this._usedMaps.pop();n&&(this._removeMap(n),this._options.onExpire(n.cacheKey))}_removeMap(e){e.parentMap&&(e.parentMap.maps.splice(e.parentMap.maps.indexOf(e),1),function(e){return Object.prototype.hasOwnProperty.call(e,"parentMap")}(e.parentMap)||this._removeMap(e.parentMap))}}function C_(e){const t=class extends e{};return Object.getOwnPropertyNames(e.prototype).forEach(n=>{const i=Object.getOwnPropertyDescriptor(e.prototype,n);i&&"constructor"!==n&&Object.defineProperty(t.prototype,n,function(e,t,n){if("function"!=typeof n.value)return n;let i=new __,r=n.value,o=Pe(r);return Kn(e,t,{get(){const e=(...e)=>{const t=o.call(this,...e);if(1===i.getUsedCount(...e))return t;const n=r.call(this,...e);return vv(n,t,{keyFilter:e=>!function(e){return 0===`${e}`.indexOf("$$")||0===`${e}`.indexOf("_")}(e)})?t:(o.cache.set(i.getKey(...e),n),n)};return Object.defineProperty(this,t,Object.assign(Object.assign({},n),{value:e})),e},set(e){i=new __,r=e,o=Pe(r)}})}(e.prototype,n,i))}),t}let I_=class{constructor(e){this._checkoutButton=e.checkoutButton}getInitializeButtonError(e){return this._checkoutButton.getInitializeError(e)}getDeinitializeButtonError(e){return this._checkoutButton.getDeinitializeError(e)}};I_=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([C_],I_);const b_=I_;let P_=class{constructor(e){this._checkoutButton=e.checkoutButton}isInitializingButton(e){return this._checkoutButton.isInitializing(e)}isDeinitializingButton(e){return this._checkoutButton.isDeinitializing(e)}};P_=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([C_],P_);const O_=P_;function E_(e){return{errors:new b_(e),statuses:new O_(e)}}let A_=class{constructor(e,t){this._store=e,this._buttonStrategyActionCreator=t,this._state=E_(this._store.getState()),this._store.subscribe(e=>{this._state=E_(e)})}getState(){return this._state}subscribe(e,...t){return this._store.subscribe(()=>e(this.getState()),e=>e.checkoutButton.getState(),...t.map(e=>t=>e(E_(t))))}initializeButton(e){const t=(n=e.containerId,/^\w[\w\-\:\.]*$/.test(n)?[e.containerId]:function(e,t){const n=document.querySelectorAll(e);if(!n.length)throw new Lt(`Unable to find any element with the specified selector: ${e}`);return Array.prototype.slice.call(n).map(e=>(e.id||(e.id=S_(t)),e.id))}(e.containerId,`${e.methodId}-container`));var n;return Promise.all(t.map(t=>{const n=this._buttonStrategyActionCreator.initialize(Object.assign(Object.assign({},e),{containerId:t})),i=`checkoutButtonStrategy:${e.methodId}:${t}`;return this._store.dispatch(n,{queueId:i})})).then(()=>this.getState())}deinitializeButton(e){const t=this._buttonStrategyActionCreator.deinitialize(e),n=`checkoutButtonStrategy:${e.methodId}`;return this._store.dispatch(t,{queueId:n}).then(()=>this.getState())}};A_=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([Kn],A_);const k_=A_;class T_{constructor(e,t,n){this._registry=e,this._registryV2=t,this._paymentMethodActionCreator=n}initialize(e){return t=>{const n={methodId:e.methodId,containerId:e.containerId};if(t.getState().checkoutButton.isInitialized(e.methodId,e.containerId))return ce();const i=e.currencyCode?{params:{currencyCode:e.currencyCode}}:{},r=Object.assign(Object.assign({},i),{timeout:e.timeout,useCache:!0});return se(me(l(Mv.InitializeButtonRequested,void 0,n)),this._paymentMethodActionCreator.loadPaymentMethod(e.methodId,r)(t),de(()=>this._getStrategy(e.methodId).initialize(e).then(()=>l(Mv.InitializeButtonSucceeded,void 0,n)))).pipe(ge(e=>Je(Mv.InitializeButtonFailed,e,n)))}}deinitialize(e){return t=>{const n={methodId:e.methodId};return t.getState().checkoutButton.isInitialized(e.methodId)?se(me(l(Mv.DeinitializeButtonRequested,void 0,n)),de(()=>this._getStrategy(e.methodId).deinitialize().then(()=>l(Mv.DeinitializeButtonSucceeded,void 0,n)))).pipe(ge(e=>Je(Mv.DeinitializeButtonFailed,e,n))):ce()}}_getStrategy(e){let t;try{t=this._registryV2.get({id:e})}catch(n){t=this._registry.get(e)}return t}}class D_{constructor(e){this._scriptLoader=e,this._window=window}loadPaypal(e=""){return t=this,n=void 0,r=function*(){const t="//www.paypalobjects.com/api/checkout.min.js",n={async:!0,attributes:{"data-merchant-id":e}};if(e?yield this._scriptLoader.loadScript(t,n):yield this._scriptLoader.loadScript(t),!this._window.paypal)throw new dn;return this._window.paypal},new((i=void 0)||(i=Promise))(function(e,o){function a(e){try{d(r.next(e))}catch(e){o(e)}}function s(e){try{d(r.throw(e))}catch(e){o(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i(function(e){e(n)})).then(a,s)}d((r=r.apply(t,n||[])).next())});var t,n,i,r}}var M_,z_,N_,x_,F_,R_,L_,B_;class j_{constructor(e,t,n,i){this._store=e,this._checkoutActionCreator=t,this._masterpassScriptLoader=n,this._locale=i}initialize(e){const{containerId:t,methodId:n}=e;if(!t||!n)throw new Lt('Unable to proceed because "containerId" argument is not provided.');return this._methodId=n,this._store.dispatch(this._checkoutActionCreator.loadDefaultCheckout()).then(e=>{const t=e.paymentMethods.getPaymentMethod(n);if(!t||!t.initializationData.checkoutId)throw new Qe(We.MissingPaymentMethod);const i={useMasterpassSrc:t.initializationData.isMasterpassSrcEnabled,language:Tn(this._locale),testMode:t.config.testMode,checkoutId:t.initializationData.checkoutId};return this._masterpassScriptLoader.load(i)}).then(e=>{this._masterpassClient=e,this._signInButton=this._createSignInButton(t)})}deinitialize(){return this._signInButton&&this._signInButton.parentNode&&(this._signInButton.removeEventListener("click",this._handleWalletButtonClick),this._signInButton.parentNode.removeChild(this._signInButton),this._signInButton=void 0),Promise.resolve()}_createSignInButton(e){const t=document.getElementById(e),n=this._store.getState(),i=this._methodId?n.paymentMethods.getPaymentMethod(this._methodId):null,r=n.config.getStoreConfig();if(!t)throw new Error("Need a container to place the button");if(!i)throw new Qe(We.MissingPaymentMethod);if(!r)throw new Lt("Unable to retrieve store configuration");const o=document.createElement("input");if(o.type="image",i.initializationData.isMasterpassSrcEnabled){const e=i.config.testMode?"sandbox.":"",{checkoutId:t}=i.initializationData,n=[`locale=${Tn(this._locale)}`,"paymentmethod=master,visa,amex,discover",`checkoutid=${t}`];o.src=[`https://${e}src.mastercard.com/assets/img/btn/src_chk_btn_126x030px.svg`,n.join("&")].join("?")}else o.src="https://static.masterpass.com/dyn/img/btn/global/mp_chk_btn_160x037px.svg";return t.appendChild(o),o.addEventListener("click",this._handleWalletButtonClick),o}_createMasterpassPayload(){const e=this._store.getState(),t=e.checkout.getCheckout(),n=this._methodId?e.paymentMethods.getPaymentMethod(this._methodId):null;if(!t)throw new Qe(We.MissingCheckout);if(!n)throw new Qe(We.MissingPaymentMethod);return{checkoutId:n.initializationData.checkoutId,allowedCardTypes:n.initializationData.allowedCardTypes,amount:t.cart.cartAmount.toString(),currency:t.cart.currency.code,cartId:t.cart.id,callbackUrl:An("cart")}}_handleWalletButtonClick(){if(!this._masterpassClient)throw new wn(gn.CheckoutButtonNotInitialized);this._masterpassClient.checkout(this._createMasterpassPayload())}}(function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);o>3&&a&&Object.defineProperty(t,n,a)})([Kn],j_.prototype,"_handleWalletButtonClick",null),function(e){e.HORIZONTAL="horizontal",e.VERTICAL="vertical"}(M_||(M_={})),function(e){e.SMALL="small",e.MEDIUM="medium",e.LARGE="large",e.RESPONSIVE="responsive"}(z_||(z_={})),function(e){e.GOLD="gold",e.BLUE="blue",e.SIlVER="silver",e.BLACK="black",e.WHITE="white"}(N_||(N_={})),function(e){e.CHECKOUT="checkout",e.PAY="pay",e.BUYNOW="buynow",e.PAYPAL="paypal",e.CREDIT="credit"}(x_||(x_={})),function(e){e.PILL="pill",e.RECT="rect"}(F_||(F_={}));class U_{constructor(e,t,n,i,r=""){this._store=e,this._checkoutActionCreator=t,this._paypalScriptLoader=n,this._formPoster=i,this._host=r}initialize(e){const t=e.paypal,n=this._store.getState(),i=this._paymentMethod=n.paymentMethods.getPaymentMethod(e.methodId);if(!t)throw new Lt;if(!i)throw new Qe(We.MissingPaymentMethod);return this._paypalScriptLoader.loadPaypal(i.config.merchantId).then(n=>{var r,o;if(!i||!i.config.merchantId)throw new Qe(We.MissingPaymentMethod);const a=i.config.merchantId,s=i.config.testMode?"sandbox":"production",d={[s]:t.clientId},c=n.FUNDING.CREDIT||"credit",l=t.allowCredit?[c]:[],u=t.allowCredit?[]:[c];return n.Button.render({env:s,client:d,commit:t.shouldProcessPayment,funding:{allowed:l,disallowed:u},style:Object.assign(Object.assign({shape:F_.RECT},W(t.style,"layout","color","label","shape","tagline","fundingicons")),{size:"paypalexpress"===i.id&&"small"===(null===(r=t.style)||void 0===r?void 0:r.size)?z_.RESPONSIVE:null===(o=t.style)||void 0===o?void 0:o.size}),payment:(e,n)=>this._setupPayment(a,n,t.onPaymentError),onAuthorize:(e,n)=>this._tokenizePayment(e,n,t.shouldProcessPayment,t.onAuthorizeError)},e.containerId)})}deinitialize(){return this._paymentMethod=void 0,Promise.resolve()}_setupPayment(e,t,n){if(!t)throw new wn(gn.CheckoutButtonNotInitialized);return this._store.dispatch(this._checkoutActionCreator.loadDefaultCheckout()).then(n=>{const i=n.cart.getCart(),r=i?i.id:"";return t.request.post(`${this._host}/api/storefront/payment/paypalexpress`,{merchantId:e,cartId:r},{headers:Object.assign({"X-API-INTERNAL":It},rt)})}).then(e=>e.id).catch(e=>{throw n&&n(e),e})}_tokenizePayment(e,t,n,i){if(!this._paymentMethod)throw new wn(gn.CheckoutButtonNotInitialized);if(!t)throw new wn(gn.CheckoutButtonNotInitialized);if(!e.paymentID||!e.payerID)throw new Qe(We.MissingPayment);const r=this._paymentMethod.id;return t.payment.get(e.paymentID).then(t=>{this._formPoster.postForm("/checkout.php",{payment_type:"paypal",provider:r,action:n?"process_payment":"set_external_checkout",paymentId:e.paymentID,payerId:e.payerID,payerInfo:JSON.stringify(t.payer.payer_info)})})}}function q_(e){const{host:t,locale:i="en"}=null!=e?e:{},r=ew({config:{meta:{host:null==e?void 0:e.host,locale:null==e?void 0:e.locale},errors:{},statuses:{}}}),o=n({host:t}),s=Ee({host:t}),d=function(e,t){const n=new jt;for(const[,i]of Object.entries(t))if(Ft(i))for(const t of i.resolveIds)n.register(t,()=>i(e));return n}(Ig(r),Ke);return new k_(r,new T_(function(e,t,n,i,r){const o=new Bt,s=a(),d=new Qt(t),c=new en(d,new St(new bt(t)),new nn(new rn(t)));return o.register(uy.MASTERPASS,()=>new j_(e,c,new ln(s),i)),o.register(uy.PAYPALEXPRESS,()=>new U_(e,c,new D_(s),n,r)),o}(r,o,s,i,t),d,new an(new sn(o))))}!function(e){e.CheckoutComplete="CHECKOUT_COMPLETE",e.CheckoutError="CHECKOUT_ERROR",e.CheckoutLoaded="CHECKOUT_LOADED",e.FrameError="FRAME_ERROR",e.FrameLoaded="FRAME_LOADED",e.SignedOut="SIGNED_OUT"}(R_||(R_={}));class V_ extends _t{constructor(e){super(e,{message:e.body.title}),this.name="InvalidLoginTokenError",this.type="invalid_login_token"}}!function(e){e.MissingContainer="missing_container",e.MissingContent="missing_content",e.UnknownError="unknown_error"}(L_||(L_={}));class G_ extends Ze{constructor(e,t=L_.UnknownError){super(e||"Unable to embed the checkout form."),this.subtype=t,this.name="NotEmbeddableError",this.type="not_embeddable"}}!function(e){e.StyleConfigured="STYLE_CONFIGURED"}(B_||(B_={}));const H_="isCookieAllowed",$_="lastAllowCookieAttempt";let W_=class{constructor(e,t,n,i,r,o,a,s){this._iframeCreator=e,this._messageListener=t,this._messagePoster=n,this._loadingIndicator=i,this._requestSender=r,this._storage=o,this._location=a,this._options=s,this._isAttached=!1,this._options.onComplete&&this._messageListener.addListener(R_.CheckoutComplete,this._options.onComplete),this._options.onError&&this._messageListener.addListener(R_.CheckoutError,this._options.onError),this._options.onLoad&&this._messageListener.addListener(R_.CheckoutLoaded,this._options.onLoad),this._options.onFrameLoad&&this._messageListener.addListener(R_.FrameLoaded,this._options.onFrameLoad),this._options.onSignOut&&this._messageListener.addListener(R_.SignedOut,this._options.onSignOut),this._messageListener.addListener(R_.FrameLoaded,()=>this._configureStyles())}attach(){return this._isAttached?Promise.resolve(this):(this._isAttached=!0,this._messageListener.listen(),this._loadingIndicator.show(this._options.containerId),this._allowCookie().then(()=>this._attemptLogin()).then(e=>this._iframeCreator.createFrame(e,this._options.containerId)).then(e=>{this._iframe=e,this._configureStyles(),this._loadingIndicator.hide()}).catch(e=>(this._isAttached=!1,this._retryAllowCookie(e).catch(()=>{throw this._messageListener.trigger({type:R_.FrameError,payload:e}),this._loadingIndicator.hide(),e}))).then(()=>this))}detach(){this._isAttached&&(this._isAttached=!1,this._messageListener.stopListen(),this._iframe&&this._iframe.parentNode&&(this._iframe.parentNode.removeChild(this._iframe),this._iframe.iFrameResizer.close()))}_configureStyles(){this._iframe&&this._iframe.contentWindow&&this._options.styles&&(this._messagePoster.setTarget(this._iframe.contentWindow),this._messagePoster.post({type:B_.StyleConfigured,payload:this._options.styles}))}_attemptLogin(){return/^\/login\/token/.test(Mn(this._options.url).pathname)?this._requestSender.post(this._options.url).then(({body:{redirectUrl:e}})=>e).catch(e=>Promise.reject(new V_(e))):Promise.resolve(this._options.url)}_allowCookie(){if(this._storage.getItem(H_))return Promise.resolve();this._storage.setItem(H_,!0),this._storage.setItem($_,Date.now());const{origin:e}=Mn(this._options.url),t=`${e}/embedded-checkout/allow-cookie?returnUrl=${encodeURIComponent(this._location.href)}`;return document.body.style.visibility="hidden",this._location.replace(t),new Promise(()=>{})}_retryAllowCookie(e){const t=Number(this._storage.getItem($_));return(!t||Date.now()-t>6e5)&&e instanceof G_&&e.subtype===L_.MissingContent?(this._storage.removeItem($_),this._storage.removeItem(H_),this._allowCookie()):Promise.reject()}};W_=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([Kn],W_);const Y_=W_;class K_{constructor(e){this._options=e}createFrame(e,t){const n=document.getElementById(t),{timeout:i=6e4}=this._options||{};if(!n)throw new G_("Unable to embed the iframe because the container element could not be found.",L_.MissingContainer);const r=document.createElement("iframe");return r.src=e,r.style.border="none",r.style.display="none",r.style.width="100%",r.allowPaymentRequest=!0,r.allow="payment",n.appendChild(r),this._toResizableFrame(r,i).catch(e=>{throw n.removeChild(r),e})}_toResizableFrame(e,t){return new Promise((n,i)=>{const r=window.setTimeout(()=>{i(new G_("Unable to embed the iframe because the content could not be loaded."))},t),o=t=>{if((t.origin===Mn(e.src).origin||t.origin===ri(Mn(e.src)).origin)&&(Fn(t.data,R_.FrameError)&&(a(),i(new G_(t.data.payload.message,L_.MissingContent))),Fn(t.data,R_.FrameLoaded))){e.style.display="";const i=Vn({scrolling:!1,sizeWidth:!1,heightCalculationMethod:t.data.payload&&t.data.payload.contentId?"taggedElement":"lowestElement"},e);a(),n(i[i.length-1])}},a=()=>{window.removeEventListener("message",o),window.clearTimeout(r)};window.addEventListener("message",o)})}}function J_(e){const t=Mn(e.url).origin;return new Y_(new K_,new ai(t),new Rn(t),new sd({styles:e.styles&&e.styles.loadingIndicator}),n(),new xm("BigCommerce.EmbeddedCheckout"),window.location,e).attach()}function Z_(e){if(!e.payload||!e.payload.contentId)return;const t=document.getElementById(e.payload.contentId);t&&!t.hasAttribute("data-iframe-height")&&t.setAttribute("data-iframe-height","")}function Q_(e){return"object"==typeof e&&null!==e&&"message"in e&&"type"in e}let X_=class{constructor(e,t,n,i={}){this._messageListener=e,this._messagePoster=t,this._untargetedMessagePoster=n,this._messageHandlers=i,this._messageListener.listen()}postComplete(){const e={type:R_.CheckoutComplete};this._postMessage(e)}postError(e){const t={type:R_.CheckoutError,payload:this._transformError(e)};this._postMessage(t)}postFrameError(e){const t={type:R_.FrameError,payload:this._transformError(e)};this._postMessage(t,{untargeted:!0})}postFrameLoaded(e){const t={type:R_.FrameLoaded,payload:e};this._postMessage(t)}postLoaded(){const e={type:R_.CheckoutLoaded};this._postMessage(e)}postSignedOut(){const e={type:R_.SignedOut};this._postMessage(e)}receiveStyles(e){this._messageListener.addListener(B_.StyleConfigured,({payload:t})=>{e(t)})}_postMessage(e,t){if(this._notifyMessageHandlers(e),t&&t.untargeted)return this._untargetedMessagePoster.post(e);this._messagePoster.post(e)}_notifyMessageHandlers(e){Object.keys(this._messageHandlers).forEach(t=>{if(e.type!==t)return;const n=this._messageHandlers[t];n&&n.call(null,e)})}_transformError(e){return{message:e.message,type:Q_(e)?e.type:void 0,subtype:Q_(e)?e.subtype:void 0}}};X_=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([Kn],X_);const eC=X_;let tC=class{postComplete(){}postError(){}postFrameError(){}postFrameLoaded(){}postLoaded(){}postSignedOut(){}receiveStyles(){}};tC=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([Kn],tC);const nC=tC;function iC(e){Ge(939);const t=e.parentWindow||window.parent;return window===t?new nC:new eC(new ai(e.parentOrigin),new Rn(e.parentOrigin,t),new Rn("*",t),{[R_.FrameLoaded]:Z_})}const rC="en",oC="optimized_checkout";let aC=class{constructor(e,t){var n;this._logger=t;const{locale:i,locales:r,translations:o}=this._transformConfig(e);this._locale=i,this._locales=r,this._translations=o,this._formatters={},this._isCspNonceExperimentEnabled=null===(n=e.isCspNonceExperimentEnabled)||void 0===n||n}mapKeys(e){Object.keys(e).forEach(t=>{const n=`${oC}.${e[t]}`;this._translations[`${oC}.${t}`]=this._translations[n]})}getLocale(){return this._hasTranslations()?this._locale:rC}translate(e,t={}){var n;const i=`${oC}.${e}`;if("string"!=typeof this._translations[i])return this._logger.warn(`Translation key "${i}" is missing`),i;if(this._isCspNonceExperimentEnabled){this._formatters[i]||(this._formatters[i]=new je(this._escapeSpecialCharacters(this._translations[i]||""),this._locales[i],void 0,{ignoreTag:!0}));try{return this._formatters[i].format(this._transformData(t))}catch(e){if(this._isFormatError(e))return null!==(n=e.originalMessage)&&void 0!==n?n:"";throw e}}if(!this._formatters[i]){const e=new Ue(this._locales[i]);this._formatters[i]=e.compile(this._translations[i]||"")}return this._formatters[i](this._transformData(t))}_transformConfig(e={}){const t={defaultLocale:"",defaultTranslations:{},translations:{},locales:{},locale:e.locale||rC},n=e.locales||{},i=this._flattenObject(e.translations||{}),r=this._flattenObject(e.defaultTranslations||{}),o=this._flattenObject(e.fallbackTranslations||{});return ee(Object.keys(o),Object.keys(r),Object.keys(i)).forEach(a=>{var s,d;i&&i[a]?(t.translations[a]=i[a],t.locales[a]=n[a]||t.locale):r[a]?(t.translations[a]=r[a],t.locales[a]=null!==(s=e.defaultLocale)&&void 0!==s?s:rC):(t.translations[a]=o[a],t.locales[a]=null!==(d=e.fallbackLocale)&&void 0!==d?d:rC)}),t}_flattenObject(e,t={},n=""){try{Object.keys(e).forEach(i=>{const r=e[i],o=n?`${n}.${i}`:i;if(D(r))return this._flattenObject(r,t,o);t[o]=r})}catch(e){this._logger.warn(`Unable to parse object: ${e}`)}return t}_transformData(e){return Object.keys(e).reduce((t,n)=>{const i=e[n];return t[n]=null==i?"":i,t},{})}_hasTranslations(){return Object.keys(this._locales).map(e=>this._locales[e]).filter(e=>e.split("-")[0]===this._locale.split("-")[0]).length>0}_isFormatError(e){return"object"==typeof e&&null!==e&&"originalMessage"in e}_escapeSpecialCharacters(e){return e.replace(/(\w+)='([^']*)'/g,"$1=''$2''")}};aC=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([Kn],aC);const sC=aC;function dC(e={}){return new sC(e,gt())}let cC=class{constructor(e){this._storeConfig=e,this._customerFormatter=new Ho(this._storeConfig.shopperCurrency),this._storeFormatter=new Ho(this._storeConfig.currency)}toCustomerCurrency(e){const t=this._storeConfig.shopperCurrency.exchangeRate;return this._customerFormatter.format(e*t)}toStoreCurrency(e){return this._storeFormatter.format(e)}};cC=function(e,t,n,i){var r,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,n,a):r(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([Kn],cC);const lC=cC;function uC(e){return new lC(e)}function hC(e){return e&&"ga"in e&&"function"==typeof e.ga}function pC(e,t){hC(window)&&window.ga("send",e,Object.assign(Object.assign({},t),{nonInteraction:!1}))}function mC(e){return yC(e).length>=8096}function yC(e){return Object.keys(e).reduce((t,n)=>{const i=typeof e[n];return"string"===i||"number"===i?[...t,`${n}=${e[n]}`]:"object"===i&&null!==e[n]?[...t,yC(e[n])]:t},[]).join("&")}var gC;!function(e){e[e.CUSTOMER=1]="CUSTOMER",e[e.SHIPPING=2]="SHIPPING",e[e.BILLING=3]="BILLING",e[e.PAYMENT=4]="PAYMENT"}(gC||(gC={}));const vC={customer:gC.CUSTOMER,shipping:gC.SHIPPING,billing:gC.BILLING,payment:gC.PAYMENT};class fC{constructor(e,t,n,{checkoutSteps:i}={}){if(this.checkoutService=e,this.analyticsExtraItemsManager=t,this.analytics=n,this._checkoutStarted=!1,this._completedSteps={},this._viewedSteps={},this._analyticStepOrder=["customer","shipping","billing","payment"],void 0!==i){if(i.some(e=>!(e in vC)))throw new Lt(`Invalid checkout steps provided. Valid values are: ${R(vC).join(", ")}.`);this._analyticStepOrder=i}}trackCheckoutStarted(){if(this._checkoutStarted)return;const e=this.getCheckout();if(!e)return;const{coupons:t,grandTotal:n,shippingCostTotal:i,taxTotal:r,cart:{lineItems:o,discountAmount:a,id:s}}=e,d=this.analyticsExtraItemsManager.saveExtraItemsData(s,o);this.analytics.track("Checkout Started",this.getTrackingPayload({revenue:n,shipping:i,tax:r,discount:a,coupons:t,lineItems:o,extraItemsData:d})),this._checkoutStarted=!0}trackOrderComplete(){var e;const t=this.getOrder();if(!t)return;const{isComplete:n,orderId:i,orderAmount:r,shippingCostTotal:o,taxTotal:a,discountAmount:s,coupons:d,lineItems:c,cartId:l}=t;if(!n)return;const u=this.analyticsExtraItemsManager.readExtraItemsData(l);if(null===u)return;const h=null===(e=this.checkoutService.getState().data.getConfig())||void 0===e?void 0:e.checkoutSettings.features["DATA-6891.missing_orders_within_GA"],p=this.getTrackingPayload({orderId:i,revenue:r,shipping:o,tax:a,discount:s,coupons:d,extraItemsData:u,lineItems:c});if(h&&Xc(window)&&hC(window)&&mC(p))return pC("transaction",{"&ti":p.order_id,"&ta":p.affiliation,"&tr":p.revenue,"&ts":p.shipping,"&tt":p.tax,"&tcc":p.coupon,"&cu":p.currency}),p.products.forEach(e=>{pC("item",{"&ti":p.order_id,"&in":e.name,"&ic":e.sku,"&iv":`${e.category}`,"&ip":e.price,"&iq":e.quantity})}),this.analyticsExtraItemsManager.clearExtraItemData(l);this.analytics.track("Order Completed",p),this.analyticsExtraItemsManager.clearExtraItemData(l)}trackStepViewed(e){const t=this.getIdFromStep(e);t&&!this.hasStepViewed(t)&&(this.trackViewed(t),this.backfill(t))}trackStepCompleted(e){const t=this.getIdFromStep(e);t&&!this.hasStepCompleted(t)&&(this.backfill(t),this.trackCompleted(t))}backfill(e){for(const t of this._analyticStepOrder){const n=this.getIdFromStep(t);if(!n)break;if(this.hasStepViewed(n)||this.trackViewed(n),n===e)break;this.hasStepCompleted(n)||this.trackCompleted(n)}}trackCompleted(e){const t=this.getSelectedShippingOption(),{code:n=""}=this.getShopperCurrency()||{},i=this.getPaymentMethodName(),r={step:e,currency:n};t&&(r.shipping_method=t.description),i&&(r.payment_method=i),r.shipping_method||r.payment_method||(r.shipping_method=" "),this.analytics.track("Checkout Step Completed",r);const o=t?t.id:"",a=e===gC.SHIPPING?`${e}-${o}`:e;this._completedSteps[a]=!0}getTrackingPayload({orderId:e,revenue:t,shipping:n,tax:i,discount:r,coupons:o,extraItemsData:a,lineItems:s}){const{code:d=""}=this.getShopperCurrency()||{},{storeName:c=""}=this.getStoreProfile()||{};return{order_id:String(e),affiliation:c,revenue:this.toShopperCurrency(t),shipping:this.toShopperCurrency(n),tax:this.toShopperCurrency(i),discount:this.toShopperCurrency(r),coupon:(o||[]).map(e=>e.code.toUpperCase()).join(","),currency:d,products:this.getProducts(a,s)}}hasStepCompleted(e){const t=this.getSelectedShippingOption(),n=t?t.id:"";return Object.prototype.hasOwnProperty.call(this._completedSteps,e)||e===gC.SHIPPING&&Object.prototype.hasOwnProperty.call(this._completedSteps,`${e}-${n}`)}hasStepViewed(e){return!!this._viewedSteps[e]}getIdFromStep(e){const t=e.split(".");return vC[t[0]]||null}trackViewed(e){const t=this.getShopperCurrency();this.analytics.track("Checkout Step Viewed",{step:e,currency:t?t.code:""}),this._viewedSteps[e]=!0}getOrder(){const{data:{getOrder:e}}=this.checkoutService.getState();return e()}getCheckout(){const{data:{getCheckout:e}}=this.checkoutService.getState();return e()}getShopperCurrency(){const{data:{getConfig:e}}=this.checkoutService.getState(),t=e();return t&&t.shopperCurrency}getStoreProfile(){const{data:{getConfig:e}}=this.checkoutService.getState(),t=e();return t&&t.storeProfile}toShopperCurrency(e){const{exchangeRate:t=1}=this.getShopperCurrency()||{};return Math.round(e*t*100)/100}getSelectedShippingOption(){const{data:e}=this.checkoutService.getState(),t=e.getSelectedShippingOption();return t&&t.id&&t.description?t:null}getPaymentMethodName(){const{data:e}=this.checkoutService.getState(),t=e.getSelectedPaymentMethod();return t&&t.config&&t.config.displayName||""}getProducts(e,t){const n=(t.customItems||[]).map(e=>({product_id:e.id,sku:e.sku,price:e.listPrice,quantity:e.quantity,name:e.name})),i=t.giftCertificates.map(e=>({product_id:e.id,price:this.toShopperCurrency(e.amount),name:e.name,quantity:1}));return[...n,...[...t.physicalItems,...t.digitalItems].map(t=>{let n;t.options&&t.options.length&&(n=t.options.map(e=>`${e.name}:${e.value}`),n.sort());const i=Array.isArray(n)&&n.length?n.join(", "):"single-product-option",r=e[t.productId]&&e[t.productId].brand;return Object.assign({product_id:String(t.productId),sku:t.sku,price:t.salePrice,image_url:t.imageUrl,name:t.name,quantity:t.quantity,category:e[t.productId]?e[t.productId].category:"",variant:i},r&&{brand:r})}),...i]}}class SC{trackCheckoutStarted(){}trackOrderComplete(){}trackStepViewed(){}trackStepCompleted(){}}function wC(e,t){const{data:n}=e.getState(),i=n.getConfig();if(!i)throw new Qe(We.MissingCheckoutConfig);const{isAnalyticsEnabled:r}=i.checkoutSettings;return r&&Xc(window)?new fC(e,new Qc(ke),window.analytics,t):new SC}function _C(e){return Boolean(e.hasOwnProperty("braintreeFastlane"))}class CC{constructor(e){this.checkoutService=e,this._selectedPaymentMethodId=""}customerPaymentMethodExecuted(){this._shouldTrackFastlaneEvent()&&this._trackEmailSubmitted()}paymentComplete(){this._shouldTrackFastlaneEvent()&&this._trackOrderPlaced(this._selectedPaymentMethodId)}selectedPaymentMethod(e){this._shouldTrackFastlaneEvent()&&e&&(this._selectedPaymentMethodId=e,this._trackApmSelected(e,!1))}walletButtonClick(e){this._shouldTrackFastlaneEvent()&&e&&(this._selectedPaymentMethodId=e,this._trackApmSelected(e,!0))}_shouldTrackFastlaneEvent(){const e=this.checkoutService.getState(),t=e.data.getPaymentMethod("braintree")||e.data.getPaymentMethod("braintreeacceleratedcheckout"),n=null==t?void 0:t.initializationData.isBraintreeAnalyticsV2Enabled,i=_C(window)&&window.braintreeFastlane.events;return n&&i}_getBraintreeEventsOrThrow(){if(_C(window))return window.braintreeFastlane.events;throw new Oi}_trackEmailSubmitted(){const{emailSubmitted:e}=this._getBraintreeEventsOrThrow();e(this._getEmailSubmittedEventOptions())}_trackApmSelected(e,t){const{apmSelected:n}=this._getBraintreeEventsOrThrow();n(this._getApmSelectedEventOptions(e,t))}_trackOrderPlaced(e){const{orderPlaced:t}=this._getBraintreeEventsOrThrow();t(this._getOrderPlacedEventOptions(e))}_getEventCommonOptions(){var e,t;const n=this.checkoutService.getState(),i=n.data.getCart(),r=null===(e=n.data.getConfig())||void 0===e?void 0:e.storeProfile,o=null===(t=n.data.getCustomer())||void 0===t?void 0:t.isGuest,a=n.data.getPaymentMethod("braintreeacceleratedcheckout"),s=[{treatment_group:!n.errors.getLoadPaymentMethodError("braintreeacceleratedcheckout")&&(null==a?void 0:a.initializationData.shouldRunAcceleratedCheckout)?"test":"control"}];return{context_type:"cs_id",context_id:(null==i?void 0:i.id)||"",page_type:"checkout_page",page_name:window.document.title,partner_name:"bigc",user_type:o?"store_guest":"store_member",store_id:(null==r?void 0:r.storeId)||"",merchant_name:(null==r?void 0:r.storeName)||"",experiment:JSON.stringify(s)}}_getEmailSubmittedEventOptions(){const e=(this.checkoutService.getState().data.getPaymentMethods()||[]).map(({id:e})=>e);return Object.assign(Object.assign({},this._getEventCommonOptions()),{user_email_saved:!1,apm_shown:e.length>1?"1":"0",apm_list:e.join(",")})}_getApmSelectedEventOptions(e,t){const n=(this.checkoutService.getState().data.getPaymentMethods()||[]).map(({id:e})=>e);return Object.assign(Object.assign({},this._getEventCommonOptions()),{apm_shown:n.length>1?"1":"0",apm_list:n.join(","),apm_selected:e,apm_location:t?"pre-email section":"payment section"})}_getOrderPlacedEventOptions(e){const t=this.checkoutService.getState().data.getCart();return Object.assign(Object.assign({},this._getEventCommonOptions()),{selected_payment_method:e,currency_code:(null==t?void 0:t.currency.code)||""})}}function IC(e){return new CC(e)}class bC{constructor(e){this._checkoutService=e,this._selectedPaymentMethodId=""}customerPaymentMethodExecuted(){this._shouldTrackFastlaneEvent()&&this._trackEmailSubmitted()}paymentComplete(){this._shouldTrackFastlaneEvent()&&this._trackOrderPlaced(this._selectedPaymentMethodId)}selectedPaymentMethod(e){this._shouldTrackFastlaneEvent()&&e&&(this._selectedPaymentMethodId=e,this._trackApmSelected(e,!1))}walletButtonClick(e){this._shouldTrackFastlaneEvent()&&e&&(this._selectedPaymentMethodId=e,this._trackApmSelected(e,!0))}_shouldTrackFastlaneEvent(){const e=this._checkoutService.getState().data.getPaymentMethod("paypalcommerce"),t=((null==e?void 0:e.initializationData)||{}).isPayPalCommerceAnalyticsV2Enabled,n=window,i=!!n.paypalFastlane&&!!n.paypalFastlane.events;return t&&i}_getPayPalEventsOrThrow(){const e=window;if(e.paypalFastlane&&e.paypalFastlane.events)return e.paypalFastlane.events;throw new Oi}_trackEmailSubmitted(){const{emailSubmitted:e}=this._getPayPalEventsOrThrow();e(this._getEmailSubmittedEventOptions())}_trackApmSelected(e,t){const{apmSelected:n}=this._getPayPalEventsOrThrow();n(this._getApmSelectedEventOptions(e,t))}_trackOrderPlaced(e){const{orderPlaced:t}=this._getPayPalEventsOrThrow();t(this._getOrderPlacedEventOptions(e))}_getEventCommonOptions(){var e,t;const n=this._checkoutService.getState(),i=n.data.getCart(),r=null===(e=n.data.getConfig())||void 0===e?void 0:e.storeProfile,o=null===(t=n.data.getCustomer())||void 0===t?void 0:t.isGuest,a="paypalcommerceacceleratedcheckout",s=n.data.getPaymentMethod(a),d=[{treatment_group:!n.errors.getLoadPaymentMethodError(a)&&(null==s?void 0:s.initializationData.shouldRunAcceleratedCheckout)?"test":"control"}];return{context_type:"cs_id",context_id:(null==i?void 0:i.id.replace(/-/g,""))||"",page_type:"checkout_page",page_name:window.document.title,partner_name:"bigc",user_type:o?"store_guest":"store_member",store_id:(null==r?void 0:r.storeId)||"",merchant_name:(null==r?void 0:r.storeName)||"",experiment:JSON.stringify(d)}}_getEmailSubmittedEventOptions(){const e=(this._checkoutService.getState().data.getPaymentMethods()||[]).map(({id:e})=>e);return Object.assign(Object.assign({},this._getEventCommonOptions()),{user_email_saved:!1,apm_shown:e.length>1?"1":"0",apm_list:e.join(",")})}_getApmSelectedEventOptions(e,t){const n=(this._checkoutService.getState().data.getPaymentMethods()||[]).map(({id:e})=>e);return Object.assign(Object.assign({},this._getEventCommonOptions()),{apm_shown:n.length>1?"1":"0",apm_list:n.join(","),apm_selected:e,apm_location:t?"pre-email section":"payment section"})}_getOrderPlacedEventOptions(e){const t=this._checkoutService.getState().data.getCart();return Object.assign(Object.assign({},this._getEventCommonOptions()),{selected_payment_method:e,currency_code:(null==t?void 0:t.currency.code)||""})}}function PC(e){return new bC(e)}var OC;class EC{constructor(e,t){this._host=e,this._hostedFormFactory=t}submitStoredCard(e,t){return n=this,i=void 0,o=function*(){const n=this._hostedForm;if(!n)throw new wn(gn.PaymentNotInitialized);yield n.validate().then(()=>n.submitStoredCard({fields:e,data:t}))},new((r=void 0)||(r=Promise))(function(e,t){function a(e){try{d(o.next(e))}catch(e){t(e)}}function s(e){try{d(o.throw(e))}catch(e){t(e)}}function d(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r(function(e){e(n)})).then(a,s)}d((o=o.apply(n,i||[])).next())});var n,i,r,o}initialize(e){const t=this._hostedFormFactory.create(this._host,e);return t.attach().then(()=>{this._hostedForm=t})}deinitialize(){this._hostedForm&&this._hostedForm.detach()}}function AC(e){const t=ew();return new EC(e,new ey(t))}!function(e){e.CUSTOMER="customer",e.SHIPPING="shipping",e.BILLING="billing",e.PAYMENT="payment"}(OC||(OC={}));const kC=[OC.CUSTOMER,OC.SHIPPING,OC.BILLING,OC.PAYMENT];class TC{constructor(e,t){this.subscribe=e,this.bodlEvents=t,this._checkoutStarted=!1,this._emailEntryBegan=!1,this._shippingOptionsShown=!1,this._completedSteps={},this.subscribe(e=>{var t;if(this.setState(e.data),!(null===(t=this.state)||void 0===t?void 0:t.getConfig()))throw new Qe(We.MissingCheckoutConfig)})}setState(e){this.state=e}checkoutBegin(){const e=this._getCommonCheckoutData();!this._checkoutStarted&&e&&(this.bodlEvents.emitCheckoutBeginEvent(e),this._checkoutStarted=!0)}orderPurchased(){var e;const t=null===(e=this.state)||void 0===e?void 0:e.getOrder();if(!t)return;const{currency:n,isComplete:i,orderId:r,orderAmount:o,shippingCostTotal:a,lineItems:s,cartId:d,coupons:c,channelId:l,taxTotal:u}=t;i&&this.bodlEvents.emitOrderPurchasedEvent({event_id:d,currency:n.code,order_id:r,tax:u,channel_id:l,cart_value:o,coupon_codes:c.map(e=>e.code.toUpperCase()),shipping_cost:a,line_items:this._getProducts(s,n.code)})}stepCompleted(e){e&&kC.some(t=>(this._hasStepCompleted(t)||this._trackCompletedStep(t),t===e))}customerEmailEntry(e){!this._emailEntryBegan&&(null==e?void 0:e.length)&&(this._emailEntryBegan=!0,this.bodlEvents.emit("bodl_checkout_email_entry_began"))}customerSuggestionInit(e){this.bodlEvents.emit("bodl_checkout_customer_suggestion_initialization",e)}customerSuggestionExecute(){this.bodlEvents.emit("bodl_checkout_customer_suggestion_execute")}customerPaymentMethodExecuted(e){this.bodlEvents.emit("bodl_checkout_customer_payment_method_executed",e)}showShippingMethods(){this._shippingOptionsShown||(this._shippingOptionsShown=!0,this.bodlEvents.emit("bodl_checkout_show_shipping_options"))}selectedPaymentMethod(e){const t=this._getCommonCheckoutData();t&&e&&this.bodlEvents.emitPaymentDetailsProvidedEvent(Object.assign(Object.assign({},t),{payment_type:e}))}clickPayButton(e){this.bodlEvents.emit("bodl_checkout_click_pay_button",e)}paymentRejected(){this.bodlEvents.emit("bodl_checkout_payment_rejected")}paymentComplete(){this.bodlEvents.emit("bodl_checkout_payment_complete")}exitCheckout(){this.bodlEvents.emit("bodl_checkout_exit")}_trackCompletedStep(e){this._completedSteps[e]=!0;const t={[OC.SHIPPING]:this._trackShippingStepCompleted.bind(this)}[e];t?t():this.bodlEvents.emit("bodl_checkout_step_completed",{step:e})}_trackShippingStepCompleted(){var e,t;const n=null===(t=null===(e=this.state)||void 0===e?void 0:e.getSelectedShippingOption())||void 0===t?void 0:t.description,i=this._getCommonCheckoutData();i&&n&&this.bodlEvents.emitShippingDetailsProvidedEvent(Object.assign(Object.assign({},i),{shipping_method:n}))}_getCommonCheckoutData(){var e;const t=null===(e=this.state)||void 0===e?void 0:e.getCheckout();if(!t)return null;const{cart:{cartAmount:n,currency:i,lineItems:r,id:o,coupons:a},channelId:s}=t;return{event_id:o,currency:i.code,cart_value:n,coupon_codes:a.map(e=>e.code.toUpperCase()),line_items:this._getProducts(r,i.code),channel_id:s}}_getProducts(e,t){const n=(e.customItems||[]).map(e=>({product_id:e.id,sku:e.sku,base_price:e.listPrice,sale_price:e.listPrice,purchase_price:e.listPrice,quantity:e.quantity,product_name:e.name,currency:t})),i=e.giftCertificates.map(e=>({product_id:e.id,gift_certificate_id:e.id,base_price:e.amount,sale_price:e.amount,purchase_price:e.amount,product_name:e.name,gift_certificate_name:e.name,gift_certificate_theme:e.theme,quantity:1,currency:t}));return[...n,...[...e.physicalItems,...e.digitalItems].map(e=>{let n;return e.options&&e.options.length&&(n=e.options.map(e=>`${e.name}:${e.value}`),n.sort()),{product_id:e.productId,quantity:e.quantity,product_name:e.name,base_price:e.listPrice,sale_price:e.salePrice,purchase_price:e.salePrice>0?e.salePrice:e.listPrice,sku:e.sku,variant_id:e.variantId,discount:e.discountAmount,coupon_amount:e.couponAmount,brand_name:e.brand,currency:t,category_names:(i=e,Array.isArray(i.categoryNames)?i.categoryNames:Array.isArray(i.categories)?C(i.categories).map(({name:e})=>e):[]),retail_price:e.retailPrice};var i}),...i].map(e=>Object.assign(Object.assign({},e),{product_id:String(e.product_id)}))}_hasStepCompleted(e){return this._completedSteps[e]}}class DC{checkoutBegin(){}orderPurchased(){}stepCompleted(){}customerEmailEntry(){}customerSuggestionInit(){}customerSuggestionExecute(){}customerPaymentMethodExecuted(){}showShippingMethods(){}selectedPaymentMethod(){}clickPayButton(){}paymentRejected(){}paymentComplete(){}exitCheckout(){}}function MC(e){return function(e){return"bodlEvents"in e}(window)?new TC(e,window.bodlEvents.checkout):new DC}export{Zn as ExtensionCommandType,Qn as ExtensionQueryType,MC as createBodlService,IC as createBraintreeAnalyticTracker,q_ as createCheckoutButtonInitializer,tw as createCheckoutService,uC as createCurrencyService,iC as createEmbeddedCheckoutMessenger,dC as createLanguageService,PC as createPayPalCommerceAnalyticTracker,wC as createStepTracker,AC as createStoredCardHostedFormService,i as createTimeout,J_ as embedCheckout};
2
2
  //# sourceMappingURL=checkout-sdk.js.map