1import{d as ae,R as te,T as se,u as oe,H as l,a as i,e as G,b as d,i as I,j as a,U as ce,C as f,V as Z,c as C,W as pe,w as _,z as N,n as k,G as O,X as W,Y as me,Z as fe,$ as ve,a0 as ye,a1 as he,O as B,a2 as ge,a3 as Ce,o as _e,M as ke,h as J,Q as ee,a4 as xe,a5 as be,f as Se,p as F,a6 as K,a7 as Ae,a8 as we,a9 as Pe,aa as Ge}from"./main.DfDvl5jK.js";import{t as Ie,y as Ve,C as $e}from"./Consents.pZUx_F5r.js";const Ee={class:"p-xl mb-2xl border-grey-300 rounded-lg border !bg-[#f7f7f7]"},Re={class:"gap-lg mb-xl flex items-center"},Ue={class:"text-body-md !text-grey-800"},ze={class:"gap-lg flex flex-col"},Be={class:"text-body-sm !text-grey-800"},Ne={class:"gap-xl flex flex-col sm:flex-row sm:items-end"},De={class:"w-full"},Te={class:"!mb-xs"},qe={class:"!text-body-sm text-grey-800 !font-normal"},Le={key:0,class:"w-full"},Me={class:"!mb-xs gap-sm flex"},He={class:"!text-body-sm text-grey-800 !font-normal"},Fe={key:0,class:"text-body-xs !text-grey-800"},Ke="*****",Oe=ae({__name:"GiftCardPaymentContainer",emits:["loadingStart","loadingEnd"],setup(ne,{emit:D}){const{data:s}=te(),{applyGiftCard:v,applyGiftCardIsLoading:x,removeGiftCard:c,removeGiftCardIsLoading:o}=se(),A=D,{t:u}=oe(),y=l(s.value?.giftCardCode||""),p=l(s?.value?.appliedGiftCardWithPin?Ke:""),h=()=>{A("loadingStart"),v({code:y.value,pin:p.value},{onSettled:()=>{A("loadingEnd")}})},n=()=>{A("loadingStart"),c(void 0,{onSuccess:()=>{y.value="",p.value=""},onSettled:()=>{A("loadingEnd")}})};return(w,g)=>(i(),G("div",Ee,[d("div",Re,[I(a(ce),{class:"text-brand-primary",size:24}),d("span",Ue,f(a(u)("/checkout/giftcard/heading")),1)]),d("div",ze,[d("p",Be,f(a(s)?.isGiftCardApplied?a(u)("/checkout/giftcard/applied-text"):a(u)("/checkout/giftcard/intro-text")),1),d("div",Ne,[d("div",De,[d("div",Te,[d("span",qe,f(a(u)("/checkout/giftcard/code-label")),1)]),I(Z,{modelValue:y.value,"onUpdate:modelValue":g[0]||(g[0]=b=>y.value=b),type:"text",placeholder:a(u)("/checkout/giftcard/code-placeholder"),class:"placeholder:!text-body-sm !surface-radius-md !h-[40px]",disabled:a(s)?.isGiftCardApplied,required:""},null,8,["modelValue","placeholder","disabled"])]),a(s)?.isGiftCardApplied&&a(s)?.appliedGiftCardWithPin||!a(s)?.isGiftCardApplied?(i(),G("div",Le,[d("div",Me,[d("span",He,f(a(u)("/checkout/giftcard/pin-label")),1),a(s)?.isGiftCardApplied?k("",!0):(i(),C(pe,{key:0,"icon-size":20,class:"[&_.content]:mr-2xl"},{default:_(()=>[N(f(a(u)("/checkout/giftcard/pin-tooltip")),1)]),_:1}))]),I(Z,{modelValue:p.value,"onUpdate:modelValue":g[1]||(g[1]=b=>p.value=b),type:"password",placeholder:a(u)("/checkout/giftcard/pin-placeholder"),class:"placeholder:!text-body-sm !surface-radius-md !h-[40px]",disabled:a(s)?.isGiftCardApplied},null,8,["modelValue","placeholder","disabled"])])):k("",!0)]),a(s)?.isGiftCardApplied?(i(),G("p",Fe,f(a(u)("/checkout/giftcard/applied-info",{paymentDisplayAmount:a(s)?.giftCardPaymentDisplayAmount,originalDisplayAmount:a(s)?.giftCardOriginalDisplayAmount,remainingDisplayAmount:a(s)?.giftCardRemainingDisplayAmount,availableDisplayAmount:a(s)?.giftCardAvailableDisplayAmount})),1)):k("",!0),a(s)?.isGiftCardApplied?(i(),C(O,{key:2,class:"w-fit",variant:"ghost",size:"small",disabled:a(o),onClick:n},{iconEnd:_(()=>[a(o)?(i(),C(a(W),{key:0,size:20,class:"ml-xs animate-spin"})):k("",!0)]),default:_(()=>[N(f(a(u)("/checkout/giftcard/remove-button"))+" ",1)]),_:1},8,["disabled"])):(i(),C(O,{key:1,size:"small",class:"w-fit",disabled:!y.value||a(x),onClick:h},{iconEnd:_(()=>[a(x)?(i(),C(a(W),{key:0,size:20,class:"ml-xs animate-spin"})):k("",!0)]),default:_(()=>[N(f(a(u)("/checkout/giftcard/apply-button"))+" ",1)]),_:1},8,["disabled"]))])]))}}),We={class:"gap-2xl mb-2xl flex flex-col"},je={class:"text-body-sm"},Qe={key:1},Xe={key:2},ea=ae({__name:"Payment",props:{isValid:{type:Boolean}},emits:["setValidity","goToPrevStep"],setup(ne,{emit:D}){const s=D,v=me(),x=fe(),{t:c}=oe(),{data:o,dataUpdatedAt:A,refetch:u}=te(),y=new ve().api,p=ye(),h=l(!0),n=l(!0),w=l(!1),g=l(!0),b=l(!1),V=l(!1),P=F(()=>o.value?.isGiftCardApplied&&o.value?.adyenPaymentAmount===0),{data:re,dataUpdatedAt:le,isFetching:ie}=he(h),{complete:j,completeIsLoading:Q}=se(),T=Ge(),q=l(null),m=l(null),L=l(!1),X=l([]),E=l(null),R=l(null),M=l(!1),$=l(null),U=F(()=>re.value),H=F(()=>x.query.redirectResult?.toString()||""),ue=async()=>{n.value=!0;try{await u()}catch(e){n.value=!1,K(e,c("/checkout/error/general-purchase"),"Refetch cart error");return}if(!o.value?.id){console.error("No cart ID found when submitting payment"),n.value=!1,p.addSnackbar({text:c("/checkout/error/general-purchase"),variant:"error"});return}if(!o.value?.shippingMethodName&&o.value?.showDeliveryOptions){p.addSnackbar({text:c("/checkout/error/general-purchase"),variant:"error"}),s("goToPrevStep");return}try{await y.meCheckoutConsentsCreate({consents:X.value})}catch(e){K(e,c("/checkout/error/general-purchase"),"Save consents error"),n.value=!1;return}try{const e=Ae();await y.meCheckoutUtmParametersCreate({utmSource:e.utm_source,utmMedium:e.utm_medium,utmCampaign:e.utm_campaign,utmTerm:e.utm_term,utmContent:e.utm_content}),we()}catch(e){n.value=!1,K(e,c("/checkout/error/general-purchase"),"Save UTM parameters error");return}if(P.value){s("setValidity",!0);try{const e=await j();h.value=!1,v.replace({path:T.orderConfirmation.value,query:{cartId:o.value?.id,userId:o.value?.customerId,orderNr:e}})}catch(e){console.error("Failed to complete gift card payment",e),s("setValidity",!1),n.value=!1,h.value=!0}}else m.value?.submit()};B(ie,e=>{m.value?.setElementStatus(e?"loading":"ready")}),B(()=>[A.value,le.value],async()=>
1{if(M.value)return;const e=U.value?.adyenSessionId;m.value&&e&&e!==R.value&&(m.value.unmount(),m.value=null,R.value=null),(!m.value||e&&e!==R.value)&&await Y()});const de=e=>({clientKey:e.adyenClientKey||"",session:{id:e.adyenSessionId||"",sessionData:e.adyenSessionData||""},environment:e.adyenEnvironment||"test",locale:e.adyenShopperLocale||"",countryCode:e.adyenCountryCode||"",amount:{value:e.adyenAmount?.value||0,currency:e.adyenAmount?.currency||""},showPayButton:!1,beforeSubmit:(t,r,S)=>{M.value=!0,n.value=!0,$.value=null,S.resolve(t)},onPaymentCompleted:async t=>{const r=`${t?.resultCode}-${e.adyenSessionId}`;if($.value!==r)if($.value=r,t.resultCode==="Authorised"){s("setValidity",!0);try{const S=await j();h.value=!1,v.replace({path:T.orderConfirmation.value,query:{cartId:o.value?.id,userId:o.value?.customerId,orderNr:S}})}catch(S){if(console.error("Failed to complete order after payment authorization",S),(z=>typeof z=="object"&&z!==null&&"status"in z&&typeof z.status=="number")(S)&&S.status===404){h.value=!1,v.replace({path:T.orderConfirmation.value,query:{cartId:o.value?.id,userId:o.value?.customerId,orderNr:o.value?.preGeneratedOrderNumber}});return}s("setValidity",!1)}}else console.warn("Payment completed with non-Authorised result:",t.resultCode),s("setValidity",!1),n.value=!1,v.replace({path:x.path,query:{}})},onPaymentFailed:async t=>{console.error("Adyen payment failed with result:",t);const r=`${t?.resultCode}-${e.adyenSessionId}`;if($.value!==r)if($.value=r,L.value=!1,n.value=!0,M.value=!1,t?.resultCode==="Refused"){V.value=!0,w.value=!0,p.addSnackbar({text:c("/checkout/error/payment-refused"),variant:"error"}),v.replace({path:x.path,query:{}});return}else t?.resultCode==="Cancelled"&&(V.value=!1,w.value=!1,p.addSnackbar({text:c("/checkout/error/payment-cancelled"),variant:"info"}),v.replace({path:x.path,query:{}}))},onChange:t=>{P.value||(n.value=!t.isValid)},onActionHandled:async()=>{w.value=!0,g.value=!0,V.value=!0,await Pe(()=>{const t=E.value?.getBoundingClientRect().top||0;window.scrollTo({top:t-100,behavior:"smooth"})})},onEnterKeyPressed:(t,r)=>{r.showValidation()},onError:(t,r)=>{n.value=!1,p.addSnackbar({text:c("/checkout/error/general-purchase"),variant:"error"}),console.error("Adyen error:",t.name,t.message,t.stack,r)}}),Y=async()=>{if(!U.value?.adyenSessionId){console.error("No Adyen session data found");return}R.value=U.value?.adyenSessionId;const e=de(U.value);if(q.value=await Ie(e),m.value?.unmount(),m.value=new Ve(q.value,{onReady:()=>{w.value=!1,g.value=!1,V.value=!1},onSelect:t=>{P.value||(n.value=!t.isValid)},onError:t=>console.error(t)}),!E.value){console.error("No dropinRef element found to mount Adyen Drop-in");return}m.value.mount(E.value),H.value&&(h.value=!1,q.value.submitDetails({details:{redirectResult:H.value}}))};return B(o,e=>{e&&!H.value&&ge.emit(Ce.checkout.addShipping,e)}),B(P,e=>{n.value=!e},{immediate:!0}),_e(async()=>await Y()),ke(()=>m.value?.unmount()),(e,t)=>(i(),G(Se,null,[d("div",We,[J(d("div",{ref_key:"dropinRef",ref:E},null,512),[[ee,!a(Q)&&!P.value]])]),P.value?(i(),C(be,{key:0,variant:"warning",class:"my-xl !p-xl"},{icon:_(()=>[I(a(xe),{size:24,class:"min-w-2xl"})]),default:_(()=>[d("p",je,f(a(c)("/checkout/payment/gift-card-fully-paid-information")),1)]),_:1})):k("",!0),a(Q)?(i(),G("div",Qe,[I(a(W),{size:48,class:"text-brand-primary animate-[spin_2s_linear_infinite]"})])):(i(),G("div",Xe,[g.value?k("",!0):(i(),C(Oe,{key:0,onLoadingStart:t[0]||(t[0]=r=>b.value=!0),onLoadingEnd:t[1]||(t[1]=r=>b.value=!1)})),V.value?k("",!0):(i(),C($e,{key:1,onSetConsentsAreValid:t[2]||(t[2]=r=>L.value=r),onSetSelectedConsents:t[3]||(t[3]=r=>X.value=r)})),J(I(O,{size:"large",disabled:!L.value||n.value||b.value,onClick:ue},{default:_(()=>[N(f(a(c)("/checkout/payment/continue-label")),1)]),_:1},8,["disabled"]),[[ee,!w.value]])]))],64))}});export{ea as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.