1import{d as q,u as fe,o as f,e as C,b as P,av as he,$ as ge,w as te,m as oe,t as l,a0 as ae,ar as W,a6 as se,x as ne,K as re,a8 as ce,az as we,q as $,F as X,a as t,j as e,B as ie,c as N,l as j,f as be,C as Z,p as F,U as ve,g as xe,M as Ce,S as ee,i as ke,R as Se,aa as Oe,aA as Ae,ay as Pe,a9 as Ie,aB as Re}from"./wTMwXm24.js";import{f as $e}from"./DOKF9kHf.js";import{addressService as Me}from"./znHjOTJ2.js";import{u as Ee}from"./B8osmkqS.js";import{u as Te}from"./C6bgd_NA.js";import{u as je}from"./K6mXul7I.js";const Fe={class:"hidden lg:flex mb-4"},Ue=q({__name:"CouponApply",props:W({loading:{type:Boolean},disabled:{type:Boolean}},{modelValue:{default:""},modelModifiers:{}}),emits:W(["apply"],["update:modelValue"]),setup(m,{emit:h}){const n=fe(m,"modelValue"),u=h;function o(){u("apply")}return(a,k)=>{const I=ge,g=ae;return f(),C("div",Fe,[P(I,{modelValue:n.value,"onUpdate:modelValue":k[0]||(k[0]=p=>n.value=p),placeholder:a.$t("common.checkout.couponCode"),trailing:"none",ui:{base:["text-gray-10 !shadow-none bg-main-white !border-none !outline-none ring-0 focus:!ring-0 h-[45px] font-16 fw-400 flex-1"]},class:"flex-1 border-gray-200 shadow-none !pe-[20px]",disabled:m.disabled||m.loading,onKeydown:he(o,["enter"])},null,8,["modelValue","placeholder","disabled"]),P(g,{class:"btn-main-primary !ms-[-20px] z-10 px-[12px] py-[10.5px] text-white rounded-tl-[4px] rounded-tr-[8px] rounded-br-[8px] rounded-bl-[4px] font-16 fw-700",loading:m.loading,disabled:m.disabled||!n.value.trim(),onClick:o},{default:te(()=>[oe(l(a.$t("common.checkout.apply")),1)]),_:1},8,["loading","disabled"])])}}}),Ve=Object.assign(Ue,{__name:"CheckoutCouponApply"}),Be={class:"flex justify-between pb-2 font-14 fw-400 text-gray-500"},Ne={class:"fw-700 text-black-200"},qe={key:0},De={class:"text-green-600 fw-600"},Le={class:"flex items-center justify-between pb-2 font-14 fw-400"},ze={class:"flex items-center gap-1 text-green-600"},Ge={class:"fw-500"},He={class:"flex items-center gap-2"},Ke=["disabled","title"],Ye={key:1,class:"flex justify-between pb-2 border-b-gray-200 font-14 fw-400 text-gray-500"},Je={class:"fw-700 text-black-200"},Qe={class:"flex justify-between my-4 font-14 fw-400 text-black-200"},We={class:"fw-500"},Xe={class:"fw-700 text-black-200"},Ze=q({__name:"OrderSummary",setup(m){const h=se(),{t:n}=ne(),{trans_choice:u}=re(),o=ce(),a=$(()=>h.raw),k=we("checkoutMode",$(()=>!1)),I=$(()=>o.path.includes("/checkout")||k.value),g=F(!1);async function p(){g.value=!0,await h.removeCoupon(),g.value=!1}return(M,S)=>{const w=ie;return f(),C(X,null,[t("div",Be,[t("span",null,l(e(n)("common.cart.subtotal"))+" ("+l(e(u)("common.cart.itemsCount",e(a)?.items_count,{count:e(a)?.items_count??0}))+") ",1),t("span",Ne,l(e(a)?.formated_sub_total??e(a)?.sub_total),1)]),e(a)?.coupon_code?(f(),C("div",qe,[t("span",De,l(M.$t("common.checkout.couponApplied")),1),t("div",Le,[t("span",ze,[P(w,{name:"i-lucide-tag",class:"w-[14px] h-[14px]"}),t("span",Ge,l(e(a).coupon_code),1)]),t("span",He,[t("button",{disabled:e(g),class:"text-red-400 hover:text-red-500 transition-colors disabled:opacity-50 cursor-pointer",title:M.$t("common.checkout.removeCoupon"),onClick:p},[e(g)?(f(),N(w,{key:0,name:"i-lucide-loader-2",class:"w-[14px] h-[14px] animate-spin"})):(f(),N(w,{key:1,name:"i-lucide-x",class:"w-[14px] h-[14px]"}))],8,Ke)])])])):j("",!0),e(I)?(f(),C("div",Ye,[t("span",null,l(e(n)("common.cart.totalShippingFees")),1),t("span",Je,l(e(a)?.formated_shipping_fees??e(a)?.shipping_fees??e(a)?.fees?.find(d=>d.slug==="shipping_commission")?.formatted_value??"â"),1)])):j("",!0),e(a)?.fees?.length?(f(!0),C(X,{key:2},be(e(a).fees.filter(d=>d.slug!=="shipping_commission"&&d.value!==null&&(d.slug!=="wallet"||e($e).wallet)),d=>(f(),C("div",{key:d.slug,class:Z(["flex justify-between pb-2 border-b-gray-200 font-14 fw-400",d.slug==="discount"?"text-green-600":"text-gray-500"])},[t("span",null,l(d.title),1),t("span",{class:Z(["fw-700",d.slug==="discount"?"text-green-600":"text-black-200"])},l(d.slug==="discount"?"- ":"")+l(d.formatted_value??d.value),3)],2))),128)):j("",!0),t("div",Qe,[t("span",We,l(e(n)("common.checkout.total")),1),t("span",Xe,l(e(a)?.formated_grand_total??e(a)?.grand_total),1)])],64)}}}),et=Object.assign(Ze,{__name:"CartOrderSummary"}),tt={class:"bg-main-white p-5 border border-gray-200 rounded-lg shadow-[0px_-4px_16px_0px_#D411420A] lg:shadow-none"},ot={class:"font-24 fw-600 text-black-200 fw-600"},at={class:"flex items-center gap-2"},st={class:"icon block lg:hidden"},nt={class:"block lg:hidden"},rt={class:"text-main-white fw-400"},ct={class:"fw-800"},it=q({__name:"OrderSummary",props:{data:{type:Object},comment:{type:String,default:""},checkoutMode:{type:Boolean,default:!1}},setup(m){const h=m,{t:n}=ne(),u=ve(),o=se(),{trans_choice:a}=re(),k=Ie(),I=ce(),{trackPurchase:g}=Ee(),p=$(()=>I.path.includes("/checkout")||h.checkoutMode);Re("checkoutMode",p);const M=$(()=>{const s=o.itemsByStore;return!s||s.length===0?!0:s.every(r=>!r.items||r.items.length===0)}),S=F(""),w=F(!1);async function d(){const s=S.value.trim();if(s){w.value=!0;try{const r=await o.applyCoupon(s);r.success?(u.add({title:n("common.checkout.couponApplied"),color:"success",icon:"i-lucide-check-circle"}),S.value=""):u.add({title:n("common.checkout.couponInvalid"),description:r.message,color:"error",icon:"i-lucide-x-circle"})}finally{w.value=!1}}}const le={EG:"egypt",SA:"saudi",AE:"uae"},de={egypt:"EGP",saudi:"SAR",uae:"AED"},ue=["creditcard","valu","halan","aman","forsa","tabby","applepay","stcpay","omannet","knet","all"],U=F(!1);xe(async()=>
1{if(sessionStorage.getItem("payment_in_progress")){sessionStorage.removeItem("payment_in_progress"),sessionStorage.removeItem("saved_cart_items");try{await o.fetchCart()}catch(b){console.warn("[OrderSummary] Could not refresh cart after payment return:",b)}u.add({title:n("common.toast.requestFailed"),description:"Payment was not completed. No payment was taken and your cart remains unchanged.",color:"error",icon:"i-lucide-x-circle"});const r=Ce();await ee(r("/cart"),{replace:!0})}});async function me(){U.value=!0;try{const s=Te(),r=Se(),b=Me(),O=Oe("selectedAddress").value;if(!O){u.add({title:n("common.toast.requestFailed"),description:"Please select a delivery address before placing your order.",color:"error",icon:"i-lucide-x-circle"});return}const A=s.selectedMethodStr||o.raw?.payment?.method||o.raw?.payment_method||"all";let c=typeof A=="string"?A:A?.method||"all";const pe=c.length>20?"creditcard":c,[V,L]=await Promise.all([b.saveCheckoutAddress({billing:{address_id:O},shipping:{address_id:O,email:r.user?.email}}),s.savePayment({payment:{method:pe}})]).catch(i=>{const x=i?.data?.message||i?.message||"Failed to save address or payment method";throw u.add({title:n("common.toast.requestFailed"),description:x,color:"error",icon:"i-lucide-x-circle"}),null});V&&o.setCartFromResponse(V),L&&o.setCartFromResponse(L);try{const i=await b.saveShipping({shipping_method:"flatrate_flatrate"});i?.data&&o.setCartFromResponse(i.data.cart?i:V)}catch(i){console.warn("[OrderSummary] Could not save shipping:",i)}const z=await k.post("/api/checkout/save-order",{comment:h.comment||"",email:r.user?.email||void 0}),E=z?.order?.order_id||z?.order?.main_order_id;if(E&&sessionStorage.setItem("pending_order_id",String(E)),!!["cash","cod","cashondelivery"].includes(String(A).toLowerCase())){const i=o.cartItems,x=o.raw;g({content_ids:i.map(y=>String(y.product_id??y.product?.id??y.id)),contents:i.map(y=>({id:String(y.product_id??y.product?.id??y.id),quantity:y.quantity??1})),value:Number(x?.grand_total??x?.sub_total??h.data?.grand_total??0),num_items:i.reduce((y,ye)=>y+(ye.quantity??1),0)}),o.clearCart(),o.$reset(),localStorage.removeItem("cart"),sessionStorage.removeItem("pending_order_id"),sessionStorage.removeItem("checkout_comment"),sessionStorage.removeItem("payment_in_progress"),sessionStorage.removeItem("saved_cart_items");const T=je();T.resetAddress(),T.resetPayment(),await Ae("orders"),u.add({title:n("common.toast.requestSuccess"),color:"success",icon:"i-lucide-check-circle"}),ee({path:E?`/orders/${E}`:"/orders"});return}c=c.toLowerCase().replace(/^paytabs_/,""),c={value:"valu"}[c]??c,(c.length>20||c.includes("credit"))&&(c="creditcard"),ue.includes(c)||(c="all");let _=null;try{const x=(await b.list())?.data??[];_=x.find(T=>T.id===O)??x[0]??null}catch(i){console.warn("[OrderSummary] Could not load address details:",i)}const B=r.user,G=(_?.country_code||_?.country||"EG").toUpperCase().slice(0,2),H=le[G]||"egypt",_e=de[H]||"EGP",K=o.raw?.cart_id??o.raw?.id??null;if(!K)throw new Error("Cart ID not found. Please refresh and try again.");const Y={country:H,payment_methods:[c],tran_type:"sale",tran_class:"ecom",cart_id:String(o.raw?.cart?.id||K),cart_currency:_e,cart_amount:Number(h.data?.grand_total||0),cart_description:"Cart Checkout",paypage_lang:"ar",hide_shipping:!0,customer_details:{name:_?.full_name||B?.full_name||"Customer",email:_?.email||B?.email||void 0,phone:_?.phone||B?.phone_number||"",street1:_?.street_name||_?.building_name||"N/A",city:_?.city||"Cairo",state:_?.governorate_name||"C",country:G,zip:_?.zip||"00000"}};console.log("[OrderSummary] â PayTabs payload:",JSON.stringify(Y,null,2));const v=await $fetch("/api/payment/create",{method:"POST",body:Y});if(v?.success===!1){const i=v?.details?.message||v?.error||"Payment request failed";console.error("[OrderSummary] PayTabs error:",v),u.add({title:n("common.toast.requestFailed"),description:i,color:"error"});return}const R=v?.data??v,J=R?.tran_ref;J&&s.saveTranRef(J),s.savePaymentMethod(c);const Q=R?.redirect_url||R?.payment_url||R?.redirectUrl;if(Q){sessionStorage.setItem("payment_in_progress","1"),window.location.href=Q;return}console.error("[OrderSummary] No redirect_url in PayTabs response:",v),u.add({title:n("common.toast.requestFailed"),description:R?.message||"Payment gateway did not return a redirect URL",color:"error"})}catch(s){s!==null&&(console.error("Order or Payment failed:",s),u.add({title:n("common.toast.requestFailed"),description:Pe(s?.data??s,n("common.toast.placeOrderFailed")),color:"error",icon:"i-lucide-x-circle"}))}finally{U.value=!1}}return(s,r)=>{const b=Ve,D=et,O=ie,A=ae;return f(),C("div",tt,[t("div",ot,l(s.$t("common.checkout.orderSummary")),1),r[2]||(r[2]=t("div",{class:"spacer-32"},null,-1)),t("div",null,[e(p)?(f(),N(b,{key:0,modelValue:e(S),"onUpdate:modelValue":r[0]||(r[0]=c=>ke(S)?S.value=c:null),loading:e(w),disabled:!!e(o).raw?.coupon_code,onApply:d},null,8,["modelValue","loading","disabled"])):j("",!0),P(D),P(A,{onClick:r[1]||(r[1]=c=>e(p)?me():void 0),to:e(p)?void 0:"/checkout",loading:e(p)&&e(U),disabled:e(p)&&e(M),class:"!w-full btn-main-primary text-main-white lg:px-[12px] py-[11px] px-[24px] justify-between lg:justify-center disabled:opacity-50 disabled:cursor-not-allowed"},{default:te(()=>[t("div",at,[t("span",st,[P(O,{name:"i-iconoir-wallet",class:"w-[24px] h-[24px]"})]),oe(" "+l(e(p)?e(a)("common.checkout.placeOrderCount",m.data?.items_count??0):e(a)("common.checkout.checkoutCount",m.data?.items_count??0)),1)]),t("div",nt,[t("span",rt,[t("span",ct," . "+l(m.data?.formated_grand_total||m.data?.grand_total),1)])])]),_:1},8,["to","loading","disabled"])])])}}}),ht=Object.assign(it,{__name:"CheckoutOrderSummary"});export{ht as _};
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.