1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./C_FyPnh7.js","./lTr7RkzU.js","./BfJgI-1u.js","./swiper-vue.DJHdZmOr.css","./entry.-lzxiteZ.css","./Bhj8_NNP.js","./DKF9JScY.js","./Dp4LzAFS.js","./BIg6aLt4.js","./BVY1fCGU.js","./Jx4T7nIq.js","./BQ2uhhR1.js","./C1K6ie2k.js","./CqkleIqs.js","./vhhgy5la.js","./BShZcGEn.js","./Bak2IoqS.js","./BJcvxiDA.js","./bmA7BkAI.js","./DK7X3seW.js","./BzFwKO0c.js","./CjZlUkB4.js"])))=>i.map(i=>d[i]); 2import{_ as P,e as oe,b as j,a as ue,n as de,f as B}from"./lTr7RkzU.js";import{_ as me}from"./Bhj8_NNP.js";import{_ as pe}from"./BIg6aLt4.js";import{_ as fe}from"./BVY1fCGU.js";import{u as O}from"./Jx4T7nIq.js";import{M as L,I as w,V as f,a0 as l,a9 as v,X as m,Q as H,d as b,m as C,Y,a8 as ce,W as F,a1 as p,U as A,ab as W,ac as z,a7 as J,O as $,G as ge,q as X,N as I}from"./BfJgI-1u.js";import{_ as G}from"./BQ2uhhR1.js";import{d as Q}from"./C1K6ie2k.js";import{s as R}from"./vhhgy5la.js";import{u as De}from"./Bak2IoqS.js";const ye={__name:"FormsHolidayQuoteIntro",props:{introData:Object},emits:["pageData"],setup(a,{expose:e,emit:t}){e();const s=t,d=a,D=b(!!(d.introData.passengers.infants||d.introData.passengers.teens||d.introData.passengers.olderTeens)),o=["Not flexible","-1 week","-3 days","-2 days","-1 day","+1 week","+3 days","+2 days","+1 day","+ or - 1 week"],n=["UK & Channel Islands","North America","Faraway","Tailor-made quote"],i=C(()=>{const x=new Date;x.setDate(x.getDate()+10);const V=x.getFullYear();let _=x.getMonth()+1,k=x.getDate();return _=_<10?"0"+_:_,k=k<10?"0"+k:k,V+"-"+_+"-"+k}),r=C(()=>!!(d.introData.departure&&d.introData.flexible&&d.introData.quoteType)),{submitAttempted:g,visibility:u,tryAdvance:y}=O(r),c={emit:s,props:d,showExtra:D,flexibleOptions:o,quoteTypeOptions:n,formattedDate:i,validation:r,submitAttempted:g,visibility:u,tryAdvance:y,handleSubmit:()=>y(()=>s("pageData",2)),ref:b,get useStepValidation(){return O}};return Object.defineProperty(c,"__isScriptSetup",{enumerable:!1,value:!0}),c}},we={id:"intro",class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4"},ve={class:"rounded-lg divide-y divide-gray-200"},be={key:0,class:"text-sm text-red-700 bg-red-50 border border-red-200 rounded px-3 py-2 mt-4",role:"alert"};function he(a,e,t,s,d,D){const o=L("FormKit"),n=fe;return f(),w(H,null,[e[10]||(e[10]=l("div",{class:"w-full"},[l("h2",{class:"text-2xl xl:text-3xl mb-4"},"Travel Dates & Passengers")],-1)),l("div",we,[m(o,{type:"date",label:"Departure Date",modelValue:t.introData.departure,"onUpdate:modelValue":e[0]||(e[0]=i=>t.introData.departure=i),name:"depart",min:s.formattedDate,validation:"required","validation-visibility":s.visibility,"outer-class":"w-full max-w-full","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["modelValue","min","validation-visibility"]),m(o,{type:"select",label:"Number of nights?",name:"duration",options:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],modelValue:t.introData.duration,"onUpdate:modelValue":e[1]||(e[1]=i=>t.introData.duration=i),"outer-class":"w-full max-w-full","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["modelValue"]),m(o,{type:"select",label:"How Flexible are you?",name:"flexible",placeholder:"Please Select",options:s.flexibleOptions,modelValue:t.introData.flexible,"onUpdate:modelValue":e[2]||(e[2]=i=>t.introData.flexible=i),validation:"required","validation-visibility":s.visibility,"outer-class":"w-full max-w-full","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["modelValue","validation-visibility"]),m(o,{type:"select",label:"What type of quote would you like?",name:"quoteType",placeholder:"Please Select",options:s.quoteTypeOptions,modelValue:t.introData.quoteType,"onUpdate:modelValue":e[3]||(e[3]=i=>t.introData.quoteType=i),validation:"required","validation-visibility":s.visibility,"outer-class":"w-full max-w-full","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["modelValue","validation-visibility"])]),e[11]||(e[11]=l("h4",{class:"ph-form-label !font-semibold my-4"},"Who's travelling?",-1)),l("div",ve,[m(n,{modelValue:t.introData.passengers.adults,"onUpdate:modelValue":e[4]||(e[4]=i=>t.introData.passengers.adults=i),label:"Adults",min:1},null,8,["modelValue"]),m(n,{modelValue:t.introData.passengers.children,"onUpdate:modelValue":e[5]||(e[5]=i=>t.introData.passengers.children=i),label:"Children",hint:"Age 2-11"},null,8,["modelValue"]),s.showExtra?(f(),w(H,{key:0},[m(n,{modelValue:t.introData.passengers.infants,"onUpdate:modelValue":e[6]||(e[6]=i=>t.introData.passengers.infants=i),label:"Infants",hint:"Age 0-2"},null,8,["modelValue"]),m(n,{modelValue:t.introData.passengers.teens,"onUpdate:modelValue":e[7]||
2(e[7]=i=>t.introData.passengers.teens=i),label:"Children",hint:"Age 12-15"},null,8,["modelValue"]),m(n,{modelValue:t.introData.passengers.olderTeens,"onUpdate:modelValue":e[8]||(e[8]=i=>t.introData.passengers.olderTeens=i),label:"Children",hint:"Age 16-17"},null,8,["modelValue"])],64)):v("",!0),s.showExtra?v("",!0):(f(),w("button",{key:1,type:"button",class:"ph-form-label !text-ph-blue mt-2 cursor-pointer hover:underline self-start",onClick:e[9]||(e[9]=i=>s.showExtra=!0)}," + Add infants or other ages "))]),s.submitAttempted&&!s.validation?(f(),w("p",be," Please complete the highlighted required fields before continuing. ")):v("",!0),l("div",{id:"intro-navigation",class:"w-full flex justify-end my-4 border-t border-black pt-4 mt-4"},[l("button",{class:"next",onClick:s.handleSubmit},"Next")])],64)}const xe=P(ye,[["render",he],["__file","intro.vue"]]),_e={__name:"FormsSharedLoadingSelect",props:{loading:{type:Boolean,default:!1}},setup(a,{expose:e}){e();const t={};return Object.defineProperty(t,"__isScriptSetup",{enumerable:!1,value:!0}),t}};function ke(a,e,t,s,d,D){return f(),w("div",{class:ce(["ph-loading-select",t.loading?"is-loading":""])},[Y(a.$slots,"default",{},void 0,!0)],2)}const Te=P(_e,[["render",ke],["__scopeId","data-v-c0e4eee8"],["__file","loadingSelect.vue"]]),Ae={__name:"FormsHolidayQuoteFlights",props:{flightDetails:Object,type:String},emits:["pageData"],setup(a,{expose:e,emit:t}){e();const s=t,d=a,D=()=>{s("pageData",3)},o=()=>{s("pageData",1)},{data:n,pending:i}=oe("/api/airports","$Xpk6Nca_dJ"),r=C(()=>n.value?.data||[]),g=C(()=>!0),u={emit:s,props:d,handleSubmit:D,handleBack:o,airports:n,airportsPending:i,airportOptions:r,validation:g};return Object.defineProperty(u,"__isScriptSetup",{enumerable:!1,value:!0}),u}},Ve={class:"w-full"},Ce={class:"w-full"},Pe={key:0,class:"space-y-6 mt-6"},Se={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},Ie={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},Ne={key:1},Fe={key:0,class:"grid grid-cols-1 md:grid-cols-2 gap-4 mt-4"},Be={id:"navigation",class:"w-full flex justify-between my-4 border-t border-black pt-4 mt-4"},Oe=["disabled"];function He(a,e,t,s,d,D){const o=G,n=L("FormKit"),i=Te;return f(),w("div",Ve,[e[13]||(e[13]=l("h3",{class:"text-2xl xl:text-3xl mb-4"},"Flight Details",-1)),l("div",Ce,[m(o,{modelValue:t.flightDetails.requireFlights,"onUpdate:modelValue":e[0]||(e[0]=r=>t.flightDetails.requireFlights=r),label:"Do you require flights?",options:[{label:"Yes",value:!0},{label:"No",value:!1}]},null,8,["modelValue"]),t.flightDetails.requireFlights?(f(),w("div",Pe,[m(o,{modelValue:t.flightDetails.cheapestFlights,"onUpdate:modelValue":e[1]||(e[1]=r=>t.flightDetails.cheapestFlights=r),label:"We always quote the cheapest airfare available, which may not always be non stop. Do you specifically want us to quote using non stop flights from the UK?",options:[{label:"Yes",value:!0},{label:"No",value:!1}]},null,8,["modelValue"]),m(n,{type:"text",label:"Preferred airline (optional)",modelValue:t.flightDetails.preferredAirline,"onUpdate:modelValue":e[2]||(e[2]=r=>t.flightDetails.preferredAirline=r),"outer-class":"w-full max-w-full","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["modelValue"]),e[11]||(e[11]=l("p",{class:"ph-form-label my-2"}," Which UK Airport would you like to fly from? ",-1)),l("div",Se,[m(i,{loading:s.airportsPending},{default:F(()=>[m(n,{type:"select",label:"First Choice",name:"first_Uk_Airport",placeholder:"Please Select",options:s.airportOptions,disabled:s.airportsPending,modelValue:t.flightDetails.firstChoiceAirport,"onUpdate:modelValue":e[3]||(e[3]=r=>t.flightDetails.firstChoiceAirport=r),"outer-class":"w-full max-w-full","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["options","disabled","modelValue"])]),_:1},8,["loading"]),m(i,{loading:s.airportsPending},{default:F(()=>[m(n,{type:"select",label:"Second Choice",name:"second_choice_Uk_Airport",options:s.airportOptions,placeholder:"Please Select",disabled:s.airportsPending,modelValue:t.flightDetails.secondChoiceAirport,"onUpdate:modelValue":e[4]||(e[4]=r=>t.flightDetails.secondChoiceAirport=r),"outer-class":"w-full max-w-full","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["options","disabled","modelValue"])]),_:1},8,["loading"])]),e[12]||(e[12]=l("p",{class:"ph-form-label my-2"}," We will base your quotation on economy class. If you would like to upgrade class, please select below. ",-1)),l("div",Ie,[m(n,{type:"select",label:"",name:"air_class",modelValue:t.flightDetails.class,"onUpdate:modelValue":e[5]||(e[5]=r=>t.flightDetails.class=r),options:["Economy","Premium Economy","Business Class","First Class"],"outer-class":"w-full max-w-full","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["modelValue"])])])):v("",!0),!t.flightDetails.requireFlights&&t.type=="UK & Channel Islands"?(f(),w("div",Ne,[m(o,{modelValue:t.flightDetails.requireFerry,"onUpdate:modelValue":e[6]||(e[6]=r=>t.flightDetails.requireFerry=r),label:"Do you require a ferry?",options:[{label:"Yes",value:!0},{label:"No",value:!1}]},null,8,["modelValue"]),t.flightDetails.requireFerry?(f(),w("div",Fe,[m(n,{type:"select",label:"Which port do you wish to
2sail from?",name:"ferry_port",modelValue:t.flightDetails.ferryPort,"onUpdate:modelValue":e[7]||(e[7]=r=>t.flightDetails.ferryPort=r),options:["Portsmouth - Isle of Wight","Poole - Channel Islands","Heysham - Isle of Man","Liverpool - Isle of Man","Southampton - Isle of Wight","Lymington - Isle of Wight"],"outer-class":"w-full max-w-full","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["modelValue"]),m(n,{type:"select",label:"Would you like to take your own car?",name:"take_car",modelValue:t.flightDetails.takeYourOwnCar,"onUpdate:modelValue":e[8]||(e[8]=r=>t.flightDetails.takeYourOwnCar=r),options:[{label:"Yes",value:!0},{label:"No",value:!1}],"outer-class":"w-full max-w-full","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["modelValue"])])):v("",!0)])):v("",!0)]),l("div",Be,[l("button",{class:"prev",onClick:e[9]||(e[9]=r=>s.handleBack())}," Back "),l("button",{class:"next",disabled:!s.validation,onClick:e[10]||(e[10]=r=>s.validation&&s.handleSubmit())},p(s.validation?"Next":"Please fill out all remaining fields"),9,Oe)])])}const Ue=P(Ae,[["render",He],["__file","flights.vue"]]),Ee={__name:"FormsHolidayQuotePassengerDetails",props:{passengerDetails:Object},emits:["pageData"],setup(a,{expose:e,emit:t}){e();const s=t,d=a,D=C(()=>!!(d.passengerDetails?.firstName&&d.passengerDetails?.surname&&d.passengerDetails?.email&&d.passengerDetails?.telephone&&d.passengerDetails?.source)),{submitAttempted:o,visibility:n,tryAdvance:i}=O(D),u={emit:s,props:d,validation:D,submitAttempted:o,visibility:n,tryAdvance:i,handleSubmit:()=>i(()=>s("pageData",5)),handleBack:()=>s("pageData",3),get useStepValidation(){return O}};return Object.defineProperty(u,"__isScriptSetup",{enumerable:!1,value:!0}),u}},je={class:"w-full"},Le={class:"grid grid-cols-1 md:grid-cols-2 gap-4 md:gap-x-8"},Qe={key:0,class:"text-sm text-red-700 bg-red-50 border border-red-200 rounded px-3 py-2 mt-4",role:"alert"},Re={id:"navigation",class:"w-full flex justify-between my-4 border-t border-black pt-4 mt-4"};function Me(a,e,t,s,d,D){const o=L("FormKit"),n=G;return f(),w("div",je,[e[14]||(e[14]=l("h3",{class:"text-2xl xl:text-3xl mb-4"},"Passenger Details",-1)),l("div",Le,[l("div",null,[m(o,{type:"select",label:"Title",name:"title",options:["Miss","Mrs","Mr","Dr"],modelValue:t.passengerDetails.title,"onUpdate:modelValue":e[0]||(e[0]=i=>t.passengerDetails.title=i),"outer-class":"w-full max-w-full","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["modelValue"]),m(o,{type:"text",label:"First Name",name:"firstName",modelValue:t.passengerDetails.firstName,"onUpdate:modelValue":e[1]||(e[1]=i=>t.passengerDetails.firstName=i),validation:"required","validation-visibility":s.visibility,"outer-class":"w-full max-w-full","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["modelValue","validation-visibility"]),m(o,{type:"text",label:"Surname",name:"surname",modelValue:t.passengerDetails.surname,"onUpdate:modelValue":e[2]||(e[2]=i=>t.passengerDetails.surname=i),validation:"required","validation-visibility":s.visibility,"outer-class":"w-full max-w-full","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["modelValue","validation-visibility"]),m(o,{type:"email",label:"Email address",name:"email",placeholder:"[email protected]",modelValue:t.passengerDetails.email,"onUpdate:modelValue":e[3]||(e[3]=i=>t.passengerDetails.email=i),validation:"required|email","validation-visibility":s.visibility,"outer-class":"w-full max-w-full","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["modelValue","validation-visibility"]),m(o,{type:"tel",label:"Phone number",name:"telephone",placeholder:"+44 xxxxx-xxx-xxx",modelValue:t.passengerDetails.telephone,"onUpdate:modelValue":e[4]||(e[4]=i=>t.passengerDetails.telephone=i),validation:"required","validation-visibility":s.visibility,"outer-class":"w-full max-w-full","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["modelValue","validation-visibility"])]),l("div",null,[m(o,{type:"text",label:"Postcode",name:"postcode",modelValue:t.passengerDetails.postcode,"onUpdate:modelValue":e[5]||(e[5]=i=>t.passengerDetails.postcode=i),"outer-class":"w-full max-w-full","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["modelValue"]),m(o,{type:"text",label:"Address Line 1",name:"address1",modelValue:t.passengerDetails.address1,"onUpdate:modelValue":e[6]||(e[6]=i=>t.passengerDetails.address1=i),"outer-class":"w-full max-w-full","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["modelValue"]),m(o,{type:"text",label:"Address Line 2",name:"address2",modelValue:t.passengerDetails.address2,"onUpdate:modelValue":e[7]||
2(e[7]=i=>t.passengerDetails.address2=i),"outer-class":"w-full max-w-full","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["modelValue"]),m(o,{type:"text",label:"Address Line 3",name:"address3",modelValue:t.passengerDetails.address3,"onUpdate:modelValue":e[8]||(e[8]=i=>t.passengerDetails.address3=i),"outer-class":"w-full max-w-full","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["modelValue"]),m(o,{type:"text",label:"Town or City",name:"townCity",modelValue:t.passengerDetails.townCity,"onUpdate:modelValue":e[9]||(e[9]=i=>t.passengerDetails.townCity=i),"outer-class":"w-full max-w-full","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["modelValue"]),m(n,{modelValue:t.passengerDetails.bookedBefore,"onUpdate:modelValue":e[10]||(e[10]=i=>t.passengerDetails.bookedBefore=i),label:"Have you booked with us before?",options:[{label:"Yes",value:!0},{label:"No",value:!1}]},null,8,["modelValue"]),m(o,{type:"select",label:"Where did you hear about us?",name:"source",placeholder:"Please Select",options:["Brochure from travel agent","Dealchecker","Enewsletter","Facebook","General Holiday Search","Magazine","Newspaper","Recommended by a friend","Times online","Tourist Board","Travelzoo","Other"],modelValue:t.passengerDetails.source,"onUpdate:modelValue":e[11]||(e[11]=i=>t.passengerDetails.source=i),"outer-class":"w-full max-w-full mt-4","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["modelValue"]),t.passengerDetails.source=="Other"?(f(),A(o,{key:0,type:"text",label:"If Other?",name:"otherSource",modelValue:t.passengerDetails.otherSource,"onUpdate:modelValue":e[12]||(e[12]=i=>t.passengerDetails.otherSource=i),"outer-class":"w-full max-w-full","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["modelValue"])):v("",!0)])]),s.submitAttempted&&!s.validation?(f(),w("p",Qe," Please complete the highlighted required fields before continuing. ")):v("",!0),l("div",Re,[l("button",{class:"prev",onClick:e[13]||(e[13]=i=>s.handleBack())},"Back"),l("button",{class:"next",onClick:s.handleSubmit},"Next")])])}const Ye=P(Ee,[["render",Me],["__file","passengerDetails.vue"]]),Ge={__name:"FormsHolidayQuoteContactingYou",props:{contactDetails:Object,agentDetails:Object},emits:["pageData"],setup(a,{expose:e,emit:t}){e();const s=t,d=a,D=b(!1),n={emit:s,props:d,isAgent:D,handleBack:()=>{s("pageData",4)},ref:b};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}},Ke={class:"w-full"},We={class:"w-full"},ze={key:0,class:"grid grid-cols-1 md:grid-cols-3 gap-4 mt-4"},Je={class:"flex items-start gap-2 mt-4"},$e={class:"flex items-start gap-2 mt-3"},Xe={id:"navigation",class:"w-full flex justify-between my-4 border-t border-black pt-4 mt-4"};function Ze(a,e,t,s,d,D){const o=G,n=L("FormKit");return f(),w("div",Ke,[e[10]||(e[10]=l("h3",{class:"text-2xl xl:text-3xl mb-4"},"Contacting You",-1)),l("div",We,[m(o,{modelValue:s.isAgent,"onUpdate:modelValue":e[0]||(e[0]=i=>s.isAgent=i),label:"Are you a travel agent enquiring on behalf of the lead passenger?",options:[{label:"Yes",value:!0},{label:"No",value:!1}]},null,8,["modelValue"]),s.isAgent?(f(),w("div",ze,[m(n,{type:"text",label:"Please enter your ABTA",name:"abta",modelValue:t.agentDetails.abta,"onUpdate:modelValue":e[1]||(e[1]=i=>t.agentDetails.abta=i),"outer-class":"w-full max-w-full","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["modelValue"]),m(n,{type:"text",label:"Please enter your name",name:"agentName",modelValue:t.agentDetails.name,"onUpdate:modelValue":e[2]||(e[2]=i=>t.agentDetails.name=i),"outer-class":"w-full max-w-full","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["modelValue"]),m(n,{type:"text",label:"Please enter your contact number",name:"agentContact",modelValue:t.agentDetails.contact,"onUpdate:modelValue":e[3]||(e[3]=i=>t.agentDetails.contact=i),"outer-class":"w-full max-w-full","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["modelValue"])])):v("",!0),m(n,{type:"text",label:"Please indicate the best time to call",name:"timeToCall",modelValue:t.contactDetails.timeToCall,"onUpdate:modelValue":e[4]||(e[4]=i=>t.contactDetails.timeToCall=i),"outer-class":"w-full max-w-full mt-6","input-class":"w-full max-w-full","wrapper-class":"w-full max-w-full","inner-class":"w-full max-w-full"},null,8,["modelValue"]),l("div",Je,[W(l("input",{type:"checkbox",id:"quote-by-email","onUpdate:modelValue":e[5]||(e[5]=i=>t.contactDetails.quoteByEmail=i),class:"w-4 h-4 mt-0.5 cursor-pointer flex-shrink-0 accent-blue-950"},null,512),[[z,t.contactDetails.quoteByEmail]]),e[8]||(e[8]=l("label",{for:"quote-by-email",class:"cursor-pointer leading-snug ph-form-label"}," I would like to receive my holiday quotation via email ",-1))]),l("div",$e,[W(l("input",{type:"checkbox",id:"marketing-opt-in","onUpdate:modelValue":e[6]||(e[6]=i=>t.contactDetails.marketingOptIn=i),class:"w-4 h-4 mt-0.5 cursor-pointer flex-shrink-0 accent-blue-950"},null,512),[[z,t.contactDetails.marketingOptIn]]),e[9]||(e[9]=l("label",{for:"marketing-opt-in",class:"cursor-pointer leading-snug ph-form-label"}," We would like to keep you updated with all our very best offers and destination news through our e-newsletter, please tick this box if you would like to opt in to this service. Your personal data is safe with us and will never be passed on to third parties. ",-1))])]),l("div",Xe,[l("button",{class:"prev",onClick:e[7]||(e[7]=i=>s.handleBack())}," Back "),Y(a.$slots,"default")])])}const qe=P(Ge,[["render",Ze],["__file","contactingYou.vue"]]);async function U(){try{const a=await $fetch("/api/forms/country-options"),e=new Map;for(const t of Array.isArray(a)?a:[])t?.id!=null&&e.set(String(t.id),t.name);return e}catch(a){return console.warn("Failed to load country names for quote (non-blocking)",a),new Map}}function E(a,e){return e==null||e===""?null:a.get(String(e))||e}const ea={__name:"FormsHolidayQuoteReview",props:{data:{type:Object,required:!0}},emits:["pageData"],setup(a,{expose:e,emit:t}){e();const s=t,d=a,D=b(new Map);ge(async()=>{D.value=await U()});const o=u=>E(D.value,u)||"â",n=C(()=>{const u=d.data.introData.passengers,y=[];return u.adults&&y.push(`${u.adults} adult${u.adults>1?"s":""}`),u.children&&y.push(`${u.children} child${u.children>1?"ren":""}
2`),u.infants&&y.push(`${u.infants} infant${u.infants>1?"s":""}`),u.teens&&y.push(`${u.teens} teen${u.teens>1?"s":""}`),u.olderTeens&&y.push(`${u.olderTeens} older teen${u.olderTeens>1?"s":""}`),y.join(", ")||"â"}),i=u=>{if(!u)return"â";const[y,h,c]=String(u).split("-");return!y||!h||!c?u:`${c}/${h}/${y}`},r=C(()=>{const u=d.data.agentDetails;return!!(u?.abta||u?.name||u?.contact)}),g={emit:s,props:d,countryNameById:D,countryLabel:o,travellersSummary:n,formatDate:i,hasAgentDetails:r,get getCountryNameMap(){return U},get resolveCountryName(){return E}};return Object.defineProperty(g,"__isScriptSetup",{enumerable:!1,value:!0}),g}},aa={class:"w-full"},ta={class:"space-y-6"},la={class:"grid grid-cols-1 sm:grid-cols-2 gap-y-1 gap-x-6 ph-form-label"},sa={class:"flex justify-between sm:block"},ia={class:"flex justify-between sm:block"},na={class:"flex justify-between sm:block"},ra={class:"flex justify-between sm:block"},oa={class:"flex justify-between sm:block"},ua={key:0},da={class:"grid grid-cols-1 sm:grid-cols-2 gap-y-1 gap-x-6 ph-form-label"},ma={class:"flex justify-between sm:block"},pa={class:"flex justify-between sm:block"},fa={class:"flex justify-between sm:block"},ca={class:"flex justify-between sm:block"},ga={class:"flex justify-between sm:block"},Da={key:1},ya={class:"grid grid-cols-1 sm:grid-cols-2 gap-y-1 gap-x-6 ph-form-label"},wa={class:"flex justify-between sm:block"},va={class:"flex justify-between sm:block"},ba={key:2},ha={class:"ph-form-label whitespace-pre-wrap"},xa={class:"ph-form-label whitespace-pre-wrap"},_a={key:3},ka={class:"grid grid-cols-1 sm:grid-cols-2 gap-y-1 gap-x-6 ph-form-label"},Ta={class:"flex justify-between sm:block"},Aa={class:"flex justify-between sm:block"},Va={class:"flex justify-between sm:block"},Ca={class:"flex justify-between sm:block"},Pa={key:4},Sa={class:"space-y-2 ph-form-label"},Ia={key:5},Na={class:"space-y-2 ph-form-label"},Fa={class:"grid grid-cols-1 sm:grid-cols-2 gap-y-1 gap-x-6 ph-form-label"},Ba={class:"flex justify-between sm:block"},Oa={class:"flex justify-between sm:block"},Ha={class:"flex justify-between sm:block"},Ua={class:"flex justify-between sm:block"},Ea={key:6},ja={class:"grid grid-cols-1 sm:grid-cols-2 gap-y-1 gap-x-6 ph-form-label"},La={class:"flex justify-between sm:block"},Qa={class:"flex justify-between sm:block"},Ra={class:"flex justify-between sm:block"},Ma={id:"navigation",class:"w-full flex justify-between my-4 border-t border-black pt-4 mt-6"};function Ya(a,e,t,s,d,D){return f(),w("div",aa,[e[34]||(e[34]=l("h3",{class:"text-2xl xl:text-3xl mb-2"},"Review your request",-1)),e[35]||(e[35]=l("p",{class:"ph-form-label mb-6"}," Please check the details below. Use the stepper above to jump back and edit any section. ",-1)),l("div",ta,[l("section",null,[e[6]||(e[6]=l("h4",{class:"text-sm font-semibold text-ph-blue mb-2"},"Travel dates",-1)),l("dl",la,[l("div",sa,[e[1]||(e[1]=l("dt",{class:"text-gray-500"},"Departure",-1)),l("dd",null,p(s.formatDate(t.data.introData.departure)),1)]),l("div",ia,[e[2]||(e[2]=l("dt",{class:"text-gray-500"},"Nights",-1)),l("dd",null,p(t.data.introData.duration),1)]),l("div",na,[e[3]||(e[3]=l("dt",{class:"text-gray-500"},"Flexibility",-1)),l("dd",null,p(t.data.introData.flexible||"â"),1)]),l("div",ra,[e[4]||(e[4]=l("dt",{class:"text-gray-500"},"Quote type",-1)),l("dd",null,p(t.data.introData.quoteType||"â"),1)]),l("div",oa,[e[5]||(e[5]=l("dt",{class:"text-gray-500"},"Travellers",-1)),l("dd",null,p(s.travellersSummary),1)])])]),t.data.flightDetails.requireFlights?(f(),w("section",ua,[e[12]||(e[12]=l("h4",{class:"text-sm font-semibold text-ph-blue mb-2"},"Flights",-1)),l("dl",da,[l("div",ma,[e[7]||(e[7]=l("dt",{class:"text-gray-500"},"Cheapest non-stop only",-1)),l("dd",null,p(t.data.flightDetails.cheapestFlights?"Yes":"No"),1)]),l("div",pa,[e[8]||(e[8]=l("dt",{class:"text-gray-500"},"Preferred airline",-1)),l("dd",null,p(t.data.flightDetails.preferredAirline||"â"),1)]),l("div",fa,[e[9]||(e[9]=l("dt",{class:"text-gray-500"},"First choice airport",-1)),l("dd",null,p(t.data.flightDetails.firstChoiceAirport),1)]),l("div",ca,[e[10]||(e[10]=l("dt",{class:"text-gray-500"},"Second choice airport",-1)),l("dd",null,p(t.data.flightDetails.secondChoiceAirport),1)]),l("div",ga,[e[11]||(e[11]=l("dt",{class:"text-gray-500"},"Class",-1)),l("dd",null,p(t.data.flightDetails.class||"Economy"),1)])])])):t.data.flightDetails.requireFerry?(f(),w("section",Da,[e[15]||(e[15]=l("h4",{class:"text-sm font-semibold text-ph-blue mb-2"}
2,"Ferry",-1)),l("dl",ya,[l("div",wa,[e[13]||(e[13]=l("dt",{class:"text-gray-500"},"Port",-1)),l("dd",null,p(t.data.flightDetails.ferryPort||"â"),1)]),l("div",va,[e[14]||(e[14]=l("dt",{class:"text-gray-500"},"Bringing own car",-1)),l("dd",null,p(t.data.flightDetails.takeYourOwnCar?"Yes":"No"),1)])])])):v("",!0),t.data.introData.quoteType==="Tailor-made quote"?(f(),w("section",ba,[e[16]||(e[16]=l("h4",{class:"text-sm font-semibold text-ph-blue mb-2"},"Holiday details",-1)),l("p",ha,p(t.data.tmDetails.details||"â"),1),e[17]||(e[17]=l("p",{class:"ph-form-label !font-semibold !text-ph-blue mt-2"},"Budget",-1)),l("p",xa,p(t.data.tmDetails.budget||"â"),1)])):v("",!0),t.data.introData.quoteType==="UK & Channel Islands"?(f(),w("section",_a,[e[22]||(e[22]=l("h4",{class:"text-sm font-semibold text-ph-blue mb-2"},"Holiday details",-1)),l("dl",ka,[l("div",Ta,[e[18]||(e[18]=l("dt",{class:"text-gray-500"},"Destination",-1)),l("dd",null,p(t.data.shortHaulDetails.country||"â"),1)]),l("div",Aa,[e[19]||(e[19]=l("dt",{class:"text-gray-500"},"Accommodation",-1)),l("dd",null,p(t.data.shortHaulDetails.hotel||"â"),1)]),l("div",Va,[e[20]||(e[20]=l("dt",{class:"text-gray-500"},"Board basis",-1)),l("dd",null,p(t.data.shortHaulDetails.board||"â"),1)]),l("div",Ca,[e[21]||(e[21]=l("dt",{class:"text-gray-500"},"Budget",-1)),l("dd",null,p(t.data.shortHaulDetails.budget||"â"),1)])])])):v("",!0),t.data.introData.quoteType==="Faraway"?(f(),w("section",Pa,[e[23]||(e[23]=l("h4",{class:"text-sm font-semibold text-ph-blue mb-2"},"Holiday details",-1)),l("ol",Sa,[(f(!0),w(H,null,J(t.data.farawayDetails.destinations,(o,n)=>(f(),w("li",{key:n,class:"bg-white rounded p-2"},[l("strong",null,"Centre "+p(n+1)+":",1),$(" "+p(s.countryLabel(o.country))+" · "+p(o.resort||"any resort")+" · "+p(o.hotel||"any hotel")+" · "+p(o.duration)+" nights ",1)]))),128))])])):v("",!0),t.data.introData.quoteType==="North America"?(f(),w("section",Ia,[e[24]||(e[24]=l("h4",{class:"text-sm font-semibold text-ph-blue mb-2"},"Holiday details",-1)),l("ol",Na,[(f(!0),w(H,null,J(t.data.americaDetails.destinations,(o,n)=>(f(),w("li",{key:n,class:"bg-white rounded p-2"},[l("strong",null,"Centre "+p(n+1)+":",1),$(" "+p(s.countryLabel(o.country))+" · "+p(o.region||"â")+" · "+p(o.resort||"any resort")+" · "+p(o.duration)+" nights ",1)]))),128))])])):v("",!0),l("section",null,[e[29]||(e[29]=l("h4",{class:"text-sm font-semibold text-ph-blue mb-2"},"Lead passenger",-1)),l("dl",Fa,[l("div",Ba,[e[25]||(e[25]=l("dt",{class:"text-gray-500"},"Name",-1)),l("dd",null,p(t.data.passengerDetails.title)+" "+p(t.data.passengerDetails.firstName)+" "+p(t.data.passengerDetails.surname),1)]),l("div",Oa,[e[26]||(e[26]=l("dt",{class:"text-gray-500"},"Email",-1)),l("dd",null,p(t.data.passengerDetails.email),1)]),l("div",Ha,[e[27]||(e[27]=l("dt",{class:"text-gray-500"},"Phone",-1)),l("dd",null,p(t.data.passengerDetails.telephone),1)]),l("div",Ua,[e[28]||(e[28]=l("dt",{class:"text-gray-500"},"Best time to call",-1)),l("dd",null,p(t.data.contactDetails.timeToCall||"Anytime"),1)])])]),s.hasAgentDetails?(f(),w("section",Ea,[e[33]||(e[33]=l("h4",{class:"text-sm font-semibold text-ph-blue mb-2"},"Travel agent",-1)),l("dl",ja,[l("div",La,[e[30]||(e[30]=l("dt",{class:"text-gray-500"},"ABTA",-1)),l("dd",null,p(t.data.agentDetails?.abta||"â"),1)]),l("div",Qa,[e[31]||(e[31]=l("dt",{class:"text-gray-500"},"Agent name",-1)),l("dd",null,p(t.data.agentDetails?.name||"â"),1)]),l("div",Ra,[e[32]||(e[32]=l("dt",{class:"text-gray-500"},"Agent contact",-1)),l("dd",null,p(t.data.agentDetails?.contact||"â"),1)])])])):v("",!0)]),l("div",Ma,[l("button",{class:"prev",onClick:e[0]||(e[0]=o=>s.emit("pageData",5))},"Back"),Y(a.$slots,"default")])])}const Ga=P(ea,[["render",Ya],["__file","review.vue"]]);function M(a){return new Date(a).getTime()/1e3}var Z={};async function q(a){const e=[],t=await U();a.farawayDetails.value.destinations.forEach(r=>{e.push({country:E(t,r.country),hotel:r.hotel,resort:r.resort,nights:parseInt(r.duration)})});const s=` 3 mutation sendQuote( 4 $id: String 5 $travelType: String 6 $quoteType: String 7 $details: String 8 $offerDetails: offerDetailsInput 9 $departure: departureInput 10 $passenger: passengerInput 11 $rooms: roomsInput 12 $longhaul: LongHaulQuoteInput 13 $marketing: marketingDetailsInput 14 $received: Int 15 $completed: Boolean 16 $agent: AgentDetailsInput 17 ) { 18 sendQuote( 19 id: $id 20 travelType: $travelType 21 quoteType: $quoteType 22 details: $details 23 offerDetails: $offerDetails 24 departure: $departure 25 passenger: $passenger 26 rooms: $rooms 27 longhaul: $longhaul 28 marketing: $marketing 29 received: $received 30 completed: $completed 31 agent: $agent 32 ) { 33 code 34 message 35 success 36 } 37 } 38 `,d={id:a.passengerDetails.value.surname.toUpperCase()+Q().unix(),travelType:"LONG_HAUL",quoteType:"GENERAL",details:a.farawayDetail
38s.value.additionalDetails,departure:{departureDate:M(a.introData.value.departure),departurePoint:a.flightDetails.value.firstChoiceAirport,departurePoint2:a.flightDetails.value.secondChoiceAirport,flexible:a.introData.value.flexible},passenger:{title:a.passengerDetails.value.title,firstName:a.passengerDetails.value.firstName,surname:a.passengerDetails.value.surname,postcode:a.passengerDetails.value.postcode,address1:a.passengerDetails.value.address1,townCity:a.passengerDetails.value.townCity,email:a.passengerDetails.value.email,telephone:a.passengerDetails.value.telephone,quoteByEmail:a.contactDetails.value.quoteByEmail,timeToCall:a.contactDetails.value.timeToCall},longhaul:{quoteType:"FARAWAY",destinations:e,excursions:a.farawayDetails.value.excursions,flightsRequired:a.flightDetails.value.requireFlights,cheapestAirfare:a.flightDetails.value.cheapestFlights,preferredAirline:a.flightDetails.value.preferredAirline,class:a.flightDetails.value.class,budget:a.farawayDetails.value.budget},rooms:{adults:parseInt(a.introData.value.passengers.adults),children:parseInt(a.introData.value.passengers.children),infants:parseInt(a.introData.value.passengers.infants),teens:parseInt(a.introData.value.passengers.teens),olderTeens:parseInt(a.introData.value.passengers.olderTeens)},marketing:{bookedBefore:a.passengerDetails.value.bookedBefore,source:a.passengerDetails.value.source,website:"PH"},received:Math.floor(Date.now()/1e3),completed:!1,agent:{abta:a.agentDetails.value.abta,name:a.agentDetails.value.name,contact:a.agentDetails.value.contact}},D=j(),o=D?.public||{},n=o.graphqlEndpoint||o.payloadBaseUrl||D.payloadBaseUrl||Z.PAYLOAD_BASE_URL||"";typeof n=="string"&&n.replace(/\/$/,"");const i=Z.GRAPHQL_ENDPOINT||"https://premier-passport-api-production.up.railway.app";try{const r=await fetch(i,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json","x-api-key":"nKe4xGFgHOA3EMPzq0D1JRBL6Yk1CHvz"},body:JSON.stringify({query:s,variables:d})}),g=await r.json();if(!r.ok){const y=g?.errors?.[0]?.message||g?.message||`GraphQL request failed with status ${r.status}`;throw new Error(y)}const u=g?.data?.sendQuote;if(!u?.success)throw new Error(u?.message||"Faraway quote submission failed");if(a.contactDetails.value.marketingOptIn)try{await R({firstName:a.passengerDetails.value.firstName,surname:a.passengerDetails.value.surname,email:a.passengerDetails.value.email,abta:a.agentDetails.value.abta||null})}catch(y){console.warn("Mailchimp signup failed (non-blocking)",y)}return u}catch(r){throw console.error("Failed to submit faraway quote",r),r}}var ee={};async function ae(a){const e=[],t=await U();a.americaDetails.value.destinations.forEach(r=>{e.push({country:E(t,r.country),hotel:r.hotel,resort:r.resort,nights:parseInt(r.duration)})});const s=` 39 mutation sendQuote( 40 $id: String 41 $travelType: String 42 $quoteType: String 43 $details: String 44 $offerDetails: offerDetailsInput 45 $departure: departureInput 46 $passenger: passengerInput 47 $rooms: roomsInput 48 $longhaul: LongHaulQuoteInput 49 $marketing: marketingDetailsInput 50 $received: Int 51 $completed: Boolean 52 $agent: AgentDetailsInput 53 ) { 54 sendQuote( 55 id: $id 56 travelType: $travelType 57 quoteType: $quoteType 58 details: $details 59 offerDetails: $offerDetails 60 departure: $departure 61 passenger: $passenger 62 rooms: $rooms 63 longhaul: $longhaul 64 marketing: $marketing 65 received: $received 66 completed: $completed 67 agent: $agent 68 ) { 69 code 70 message 71 success 72 } 73 } 74 `,d={id:a.passengerDetails.value.surname.toUpperCase()+Q().unix(),travelType:"LONG_HAUL",quoteType:"GENERAL",details:a.americaDetails.value.additionalDetails,departure:{departureDate:M(a.introData.value.departure),departurePoint:a.flightDetails.value.firstChoiceAirport,departurePoint2:a.flightDetails.value.secondChoiceAirport,flexible:a.introData.value.flexible},passenger:{title:a.passengerDetails.value.title,firstName:a.passengerDetails.value.firstName,surname:a.passengerDetails.value.surname,postcode:a.passengerDetails.value.postcode,address1:a.passengerDetails.value.address1,townCity:a.passengerDetails.value.townCity,email:a.passengerDetails.value.email,telephone:a.passengerDetails.value.telephone,quoteByEmail:a.contactDetails.value.quoteByEmail,timeToCall:a.contactDetails.value.timeToCall},longhaul:{quoteType:"NORTH_AMERICA",destinations:e,excursions:a.americaDetails.value.excursions,flightsRequired:a.flightDetails.value.requireFlights,cheapestAirfare:a.flightDetails.value.cheapestFlights,preferredAirline:a.flightDetails.value.preferredAirline,class:a.flightDetails.value.class,budget:a.americaDetails.value.budget},rooms:{adults:parseInt(a.introData.value.passengers.adults),children:parseInt(a.introData.value.passengers.children),infants:parseInt(a.introData.value.passengers.infants),teens:parseInt(a.introData.value.passengers.teens),olderTeens:parseInt(a.introData.value.passengers.olderTeens)},marketing:{bookedBefore:a.passengerDetails.value.bookedBefore,source:a.passengerDetails.value.source,website:"PH"},received:Math.floor(Date.now()/1e3),completed:!1,agent:{abta:a.agentDetails.value.abta,name:a.agentDetails.value.name,contact:a.agentDetails.value.contact}},D=j(),o=D?.public||{},n=o.graphqlEndpoint||o.payloadBaseUrl||D.payloadBaseUrl||ee.PAYLOAD_BASE_URL||"";typeof n=="string"&&n.replace(/\/$/,"");const i=ee.GRAPHQL_ENDPOINT||"https://premier-passport-api-production.up.railway.app";try{const r=await fetch(i,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json","x-api-key":"nKe4xGFgHOA3EMPzq0D1JRBL6Yk1CHvz"},body:JSON.stringify({query:s,variables:d})}),g=await r.json();if(!r.ok){const y=g?.errors?.[0]?.message||g?.message||`GraphQL request failed with status ${r.status}`;throw new Error(y)}const u=g?.data?.sendQuote;if(a.contactDetails.value.marketingOptIn)try{await R({firstName:a.passengerDetails.value.firstName,surname:a.passengerDetails.value.surname,email:a.passengerDetails.value.email,abta:a.agentDetails.value.abta||null})}catch(y){console.warn("Mailchimp signup failed (non-blocking)",y)}return u}catch(r){throw console.error("Failed to submit North America quote",r),r}}var te={};async function le(a){const e=` 75 mutation sendQuote( 76 $id: String 77 $travelType: String 78 $quoteType: String 79 $details: String 80 $offerDetails: offerDetailsInput 81 $departure: departureInput 82 $passenger: passengerInput 83 $rooms: roomsInput 84 $longhaul: LongHaulQuoteInput 85 $marketing: marketingDetailsInput 86 $received: Int 87 $completed: Boolean 88 $agent: AgentDetailsInput 89 ) { 90 sendQuote( 91 id: $id 92 travelType: $travelType 93 quoteType: $quoteType 94 details: $details 95 offerDetails: $offerDetails 96 departure: $departure 97 passenger: $passenger 98 rooms: $rooms 99 longhaul: $longhaul 100 marketing: $marketing 101 received: $received 102 completed: $completed 103 agent: $agent 104 ) { 105 code 106 message 107 success 108 } 109 } 110 `,t={id:a.passengerDetails.value.surname.toUpperCase()+Q().unix(),travelType:"LONG_HAUL",quoteType:"GENERAL",details:a.tmDetails.value.details,departure:{departureDate:M(a.introData.value.departure),departurePoint:a.flightDetails.value.firstChoiceAirport,departurePoint2:a.flightDetails.value.secondChoiceAirport,flexible:a.introData.value.flexible},passenger:{title:a.passengerDetails.value.title,firstName:a.passengerDetails.value.firstName,surname:a.passengerDetails.value.surname,postcode:a.passengerDetails.value.postcode,address1:a.passengerDetails.value.address1,townCity:a.passengerDetails.value.townCity,email:a.passengerDetails.value.email,telephone:a.passengerDetails.value.telephone,quoteByEmail:a.contactDetails.value.quoteByEmail,timeToCall:a.contactDetails.value.timeToCall},longhaul:{quoteType:"TAILOR-MADE",excursions:a.tmDetails.value.excursions,flightsRequired:a.flightDetails.value.requireFlights,cheapestAirfare:a.flightDetails.value.cheapestFlights,preferredAirline:a.flightDetails.value.preferredAirline,class:a.flightDetails.value.class,budget:a.tmDetails.value.budget},rooms:{adults:parseInt(a.introData.value.passengers.adults),children:parseInt(a.introData.value.passengers.children),infants:parseInt(a.introData.value.passengers.infants),teens:parseInt(a.introData.value.passengers.teens),olderTeens:parseInt(a.introData.value.passengers.olderTeens)},marketing:{bookedBefore:a.passengerDetails.value.bookedBefore,source:a.passengerDetails.value.source,website:"PH"},received:Math.floor(Date.now()/1e3),completed:!1,agent:{abta:a.agentDetails.value.abta,name:a.agentDetails.value.name,contact:a.agentDetails.value.contact}},s=j(),d=s?.public||{},D=d.graphqlEndpoint||d.payloadBaseUrl||s.payloadBaseUrl||te.PAYLOAD_BASE_URL||"";
110typeof D=="string"&&D.replace(/\/$/,"");const o=te.GRAPHQL_ENDPOINT||"https://premier-passport-api-production.up.railway.app";try{const n=await fetch(o,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json","x-api-key":"nKe4xGFgHOA3EMPzq0D1JRBL6Yk1CHvz"},body:JSON.stringify({query:e,variables:t})}),i=await n.json();if(!n.ok){const g=i?.errors?.[0]?.message||i?.message||`GraphQL request failed with status ${n.status}`;throw new Error(g)}const r=i?.data?.sendQuote;if(a.contactDetails.value.marketingOptIn)try{await R({firstName:a.passengerDetails.value.firstName,surname:a.passengerDetails.value.surname,email:a.passengerDetails.value.email,abta:a.agentDetails.value.abta||null})}catch(g){console.warn("Mailchimp signup failed (non-blocking)",g)}return r}catch(n){throw console.error("Failed to submit tailor-made quote",n),n}}var se={};async function ie(a){let e=null,t=null,s=null;a.flightDetails.value.requireFerry&&(e="Ferry - "+a.flightDetails.value.ferryPort),a.flightDetails.value.requireFlights&&(e="Accommodation & Flight",t=a.flightDetails.value.firstChoiceAirport,s=a.flightDetails.value.secondChoiceAirport);const d=` 111 mutation sendQuote( 112 $id: String 113 $travelType: String 114 $quoteType: String 115 $details: String 116 $offerDetails: offerDetailsInput 117 $departure: departureInput 118 $passenger: passengerInput 119 $rooms: roomsInput 120 $shorthaul: ShortHaulQuoteInput 121 $marketing: marketingDetailsInput 122 $received: Int 123 $completed: Boolean 124 $agent: AgentDetailsInput 125 ) { 126 sendQuote( 127 id: $id 128 travelType: $travelType 129 quoteType: $quoteType 130 details: $details 131 offerDetails: $offerDetails 132 departure: $departure 133 passenger: $passenger 134 rooms: $rooms 135 shorthaul: $shorthaul 136 marketing: $marketing 137 received: $received 138 completed: $completed 139 agent: $agent 140 ) { 141 code 142 message 143 success 144 } 145 } 146 `,D={id:a.passengerDetails.value.surname.toUpperCase()+Q().unix(),travelType:"SHORT_HAUL",quoteType:"GENERAL",details:a.shortHaulDetails.value.additionalDetails,departure:{departureDate:M(a.introData.value.departure),departurePoint:t,departurePoint2:s,flexible:a.introData.value.flexible},passenger:{title:a.passengerDetails.value.title,firstName:a.passengerDetails.value.firstName,surname:a.passengerDetails.value.surname,postcode:a.passengerDetails.value.postcode,address1:a.passengerDetails.value.address1,townCity:a.passengerDetails.value.townCity,email:a.passengerDetails.value.email,telephone:a.passengerDetails.value.telephone,quoteByEmail:a.contactDetails.value.quoteByEmail,timeToCall:a.contactDetails.value.timeToCall},shorthaul:{destinations:{hotel:a.shortHaulDetails.value.hotel,country:a.shortHaulDetails.value.country,board:a.shortHaulDetails.value.board},travelMethod:e,takeCar:a.flightDetails.value.takeYourOwnCar,carHire:a.shortHaulDetails.value.carHire,budget:a.shortHaulDetails.value.budget},rooms:{adults:parseInt(a.introData.value.passengers.adults),children:parseInt(a.introData.value.passengers.children),infants:parseInt(a.introData.value.passengers.infants),teens:parseInt(a.introData.value.passengers.teens),olderTeens:parseInt(a.introData.value.passengers.olderTeens)},marketing:{bookedBefore:a.passengerDetails.value.bookedBefore,source:a.passengerDetails.value.source,website:"PH"},agent:{abta:a.agentDetails.value.abta,name:a.agentDetails.value.name,contact:a.agentDetails.value.contact},received:Math.floor(Date.now()/1e3),completed:!1},o=j(),n=o?.public||{},i=n.graphqlEndpoint||n.payloadBaseUrl||o.payloadBaseUrl||se.PAYLOAD_BASE_URL||"";typeof i=="string"&&i.replace(/\/$/,"");const r=se.GRAPHQL_ENDPOINT||"https://premier-passport-api-production.up.railway.app";try{const g=await fetch(r,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json","x-api-key":"nKe4xGFgHOA3EMPzq0D1JRBL6Yk1CHvz"},body:JSON.stringify({query:d,variables:D})}),u=await g.json();if(!g.ok){const h=u?.errors?.[0]?.message||u?.message||`GraphQL request failed with status ${g.status}`;throw new Error(h)}const y=u?.data?.sendQuote;if(a.contactDetails.value.marketingOptIn)try{await R({firstName:a.passengerDetails.value.firstName,surname:a.passengerDetails.value.surname,email:a.passengerDetails.value.email,abta:a.agentDetails.value.abta||null})}catch(h){console.warn("Mailchimp signup failed (non-blocking)",h)}return y}catch(g){throw console.error("Failed to submit short haul quote",g),g}}const N="ph-plan-a-trip-form",Ka={__name:"index",setup(a,{expose:e}){e();const t=I(()=>B(()=>import("./C_FyPnh7.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]),import.meta.url)),s=I(()=>B(()=>import("./bmA7BkAI.js"),__vite__mapDeps([18,19,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]),import.meta.url)),d=I(()=>B(()=>import("./BzFwKO0c.js"),__vite__mapDeps([20,19,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]),import.meta.url)),D=I(()=>B(()=>import("./CjZlUkB4.js"),__vite__mapDeps([21,19,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]),import.meta.url)),o=[{label:"Dates"},{label:"Travel"},{label:"Holiday"},{label:"Passenger"},{label:"Contact"},{label:"Review"}],n={page:1,introData:{departure:null,duration:7,flexible:null,quoteType:null,passengers:{adults:2,infants:0,children:0,teens:0,olderTeens:0}},flightDetails:{requireFlights:!0,cheapestFlights:!1,preferredAirline:null,firstChoiceAirport:"London - Any",secondChoiceAirport:"London - Any",class:null,requireFerry:null,ferryPort:null,takeYourOwnCar:!1},tmDetails:{details:null,budget:null},americaDetails:{destinations:[{country:"",region:"",hotel:"",resort:"",duration:5}],ifOtherHotel:null,excursions:null,additionalDetails:null,budget:null}
146,farawayDetails:{destinations:[{country:"",hotel:"",resort:"",duration:5}],ifOtherHotel:null,excursions:null,additionalDetails:null,budget:null},shortHaulDetails:{hotel:null,board:null,country:null,additionalDetails:null,budget:null,carHire:"No car hire required"},passengerDetails:{title:null,firstName:null,surname:null},contactDetails:{timeToCall:null,marketingOptIn:!1,quoteByEmail:!1},agentDetails:{abta:null,name:null,contact:null}},i=(()=>{try{const T=window.localStorage.getItem(N);return T?JSON.parse(T):null}catch{return null}})()||null,r=b(!!(i&&i.page>1)),g=b(i?.page??n.page),u=b({...n.introData,...i?.introData||{}}),y=b({...n.flightDetails,...i?.flightDetails||{}}),h=b({...n.tmDetails,...i?.tmDetails||{}}),c=b({...n.americaDetails,...i?.americaDetails||{}}),x=b({...n.farawayDetails,...i?.farawayDetails||{}}),V=b({...n.shortHaulDetails,...i?.shortHaulDetails||{}}),_=b({...n.passengerDetails,...i?.passengerDetails||{}}),k=b({...n.contactDetails,...i?.contactDetails||{}}),S=b({...n.agentDetails,...i?.agentDetails||{}}),ne=()=>{g.value=n.page,u.value={...n.introData,passengers:{...n.introData.passengers}},y.value={...n.flightDetails},h.value={...n.tmDetails},c.value={...n.americaDetails,destinations:n.americaDetails.destinations.map(T=>({...T}))},x.value={...n.farawayDetails,destinations:n.farawayDetails.destinations.map(T=>({...T}))},V.value={...n.shortHaulDetails},_.value={...n.passengerDetails},k.value={...n.contactDetails},S.value={...n.agentDetails},r.value=!1;try{window.localStorage.removeItem(N)}catch{}};X([g,u,y,h,c,x,V,_,k,S],()=>{try{window.localStorage.setItem(N,JSON.stringify({page:g.value,introData:u.value,flightDetails:y.value,tmDetails:h.value,americaDetails:c.value,farawayDetails:x.value,shortHaulDetails:V.value,passengerDetails:_.value,contactDetails:k.value,agentDetails:S.value}))}catch{}},{deep:!0});const re=async()=>{const T={introData:u,flightDetails:y,tmDetails:h,americaDetails:c,farawayDetails:x,shortHaulDetails:V,passengerDetails:_,contactDetails:k,agentDetails:S};u.value.quoteType=="Faraway"?q(T):u.value.quoteType=="North America"?ae(T):u.value.quoteType=="Tailor-made quote"?le(T):u.value.quoteType=="UK & Channel Islands"&&ie(T);try{window.localStorage.removeItem(N)}catch{}await de("/plan-a-trip/thanks")};De({title:"Request a quote",description:"Request a tailor-made holiday quote with Premier Holidays. Booking holidays since 1936, ATOL Protected.",url:"https://www.premierholidays.co.uk/plan-a-trip/"});const K={TailorMade:t,Faraway:s,NorthAmerica:d,ShortHaul:D,STORAGE_KEY:N,steps:o,defaults:n,restored:i,showResumeBanner:r,page:g,introData:u,flightDetails:y,tmDetails:h,americaDetails:c,farawayDetails:x,shortHaulDetails:V,passengerDetails:_,contactDetails:k,agentDetails:S,startOver:ne,submit:re,ref:b,watch:X,defineAsyncComponent:I,get mutateFarawayQuote(){return q},get mutateNorthAmericaQuote(){return ae},get mutateTailorMadeQuote(){return le},get mutateShortHaulQuote(){return ie}};return Object.defineProperty(K,"__isScriptSetup",{enumerable:!1,value:!0}),K}},Wa={key:0,class:"flex items-center justify-between gap-4 bg-ph-light-blue border border-ph-blue/20 rounded-lg p-4 mb-4"},za={class:"flex gap-2"},Ja={class:"bg-gray-50 p-6 xl:p-8 rounded-xl"};function $a(a,e,t,s,d,D){const o=me,n=pe,i=xe,r=Ue,g=Ye,u=qe,y=Ga,h=ue;return f(),A(h,{name:"quote"},{default:F(()=>[m(o,{level:1,title:"Plan your trip",text:"At Premier Holidays, we pride ourselves on crafting tailor-made travel experiences with a keen eye for detail. We invite you to share your journey's specifics using the form below. Your input will be meticulously reviewed by our knowledgeable travel experts, who specialise in creating personalised itineraries that reflect your unique desires. O
146nce received, our team will assemble an itinerary tailored just for you and reach out via your preferred communication method."}),s.showResumeBanner?(f(),w("div",Wa,[e[13]||(e[13]=l("p",{class:"text-sm text-ph-blue"}," We've restored your unfinished quote so you can pick up where you left off. ",-1)),l("div",za,[l("button",{type:"button",class:"text-xs px-3 py-1 rounded-full bg-ph-blue text-white cursor-pointer",onClick:e[0]||(e[0]=c=>s.showResumeBanner=!1)}," Continue "),l("button",{type:"button",class:"text-xs px-3 py-1 rounded-full border border-ph-blue text-ph-blue cursor-pointer",onClick:s.startOver}," Start over ")])])):v("",!0),m(n,{page:s.page,steps:s.steps,onNavigate:e[1]||(e[1]=c=>s.page=c)},null,8,["page"]),l("div",Ja,[s.page==1?(f(),A(i,{key:0,introData:s.introData,onPageData:e[2]||(e[2]=c=>s.page=c)},null,8,["introData"])):v("",!0),s.page==2?(f(),A(r,{key:1,flightDetails:s.flightDetails,type:s.introData.quoteType,onPageData:e[3]||(e[3]=c=>s.page=c)},null,8,["flightDetails","type"])):v("",!0),s.introData.quoteType=="Tailor-made quote"&&s.page==3?(f(),A(s.TailorMade,{key:2,tmDetails:s.tmDetails,onPageData:e[4]||(e[4]=c=>s.page=c)},null,8,["tmDetails"])):v("",!0),s.introData.quoteType=="Faraway"&&s.page==3?(f(),A(s.Faraway,{key:3,farawayDetails:s.farawayDetails,onPageData:e[5]||(e[5]=c=>s.page=c)},null,8,["farawayDetails"])):v("",!0),s.introData.quoteType=="North America"&&s.page==3?(f(),A(s.NorthAmerica,{key:4,americaDetails:s.americaDetails,onPageData:e[6]||(e[6]=c=>s.page=c)},null,8,["americaDetails"])):v("",!0),s.introData.quoteType=="UK & Channel Islands"&&s.page==3?(f(),A(s.ShortHaul,{key:5,shortHaulDetails:s.shortHaulDetails,onPageData:e[7]||(e[7]=c=>s.page=c)},null,8,["shortHaulDetails"])):v("",!0),s.page==4?(f(),A(g,{key:6,passengerDetails:s.passengerDetails,onPageData:e[8]||(e[8]=c=>s.page=c)},null,8,["passengerDetails"])):v("",!0),s.page==5?(f(),A(u,{key:7,contactDetails:s.contactDetails,agentDetails:s.agentDetails,onPageData:e[10]||(e[10]=c=>s.page=c)},{default:F(()=>[l("button",{class:"next",onClick:e[9]||(e[9]=c=>s.page=6)},"Review")]),_:1},8,["contactDetails","agentDetails"])):v("",!0),s.page==6?(f(),A(y,{key:8,data:{introData:s.introData,flightDetails:s.flightDetails,tmDetails:s.tmDetails,americaDetails:s.americaDetails,farawayDetails:s.farawayDetails,shortHaulDetails:s.shortHaulDetails,passengerDetails:s.passengerDetails,contactDetails:s.contactDetails,agentDetails:s.agentDetails},onPageData:e[12]||(e[12]=c=>s.page=c)},{default:F(()=>[l("button",{class:"next",onClick:e[11]||(e[11]=c=>s.submit())},"Send my quote request")]),_:1},8,["data"])):v("",!0)])]),_:1})}const Xa=P(Ka,[["render",$a],["__file","index.vue"]]),ot=Object.freeze(Object.defineProperty({__proto__:null,default:Xa},Symbol.toStringTag,{value:"Module"}));export{Te as _,ot as i};
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.