1import{c as lo,bI as io,e as E,n as ua,h as q,I as je,bX as _a,ai as U,bY as co,bZ as ro,o as ze,g as Ce,v as Ye,bo as uo,ak as mo,W as po,b_ as qe,b$ as ma,w as vo,c0 as go,by as pa,ab as _o,c1 as yo,T as ho,p as va,t as ko}from"./main-kBzK4eIG.js";import{D as ne}from"./vendor-luxon-D-syak89.js";import{O as bo,E as fo}from"./Error-AK8Dy47O.js";import{o as ya,b as wo,d as We,c as C,r as d,z as r,F as I,C as e,f as B,G as Q,u as n,a9 as De,E as a,S as D,O as y,D as Ge,V,N as Te,L as Ae,aa as Bo,ai as $o,A as i,a0 as Co,K as Ao,Y as W,l as Do,W as To,P as No}from"./vendor-primevue-CeEACqX_.js";import"./ExperienceDashboardBookingCard.vue_vue_type_style_index_0_scoped_fc7136f7_lang-DF3FESgN.js";/* empty css */import"./vendor-posthog-B2YXpdD_.js";import"./http-CCRDJRhH.js";import{i as Io,h as Po}from"./bookingTableUtils-DYuyagQo.js";import{u as Ro,D as So,b as He}from"./useVoucherDownload-DDc84_Da.js";import{f as Lo}from"./file-download-idIKGCAR.js";import{C as ga}from"./CancellationPolicies-BQNgZYas.js";import{u as Qe}from"./vendor-i18n-G4dYfk6F.js";import{C as Mo}from"./calendar-9wfWEGKs.js";import{U as Vo}from"./users-BLo7rXjH.js";import"./vendor-fontawesome-CHTXNQM2.js";import"./vendor-pako-DwGzBETv.js";import"./vendor-query-B7KhvNMU.js";import"./arrow-up-down-CMLnL2fi.js";/** 2 * @license lucide-vue-next v0.453.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const Oo=lo("TagIcon",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);function Eo(L){return`${window.location.origin}/v1/invoices/${L}?attachment=1`}function Uo(L){let c=null;return{promise:new Promise(N=>{c=window.setTimeout(N,L)}),cancel:()=>{c!==null&&window.clearTimeout(c),c=null}}}function Fo(L){const c=()=>{document.visibilityState==="visible"&&L.setLoading(!1)};return ya(()=>{document.addEventListener("visibilitychange",c)}),wo(()=>{document.removeEventListener("visibilitychange",c)}),{downloadInvoice:async N=>{L.setLoading(!0);try{const O=L.externalLink;if(O?.isActive()){const $=L.externalOpenLinkTimeoutMs??2500,u=Uo($),b=Eo(N.bookingId);try{await Promise.race([O.openExternalLink(b).then(()=>{}),u.promise])}finally{u.cancel()}return}const _=await io(N.bookingId);Lo(_,N.filename)}catch(O){L.onError?.(O)}finally{L.setLoading(!1)}}}}const qo={key:0,class:"cancel-dialog"},Go={class:"cancel-dialog__error-msg"},Ho={class:"cancel-dialog__actions"},jo={key:1,class:"cancel-dialog"},zo={class:"cancel-dialog__header"},Yo={class:"cancel-dialog__title"},Wo={class:"cancel-dialog__subtitle"},Qo={class:"cancel-dialog__reasons"},Jo=["for"],Xo={key:0,class:"cancel-dialog__textarea"},Ko={class:"cancel-dialog__actions"},Zo={key:2,class:"cancel-dialog cancel-dialog--centered"},xo={class:"cancel-dialog__title"},en={class:"cancel-dialog__subtitle"},an={class:"cancel-dialog__actions cancel-dialog__actions--col"},on={class:"cancel-dialog__policy-note"},nn={class:"cancel-dialog__policy-consent"},tn={class:"booking-page"},sn={class:"booking-layout"},ln={class:"topbar"},cn={class:"topbar__id"},rn={class:"topbar__id-label"},dn={class:"topbar__id-value"},un={class:"topbar__actions"},mn=["disabled"],pn={key:0},vn={key:1},gn=["disabled"],_n={key:0},yn={key:1},hn={key:0,class:"impersonation-banner"},kn={class:"impersonation-banner__text"},bn={class:"booking-card"},fn={class:"status-row"},wn={class:"status-item"},Bn={class:"status-item__label"},$n={class:"status-item"},Cn={class:"status-item__label"},An={class:"hotel-heading"},Dn={class:"hotel-heading__name"},Tn={class:"hotel-heading__stars"},Nn=["data-i"],In={class:"hotel-media"},Pn={class:"hotel-media__cell"},Rn=["src"],Sn={class:"hotel-media__cell"},Ln=["src"],Mn={class:"detail-row"},Vn={class:"detail-body"},On={class:"detail-body__label"},En={class:"detail-body__value"},Un=["href"],Fn={class:"dates-grid"},qn={class:"date-card"},Gn={class:"detail-body"},Hn={class:"detail-body__label"},jn={class:"detail-body__value"},zn={key:0,class:"detail-body__time"},Yn={class:"date-card"},Wn={class:"detail-body"},Qn={class:"detail-body__label"},Jn={class:"detail-body__value"},Xn={key:0,class:"detail-body__time"},Kn={class:"detail-row"},Zn={class:"detail-body"},xn={class:"detail-body__label"},et={key:0,class:"detail-body__value detail-body__value--bullet"},at={key:1,class:"detail-body__value detail-body__value--bullet"},ot={class:"detail-body__value detail-body__value--bullet"},nt={class:"detail-row"},tt={class:"detail-body"},st={class:"detail-body__label"},lt={class:"detail-body__value"},it={class:"detail-body__sub"},ct={class:"detail-body__guest-label"},rt={class:"detail-body__value"},dt={class:"detail-row"},ut={class:"detail-body"},mt={class:"detail-body__label"},pt={class:"detail-body__value"},vt={key:1,class:"room-pair"},gt={class:"detail-row"},_t={class:"detail-body"},yt={class:"detail-body__label"},ht={class:"detail-body__value"},kt={class:"detail-row"},bt={class:"detail-body"},ft={class:"detail-body__label"},wt={class:"detail-body__value"},Bt={class:"detail-row"},$t={class:"detail-body"},Ct={class:"detail-body__label"},At={class:"detail-body__value"},Dt={key:2,class:"detail-body__value"},Tt={class:"detail-body voucher-detail"},Nt={class:"detail-body__label"},It={class:"voucher-layout"},Pt={class:"voucher-layout__left"},Rt=["src"],St={class:"voucher-text"},Lt={class:"detail-body__value"},Mt=["href"],Vt={class:"detail-body__value"},Ot={class:"voucher-amount"},Et={class:"detail-row"},Ut={class:"detail-body"},Ft={class:"detail-body__label"},qt={class:"price-breakdown"},Gt={class:"price-row"},Ht={class:"price-row__label"},jt={class:"price-row__amount"},zt={key:0,class:"price-row"},Yt={class:"price-row__label"},Wt={class:"price-row__amount"},Qt={key:1,class:"price-row"},Jt={class:"price-row__label"},Xt={class:"price-row__amount"},Kt={key:2,class:"price-row"},Zt={class:"price-row__label"},xt={class:"price-row__amount"},es={key:3,class:"price-row"},as={class:"price-row__label"},os={class:"price-row__amount price-row__amount--green"},ns={key:4,class:"price-row price-row--total"},ts={class:"price-row__label price-row__label--strong"},ss={class:"price-row__amount price-row__amount--strong"},ls={key:5,class:"price-row"},is={class:"price-row__label"},cs={class:"price-row__note"},rs={class:"price-row__amount price-row__amount--muted"},ds={key:6,class:"price-row"},us={class:"price-row__label"},ms={class:"price-row__amount price-row__amount--muted"}
6,ps={key:7,class:"price-row price-row--total"},vs={class:"price-row__label price-row__label--strong"},gs={class:"price-row__amount price-row__amount--strong"},_s={key:0},ys={class:"price-row__note"},hs={key:8,class:"price-disclaimer"},ks={class:"detail-row"},bs={class:"detail-body"},fs={class:"detail-body__label"},ws=["innerHTML"],Bs={class:"detail-row"},$s={class:"detail-body"},Cs={class:"detail-body__label"},As=["disabled"],Ds={class:"support-card"},Ts={class:"support-card__col"},Ns={class:"support-card__title"},Is={class:"support-card__body"},Ps={class:"support-card__col"},Rs={class:"support-card__title"},Ss={class:"support-card__body"},Ls={class:"support-card__contacts"},Ms={key:0,class:"support-card__or"},Vs=["href"],Os={class:"dialog-header-title"},Es=We({__name:"ManageBookingNormalView",props:{hotel:{},booking:{},prebooking:{},bookingId:{},email:{},mapUrl:{},checkinDate:{},checkoutDate:{},checkinTime:{},checkoutTime:{},nights:{},stars:{},country:{},bookedRooms:{},roomName:{},boardName:{},fullName:{},guestsDescription:{},roomsDetails:{},roomClients:{},numberOfRooms:{},numberOfNights:{},numberOfAdults:{},listOfChildren:{},formattedListOfChildren:{},mainGuests:{},vouchers:{},addonFlags:{},uberAmount:{},esimplyAmount:{},subtotalAmount:{},includedTaxesAmount:{},excludedTaxesAmount:{},voucherCodeAmount:{},totalPaid:{},currentCurrency:{},hotelCurrency:{},payAtPropertyOnly:{type:Boolean},remarks:{},cancelBookingMessage:{},bookingDisplayStatus:{},bookingStatusIcon:{},paymentDisplayStatus:{},paymentStatusIcon:{},paymentStatusClass:{},showPayButton:{type:Boolean},isDownloading:{type:Boolean},isDownloadingInvoice:{type:Boolean},directionsUrl:{},contactEmail:{},contactPhone1:{},contactPhone2:{},liteApiVersionV3:{type:Boolean}},emits:["download-voucher","download-invoice","pay-booking","cancellation-complete"],setup(L,{emit:c}){const{t:l}=Qe(),N=L,O=c,_=C(()=>E.project.settings?.hideHeader),$=C(()=>{const o=[],t=N.contactEmail?.trim();t&&o.push({kind:"email",value:t});const m=N.contactPhone1?.trim();m&&o.push({kind:"phone",value:m});const R=N.contactPhone2?.trim();return R&&o.push({kind:"phone",value:R}),o}),u=d(!1),b=d(!1),S=d(!1),f=d(!1),g=d(""),w=d(!1),H=d(""),te=d(""),J=l("manageBooking.cancelReasons.other"),ve=d([l("manageBooking.cancelReasons.betterDealElsewhere"),l("manageBooking.cancelReasons.changePlans"),l("manageBooking.cancelReasons.hotelRelated"),l("manageBooking.cancelReasons.preferencesNotMet"),J]);let X=null;const ge=()=>{if(q.isImpersonating){w.value=!1,g.value=l("impersonation.cancellationNotAllowed"),f.value=!0;return}w.value=!0,co({bookingId:N.bookingId,email:N.email}).then(o=>{X=o,S.value=!0,w.value=!1}).catch(o=>{f.value=!0,g.value=o?.response?.data?.error||l("manageBooking.cancelMessage.unknownError"),S.value=!1,w.value=!1,console.error(o)})},_e=()=>{const o=H.value===J?te.value:H.value;ro({bookingId:N.bookingId,reason:o}),u.value=!1,X&&O("cancellation-complete",X)},se=()=>{f.value=!1,S.value=!1,u.value=!1},Ne=o=>{o.preventDefault();const t=N.directionsUrl;t&&(ze()?Ce().openExternalLink(t):window.open(t,"_blank","noopener,noreferrer"))};return(o,t)=>(i(),r(I,null,[e("div",{class:Ge(["page-wrap",{"page-wrap--has-header":!_.value}])},[B(n(De),{visible:u.value,"onUpdate:visible":t[3]||(t[3]=m=>u.value=m),dismissableMask:u.value,modal:"",class:"mx-2 dialog-cancel"},{container:Q(()=>[f.value?(i(),r("div",qo,[e("p",Go,a(g.value),1),e("div",Ho,[B(n(Ae),{label:n(l)("manageBooking.back"),onClick:se,text:"",class:"w-full p-2 btn radius_sm"},null,8,["label"])])])):y("",!0),S.value&&!f.value?(i(),r("div",jo,[e("div",zo,[t[9]||(t[9]=e("i",{class:"pi pi-info-circle cancel-dialog__header-icon"},null,-1)),e("span",Yo,a(n(l)("manageBooking.cancelQuestion")),1)]),e("p",Wo,a(n(l)("manageBooking.cancelQuestionSubtitle")),1),e("div",Qo,[(i(!0),r(I,null,V(ve.value,m=>(i(),r("div",{key:m,class:"cancel-dialog__reason-item"},[B(n(Bo),{modelValue:H.value,"onUpdate:modelValue":t[0]||(t[0]=R=>H.value=R),inputId:m,name:"cancelBookingReasons",value:m,"data-testid":"cancel-bookin-reason-radio"},null,8,["modelValue","inputId","value"]),e("label",{for:m,class:"cancel-dialog__reason-label"},a(m),9,Jo)]))),128))]),H.value===n(J)?(i(),r("div",Xo,[B(n($o),{modelValue:te.value,"onUpdate:modelValue":t[1]||(t[1]=m=>te.value=m),type:"textarea",variant:"filled",maxlength:"150",rows:"2",cols:"30",autoResize:"",placeholder:n(l)("manageBooking.reasonPlaceholder")},null,8,["modelValue","placeholder"])])):y("",!0),e("div",Ko,[B(n(Ae),{label:n(l)("manageBooking.submit"),severity:"info",raised:"",onClick:_e,class:"radius_sm","data-testid":"submit-cancel-booking-button"},null,8,["label"])])])):y("",!0),!S.value&&!f.value?(i(),r("div",Zo,[t[11]||(t[11]=e("div",{class:"cancel-dialog__warning-icon"},[e("i",{class:"pi pi-exclamation-triangle"})],-1)),e("span",xo,a(n(l)("manageBooking.cancelBooking")),1),e("p",en,a(n(l)("manageBooking.areYouSure")),1),e("div",an,[B(n(Ae),{label:n(l)("manageBooking.cancelBooking"),onClick:ge,text:"",class:"w-full p-3 btn btn-cancel border-radius-sm",loading:w.value,disabled:n(q).isImpersonating,"data-testid":"modal-cancel-booking-button"},null,8,["label","loading","disabled"]),e("p",on,a(o.cancelBookingMessage),1),e("p",nn,[e("span",null,a(n(l)("manageBooking.cancelPolicyAcceptanceMessage","By continuing means you accept our")),1),t[10]||(t[10]=D(" Â ")),e("span",{class:"cancel-dialog__policy-link",onClick:t[2]||(t[2]=m=>b.value=!0)},a(n(l)("manageBooking.cancellationPolicy")),1)])])])):y("",!0)]),_:1},8,["visible","dismissableMask"]),e("div",tn,[e("div",sn,[e("div",ln,[e("div",cn,[e("span",rn,a(n(l)("manageBooking.bookingId")),1),e("strong",dn,a(o.booking.supplierBookingId),1)]),e("div",un,[e("button",{class:"downloadBtn",style:{"word-break":"break-word","font-weight":"600"},onClick:t[4]||(t[4]=m=>o.$emit("download-voucher")),disabled:o.isDownloading},[o.isDownloading?(i(),r("span",pn,[t[12]||(t[12]=e("i",{class:"pi pi-spinner pi-spin mr-2"},null,-1)),D(" "+a(n(l)("manageBooking.downloading")),1)])):(i(),r("span",vn,[t[13]||(t[13]=e("i",{class:"pi pi-download mr-2"},null,-1)),D(a(n(l)("manageBooking.download")),1)]))],8,mn),n(ua)?(i(),r("button",{key:0,class:"downloadBtn",style:{"word-break":"break-word","font-weight":"600"},onClick:t[5]||(t[5]=m=>o.$emit("download-invoice")),disabled:o.isDownloadingInvoice},[o.isDownloadingInvoice?(i(),r("span",_n,[t[14]||(t[14]=e("i",{class:"pi pi-spinner pi-spin mr-2"},null,-1)),D(" "+a(n(l)("manageBooking.downloading")),1)])):(i(),r("span",yn,[t[15]||(t[15]=e("i",{class:"pi pi-download mr-2"},null,-1)),D(a(n(l)("dashboardBookingTable.actions.downloadInvoice")||"Download Invoice"),1)]))],8,gn)):y("",!0),o.showPayButton?(i(),r("button",{key:1,class:"downloadBtn payBtn text-white flex align-items-center justify-content-center",style:{"word-break":"break-word","font-weight":"600"},onClick:t[6]||(t[6]=m=>o.$emit("pay-booking"))},[t[16]||(t[16]=e("i",{class:"pi pi-credit-card mr-2"},null,-1)),D(a(n(l)("dashboardBookingTable.actions.pay")||"Pay Now"),1)])):y("",!0)])]),n(q).isImpersonating?(i(),r("div",hn,[t[17]||(t[17]=e("i",{class:"pi pi-info-circle impersonation-banner__icon"},null,-1)),e("p",kn,[e("strong",null,a(n(l)("impersonation.noticeTitle"))+":",1),D(" "+a(n(l)("impersonation.cancellationNoticeMessage")),1)])])):y("",!0),e("div",bn,[e("div",fn,[e("div",wn,[e("span",Bn,a(n(l)("manageBooking.bookingStatus")),1),e("span",{class:Ge(["listing-feature",{cancelled:o.bookingDisplayStatus==="cancelled",confirmed:o.bookingDisplayStatus==="confirmed"}]),"data-testid":"booking-status"},[B(je,{name:o.bookingStatusIcon,class:"status-icon"},null,8,["name"]),D(" "+a(n(l)(`dashboardBookingTable.columns.${o.bookingDisplayStatus}`,o.bookingDisplayStatus)),1)],2)]),e("div",$n,[e("span",Cn,a(n(l)("manageBooking.paymentStatus")),1),e("span",{class:Ge(["listing-feature",o.paymentStatusClass])},[B(je,{name:o.paymentStatusIcon,class:"status-icon"},null,8,["name"]),D(" "+a(o.paymentDisplayStatus),1)],2)])]),t[38]||(t[38]=e("div",{class:"card-divider"},null,-1)),e("div",An,[e("h2",Dn,a(o.hotel.name),1),e("span",Tn,[(i(!0),r(I,null,V(o.stars,m=>
6(i(),r("span",{"data-i":m,key:m},"â
",8,Nn))),128))])]),e("div",In,[e("div",Pn,[e("img",{class:"hotel-media__photo",src:o.hotel.main_photo||o.hotel.hotelImages&&n(_a)(o.hotel.hotelImages[0]),alt:"Hotel photo"},null,8,Rn)]),e("div",Sn,[e("img",{class:"hotel-media__map",src:o.mapUrl,alt:"Hotel map"},null,8,Ln)])]),t[39]||(t[39]=e("div",{class:"card-divider"},null,-1)),e("div",Mn,[t[18]||(t[18]=e("div",{class:"detail-icon"},[e("i",{class:"pi pi-map-marker"})],-1)),e("div",Vn,[e("span",On,a(n(l)("manageBooking.address")),1),e("p",En,a(o.hotel.address)+", "+a(o.hotel.city)+", "+a(o.country),1),o.directionsUrl?(i(),r("a",{key:0,href:o.directionsUrl,rel:"noopener noreferrer",class:"get-directions-link",onClick:Ne},a(n(l)("manageBooking.getDirections")),9,Un)):y("",!0)])]),e("div",Fn,[e("div",qn,[t[19]||(t[19]=e("div",{class:"detail-icon"},[e("i",{class:"pi pi-sign-in"})],-1)),e("div",Gn,[e("span",Hn,a(n(l)("manageBooking.checkIn")),1),e("p",jn,[D(a(o.checkinDate)+" ",1),o.checkinTime?(i(),r("em",zn,a(n(l)("manageBooking.fromDate",{date:o.checkinTime})),1)):y("",!0)])])]),e("div",Yn,[t[20]||(t[20]=e("div",{class:"detail-icon"},[e("i",{class:"pi pi-sign-out"})],-1)),e("div",Wn,[e("span",Qn,a(n(l)("manageBooking.checkOut")),1),e("p",Jn,[D(a(o.checkoutDate)+" ",1),o.checkoutTime?(i(),r("em",Xn," (until "+a(o.checkoutTime)+")",1)):y("",!0)])])])]),t[40]||(t[40]=e("div",{class:"card-divider"},null,-1)),e("div",Kn,[t[24]||(t[24]=e("div",{class:"detail-icon"},[e("i",{class:"pi pi-shopping-cart"})],-1)),e("div",Zn,[e("span",xn,a(n(l)("manageBooking.yourOrderTitle")),1),o.liteApiVersionV3?(i(),r("p",et,[t[21]||(t[21]=e("span",{class:"detail-body__bullet","aria-hidden":"true"},"â¢",-1)),e("span",null,a(`${o.numberOfRooms} ${o.numberOfRooms===1?n(l)("occupancy.room"):n(l)("occupancy.rooms")} x ${o.numberOfNights} ${o.numberOfNights===1?n(l)("occupancy.night"):n(l)("occupancy.nights")}`),1)])):(i(),r("p",at,[t[22]||(t[22]=e("span",{class:"detail-body__bullet","aria-hidden":"true"},"â¢",-1)),e("span",null,a(o.bookedRooms.length)+" room x "+a(o.nights)+" nights",1)])),e("p",ot,[t[23]||(t[23]=e("span",{class:"detail-body__bullet","aria-hidden":"true"},"â¢",-1)),e("span",null,[o.liteApiVersionV3?(i(),r(I,{key:0},[D(a(o.numberOfAdults)+" "+a(o.numberOfAdults>1?n(l)("occupancy.adults"):n(l)("occupancy.adult"))+" ",1),o.listOfChildren.length>0?(i(),r(I,{key:0},[D(a(o.formattedListOfChildren),1)],64)):y("",!0)],64)):(i(),r(I,{key:1},[D(a(o.guestsDescription),1)],64))])])])]),o.liteApiVersionV3?(i(!0),r(I,{key:0},V(o.roomsDetails,(m,R)=>(i(),r("div",{key:`roomDetails-${R}`,class:"room-pair"},[e("div",nt,[t[25]||(t[25]=e("div",{class:"detail-icon"},[e("i",{class:"pi pi-home"})],-1)),e("div",tt,[e("span",st,a(n(l)("manageBooking.roomNumber",{number:R+1})),1),e("p",lt,a(o.roomName),1),e("p",it,a(m.guests),1),e("p",ct,a(n(l)("manageBooking.primaryGuest")),1),e("p",rt,a(m.mainGuest),1)])]),e("div",dt,[t[26]||(t[26]=e("div",{class:"detail-icon"},[e("i",{class:"pi pi-star"})],-1)),e("div",ut,[e("span",mt,a(n(l)("manageBooking.boardType")),1),e("p",pt,a(o.boardName),1)])])]))),128)):(i(),r("div",vt,[e("div",gt,[t[27]||(t[27]=e("div",{class:"detail-icon"},[e("i",{class:"pi pi-home"})],-1)),e("div",_t,[e("span",yt,a(n(l)("manageBooking.roomType")),1),e("p",ht,a(o.roomName),1)])]),e("div",kt,[t[28]||(t[28]=e("div",{class:"detail-icon"},[e("i",{class:"pi pi-utensils"})],-1)),e("div",bt,[e("span",ft,a(n(l)("manageBooking.boardType")),1),e("p",wt,a(o.boardName),1)])])])),t[41]||(t[41]=e("div",{class:"card-divider"},null,-1)),e("div",Bt,[t[29]||(t[29]=e("div",{class:"detail-icon"},[e("i",{class:"pi pi-user"})],-1)),e("div",$t,[e("span",Ct,a(n(l)("manageBooking.guests")),1),n(ua)&&o.roomClients.length>0?(i(!0),r(I,{key:0},V(o.roomClients,m=>(i(),r("div",{key:`room-${m.roomNumber}`},[e("p",At,[e("strong",null,a(n(l)("manageBooking.roomNumberInList",{number:m.roomNumber})),1)]),(i(!0),r(I,null,V(m.guests,(R,K)=>(i(),r("p",{key:`guest-${m.roomNumber}-${K}`,class:"detail-body__value",style:{"padding-left":"16px"}},a(R),1))),128))]))),128)):o.liteApiVersionV3?(i(!0),r(I,{key:1},V(o.mainGuests,(m,R)=>(i(),r("p",{key:m.name,class:"detail-body__value"},[e("strong",null,a(n(l)("manageBooking.roomNumberInList",{number:R+1})),1),D(" "+a(m.name),1)]))),128)):(i(),r("p",Dt,"Room 1: "+a(o.fullName),1))])]),o.vouchers.length>0?(i(),r(I,{key:2},[t[31]||(t[31]=e("div",{class:"card-divider"},null,-1)),(i(!0),r(I,null,V(o.vouchers,m=>(i(),r("div",{key:m.qrcode,class:"detail-row"},[t[30]||(t[30]=e("div",{class:"detail-icon"},[e("i",{class:"pi pi-ticket"})],-1)),e("div",Tt,[e("span",Nt,a(n(l)(`manageBooking.${m.type}Voucher`)),1),e("div",It,[e("div",Pt,[e("img",{class:"voucher-qr",src:m.qrcode,alt:"QR Code"},null,8,Rt),e("div",St,[e("p",Lt,a(n(l)("manageBooking.voucherDownloadMessage")),1),e("a",{href:m.url,target:"_blank",class:"voucher-link"},a(m.url),9,Mt),e("p",Vt,[D(a(n(l)("manageBooking.voucherExpiryMessage"))+" ",1),e("strong",null,a(n(ne).fromISO(m.end_date).toFormat("dd MMM yyyy")),1)])])]),e("span",Ot,a(m.price&&m.Currency&&n(U)(m.price,{currency:m.Currency,showDecimals:!0})),1)])])]))),128))],64)):y("",!0),t[42]||(t[42]=e("div",{class:"card-divider"},null,-1)),e("div",Et,[t[33]||(t[33]=e("div",{class:"detail-icon"},[e("i",{class:"pi pi-credit-card"})],-1)),e("div",Ut,[e("span",Ft,a(n(l)("manageBooking.priceDetails")),1),e("div",qt,[e("div",Gt,[e("span",Ht,a(o.bookedRooms.length)+" "+a(o.bookedRooms.length>1?n(l)("occupancy.rooms"):n(l)("occupancy.room"))+" à "+a(o.nights)+" "+a(o.nights>1?n(l)("occupancy.nights"):n(l)("occupancy.night")),1),e("span",jt,a(o.subtotalAmount&&o.currentCurrency&&n(U)(o.subtotalAmount,{currency:o.currentCurrency,showDecimals:!0})),1)]),o.includedTaxesAmount>0&&!o.payAtPropertyOnly?(i(),r("div",zt,[e("span",Yt,a(n(l)("booking.taxesAndFees")),1),e("span",Wt,a(o.currentCurrency&&n(U)(o.includedTaxesAmount,{currency:o.currentCurrency,showDecimals:!0})),1)])):y("",!0),o.addonFlags.uber?(i(),r("div",Qt,[e("span",Jt,a(n(l)("manageBooking.uber")),1),e("span",Xt,a(o.currentCurrency&&n(U)(o.uberAmount,{currency:o.currentCurrency,showDecimals:!0})),1)])):y("",!0),o.addonFlags.esimply?(i(),r("div",Kt,[e("span",Zt,a(n(l)("manageBooking.esimply")),1),e("span",xt,a(o.currentCurrency&&n(U)(o.esimplyAmount,{currency:o.currentCurrency,showDecimals:!0})),1)])):y("",!0),o.voucherCodeAmount>0?(i(),r("div",es,[e("span",as,a(n(l)("manageBooking.promoCode")),1),e("span",os," - "+a(o.currentCurrency&&n(U)(o.voucherCodeAmount,{currency:o.currentCurrency,showDecimals:!0})),1)])):y("",!0),o.payAtPropertyOnly?y("",!0):(i(),r("div",ns,[e("span",ts,a(n(l)("manageBooking.total")),1),e("span",ss,a(o.totalPaid&&o.currentCurrency&&n(U)(o.totalPaid,{currency:o.currentCurrency,showDecimals:!0})),1)])),!o.payAtPropertyOnly&&o.excludedTaxesAmount>0?(i(),r("div",ls,[e("span",is,[D(a(n(l)("checkout.propertyFees"))+" ",1),e("small",cs,"("+a(n(l)("checkout.payAtProperty"))+")",1)]),e("span",rs,a(o.currentCurrency&&n(U)(o.excludedTaxesAmount,{currency:o.currentCurrency,showDecimals:!0})),1)])):y("",!0),o.payAtPropertyOnly?(i(),r("div",ds,[e("span",us,a(n(l)("checkout.propertyFees")),1),e("span",ms,a(o.currentCurrency&&n(U)(o.excludedTaxesAmount+o.includedTaxesAmount,{currency:o.currentCurrency,showDecimals:!0})),1)])):y("",!0),o.payAtPropertyOnly?(i(),r("div",ps,[e("span",vs,a(n(l)("manageBooking.total"))+" ("+a(n(l)("booking.totalPayAtProperty"))+") ",1),e("span",gs,[D(a(o.totalPaid&&o.currentCurrency&&n(U)(o.totalPaid+o.excludedTaxesAmount,{currency:o.currentCurrency,showDecimals:!0}))+" ",1),o.hotelCurrency&&o.hotelCurrency!==o.currentCurrency?(i(),r("span",_s,[t[32]||(t[32]=e("br",null,null,-1)),e("small",ys,a(n(l)("checkout.payAtPropertyExchangeInfo")),1)])):y("",!0)])])):y("",!0),o.payAtPropertyOnly?(i(),r("div",hs,[e("small",null,a(n(l)("booking.taxesAndFeesInfo")),1)])):y("",!0)])])]),o.remarks?(i(),r(I,{key:3},[t[35]||(t[35]=e("div",{class:"card-divider"},null,-1)),e("div",ks,[t[34]||(t[34]=e("div",{class:"detail-icon detail-icon--amber"},[e("i",{class:"pi pi-info-circle"})],-1)),e("div",bs,[e("span",fs,a(n(l)("manageBooking.importantInformationTitle")),1),e("div",{class:"detail-body__remarks",innerHTML:o.remarks},null,8,ws)])])],64)):y("",!0),!o.bookingDisplayStatus.startsWith("cancelled")&&!S.value?(i(),r(I,{key:4},[t[37]||(t[37]=e("div",{class:"card-divider"},null,-1)),e("div",Bs,[t[36]||(t[36]=e("div",{class:"detail-icon"},[e("i",{class:"pi pi-shield"})],-1)),e("div",$s,[e("span",Cs,a(n(l)("manageBooking.cancellationPolicyTitle")),1),o.prebooking?(i(),Te(ga,{key:0,bookingData:o.prebooking},null,8,["bookingData"])):y("",!0),e("button",{class:"btn-cancel",onClick:t[7]||(t[7]=()=>{n(q).isImpersonating&&(g.value=n(l)("impersonation.cancellationNotAllowed"),f.value=!0),u.value=!0}),disabled:n(q).isImpersonating,"data-testid":"cancel-booking-button"},a(n(l)("manageBooking.cancelBooking")),9,As)])])],64)):y("",!0)]),e("div",Ds,[e("div",Ts,[e("h4",Ns,a(n(l)("manageBooking.noteToGuest.title")),1),e("p",Is,a(n(l)("manageBooking.noteToGuest.message")),1)]),e("div",Ps,[e("h4",Rs,a(n(l)("manageBooking.customerSupport.title")),1),e("div",Ss,[D(a(n(l)("manageBooking.customerSupport.message"))+" ",1),e("div",Ls,[(i(!0),r(I,null,V($.value,(m,R)=>(i(),r(I,{key:`${m.kind}-${m.value}`},[R>0?(i(),r("span",Ms,a(n(l)("manageBooking.customerSupport.or")),1)):y("",!0),e("a",{href:m.kind==="email"?`mailto:${m.value}
6`:`tel:${m.value.replace(/\s/g,"")}`,class:"contact-link"},a(m.value),9,Vs)],64))),128))]),D(" "+a(n(l)("manageBooking.customerSupport.endMessage")),1)])])])])])],2),B(n(De),{visible:b.value,"onUpdate:visible":t[8]||(t[8]=m=>b.value=m),dismissableMask:b.value,header:n(l)("booking.form.cancellationPolicy"),modal:"",class:"cancellation-policies--dialog",pt:{mask:{style:"backdrop-filter: blur(2px)"}},style:{"max-width":"550px !important",width:"100% !important"}},{header:Q(()=>[e("div",null,[e("div",Os,a(n(l)("manageBooking.cancellationPolicyTitle")),1)])]),default:Q(()=>[o.prebooking?(i(),Te(ga,{key:0,bookingData:o.prebooking},null,8,["bookingData"])):y("",!0)]),_:1},8,["visible","dismissableMask","header"])],64))}}),Us=Ye(Es,[["__scopeId","data-v-f7a26d12"],["__file","ManageBookingNormalView.vue"]]),Fs={class:"cancelled-view"},qs={class:"cancelled-view__inner"},Gs={class:"cancelled-view__content"},Hs={class:"cancelled-card__header"},js={class:"cancelled-card__title","data-testid":"booking-status"},zs=["innerHTML"],Ys={class:"cancelled-details"},Ws={class:"cancelled-details-content"},Qs={class:"cancelled-details-content__hotel-details"},Js=["src","alt"],Xs={class:"cancelled-details-content__hotel-details-content"},Ks={key:0,class:"hotel-stars"},Zs=["data-i"],xs={class:"cancelled-details-content__struck"},el={class:"cancelled-details-content__struck"},al={class:"cancelled-details-content__struck"},ol={class:"cancelled-details-content__check-in-out"},nl={class:"checkin-box"},tl={class:"heading cancelled-details-content__struck"},sl={class:"item-name"},ll={class:"cancelled-details-content__struck"},il={class:"checkout-box"},cl={class:"heading cancelled-details-content__struck"},rl={class:"item-name"},dl={class:"cancelled-details-content__struck"},ul={class:"cancelled-details-content__order"},ml={class:"cancelled-details-content__section-title"},pl={class:"cancelled-details-content__order-room-header"},vl={class:"cancelled-details-content__rates-details_rate__index"},gl={key:0,class:"cancelled-details-content__order-occupancy"},_l={class:"cancelled-details-content__order-field"},yl={class:"cancelled-details-content__order-label"},hl={class:"cancelled-details-content__order-field"},kl={class:"cancelled-details-content__order-label"},bl={class:"cancelled-details-content__order-field"},fl={class:"cancelled-details-content__order-label"},wl={class:"cancelled-details-content__vouchers"},Bl={class:"cancelled-details-content__vouchers__provider-main"},$l=["src","alt"],Cl={class:"cancelled-details-content__vouchers__provider-text"},Al={class:"cancelled-details-content__vouchers__provider-text-title"},Dl={key:0,class:"cancelled-details-content__vouchers__provider-text-date"},Tl={key:1,class:"cancelled-details-content__vouchers__provider-text-description"},Nl={key:0,class:"cancelled-details-content__vouchers__provider-status"},Il=["href","onClick"],Pl=["src","alt"],Rl={class:"cancelled-details-content__refund"},Sl={class:"cancelled-details-content__section-title"},Ll={class:"cancelled-details-content__refund-row"},Ml={class:"cancelled-details-content__refund-row"},Vl={class:"cancelled-details-content__refund-note"},Ol={class:"cancelled-details-content__booking-id"},El={class:"cancelled-booking-id"},Ul={key:0,class:"cancelled-details-content__date"},Fl={key:0,class:"cancelled-next-steps"},ql={class:"cancelled-next-steps__title"},Gl={class:"cancelled-next-steps__content"},Hl={class:"cancelled-next-steps__track"},jl={class:"cancelled-next-steps__items"},zl=We({__name:"ManageBookingCancelledView",props:{hotel:{},booking:{},stars:{},email:{},cancelledHotelImage:{},roomName:{},cancelledStaySummary:{},cancelledRefundCurrency:{},cancelledTotalPrice:{},cancelledOrderRooms:{},hasCancelledAddons:{type:Boolean},cancelledAddonVouchers:{},cancellationDateDisplay:{},cancelledPaidAmount:{},cancelledRefundAmount:{},showRefundOutcomeSection:{type:Boolean},refundNextSteps:{}},emits:["back-to-booking","navigate-to-dashboard"],setup(L){const{t:c}=Qe(),l=Co(),N=(_,$="EEE, dd LLL")=>{if(!_?.trim())return"";try{const u=ne.fromISO(_.replace(" ","T"));return u.isValid?u.toFormat($):""}catch{return""}},O=_=>{_&&(uo(_),l.add({severity:"success",summary:c("confirmation.success"),detail:c("confirmation.bookingIdCopied"),life:3e3}))};return(_,$)=>(i(),r("div",null,[e("div",Fs,[e("a",{href:"#",onClick:$[0]||($[0]=Ao(u=>_.$emit("back-to-booking"),["prevent"])),class:"go-back"},[$[5]||($[5]=e("i",{class:"pi pi-chevron-left"},null,-1)),e("span",null,a(n(c)("manageBooking.backToBooking")),1)]),e("div",qs,[e("div",Gs,[e("div",Hs,[B(je,{name:"cancellation-icon-gray"}),e("h1",js,a(n(c)("manageBooking.bookingHasBeenCancelled")),1),e("span",{class:"cancelled-card__description",innerHTML:n(c)("manageBooking.bookingCancelledDescription",{email:_.email})},null,8,zs),B(n(Ae),{label:n(c)("manageBooking.manageBookings"),class:"primary-linear btn radiu
6s_sm cancelled-card__button",onClick:$[1]||($[1]=u=>_.$emit("navigate-to-dashboard"))},null,8,["label"])]),e("div",Ys,[e("div",Ws,[e("div",Qs,[_.cancelledHotelImage?(i(),r("img",{key:0,src:_.cancelledHotelImage,alt:_.hotel.name},null,8,Js)):y("",!0),e("div",Xs,[_.stars?(i(),r("span",Ks,[(i(!0),r(I,null,V(_.stars,u=>(i(),r("i",{class:"pi pi-star-fill","data-i":u,key:u},null,8,Zs))),128))])):y("",!0),e("h2",null,a(_.hotel.name),1),e("span",xs,[B(n(Mo),{width:"16",height:"16"}),D(" "+a(_.roomName),1)]),e("span",el,[B(n(Vo),{width:"16",height:"16"}),D(" "+a(_.cancelledStaySummary),1)]),e("span",al,[B(n(Oo),{width:"16",height:"16",style:{transform:"scaleX(-1)"}}),D(" "+a(n(c)("manageBooking.cancelledTotalPrice",{currency:_.cancelledRefundCurrency,amount:_.cancelledTotalPrice})),1)])])]),B(n(W),{type:"dotted"}),e("div",ol,[e("div",nl,[e("span",tl,a(n(c)("confirmation.checkin")),1),e("div",sl,[e("strong",ll,a(N(_.booking.checkin)),1)])]),B(n(W),{type:"dotted",align:"center",layout:"vertical"},{default:Q(()=>$[6]||($[6]=[e("span",{class:"divider-text"},[e("i",{class:"pi pi-arrow-right arrow"})],-1)])),_:1}),e("div",il,[e("span",cl,a(n(c)("confirmation.checkout")),1),e("div",rl,[e("strong",dl,a(N(_.booking.checkout)),1)])])]),B(n(W),{type:"dotted"}),e("div",ul,[e("h3",ml,a(n(c)("manageBooking.yourOrder")),1),(i(!0),r(I,null,V(_.cancelledOrderRooms,u=>(i(),r("div",{key:`cancelled-room-${u.roomNumber}`,class:"cancelled-details-content__order-room"},[e("div",pl,[e("span",vl,[e("span",null,a(n(c)("manageBooking.roomNumber",{number:u.roomNumber})),1)]),u.occupancyLabel?(i(),r("span",gl,a(u.occupancyLabel),1)):y("",!0)]),e("div",_l,[e("span",yl,a(n(c)("manageBooking.guestsLabel"))+": ",1),e("span",null,a(u.guestNames.join(", ")),1)]),e("div",hl,[e("span",kl,a(n(c)("manageBooking.roomTypeLabel"))+": ",1),e("span",null,a(u.roomType),1)]),e("div",bl,[e("span",fl,a(n(c)("manageBooking.boardTypeLabel"))+": ",1),e("span",null,a(u.boardType),1)])]))),128))]),_.hasCancelledAddons?(i(),r(I,{key:0},[B(n(W),{type:"dotted"}),e("div",wl,[(i(!0),r(I,null,V(_.cancelledAddonVouchers,u=>(i(),r("div",{key:u.id,class:"cancelled-details-content__vouchers__provider"},[e("div",Bl,[e("img",{class:"cancelled-details-content__vouchers__provider-icon",src:`/${u.addon}.png`,alt:`${u.addon}-voucher`}
6,null,8,$l),e("div",Cl,[e("span",Al,a(u.title),1),u.subtitle?(i(),r("span",Dl,a(u.subtitle),1)):y("",!0),u.description?(i(),r("span",Tl,a(u.description),1)):y("",!0)])]),u.statusLabel?(i(),r("span",Nl,a(u.statusLabel),1)):y("",!0),u.qrCodeUrl?(i(),r("a",{key:1,href:u.voucherUrl||"#",target:"_blank",rel:"noopener noreferrer",class:"cancelled-details-content__vouchers__provider-qr",onClick:b=>!u.voucherUrl&&b.preventDefault()},[e("img",{src:u.qrCodeUrl,alt:`${u.addon}-qr`},null,8,Pl)],8,Il)):y("",!0)]))),128))])],64)):y("",!0),B(n(W),{type:"solid"}),e("div",Rl,[e("h3",Sl,a(n(c)("manageBooking.refundSummary")),1),e("div",Ll,[e("span",null,a(n(c)("manageBooking.paidAmount")),1),e("strong",null,a(_.cancelledPaidAmount),1)]),e("div",Ml,[e("span",null,a(n(c)("manageBooking.refundAmount")),1),e("strong",null,a(_.cancelledRefundAmount),1)])]),B(n(W),{type:"dotted"}),e("p",Vl,a(n(c)("manageBooking.refundSummaryPolicy")),1),B(n(W),{type:"dotted"}),e("div",Ol,[e("p",El,[D(a(n(c)("manageBooking.bookingId"))+": ",1),e("span",{"data-testid":"cancelled-booking-id",onClick:$[2]||($[2]=u=>O(_.booking.supplierBookingId))},a(_.booking.supplierBookingId),1),e("i",{class:"pi pi-copy copy-icon",onClick:$[3]||($[3]=u=>O(_.booking.supplierBookingId))})])])])]),_.cancellationDateDisplay?(i(),r("p",Ul,a(n(c)("manageBooking.cancellationDate",{date:_.cancellationDateDisplay})),1)):y("",!0)])]),_.showRefundOutcomeSection?(i(),r("div",Fl,[e("h3",ql,a(n(c)("manageBooking.whatWillHappenNext")),1),e("div",Gl,[e("div",Hl,[(i(!0),r(I,null,V(_.refundNextSteps,(u,b)=>(i(),r("span",{key:`next-step-dot-${b}`,class:"cancelled-next-steps__track-dot"},a(b+1),1))),128))]),e("div",jl,[(i(!0),r(I,null,V(_.refundNextSteps,(u,b)=>(i(),r("div",{key:`next-step-${b}`,class:"cancelled-next-steps__item"}
6,[e("h4",null,a(u.title),1),e("p",null,[D(a(u.description)+" ",1),u.linkLabel?(i(),r("button",{key:0,class:"cancelled-next-steps__link",onClick:$[4]||($[4]=S=>_.$emit("navigate-to-dashboard"))},a(u.linkLabel),1)):y("",!0)])]))),128))])])])):y("",!0)])]))}}),Yl=Ye(zl,[["__scopeId","data-v-481dcf15"],["__file","ManageBookingCancelledView.vue"]]),Wl={key:0},Ql={key:0,class:"site-header"},Jl={class:"site-header__inner"},Xl=["src"],Kl={key:0,class:"site-header__name"},Zl={key:1},xl={key:4,class:"manage-booking__powered-by"},ei=We({__name:"ManageBooking",setup(L){const{t:c}=Qe(),{isGrabPreset:l}=mo(),N=d(E.liteApiVersion==="v3"),O={},_=d({}),$=d([]),u=d(O),b=d(""),S=d(""),f=d({}),g=d({}),w=d({}),H=ho(),te=ko(),J=d(""),ve=d(""),X=d(""),ge=d(void 0),_e=d(void 0),se=d(0),Ne=d(0),o=d(""),t=d([]),m=d(""),R=d(0),K=d([]),ye=d(0),he=d(0),Je=d([]),ke=d([]),ha=d(0),Z=d([]),Ie=d(""),le=d(""),ie=d(""),Pe=d(""),ka=d([]),Xe=d(""),ba=d(E.project.name),Ke=d(po()||E.project.settings?.logo),fa=C(()=>E.project.settings?.showPoweredByNuitee!==!1&&E.agency?.settings?.audience!=="B2B"),Y=d(!1),Re=d(0),x=d(!0),ce=d(!0),be=d(!1),ee=d("CONFIRMED"),re=d(""),fe=d(""),de=d([]),Ze=d(""),Se=d(!1),xe=d(!1),we=d(!1),Le=d(""),Me=d(""),ue=d(""),ea=d(""),wa=C(()=>Io({paymentMethod:Me.value,paymentStatus:ue.value,status:ee.value})),aa=C(()=>(ee.value??"").toLowerCase()),Ba=C(()=>{const s=aa.value;return s==="confirmed"?"confirm-circle":s==="cancelled"||s==="failed"?"x-red-close":"forbid"}),Ve=C(()=>Po({paymentMethod:Me.value,paymentStatus:ue.value})),j=C(()=>{if(Ve.value)return c("dashboardBookingTable.columns.unpaid");if((ee.value??"").toLowerCase()==="cancelled"){const p=u.value?.cancellation_fee??0,v=u.value?.refund_amount??0;return p===0?"Refunded":v===0?"Paid":"Partially Refunded"}if(ue.value.toLowerCase()==="succeeded"){const p=ea.value.toLowerCase();return p==="stripe"?"Paid":p==="creditline"?"Credit":p==="grab"?"Paid":p||"Paid"}return Pe.value==="RFN"?"Refunded":"Non-refundable"}),$a=C(()=>Ve.value?"urgency-clock":j.value==="Credit"?"wallet":j.value==="Refunded"||j.value==="Partially Refunded"?"refund":j.value==="Non-refundable"?"x-red-close":ue.value.toLowerCase()==="succeeded"?"confirm-circle":"x-red-close"),Ca=C(()=>Ve.value?"pay-later":j.value==="Non-refundable"?"cancelled":"payment-neutral"),Aa=C(()=>j.value==="Refunded"||j.value==="Partially Refunded"),Da=C(()=>{const s=g.value?.cancelledAt||g.value?.updatedAt||u.value?.cancelledAt||"";if(!s||typeof s!="string")return"";const p=ne.fromISO(s.replace(" ","T"));if(!p.isValid)return"";const v=Ze.value||"GMT";return`${p.toFormat("MMM d, yyyy")} at ${p.toFormat("h:mm a")} ${v}`}),Ta=C(()=>[{title:c("manageBooking.refundNextStepEmailTitle"),description:c("manageBooking.refundNextStepEmailDescription")},{title:c("manageBooking.refundNextStepMethodTitle"),description:c("manageBooking.refundNextStepMethodDescription")},{title:c("manageBooking.refundNextStepProcessingTitle"),description:c("manageBooking.refundNextStepProcessingDescription")},{title:c("manageBooking.refundNextStepAccessibleTitle"),description:c("manageBooking.refundNextStepAccessibleDescription"),linkLabel:c("manageBooking.refundNextStepAccessibleLink")}]),oa=Do({}),Oe=d(0),Ee=d(0),Na=d(void 0),ae=d(),Ia=d(""),na=d(0),Ue=d(""),oe=d([]),Pa=d(""),ta=d(0),sa=d(0),la=d(0),ia=d(!1),Fe=d(""),Ra=C(()=>E.project.settings?.hideHeader),Sa=C(()=>{const s=f.value;return!s?.name||!s?.address||!s?.city||!s?.country?"":`https://www.google.com/maps/dir/?api=1&destination=${encodeURIComponent(`${s.name}, ${s.address}, ${s.city}, ${s.country}`)}`}),La=E.project?.settings?.contactEmail||qe.contactEmail,Ma=ma(E.project?.settings?.contactPhone1,qe.contactPhone1),Va=ma(E.project?.settings?.contactPhone2,qe.contactPhone2),{downloadVoucher:ca}=Ro({setLoading:s=>{Se.value=s},externalLink:{isActive:()=>l.value&&ze(),openExternalLink:s=>Ce().openExternalLink(s)},onError:s=>{console.error("Unable to download/open voucher:",s)}}),{downloadInvoice:Oa}=Fo({setLoading:s=>{xe.value=s},externalLink:{isActive:()=>l.value&&ze(),openExternalLink:s=>Ce().openExternalLink(s)},onError:s=>{console.error("Unable to download/open invoice:",s)}}),Ea=()=>{va("booking_invoice_downloaded",{wl_booking_id:b.value,booking_id:g.value.supplierBookingId||g.value.hotelConfirmationCode||"",hotel_id:f.value?.id,hotel_name:f.value?.name,checkin:g.value?.checkin,checkout:g.value?.checkout,price:`${g.value?.currency} ${g.value?.price}`,priceInUsd:g.value?.priceInUsd||0,source:"manage_booking_page"});const s=He("Invoice",[b.value]);Oa({bookingId:b.value,filename:s})},Ua=()=>{const s=g.value?.bookingId||b.value;te.push({name:"pay-booking",params:{bookingId:s},query:{email:S.value}})},Fa=()=>{we.value=!0},qa=()=>
6{if(va("booking_voucher_downloaded",{wl_booking_id:b.value,booking_id:g.value.supplierBookingId||g.value.hotelConfirmationCode||"",hotel_id:f.value?.id,hotel_name:f.value?.name,checkin:g.value?.checkin,checkout:g.value?.checkout,price:`${g.value?.currency} ${g.value?.price}`,priceInUsd:g.value?.priceInUsd||0,source:"manage_booking_page"}),q.language==="en"){const s=He(c("fileNames.voucher"),[b.value]);ca({bookingId:b.value,version:Le.value,filename:s});return}Fa()},Ga=()=>{if(q.isAuthenticated){const s=q.isMobile?"_self":"_blank";window.open("/dashboard",s)}else window.location.reload()},Ha=s=>{we.value=!1;const p=He(c("fileNames.voucher"),[b.value]);ca({bookingId:b.value,version:Le.value,filename:p,language:s})},ja=()=>{be.value=!1},za=s=>{u.value=s,ee.value=s.status,be.value=!0};ya(async()=>{if(b.value=H.params.id,S.value=H.query.email,l.value&&(!b.value||!S.value)){await vo();const s=await Ce().getSessionParams();let p;if(s.result)try{p=JSON.parse(s.result)}catch{}p?.bookingId&&(b.value=p.bookingId),p?.email&&(S.value=p.email)}if(!b.value||!S.value){Y.value=!0;return}go({bookingId:b.value,email:S.value}).then(s=>{N.value=s.version==="v3"||!1,f.value=s.hotel,g.value=s.booking,w.value=s.prebooking,Ue.value=w.value.currency,Me.value=s.paymentMethod||g.value.paymentMethod||s.inputData?.paymentMethod||(w.value.paymentTypes?.includes("PAY_AT_PROPERTY")||w.value.paymentTypes?.includes("PROPERTY_PAY")?"pay_later":""),ue.value=s.paymentStatus||"",ea.value=s.paymentProvider||"",u.value=s.cancelBooking,_.value=s.inputData?s.inputData:{},Le.value=s.version,ee.value=s.bookingStatus,u.value?.status&&(ee.value=u.value.status),de.value=g.value.addons??[],de.value&&de.value.length>0&&de.value.forEach(k=>{switch(oa[k.addon]=!0,k.addon){case"uber":Oe.value=k.value??k.originalValue??0,Na.value=k.currency||k.originalCurrency,pa(k.addonVoucherCode).then(h=>{const T={type:"uber",qrcode:h,end_date:k.expiryDate,price:k.originalValue,url:k.addonVoucherCode,Currency:k.originalCurrency};oe.value=[...oe.value,T]}).catch(h=>console.error("QR code generation error:",h));break;case"esimply":{Ee.value=k.value??k.originalValue??0,pa(k.addonVoucherCode).then(h=>{const T={type:"esimply",qrcode:h,end_date:k.addonDetails?.esimply?.purchases?.[0]?.end_date?.split("T")?.[0],price:k.originalValue,url:k.addonVoucherCode,Currency:k.originalCurrency};oe.value=[...oe.value,T]}).catch(h=>console.error("QR code generation error:",h));break}}}),ae.value=g.value.sellingPriceToUser??g.value.price;const p=g.value?.voucherTotalAmount??w.value.voucherTotalAmount;p&&(na.value=p),t.value=g.value.bookedRooms;const v=new Intl.DisplayNames(["en"],{type:"region"});Xe.value=v.of(f.value.country)||f.value.country;const A=ne.fromISO(g.value.checkin),M=ne.fromISO(g.value.checkout);ve.value=A.toFormat("MMM d, y"),X.value=M.toFormat("MMM d, y"),ge.value=f.value.checkinCheckoutTimes.checkin,_e.value=f.value.checkinCheckoutTimes.checkout,se.value=M.diff(A,"days").days,Ne.value=t.value.reduce((k,h)=>(k+=h.adults,k+=h.children,k),0),Ia.value=((ae.value||0)-Oe.value-Ee.value).toFixed(2),Fe.value=f.value?.currency||"",ia.value=Array.isArray(w.value.paymentTypes)&&w.value.paymentTypes.length===1&&["PROPERTY_PAY","PAY_AT_PROPERTY"].includes(w.value.paymentTypes[0]);const F=Array.isArray(t.value)?t.value:[];let z=0,pe=0,$e=0;if(F.length>0){F.forEach(h=>{const T=h?.rate?.retailRate?.taxesAndFees;Array.isArray(T)&&T.forEach(G=>{G?.included&&(z+=Number(G.amount||0))});const P=h?.rate?.retailRate?.total;Array.isArray(P)?$e+=P.reduce((G,so)=>G+Number(so?.amount||0),0):P&&typeof P=="object"&&($e+=Number(P.amount||0))});const k=F[0]?.rate?.retailRate?.taxesAndFees;Array.isArray(k)&&k.forEach(h=>{h?.included||(pe+=Number(h.amount||0))})}else if(w.value.roomTypes?.[0]?.rates){const k=w.value.roomTypes[0].rates;
6k.forEach(T=>{T.retailRate?.taxesAndFees&&T.retailRate.taxesAndFees.forEach(P=>{P.included&&(z+=P.amount)}),T.retailRate?.total&&($e+=T.retailRate.total.reduce((P,G)=>P+G.amount,0))});const h=k[0];h?.retailRate?.taxesAndFees&&h.retailRate.taxesAndFees.forEach(T=>{T.included||(pe+=T.amount)})}if(sa.value=z,la.value=pe,ta.value=$e-z,m.value=w.value.roomTypes[0].rates[0].name||w.value.roomTypes[0].rates[0].formattedName||t.value[0].roomType.name,le.value=w.value.roomTypes[0].rates[0].boardName,ie.value=N.value?"":`${g.value.guestInfo.guestFirstName} ${g.value.guestInfo.guestLastName}`,Pe.value=w.value.roomTypes[0].rates[0].cancellationPolicies.refundableTag,ka.value=w.value.roomTypes[0].rates[0].formattedCancellationPolicies?.policies||[],Ze.value=w.value.roomTypes[0].rates[0].formattedCancellationPolicies?.timezone||"GMT",o.value=`${t.value[0].adults} adults${t.value[0].children===1?", 1 child":t.value[0].children>1?", "+t.value[0].children+" children":""}`,J.value=`https://api.mapbox.com/styles/v1/mapbox/streets-v12/static/pin-l+0000FF(${f.value.longitude},${f.value.latitude})/${f.value.longitude},${f.value.latitude},15,0,30/1200x800?access_token=${E.tokens.mapboxAccessToken}`,Re.value=Math.floor(f.value.stars),Pe.value==="NRFN"?re.value=c("manageBooking.cancelMessage.fullAmount"):g.value.cancelledAmountWhenRequested.amount===0?re.value=c("manageBooking.cancelMessage.noCharge"):g.value.cancelledAmountWhenRequested.type==="amount"?re.value=c("manageBooking.cancelMessage.partialAmount",{currency:_o(g.value.currency),amount:g.value.cancelledAmountWhenRequested.amount}):re.value=c("manageBooking.cancelMessage.percentPartialAmount",{percent:g.value.cancelledAmountWhenRequested.amount}),fe.value=w.value.roomTypes[0].rates[0].remarks||"",w.value.prebookId&&yo(w.value.prebookId).then(k=>{k.enhancedData?.remarks?(Pa.value=k.enhancedData.remarks,fe.value=k.enhancedData.remarks):k.data?.remarks&&(fe.value=k.data.remarks)}).catch(k=>{console.error("Error fetching enhanced remarks:",k)}),N.value){$.value=s.occupancies,K.value=$.value.map(h=>[{adults:h.adults,children:h.children}]).flat().map((h,T)=>{const P=_.value.guests?.[T],G=w.value.roomTypes[0].rates[T];return{mainGuest:P?`${P.firstName} ${P.lastName}`.trim():"",guests:Ya(h),name:G?.name??m.value,boardType:G?.boardName??le.value}}),R.value=w.value.roomTypes[0].rates.length,ye.value=M.diff(A,"days").days,he.value=$.value.reduce((h,T)=>h+T.adults,0),ha.value=$.value.reduce((h,T)=>T.children?h+T.children.length:h,0),Z.value=$.value.map(h=>h.children?h.children:[]).flat();const k=` (${Z.value.map(h=>`${h>0?h:"<1"}y`).join(", ")})`;Ie.value=`${Z.value.length} ${Z.value.length===1?c("occupancy.child"):c("occupancy.children")}${k}`,Je.value=(_.value.guests??[]).map(h=>({name:`${h.firstName} ${h.lastName}`.trim()})),_.value.rates?.length&&(ke.value=_.value.rates.map((h,T)=>({roomNumber:T+1,guests:h.guests.filter(P=>P.firstName||P.lastName).map(P=>`${P.firstName} ${P.lastName}`.trim())}))),ie.value=`${g.value.holder&&g.value.holder.firstName} ${g.value.holder&&g.value.holder.lastName}`}x.value=!1,ce.value=!1}).catch(s=>{x.value=!1,ce.value=!1,Y.value=!0,console.error("[ManageBooking] getBookingData failed:",s)})});const Ya=s=>{const p=s?.adults||1,v=`${p} ${p>1?c("occupancy.adultsCapitalized"):c("occupancy.adultCapitalized")}`,A=s?.children?.length||0;if(A>0){const M=`${A} ${A>1?c("occupancy.childrenCapitalized"):c("occupancy.childCapitalized")} / ${s.children.map(F=>F>0?`${F}y`:"<1y").join(", ")}`;return`(${v} - ${M})`}return`(${v})`},Wa=s=>{if(s>=1024){const p=s/1024;return Number.isInteger(p)?`${p} GB`:`${p.toFixed(1)} GB`}return`${s} MB`},Qa=C(()=>{const s=f.value;return s?.name&&(s.main_photo||(s.hotelImages?.length?_a(s.hotelImages[0]):""))||""}),Ja=C(()=>{if(N.value){const M=R.value===1?c("occupancy.room"):c("occupancy.rooms"),F=ye.value===1?c("occupancy.night"):c("occupancy.nights"),z=he.value===1?c("occupancy.adult"):c("occupancy.adults"),pe=Z.value.length>0?` & ${Ie.value}`:"";return`${R.value} ${M} x ${ye.value} ${F}, ${he.value} ${z}${pe}`}const s=t.value.length||1,p=c(s===1?"occupancy.room":"occupancy.rooms"),v=se.value||0,A=c(v===1?"occupancy.night":"occupancy.nights");return`${s} ${p} x ${v} ${A}, ${o.value}`}),Xa=C(()=>!!(f.value?.name&&g.value?.checkin)),Ka=C(()=>!Y.value&&!x.value&&Xa.value&&be.value),ra=(s,p="EEE, dd LLL")=>{if(!s?.trim())return"";try{const v=ne.fromISO(s.replace(" ","T"));return v.isValid?v.toFormat(p):""}catch{return""}},me=C(()=>[u.value?.currency,g.value?.currency,Ue.value,Fe.value,q.currency].find(v=>typeof v=="string"&&v.trim().length>0)??"USD"),Be=(s,p)=>{try{const v=Number(s);if(!Number.isFinite(v))return"â";const A=typeof p=="string"&&p.trim()?p.trim():me.value;return U(v,{currency:A,showDecimals:!0})}catch{return"â"}},Za=C(()=>Be(ae.value??g.value.price??0,me.value)),xa=C(()=>Be(ae.value??g.value.price??0,me.value)),eo=C(()=>Be(u.value?.refund_amount??ae.value??g.value.price??0,me.value)),ao=s=>
6{const p=s.addonDetails?.esimply?.purchases?.[0];return p?c("manageBooking.esimplyVoucherTitle",{data:Wa(p.data_size_mb),validity:c("manageBooking.esimplyValidityDays",{days:p.validity_days})}):`${c("manageBooking.esimply")} ${c("manageBooking.voucherSuffix")}`},oo=s=>{const p=oe.value.find(v=>v?.type===s);return p?{qrCodeUrl:typeof p.qrcode=="string"?p.qrcode:"",voucherUrl:typeof p.url=="string"?p.url:""}:{}},da=C(()=>{const s=[];return(de.value??[]).forEach(v=>{const A=oo(v.addon);if(v.addon==="esimply"){const M=v.expiryDate?ra(v.expiryDate,"dd MMM yyyy"):v.addonDetails?.esimply?.purchases?.[0]?.end_date?ra(v.addonDetails.esimply.purchases[0].end_date.split("T")[0],"dd MMM yyyy"):"";s.push({id:`esimply-${v.addonVoucherId}`,addon:"esimply",title:ao(v),description:c("manageBooking.voucherStillUsableAfterCancellation"),statusLabel:c("manageBooking.nonRefundableAddonStatus"),subtitle:M?`${c("confirmation.useBefore")}: ${M}`:void 0,qrCodeUrl:A.qrCodeUrl,voucherUrl:A.voucherUrl||v.addonVoucherCode});return}if(v.addon==="uber"){s.push({id:`uber-${v.addonVoucherId}`,addon:"uber",title:`${c("manageBooking.uber")} ${c("manageBooking.voucherSuffix")}`,description:c("manageBooking.voucherStillUsableAfterCancellation"),statusLabel:c("manageBooking.nonRefundableAddonStatus"),subtitle:`${c("manageBooking.uberVoucherAmount")}: ${Be(v.value??v.originalValue,v.currency||v.originalCurrency)}`,qrCodeUrl:A.qrCodeUrl,voucherUrl:A.voucherUrl||v.addonVoucherCode});return}s.push({id:`${v.addon}-${v.addonVoucherId}`,addon:v.addon,title:`${v.addon} ${c("manageBooking.voucherSuffix")} - ${v.originalCurrency} ${v.originalValue}`,description:c("manageBooking.voucherStillUsableAfterCancellation"),statusLabel:c("manageBooking.nonRefundableAddonStatus"),qrCodeUrl:A.qrCodeUrl,voucherUrl:A.voucherUrl||v.addonVoucherCode})}),s}),no=C(()=>{if(N.value&&K.value.length>0)return K.value.map((v,A)=>{const M=ke.value.find(z=>z.roomNumber===A+1),F=M?.guests?.length?M.guests:v.mainGuest?[v.mainGuest]:[];return{roomNumber:A+1,occupancyLabel:v.guests,guestNames:F,roomType:v.name||m.value,boardType:v.boardType||le.value}});const s=ke.value[0],p=s?.guests?.length?s.guests:ie.value?[ie.value]:[];return[{roomNumber:1,occupancyLabel:o.value?`(${o.value})`:"",guestNames:p,roomType:m.value,boardType:le.value}]}),to=C(()=>da.value.length>0);return(s,p)=>{const v=No("router-link");return i(),r(I,null,[B(n(De),{visible:ce.value,"onUpdate:visible":p[0]||(p[0]=A=>ce.value=A),dismissableMask:ce.value,modal:"","show-header":!1,style:To([x.value?{width:"20rem"}:{width:"50rem"},{"border-radius":"2rem"}]),breakpoints:{"1199px":"75vw","575px":"90vw"},pt:{mask:{style:"backdrop-filter: blur(3px)"}},contentStyle:"border-radius: 2rem;"},{default:Q(()=>[x.value?(i(),r("div",Wl,[B(bo,{style:{display:"grid"}})])):y("",!0)]),_:1},8,["visible","dismissableMask","style"]),B(So,{visible:we.value,"onUpdate:visible":p[1]||(p[1]=A=>we.value=A),"current-language":n(q).language,loading:Se.value,onConfirm:Ha},null,8,["visible","current-language","loading"]),Ra.value?y("",!0):(i(),r("header",Ql,[e("div",Jl,[B(v,{to:"/",class:"site-header__brand"},{default:Q(()=>[e("img",{src:Ke.value||"/logo.svg",class:"site-header__logo"},null,8,Xl),Ke.value?y("",!0):(i(),r("strong",Kl,a(ba.value),1))]),_:1})])])),Y.value?(i(),r("div",Zl,[B(n(De),{modal:"",dismissableMask:Y.value,showHeader:!1,visible:Y.value,pt:{mask:{style:"backdrop-filter: blur(2px)"}},style:{"border-radius":"2rem"},class:"error-dialog"},{default:Q(()=>[B(fo,{title:n(c)("manageBooking.error.title"),message:n(c)("manageBooking.error.message"),"error-type":"ManageBooking"},null,8,["title","message"])]),_:1},8,["dismissableMask","visible"])])):y("",!0),!Y.value&&!x.value&&!be.value?(i(),Te(Us,{key:2,hotel:f.value,booking:g.value,prebooking:w.value,bookingId:b.value,email:S.value,mapUrl:J.value,checkinDate:ve.value,checkoutDate:X.value,checkinTime:ge.value,checkoutTime:_e.value,nights:se.value,stars:Re.value,country:Xe.value,bookedRooms:t.value,roomName:m.value,boardName:le.value,fullName:ie.value,guestsDescription:o.value,roomsDetails:K.value,roomClients:ke.value,numberOfRooms:R.value,numberOfNights:ye.value,numberOfAdults:he.value,listOfChildren:Z.value,formattedListOfChildren:Ie.value,mainGuests:Je.value,vouchers:oe.value,addonFlags:oa,uberAmount:Oe.value,esimplyAmount:Ee.value,subtotalAmount:ta.value,includedTaxesAmount:sa.value,excludedTaxesAmount:la.value,voucherCodeAmount:na.value,totalPaid:ae.value,currentCurrency:Ue.value,hotelCurrency:Fe.value,payAtPropertyOnly:ia.value,remarks:fe.value,cancelBookingMessage:re.value,bookingDisplayStatus:aa.value,bookingStatusIcon:Ba.value,paymentDisplayStatus:j.value,paymentStatusIcon:$a.value,paymentStatusClass:Ca.value,showPayButton:wa.value,isDownloading:Se.value,isDownloadingInvoice:xe.value,directionsUrl:Sa.value,contactEmail:n(La),contactPhone1:n(Ma),contactPhone2:n(Va),liteApiVersionV3:N.value,onDownloadVoucher:qa,onDownloadInvoice:Ea,onPayBooking:Ua,onCancellationComplete:za},null,8,["hotel","booking","prebooking","bookingId","email","mapUrl","checkinDate","checkoutDate","checkinTime","checkoutTime","nights","stars","country","bookedRooms","roomName","boardName","fullName","guestsDescription","roomsDetails","roomClients","numberOfRooms","numberOfNights","numberOfAdults","listOfChildren","formattedListOfChildren","mainGuests","vouchers","addonFlags","uberAmount","esimplyAmount","subtotalAmount","includedTaxesAmount","excludedTaxesAmount","voucherCodeAmount","totalPaid","currentCurrency","hotelCurrency","payAtPropertyOnly","remarks","cancelBookingMessage","bookingDisplayStatus","bookingStatusIcon","paymentDisplayStatus","paymentStatusIcon","paymentStatusClass","showPayButton","isDownloading","isDownloadingInvoice","directionsUrl","contactEmail","contactPhone1","contactPhone2","liteApiVersionV3"])):y("",!0),Ka.value?(i(),Te(Yl,{key:3,hotel:f.value,booking:g.value,stars:Re.value,email:S.value,cancelledHotelImage:Qa.value,roomName:m.value,cancelledStaySummary:Ja.value,cancelledRefundCurrency:me.value,cancelledTotalPrice:Za.value,cancelledOrderRooms:no.value,hasCancelledAddons:to.value,cancelledAddonVouchers:da.value,cancellationDateDisplay:Da.value,cancelledPaidAmount:xa.value,cancelledRefundAmount:eo.value,showRefundOutcomeSection:Aa.value,refundNextSteps:Ta.value,onBackToBooking:ja,onNavigateToDashboard:Ga},null,8,["hotel","booking","stars","email","cancelledHotelImage","roomName","cancelledStaySummary","cancelledRefundCurrency","cancelledTotalPrice","cancelledOrderRooms","hasCancelledAddons","cancelledAddonVouchers","cancellationDateDisplay","cancelledPaidAmount","cancelledRefundAmount","showRefundOutcomeSection","refundNextSteps"])):y("",!0),fa.value?(i(),r("p",xl,a(n(c)("footer.poweredByNuitee")),1)):y("",!0)],64)}}}),bi=Ye(ei,[["__scopeId","data-v-2399cdae"],["__file","ManageBooking.vue"]]);export{bi 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.