1import{u as ie,a as ce,_ as le,b as re}from"./DubNyu0K.js";import{_ as ue,a as de}from"./C0zgswXL.js";import{g as _e,h as me,_ as fe}from"./Ca2eL4Js.js";import{u as pe}from"./BQuqH6Lb.js";import{u as ve,a as he}from"./Csu9Rc6D.js";import{u as ke}from"./6MUkgFDV.js";import{u as ge}from"./YF41UUUb.js";import{j as ye,k as d,a as f,o as be,y as we,J as a,L as n,z as S,u as e,M as s,F as _,N as r,O as u,a3 as Be,P as Se,Q as Me,G as i}from"./RAqWWVVn.js";import"./nhLk_MpS.js";import"./C5U9BwEw.js";const h=k=>(Se("data-v-911cbb56"),k=k(),Me(),k),Ce=["data-theme","dir","lang"],Te={class:"page-header"},Ae=h(()=>n("div",null,null,-1)),De={key:0,class:"page-status"},xe={key:1,class:"page-error"},Le={key:2,class:"confirm-shell b-card"},Pe={class:"success-head"},Re={key:0,class:"success-icon"},Ie=h(()=>n("svg",{viewBox:"0 0 24 24",width:"34",height:"34",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[n("path",{d:"M20 6L9 17l-5-5"})],-1)),Ne=[Ie],Ue={key:1,class:"success-icon is-cancelled"},Ve=h(()=>n("svg",{viewBox:"0 0 24 24",width:"30",height:"30",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[n("path",{d:"M18 6L6 18M6 6l12 12"})],-1)),Fe=[Ve],Oe={key:2,class:"success-icon is-warning"},je=h(()=>n("svg",{viewBox:"0 0 24 24",width:"30",height:"30",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},[n("path",{d:"M12 9v4M12 17h.01"}),n("circle",{cx:"12",cy:"12",r:"9"})],-1)),ze=[je],$e={key:3,class:"success-icon is-pending"},Ee=h(()=>n("span",{class:"spinner","aria-hidden":"true"},null,-1)),Ze=[Ee],qe={class:"success-title"},Ge={class:"success-sub"},He={key:0},Je={key:0},Qe={class:"ref-row"},Ke={class:"ref-label"},We={class:"ref-value"},Xe={key:0},Ye={key:1},eo={class:"details"},oo={class:"detail-row"},to={class:"detail-label"},no={class:"detail-value"},so={key:0,class:"detail-row"},ao={class:"detail-label"},io={class:"detail-value"},co={key:0,class:"detail-muted"},lo={key:1,class:"detail-row"},ro={class:"detail-label"},uo={class:"detail-value"},_o={key:2,class:"detail-row"},mo={class:"detail-label"},fo={class:"detail-value"},po={key:0,class:"detail-muted"},vo={key:3,class:"detail-row"},ho={class:"detail-label"},ko={class:"detail-value"},go={key:4,class:"detail-row"},yo={class:"detail-label"},bo={class:"detail-value"},wo={key:0,class:"cancel-info"},Bo={key:0,class:"detail-muted"},So={class:"track-link"},Mo=["href"],Co={class:"actions"},To=2500,Ao=3e4,Do=ye({__name:"confirm",setup(k){const{t:c,dir:$,locale:M}=pe(),E=_e(),Z=me(),q=ve(),{state:C,reset:G}=ke(),{mode:H}=ie(),N=d(()=>String(E.query.ref||"")),t=f(null),g=f(!0),v=f(null),y=f(!1),T=f("idle");ce({pageLabel:c("confirm.pageLabel"),serviceName:()=>{var o,l,m;return((l=(o=t.value)==null?void 0:o.service)==null?void 0:l.name)||((m=C.value.service)==null?void 0:m.name)}});const A=f("UTC"),D=f(C.value.currency||"USD"),{format:J,formatPrice:b}=he(D.value);let w=null,x=0;const U=d(()=>{var o,l;return(o=t.value)!=null&&o.paymentMode?t.value.paymentMode:(l=t.value)!=null&&l.totalAmount?"online":"free"}),L=d(()=>{var l;const o=(l=t.value)==null?void 0:l.status;return o==="confirmed"||o==="completed"}),V=d(()=>{var o;return((o=t.value)==null?void 0:o.status)==="pending_payment"}),P=d(()=>{var o;return((o=t.value)==null?void 0:o.status)==="cancelled"}),R=d(()=>{var o;return((o=t.value)==null?void 0:o.status)==="no_show"}),B=d(()=>{var l,m;if(U.value!=="on_site")return null;const o=((l=t.value)==null?void 0:l.remainingAmount)??((m=t.value)==null?void 0:m.totalAmount);return typeof o=="number"?o:null}),Q=d(()=>U.value==="online"?c("confirm.paymentReceived"):c("confirm.bookingConfirmed"));async function F(){try{const o=await q.getBookingStatus(N.value);t.value=o,o!=null&&o.currency&&(D.value=o.currency.toUpperCase()),v.value=null}catch(o){v.value=(o==null?void 0:o.message)||c("confirm.couldNotLoadBooking")}}function I(){w&&(clearTimeout(w),w=null)}function O(){I(),!(Date.now()>=x)&&(w=setTimeout(async()=>{await F(),V.value&&Date.now()<x?O():I()},To))}async function K(){if(!N.value){v.value=c("confirm.missingBookingReference"),g.value=!1;return}g.value=!0,await F(),g.value=!1,V.value&&(x=Date.now()+Ao,O())}be(()=>I());const W=d(()=>{var o;if(!((o=t.value)!=null&&o.slotStart))return"";try{return new Intl.DateTimeFormat(M.value,{weekday:"long",month:"long",day:"numeric",hour:"numeric",minute:"2-digit",timeZone:A.value||void 0}).format(new Date(t.value.slotStart))}catch{return""}}),j=d(()=>{var l;const o=(l=t.value)==null?void 0:l.cancellationDeadline;if(!o)return"";try{return new Intl.DateTimeFormat(M.value,{weekday:"short",month:"short",day:"numeric",hour:"numeric",minute:"2-digit",timeZone:A.value||void 0}).format(new Date(o))}catch{return""}}),X=d(()=>
1{if(!t.value||t.value.status==="cancelled"||t.value.status==="completed"||t.value.status==="no_show")return!1;const o=t.value.cancellationDeadline;return o?new Date(o).getTime()>Date.now():!0});async function Y(){var o;if((o=t.value)!=null&&o.bookingRef)try{await navigator.clipboard.writeText(t.value.bookingRef),T.value="copied",setTimeout(()=>T.value="idle",1500)}catch{}}function ee(o){t.value=o,y.value=!1}function oe(){G(),Z.push("/")}function z(){var l;return`${typeof window<"u"?window.location.origin:""}/booking/${((l=t.value)==null?void 0:l.bookingRef)||""}`}return we(()=>{A.value=C.value.customer.timezone||ge()||"UTC",K()}),(o,l)=>{const m=le,te=re,ne=ue,se=de;return i(),a("div",{class:"booking-app booking-confirm","data-theme":e(H),dir:e($),lang:e(M)},[n("header",Te,[Ae,S(m),S(te)]),e(g)?(i(),a("div",De,s(e(c)("confirm.loadingBooking")),1)):e(v)?(i(),a("div",xe,s(e(v)),1)):e(t)?(i(),a("div",Le,[n("div",Pe,[e(L)?(i(),a("div",Re,Ne)):e(P)?(i(),a("div",Ue,Fe)):e(R)?(i(),a("div",Oe,ze)):(i(),a("div",$e,Ze)),n("h1",qe,[e(L)?(i(),a(_,{key:0},[r(s(e(Q)),1)],64)):e(P)?(i(),a(_,{key:1},[r(s(e(c)("confirm.bookingCancelled")),1)],64)):e(R)?(i(),a(_,{key:2},[r(s(e(c)("confirm.markedAsNoShow")),1)],64)):(i(),a(_,{key:3},[r(s(e(c)("confirm.finalisingPayment")),1)],64))]),n("p",Ge,[e(L)?(i(),a(_,{key:0},[r(s(e(c)("confirm.confirmedSub"))+" ",1),e(B)!=null?(i(),a("span",He,s(e(c)("confirm.payAtVenue",{amount:e(b)(e(B))})),1)):u("",!0)],64)):e(P)?(i(),a(_,{key:1},[r(s(e(c)("confirm.cancelledSub"))+" ",1),e(t).refundedAmount&&e(t).refundedAmount>0?(i(),a("span",Je,s(e(c)("confirm.refundIssued",{amount:e(J)(e(t).refundedAmount)})),1)):u("",!0),r(" "+s(e(c)("confirm.cancelledBookAgainHint")),1)],64)):e(R)?(i(),a(_,{key:2},[r(s(e(c)("confirm.noShowSub")),1)],64)):(i(),a(_,{key:3},[r(s(e(c)("confirm.pendingPaymentSub")),1)],64))])]),n("div",Qe,[n("div",null,[n("div",Ke,s(e(c)("confirm.bookingReference")),1),n("div",We,[n("code",null,s(e(t).bookingRef),1),n("button",{type:"button",class:"copy-btn",onClick:Y},[e(T)==="copied"?(i(),a("span",Xe,s(e(c)("confirm.copied")),1)):(i(),a("span",Ye,s(e(c)("confirm.copy")),1))])])]),S(ne,{status:e(t).status},null,8,["status"])]),n("div",eo,[n("div",oo,[n("span",to,s(e(c)("confirm.appointment")),1),n("span",no,s(e(W)||"â"),1)]),e(t).service?(i(),a("div",so,[n("span",ao,s(e(c)("confirm.service")),1),n("span",io,[r(s(e(t).service.name)+" ",1),e(t).service.duration?(i(),a("span",co," · "+s(e(c)("confirm.durationMinutes",{minutes:e(t).service.duration})),1)):u("",!0)])])):u("",!0),e(t).provider?(i(),a("div",lo,[n("span",ro,s(e(c)("confirm.host")),1),n("span",uo,s(e(t).provider.name),1)])):u("",!0),e(t).extras&&e(t).extras.length?(i(),a("div",_o,[n("span",mo,s(e(c)("confirm.extras")),1),n("span",fo,[(i(!0),a(_,null,Be(e(t).extras,(p,ae)=>(i(),a("span",{key:p.extraServiceId||ae,class:"extra-line"},[r(s(p.name)+" ",1),p.price?(i(),a("span",po,"· "+s(e(b)(p.price)),1)):u("",!0)]))),128))])])):u("",!0),e(t).totalAmount!=null?(i(),a("div",vo,[n("span",ho,s(e(c)("confirm.amount")),1),n("span",ko,s(e(b)(e(t).totalAmount)),1)])):u("",!0),e(B)!=null?(i(),a("div",go,[n("span",yo,s(e(c)("confirm.dueAtVenue")),1),n("span",bo,s(e(b)(e(B))),1)])):u("",!0)]),e(j)?(i(),a("div",wo,[n("p",null,[r(s(e(c)("confirm.cancelBefore"))+" ",1),n("strong",null,s(e(j)),1),e(t).refundPercent!=null?(i(),a("span",Bo,s(e(c)("confirm.refundPercent",{percent:e(t).refundPercent})),1)):u("",!0)]),n("p",So,[r(s(e(c)("confirm.trackBooking"))+" ",1),n("a",{href:z(),class:"b-link"},s(z()),9,Mo)])])):u("",!0),n("div",Co,[e(X)?(i(),a("button",{key:0,type:"button",class:"b-btn b-btn-ghost",onClick:l[0]||(l[0]=p=>y.value=!0)},s(e(c)("confirm.cancelBooking")),1)):u("",!0),n("button",{type:"button",class:"b-btn b-btn-primary",onClick:oe},s(e(c)("confirm.bookAnother")),1)]),S(se,{open:e(y),booking:e(t),currency:e(D),onClose:l[1]||(l[1]=p=>y.value=!1),onCancelled:ee},null,8,["open","booking","currency"])])):u("",!0)],8,Ce)}}}),jo=fe(Do,[["__scopeId","data-v-911cbb56"]]);export{jo 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.