1import{ab as le,d as de,Y as ue,Z as ie,u as ce,R as ye,a0 as pe,ac as ve,ad as me,O as w,o as fe,M as he,a as y,e as x,b as r,j as l,ae as Y,h as $,af as Z,C as S,i as B,ag as be,n as M,Q as J,X as ke,c as xe,w as ge,z as Ce,G as Se,f as Ie,H as d,ah as _e,p,a6 as we,a9 as Me,aa as Ae,ai as Pe}from"./main.CqmBQMb1.js";import{t as Re,y as Ve,C as Ne}from"./Consents.D9QJXwHi.js";const Ke=le("laptop",[["path",{d:"M18 5a2 2 0 0 1 2 2v8.526a2 2 0 0 0 .212.897l1.068 2.127a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45l1.068-2.127A2 2 0 0 0 4 15.526V7a2 2 0 0 1 2-2z",key:"1pdavp"}],["path",{d:"M20.054 15.987H3.946",key:"14rxg9"}]]),$e={class:"gap-2xl mb-2xl flex flex-col"},Be={key:0,class:"gap-lg flex flex-col"},Ee={class:"p-lg gap-lg flex items-center"},ze=["id","value"],He=["for"],Ue={class:"gap-xs flex items-center"},qe={class:"text-body-sm !text-primary !font-medium"},Fe={class:"text-body-xs text-tertiary"},Le={key:1,class:"my-lg relative flex items-center"},Te={class:"mx-lg px-md text-body-xs text-secondary font-medium"},De={class:"p-lg gap-lg flex items-center"},Ge=["id","value"],Oe=["for"],je={class:"gap-xs flex items-center"},Qe={class:"text-body-sm text-primary !font-medium"},Xe={class:"text-body-xs text-tertiary"},Ye={key:0},Ze={key:1},Je=de({__name:"RetailPayment",props:{isValid:{type:Boolean}},emits:["setValidity","goToPrevStep"],setup(We,{emit:W}){const I=W,g=ue(),A=ie(),{t:s}=ce(),{data:i,refetch:ee,dataUpdatedAt:te}=ye(),v=pe(),C=d(!0),o=d(!0),m=d(!1),f=d(!1),{data:P,dataUpdatedAt:L,isFetching:ae}=ve(C),{setRetailPaymentMethodAsync:ne,createRetailOrderAsync:T,createRetailOrderIsLoading:E,createRetailConsentsAsync:oe}=me(),z=Ae(),H=d(null),u=d(null),U=d(!1),D=d([]),R=d(null),V=d(null),q=d(!1),_=d(null),n=_e({id:"",name:"",type:""}),h=p(()=>Array.isArray(P.value)?P.value:[]),G=p(()=>h.value.find(e=>e.paymentMethodId===n.id)),N=p(()=>G.value?.systemKeyword==="Adyen"),F=p(()=>G.value?.systemKeyword==="PayAtStore"),b=p(()=>h.value.find(e=>e.systemKeyword==="PayAtStore")),c=p(()=>h.value.find(e=>e.systemKeyword==="Adyen")),O=e=>{n.id=e},j=p(()=>{const e=i.value?.shipments?.[0];return!!(e?.pickupDate&&e?.warehouseCode)}),Q=p(()=>A.query.redirectResult?.toString()||""),re=async()=>{o.value=!0;try{await ee()}catch(e){o.value=!1,we(e,s("/checkout/error/general-purchase"),"Refetch cart error");return}if(!i.value?.id){console.error("No cart ID found when submitting payment"),o.value=!1,v.addSnackbar({text:s("/checkout/error/general-purchase"),variant:"error"});return}try{await oe({consents:D.value})}catch{o.value=!1;return}try{await ne({paymentMethodId:n.id,paymentName:n.name,paymentType:n.type})}catch(e){console.error("Failed to set payment method",e),o.value=!1;return}if(F.value){if(!n.id){console.error("No payment method selected for Pay at Store"),o.value=!1;return}I("setValidity",!0);try{const e=await T();C.value=!1,g.replace({path:z.orderConfirmation.value,query:{cartId:i.value?.id,userId:i.value?.customerId,orderNr:e}})}catch(e){console.error("Failed to create retail order",e),I("setValidity",!1),o.value=!1,C.value=!0}}else u.value?.submit()};w(ae,e=>{u.value?.setElementStatus(e?"loading":"ready")}),w(()=>[n.id,te.value,L.value],async()=>{if(q.value)return;const e=c.value?.adyenCheckoutSession?.adyenSessionId;u.value&&(!N.value||e&&e!==V.value)&&(u.value.unmount(),u.value=null,V.value=null),N.value&&(!u.value||e&&e!==V.value)&&await X()});const se=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,a,k)=>{q.value=!0,o.value=!0,_.value=null,k.resolve(t)},onPaymentCompleted:async t=>{const a=`${t?.resultCode}-${e.adyenSessionId}`;if(_.value!==a)if(_.value=a,t.resultCode==="Authorised"){I("setValidity",!0);try{const k=await T();C.value=!1,g.replace({path:z.orderConfirmation.value,query:{cartId:i.value?.id,userId:i.value?.customerId,orderNr:k}})}catch(k){if(console.error("Failed to complete order after payment authorization",k),(K=>typeof K=="object"&&K!==null&&"status"in K&&typeof K.status=="number")(k)&&k.status===404){C.value=!1,g.replace({path:z.orderConfirmation.value,query:{cartId:i.value?.id,userId:i.value?.customerId,orderNr:i.value?.preGeneratedOrderNumber}});return}I("setValidity",!1),o.value=!1,v.addSnackbar({text:s("/checkout/error/general-purchase"),variant:"error"})}}
1else console.warn("Payment completed with non-Authorised result:",t.resultCode),I("setValidity",!1),o.value=!1,v.addSnackbar({text:s("/checkout/error/general-purchase"),variant:"error"}),g.replace({path:A.path,query:{}})},onPaymentFailed:async t=>{console.error("Adyen payment failed with result:",t);const a=`${t?.resultCode}-${e.adyenSessionId}`;if(_.value!==a)if(_.value=a,U.value=!1,o.value=!0,q.value=!1,t?.resultCode==="Refused"){F.value?(m.value=!1,f.value=!1):(f.value=!0,m.value=!0),v.addSnackbar({text:s("/checkout/error/payment-refused"),variant:"error"}),g.replace({path:A.path,query:{}});return}else if(t?.resultCode==="Cancelled"){f.value=!1,m.value=!1,v.addSnackbar({text:s("/checkout/error/payment-cancelled"),variant:"info"}),g.replace({path:A.path,query:{}});return}else o.value=!1,v.addSnackbar({text:s("/checkout/error/general-purchase"),variant:"error"})},onChange:t=>{o.value=!t.isValid},onActionHandled:async()=>{m.value=!0,f.value=!0,await Me(()=>{const t=R.value?.getBoundingClientRect().top||0;window.scrollTo({top:t-100,behavior:"smooth"})})},onEnterKeyPressed:(t,a)=>a.showValidation(),onError:()=>{o.value=!1,v.addSnackbar({text:s("/checkout/error/general-purchase"),variant:"error"})}}),X=async()=>{if(!P.value||!N.value)return;const e=h.value.find(a=>a.adyenCheckoutSession&&a.systemKeyword==="Adyen");if(!e?.adyenCheckoutSession?.adyenSessionId){console.error("No Adyen session data found");return}V.value=e.adyenCheckoutSession.adyenSessionId;const t=se(e.adyenCheckoutSession);if(H.value=await Re(t),u.value?.unmount(),u.value=new Ve(H.value,{onReady:()=>{m.value=!1,f.value=!1},onSelect:a=>{n.type=a.props.type||"",n.name=a.props.name||"",o.value=!a.isValid},onError:a=>console.error(a)}),!R.value){console.error("No dropinRef element found to mount Adyen Drop-in");return}u.value.mount(R.value),Q.value&&(C.value=!1,H.value.submitDetails({details:{redirectResult:Q.value}}))};return w(L,()=>{if(!P.value||n.id)return;const e=h.value;if(e.length===1)n.id=e[0].paymentMethodId||"";else if(e.length>1){const t=e.find(a=>a.systemKeyword==="Adyen");t?.paymentMethodId&&(n.id=t.paymentMethodId)}},{immediate:!0}),w(F,e=>{e&&(n.name=s("/checkout/payment/pay-at-store"),n.type="",o.value=!1,f.value=!1,m.value=!1)},{immediate:!0}),w(j,e=>{e&&(o.value=!1)}),fe(async()=>await X()),he(()=>u.value?.unmount()),(e,t)=>(y(),x(Ie,null,[r("div",$e,[h.value.length>0&&!l(E)?(y(),x("div",Be,[b.value?(y(),x("div",{key:0,class:Y(["surface-radius-xs border-secondary cursor-pointer border transition-colors",{"!border-brand-alt":n.id===b.value.paymentMethodId}]),onClick:t[1]||(t[1]=a=>b.value.paymentMethodId&&O(b.value.paymentMethodId))},[r("div",Ee,[$(r("input",{id:`payment-${b.value.paymentMethodId}`,"onUpdate:modelValue":t[0]||(t[0]=a=>n.id=a),value:b.value.paymentMethodId,type:"radio",name:"paymentMethod",class:"checked:!bg-brand-solid checked:!border-brand-solid after:!h-sm relative !h-[16px] !w-[16px] !appearance-none !rounded-full !border !bg-transparent after:!w-sm after:!bg-white after:content-['']"},null,8,ze),[[Z,n.id]]),r("label",{for:`payment-${b.value.paymentMethodId}`,class:"!mb-none flex-1 cursor-pointer"},[r("div",Ue,[r("p",qe,S(l(s)("/checkout/payment/pay-at-store")),1),B(l(be),{size:20})]),r("p",Fe,S(l(s)("/checkout/payment/pay-at-store-description")),1)],8,He)])],2)):M("",!0),h.value.length>1?(y(),x("div",Le,[t[6]||(t[6]=r("div",{class:"border-secondary flex-1 border-t"},null,-1)),r("span",Te,S(l(s)("/checkout/payment/or")),1),t[7]||(t[7]=r("div",{class:"border-secondary flex-1 border-t"},null,-1))])):M("",!0),c.value?(y(),x("div",{key:2,class:Y(["surface-radius-xs border-secondary cursor-pointer border transition-colors",{"!border-brand-alt":n.id===c.value.paymentMethodId}]),onClick:t[3]||(t[3]=a=>c.value.paymentMethodId&&O(c.value.paymentMethodId))},[r("div",De,[$(r("input",{id:`payment-${c.value.paymentMethodId}`,"onUpdate:modelValue":t[2]||(t[2]=a=>n.id=a),value:c.value.paymentMethodId,type:"radio",name:"paymentMethod",class:"checked:!bg-brand-solid checked:!border-brand-solid after:!h-sm relative !h-[16px] !w-[16px] !appearance-none !rounded-full !border !bg-transparent after:!w-sm after:!bg-white after:content-['']"},null,8,Ge),[[Z,n.id]]),r("label",{for:`payment-${c.value.paymentMethodId}`,class:"!mb-none flex-1 cursor-pointer"},[r("div",je,[r("p",Qe,S(l(s)("/checkout/payment/pay-online")),1),B(l(Ke),{size:20})]),r("p",Xe,S(l(s)("/checkout/payment/pay-online-description")),1)],8,Oe)])],2)):M("",!0)])):M("",!0),$(r("div",{ref_key:"dropinRef",ref:R},null,512),[[J,!l(E)&&n.id&&N.value]])]),l(E)?(y(),x("div",Ye,[B(l(ke),{size:48,class:"text-brand-primary animate-[spin_2s_linear_infinite]"})])):(y(),x("div",Ze,[f.value?M("",!0):(y(),xe(Ne,{key:0,onSetConsentsAreValid:t[4]||(t[4]=a=>U.value=a),onSetSelectedConsents:t[5]||(t[5]=a=>D.value=a)})),$(B(Se,{size:"large",disabled:!U.value||o.value||!j.value,onClick:re},{default:ge(()=>[Ce(S(l(s)("/checkout/payment/continue-label")),1)]),_:1},8,["disabled"]),[[J,!m.value]])]))],64))}}),nt=Pe(Je,[["__scopeId","data-v-502e4f1c"]]);export{nt 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.