PageSourceSearch

https://icelanddriver.com/_next/static/chunks/pages/product/[product]-f1684deb85c2aae1.js

js icelanddriver.com collected 2026-10-08 04:14:22 UTC 79,670 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[516],{6158:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/product/[product]",function(){return n(3519)}])},5545:function(e,t,n){"use strict";n.r(t),n.d(t,{prepareTransferPayload:function(){return o}});var i=n(1091),a=n(8946),r=n.n(a);let o=async(e,t,n,i)=>{let{transfer_type:a}=e,{start:r,end:o,time:l}=function(e,t){let n=new Date(t),[i,a]=[];return"dropoff"===e&&([i,a]=d(n,"45m")),"pickup"===e&&([i,a]=d(n,"30m",!0)),{start:i,end:i,time:a}}(a,i),u=await c(e,r,o),p=await s(e,r,l,u);return function(e,t,n,i,a){let{transfer_product_id:r,transfer_type:o}=e,{rate_id:c,id:s}=i,l={activityId:Number(r),date:n,rateId:c,startTimeId:s.split("_")[0],pricingCategoryBookings:a};return"dropoff"===o&&(l.dropoff=!0,l.dropoffPlaceId=t.id),"pickup"===o&&(l.pickup=!0,l.pickupPlaceId=t.id),l}(e,t,r,p,n&&Object.keys(n).length?Object.values(n).map(e=>{let{id:t,count:n}=e;return Array(n).fill(t)}).flat().map((e,t)=>({pricingCategoryId:16118===e?16087:103710===e?16089:16470===e?109776:void 0})):[])};async function c(e,t,n){let{booking_api:a,transfer_product_id:r}=e,o=new URL("next-func/".concat(r,"/availability"),a).href;return i.ZP.get(o,{searchParams:{start:t,end:n}}).then(e=>e.json())}async function s(e,t,n,i){let{availability:a}=i;return(a=a[t]).find(e=>{let{startTime:t}=e;return t===n})||l(e,t,n,i)}async function l(e,t,n,i){let{transfer_type:a}=e,{start:r,time:o}=function(e,t,n){let i=new Date("".concat(t,"T").concat(n));return"dropoff"===e&&([t,n]=d(i,"15m")),{start:t,end:t,time:n}}(a,t,n);r!==t&&(i=await c(e,r,end));let{availability:s}=i;return(s=s[r]).find(e=>{let{startTime:t}=e;return t===o})}function d(e,t,n){let i=n?-r()(t):r()(t),[a,o]=new Date(e.getTime()+i).toJSON().split("T");return[a,o=o.split(":").slice(0,2).join(":")]}},5026:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});let i=n(5545);e.exports=async e=>{let{config:{booking_api:t,activity_id:n},data:{transfer_type:s,transfer_product_id:l},selected_departure:d,selected_participants:u,pickup:p,selected_pickup:m,dropoff:f,selected_dropoff:g,selected_extras:h,selected_rate:x,transfer:y,selected_transfer:v}=e,_={activityId:Number(n),date:String(r(d)),rateId:Number(x.id)},b=a(d);if(b&&(_.startTimeId=b),d.label&&(_.flexibleDayOption=d.label),!y||!v){if("PRESELECTED"===x.pickup.selection_type);else if(p&&x.pickup&&"UNAVAILABLE"!==x.pickup.selection_type){_.pickup=p;let e=o(p,m);"custompickup"===e?_.pickupDescription=e:_.pickupPlaceId=e}if(f&&x.dropoff&&"UNAVAILABLE"!==x.dropoff.selection_type){_.dropoff=f;let e=c(f,g);"customdropoff"===e?_.dropoffDescription=e:_.dropoffPlaceId=e}}return(u&&Object.keys(u).length&&(_.pricingCategoryBookings=Object.values(u).map(e=>{let{id:t,count:n}=e;return Array(n).fill(t)}).flat().map((e,t)=>({pricingCategoryId:e}))),h&&Object.keys(h).length&&(_.extras=Object.entries(h).map(e=>{let[t,n]=e;return{extraId:t,unitCount:n}}).filter(e=>{let{unitCount:t}=e;return t})),y&&v)?[_,await (0,i.prepareTransferPayload)({booking_api:t,transfer_product_id:l,transfer_type:s},v,u,d.localDateTimeStart)]:[_]};let a=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e.id&&"booking_type_pass"!==e.id?e.id.split("_")[0]:void 0},r=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e.localDateTimeStart?new Date(e.localDateTimeStart).toJSON().split("T")[0]:void 0},o=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e&&t.id?t.id:void 0},c=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e&&t.id?t.id:void 0}},5799:function(e,t,n){"use strict";n.d(t,{h:function(){return a}});var i=n(2676);let a=e=>{let{graphs:t}=e,n=t.map(e=>e["@type"]).join("_").toLowerCase();return(0,i.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify({"@context":"http://schema.org","@graph":t})}},n)}},3519:function(e,t,n){"use strict";n.r(t),n.d(t,{__N_SSG:function(){return tg},default:function(){return th}});var i=n(2676),a=n(5271),r=n(4238),o=n.n(r),c=n(5388),s=n(5304),l=n(1696),d=n(8372);let u=n(2520),p=(e,t)=>e.split(".").reduce((e,t)=>
1e?e[t]:null,t||self);var m=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en";return t+=".getlocal",e=e.replace("getlocal.",""),u[t]&&p(e,u[t])||e},f=n(4708),g=n(5682);let h=e=>new Date((e="string"==typeof e?new Date(e):e).getTime()+6e4*e.getTimezoneOffset()),x=e=>new Date((e="string"==typeof e?new Date(e):e).getTime()-6e4*e.getTimezoneOffset()),y=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=e&&e.minimum_participants||0,a=t&&t.minimum_participants||0;return[n,Number(i),Number(a)].sort().slice(-1)[0]};var v=e=>{let{current:t,send:n}=e,{config:{current_language:a},date:r,dates:o,availability:c}=t.context;if(!r)return null;r=h(r);let s=e=>{let t=c[e];return!!t&&!!t.length&&0===t.reduce((e,t)=>{let{vacancies:n}=t;return e+n},0)};return(0,i.jsxs)("section",{className:"booking-widget-calendar",children:[(0,i.jsx)("h3",{children:m("getlocal.tour.travel-date",a)}),(0,i.jsx)(g.ZP,{onChange:(e,t)=>{n({type:"SELECT",date:x(e)})},value:r,tileDisabled:e=>{let{date:t,view:n}=e;return!!("month"===n&&(t=x(t).toJSON().split("T")[0],!o.find(e=>e===t)||s(t)))},tileClassName:e=>{let{date:t,view:n}=e;return"month"===n&&s(t=x(t).toJSON().split("T")[0])?"soldout":""},showNeighboringMonth:!0,onActiveStartDateChange:e=>{let{activeStartDate:t,view:i}=e;n({type:"NAVIGATE",start:t.toJSON().split("T")[0],end:new Date(t.getFullYear(),t.getMonth()+1,1).toJSON().split("T")[0]})},className:"boxed"})]})},_=n(7824),b=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"en";if(!e)return"";let i=new Date(e),a={weekday:"short",month:"long",day:"numeric",year:"numeric",timeZone:"UTC"},r={...a};return t&&(r={...a,hour:"numeric",minute:"numeric"}),new Intl.DateTimeFormat(n,r).format(i)};let k=e=>{let{departures:t,send:n}=e,a=t.map(e=>{let{id:t,startTime:n}=e;return{id:t,value:t,label:n}}),r=t.find(e=>{let{selected:t}=e;return t});return r={id:r.id,value:r.id,label:r.startTime},(0,i.jsx)("div",{className:"departure boxed-item",children:(0,i.jsx)(_.ZP,{className:"booking-widget-departures-selector",classNamePrefix:"departures-selector",value:r,onChange:e=>{n({type:"SELECT",...e})},options:a})})},j=e=>{let{departures:t,send:n}=e;return t.map(e=>{let{id:t,rate_id:a,...r}=e;return(0,i.jsx)(T,{data_id:t,send:n,...r},t)})},T=e=>{let{startTime:t,selected:n,vacancies:r,data_id:o,send:c}=e,{site:s}=(0,a.useContext)(d.Z),{id:l}=s;if(!r)return(0,i.jsx)("div",{className:"departure boxed-item input-container",children:(0,i.jsx)("span",{children:(0,i.jsx)("s",{children:t})})});let u=t;return"I17y2xlEk0Uki0rZllzC"===l&&(u="".concat(t," (").concat(r," ").concat(r>1?"seats":"seat",")")),(0,i.jsxs)("div",{className:"departure boxed-item input-container",children:[(0,i.jsx)("span",{children:u}),(0,i.jsxs)("label",{className:"tick",children:[(0,i.jsx)("input",{type:"radio",name:"departures-departure","data-id":o,defaultChecked:n,onChange:e=>{c({type:"SELECT",id:e.target.dataset.id})},className:"tick-radio"}),(0,i.jsx)("span",{className:"tick-text"})]})]})},w=e=>{let{departures:t,active_departures:n,send:a}=e;n&&n.length>1&&console.log("WARN: active departures are more then one");let r=n[0]&&n[0].id;return r?t.map(e=>(0,i.jsx)(E,{data_id:r,send:a,label:e},r+e.toLowerCase().replace(" ","_"))):null},E=e=>{let{label:t,data_id:n,send:a}=e;return(0,i.jsxs)("div",{className:"departure boxed-item input-container",children:[(0,i.jsx)("span",{children:t}),(0,i.jsxs)("label",{className:"tick",children:[(0,i.jsx)("input",{type:"radio",name:"departures-departure","data-id":n,onChange:e=>{a({type:"SELECT",id:e.target.dataset.id,label:t})},className:"tick-radio"}),(0,i.jsx)("span",{className:"tick-text"})]})]})};var N=e=>{let{machine:t,current_language:n}=e,{site:r}=(0,a.useContext)(d.Z),{id:o}=r,c=6;"I17y2xlEk0Uki0rZllzC"===o&&(c=12);let[s]=t,{departures_service:l}=s.children,{booking_type:u,day_departure_options:p}=s.context;if(!l)return null;let[g,h]=(0,f.L)(l),{date_id:x,departures:y,selected_rate:v={}}=g.context,_=y.map(e=>String(v.id)===String(e.rate_id)?e:null).filter(Boolean);return(0,i.jsxs)("section",{className:"booking-widget-departures","data-machine":l.machine.id,"data-state":g.toStrings().join(" "),children:[(0,i.jsxs)("h3",{children:[m("getlocal.language-javascript.booking-widget.departures",n)," ",x&&"- "+b(x)]}),"DATE"===u?p&&p.length?(0,i.jsx)("div",{className:"boxed",children:(0,i.jsx)(w,{active_departures:_,departures:p,send:h})}):null:(0,i.jsx)("div",{className:"boxed",children:_.length>c?(0,i.jsx)(k,{departures:_,send:h}):(0,i.jsx)(j,{departures:_,send:h})})]})};let C=e=>{let{title:t,selected:n,data_id:a,selectRate:r,available:o,inactive:c}=e,s=!o;return c&&(s=!0),(0,i.jsxs)("div",{className:"rate boxed-item input-container",children:[(0,i.jsx)("span",{className:[s?"disabled_text":"",c?"strikethrough":""].join(" "),children:t}),(0,i.jsxs)("label",{className:"tick",disabled:s,children:[(0,i.jsx)("input",{type:"radio",name:"rates-rate","data-id":a,defaultChecked:n,onChange:r,className:"tick-radio",disabled:s}),(0,i.jsx)("span",{className:"tick-text"})]})]})};var P=e=>{let{machine:t}=e,[n]=t,{rates_service:a}=n.children,{config:{current_language:r}}=n.context;if(!a)return null;let[o,c]=(0,f.L)(a),{rates:s}=o.context;if(s.length<=1)return null;let l=e=>{c({type:"SELECT",id:e.target.dataset.id})};return(0,i.jsxs)("section",{className:"booking-widget-rates","data-machine":a.machine.id,"data-state":o.toStrings().join(" "),children:[(0,i.jsx)("h3",{children:m("getlocal.language-javascript.booking-widget.rates",r)}),(0,i.jsx)("div",{className:"boxed",children:s.map(e=>{let{id:t,...n}=e;return(0,i.jsx)(C,{data_id:t,selectRate:l,...n},t)})})]})},S=e=>{let{machine:t}=e,[n]=t,{availabilty_service:a}=n.children,{config:{current_language:r}}=n.context;if(!a)return null;let o=(0,f.L)(a),[c,s]=o,{booking_type:l}=c.context;return(0,i.jsxs)("section",{className:"booking-widget-availability","data-machine":a.machine.id,"data-state":c.toStrings().join(" "),children:["DATE_AND_TIME"===l||"DATE"===l?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h2",{children:m("getlocal.tour.check-availability",r)}),(0,i.jsx)(v,{current:c,send:s}),(0,i.jsx)(P,{machine:o}),(0,i.jsx)(N,{machine:o,current_language:r})]}):null,"PASS"===l?(0,i.jsx)(P,{machine:o}):null]})},A=n(1091),D=n(1494),R=n(6623),L=n(2391),I=n(8414),M=n(5026),O=n.n(M),F=n(6193);let{raise:U}=F,B=()=>(0,D.J)({id:"departures",initial:"idle",context:{date_id:null,departures:[],selected_rate:{}},states:{idle:{},selected:{entry:"announceDeparture"}},on:{UPDATE:{target:"selected",actions:["updateDepartures","selectDeparture"]},SELECT:{target:"selected",actions:"selectDeparture"},SELECTED_RATE:{actions:["updateRates",U("UPDATE")]}}},{actions:{selectDeparture:(0,R.f0)((e,t)=>{let{departures:n,selected_rate:i}=e,{id:a,label:r}=t;if(a)n.forEach((e,t)=>{String(e.id)===String(a)?e.selected=!0:e.selected=!1,r&&(e.label=r)});else if(i&&i.id){let e=!1;
1n.forEach((t,n)=>{(String(t.rate_id)!==String(i.id)||e)&&"booking_type_pass"!==t.id?t.selected=!1:(e=!0,t.selected=!0)})}return{departures:[...n]}}),updateDepartures:(0,R.f0)((e,t)=>({...t,type:void 0})),announceDeparture:(0,R.lj)((e,t)=>{let{departures:n}=e;return{type:"SET_DEPARTURE",departure:n.find(e=>{let{selected:t}=e;return t})}}),updateRates:(0,R.f0)((e,t)=>({...t,type:void 0}))}}),{raise:G}=F,z=()=>(0,D.J)({id:"rates",initial:"initializing",context:{price_ranges:[],rates:[],selected_rate_id:""},states:{initializing:{entry:["ping"]},selected:{entry:"announceRate"}},on:{SELECT:{target:"selected",actions:"selectRate"},UPDATE_AVAILABILITY:{actions:["updateAvailabilty",G("SELECT")]}}},{actions:{selectRate:(0,R.f0)((e,t)=>{let{id:n}=t,{rates:i}=e;if(!n){let e=i.find(e=>e.available&&e.selected);if(e||(e=i.find(e=>e.available)),!e)return{};n=e.id}return i.forEach((e,t)=>{String(e.id)===String(n)?e.selected=!0:e.selected=!1}),{rates:[...i],selected_rate_id:n}}),updateAvailabilty:(0,R.f0)((e,t)=>{let{price_ranges:n,selected_rate_id:i}=e,{date_id:a,departures:r=[]}=t,o=new Date(a),{rates:c}=n.find(e=>{let{rates:t,from:n,to:i}=e;if(n=new Date(n),!i&&n&&n<=o||(i=new Date(i))>=o&&n<=o)return t})||{};if(!c||c.length<1)return console.log("WARN: Missing selected_rates rates"),{};let s=r.map(e=>String(e.rate_id));return c.forEach(e=>{s.indexOf(String(e.id))>-1?e.available=!0:e.available=!1,e.inactive&&(e.available=!1),String(e.id)===String(i)&&(e.selected=!0)}),{rates:[...c]}}),ping:(0,R.lj)(()=>({type:"PING"})),announceRate:(0,R.lj)((e,t)=>{let{rates:n}=e;return{type:"SET_RATE",rate:n.find(e=>{let{selected:t}=e;return t})}})}}),W=(e,t)=>(0,D.J)({id:"availability",context:{config:e,booking_type:t.booking_type,day_departure_options:t.day_departure_options,availability:{},availability_grade:{},selected_departure:{},selected_rate:{},date:null,dates:[],start:"",end:""},initial:"initializing",states:{initializing:{invoke:{id:"fetch-availability",src:"invokeFetchAvailability",onDone:{target:"ready",actions:["fetchAvailabilityDone","selectFirstDate"]},onError:"failed_loading"}},failed_loading:{},ready:{invoke:[{id:"rates_service",src:"invokeRatesMachine",data:{rates:t.rates,price_ranges:t.price_ranges}},{id:"departures_service",src:"invokeDeparturesMachine",data:{date_id:e=>{let{date_id:t}=e;return t},departures:[],selected_rate:{}}}],entry:["updateDepartures"],on:{SELECT:{actions:["setDateInfo","updateDepartures","announceDepartures"]}}}},on:{PING:{actions:["announceDepartures"]},SET_DEPARTURE:{actions:["setDeparture","notifyDeparture","notifyAvilabilityGrade"]},SET_RATE:{actions:["setRate","updateRate","notifySelectedRate","notifyAvilabilityGrade"]},NAVIGATE:{actions:"setStartEnd",target:"initializing"}}},{actions:{fetchAvailabilityDone:(0,R.f0)({availability:(e,t)=>({...e.availability,...t.data.availability}),dates:(e,t)=>[...e.dates,...Object.keys(t.data.availability)],availability_grade:(e,t)=>({...e.availability_grade,...t.data.availability_grade})}),selectFirstDate:(0,R.f0)(e=>{let{date:t,dates:n}=e;return!t&&n[0]?{date:new Date(n[0]),date_id:n[0]}:{date:new Date}}),setDateInfo:(0,R.f0)({date:(e,t)=>t.date,date_id:(e,t)=>t.date.toJSON().split("T")[0]}),updateDepartures:(0,R.f0)({departures:e=>{let{date_id:t,availability:n}=e;return n[t]?[...n[t]]:[]}}),announceDepartures:(e,t,n)=>{let{departures_service:i,rates_service:a}=n.state.children,{date_id:r,departures:o}=e;i.send("UPDATE",{date_id:r,departures:o}),a.send("UPDATE_AVAILABILITY",{date_id:r,departures:o})},setDeparture:(0,R.f0)({selected_departure:(e,t)=>{let{departure:n}=t;return n}}),notifyDeparture:(0,R.lj)(e=>{let{selected_departure:t}=e;return{type:"SELECTED_DEPARTURE",selected_departure:t}}),notifyAvilabilityGrade:(0,R.lj)(e=>{let{selected_departure:t={},selected_rate:n={},availability_grade:i={}}=e,a=i["".concat(t.id,"_").concat(n.id)];return a?{type:"AVAILABLE_GRADE",grade:a}:{type:"IGNORED"}}),setRate:(0,R.f0)({selected_rate:(e,t)=>{let{rate:n}=t;return n}}),updateRate:(e,t,n)=>{let{date_id:i,selected_rate:a,booking_type:r,departures:o}=e,{state:c}=n,{departures_service:s}=c.children,l="PASS"===r?[{id:"booking_type_pass",localDateTimeStart:new Date().toJSON().split("T")[0]}]:o;s.send("SELECTED_RATE",{selected_rate:a,departures:l})},notifySelectedRate:(0,R.lj)(e=>{let{selected_rate:t}=e;return{type:"SELECTED_RATE",selected_rate:t}}),setStartEnd:(0,R.f0)({start:(e,t)=>{let{start:n}=t;return n},end:(e,t)=>{let{end:n}=t;return n}})},services:{invokeRatesMachine:()=>z(),invokeDeparturesMachine:()=>B(),invokeFetchAvailability:e=>{let{config:{booking_api:t,vendor:n,activity_id:i,current_language:a},start:r,end:o}=e;return A.ZP.get(new URL("".concat(n,"/").concat(i,"/availability"),t).href,{searchParams:{start:r,end:o,lang:a}}).then(e=>e.json())}}}),q=(e,t)=>
1{let{custom_dropoff_allowed:n}=t;return(0,D.J)({id:"dropoff",context:{config:e,declined_dropoff_text:"",custom_dropoff_allowed:n,dropoffs:[],selected_dropoff:null},initial:"initializing",states:{initializing:{invoke:{id:"fetch-dropoff",src:"invokeFetchPickup",onDone:{target:"prepare",actions:["fetchPickupDone"]},onError:"failed_loading"}},failed_loading:{},prepare:{always:[{target:"ready",cond:"doWeHaveDropoff"},{target:"not_applicable"}]},ready:{initial:"dropoff_active",states:{dropoff_active:{entry:"announceDropoffTrue",initial:"undecided",on:{TOGGLE:"inactive"},states:{undecided:{on:{SELECT_PICKUP:"choosen"}},choosen:{on:{SELECT_PICKUP:"choosen"},entry:["setDropoff","announceDropoffTrue"]},error:{}}},inactive:{entry:"announceDropoffFalse",on:{TOGGLE:"dropoff_active"}}}},not_applicable:{}}},{actions:{fetchPickupDone:(0,R.f0)({dropoffs:(e,t)=>{let{custom_dropoff_allowed:n}=e,i=t.data.dropoff_places.map(J);return n&&i.unshift({id:"customdropoff",value:"custom - address",label:"I'll type the address (next step)"}),i}}),setDropoff:(0,R.f0)({selected_dropoff:(e,t)=>t.selected_dropoff}),announceDropoffTrue:(0,R.lj)(e=>{let{selected_dropoff:t}=e;return{type:"SET_DROPOFF",dropoff:!0,selected_dropoff:t}}),announceDropoffFalse:(0,R.lj)(e=>{let{selected_dropoff:t}=e;return{type:"SET_DROPOFF",dropoff:!1,selected_dropoff:t}})},guards:{doWeHaveDropoff:e=>{let{dropoffs:t}=e;return t.length>0}},services:{invokeFetchPickup:e=>{let{config:{booking_api:t,vendor:n,activity_id:i,current_language:a}}=e;return A.ZP.get(new URL("".concat(n,"/").concat(i,"/pickup"),t).href,{searchParams:{lang:a}}).then(e=>e.json())}}})},J=e=>({...e,value:H(e),label:e.title}),H=e=>[e.title.replace("Please wait at",""),e.full_address].join(" ");var Y=n(3798);let V={id:"extras_count",initial:"initializing",context:{count:0,max:50,min:0},states:{initializing:{always:[{target:"initializing",cond:"isCountBiggerThenMax",actions:"setCountToMax"},{target:"initializing",cond:"isCountSmallerThenMin",actions:"setCountToMin"},{target:"disabled",cond:"reachedMaxAndMin"},{target:"minimum",cond:"nextTimeCountSmallerThenMin"},{target:"maximum",cond:"reachedMax"},{target:"middle"}]},disabled:{entry:"notifyCount"},minimum:{entry:"notifyCount",exit:"notifyCount",on:{INC:[{target:"maximum",cond:"reachingMaximum",actions:["increment"]},{target:"middle",actions:["increment"]}]}},middle:{on:{INC:[{target:"maximum",cond:"reachingMaximum",actions:["increment"]},{actions:["increment","notifyCount"]}],DEC:[{target:"minimum",cond:"reachingMinimum",actions:["decrement"]},{actions:["decrement","notifyCount"]}]}},maximum:{entry:"notifyCount",exit:"notifyCount",on:{DEC:[{target:"minimum",cond:"reachingMinimum",actions:["decrement"]},{target:"middle",actions:["decrement"]}]}}}
1,on:{SET_MAX:{actions:"setMax",target:"initializing"}}},Z=(0,D.J)(V,{actions:{setMax:(0,R.f0)({max:(e,t)=>t.max}),setCountToMax:(0,R.f0)({count:e=>e.max}),setCountToMin:(0,R.f0)({count:e=>e.min}),counting:(0,R.f0)({count:(e,t)=>{let n=e.count;return t.increment?n+1:n-1}}),increment:(0,R.f0)({count:e=>e.count+1,latest_action_type:"increment"}),decrement:(0,R.f0)({count:e=>e.count-1,latest_action_type:"decrement"}),notifyCount:(0,R.lj)((e,t)=>({type:"TOTAL_COUNT",id:e.id,count:e.count}))},guards:{isCountBiggerThenMax:e=>e.count>e.max,isCountSmallerThenMin:e=>e.count<e.min,reachedMaxAndMin:e=>e.count===e.max&&e.count===e.min,nextTimeCountSmallerThenMin:e=>e.count!==e.max&&e.count<e.min+1,reachedMax:e=>e.count===e.max,reachingMaximum:e=>e.count===e.max-1,reachingMinimum:e=>e.count===e.min+1,isNotMax:e=>e.count<e.max,isNotMin:e=>e.count>e.min}}),K=V.context,X=e=>({...K,...e}),Q=()=>(0,D.J)({id:"extras",context:{extras:[],categories:[],max:0,total:0,tracking:{},active_categories:[]},initial:"initializing",states:{initializing:{always:"active"},active:{}},on:{TOTAL_PARTICIPANTS:{actions:["storeTotalParticipantsAsMax","notifyAll"]},TOTAL_COUNT:{actions:["registerCount","announceItems"]},SET_RATE:{actions:["setRate","spawnExtraCategories","filterCategories"]}}},{actions:{setRate:(0,R.f0)({rate:(e,t)=>{let{rate:n}=t;return n},extras:(e,t)=>{let{rate:n}=t;return n&&n.extras}}),storeTotalParticipantsAsMax:(0,R.f0)({max:(e,t)=>t.total}),registerCount:(0,R.f0)({tracking:(e,t)=>{let{tracking:n}=e,{id:i,count:a}=t;return{...n,[i]:a}}}),notifyAll:(e,t)=>$(e,e.max),filterCategories:(0,R.f0)({active_categories:(e,t)=>{let{rate:n,categories:i}=e;return n&&n.id?i.filter(e=>{let{rate_id:t}=e;return t===n.id}):[]}}),spawnExtraCategories:(0,R.f0)({categories:(e,t)=>{if(e&&e.extras)return e.extras.map(e=>{let t=X(e);return{...t,ref:(0,Y.Cs)(Z.withContext(t))}})}}),announceItems:(0,R.lj)((e,t)=>{let{tracking:n}=e;return{type:"SET_EXTRAS_ITEMS",items:n}})}}),$=(e,t)=>{let n="SET_MAX",{categories:i}=e;i.forEach(e=>{let{ref:i,limit_by_pax:a,maximum_units:r}=e;a?i.send(n,{max:t}):i.send(n,{max:r})})},ee={id:"participant_count",initial:"initializing",context:{count:0,max:50,min:0},states:{initializing:{always:[{target:"disabled",cond:"isInactive"},{target:"initializing",cond:"isCountBiggerThenMax",actions:"setCountToMax"},{target:"initializing",cond:"isCountSmallerThenMin",actions:"setCountToMin"},{target:"disabled",cond:"reachedMaxAndMin"},{target:"minimum",cond:"nextTimeCountSmallerThenMin"},{target:"maximum",cond:"reachedMax"},{target:"middle"}]},disabled:{},minimum:{on:{INC:{target:"middle",actions:["increment","checkAmount","notifyCount"]}}},middle:{on:{INC:[{target:"maximum",cond:"reachingMaximum",actions:["increment","checkAmount","notifyCount"]},{actions:["increment","checkAmount","notifyCount"]}],DEC:[{target:"minimum",cond:"reachingMinimum",actions:["decrement","checkAmount","notifyCount"]},{actions:["decrement","checkAmount","notifyCount"]}]}},maximum:{on:{DEC:{target:"middle",actions:["decrement","checkAmount","notifyCount"]}}}},on:{REACHED_MAX:{actions:"setReachedMax",target:"initializing"}
1,SET_MAX:{actions:"setMax",target:"initializing"},HOW_MANY:{actions:["notifyCount"]}}},et=(0,D.J)(ee,{actions:{setMax:(0,R.f0)({max:(e,t)=>t.max,reached_max:!1}),setReachedMax:(0,R.f0)({reached_max:(e,t)=>t.reached_max}),setCountToMax:(0,R.f0)({count:e=>e.max}),setCountToMin:(0,R.f0)({count:e=>e.min}),counting:(0,R.f0)({count:(e,t)=>{let n=e.count;return t.increment?n+1:n-1}}),increment:(0,R.f0)({count:e=>e.count+1,latest_action_type:"increment"}),decrement:(0,R.f0)({count:e=>e.count-1,latest_action_type:"decrement"}),checkAmount:(0,R.f0)({amount:e=>{let{count:t,tiered:n,amount:i}=e;if(!n||!n.length)return i;let a=n.find(e=>{let{min:n,max:i}=e;return i?t>=n&&t<=i:t>=n});return a&&a.amount||i}}),notifyCount:(0,R.lj)((e,t)=>({type:"TOTAL_COUNT",context:e}))},guards:{isCountBiggerThenMax:e=>e.count>e.max,isCountSmallerThenMin:e=>e.count<e.min,reachedMaxAndMin:e=>e.reached_max&&e.count===e.min,nextTimeCountSmallerThenMin:e=>!e.reached_max&&e.count<e.min+1,reachedMax:e=>e.reached_max,reachingMaximum:e=>e.reached_max,reachingMinimum:e=>e.reached_min,isNotMax:e=>e.count<e.max,isNotMin:e=>e.count>e.min,isInactive:e=>{let{inactive:t}=e;return t}}}),en=ee.context,ei=(e,t,n)=>({...en,count:n,...e,...t}),ea=(e,t)=>(0,D.J)({id:"participants",context:{rate:e,pricing_categories:t,participant:"",participants:{},max:6,total:0,tracking:{}},initial:"initializing",states:{initializing:{entry:"spawnParticipants",always:"active"},active:{}},on:{TOTAL_COUNT:{actions:["registerCount","calculateTotal","checkReachedMax","notifyAll","announceParticipants","notifyExtras"]},SET_RATE:{actions:["setRate","spawnParticipants","queryAll"]},AVAILABLE_GRADE:{actions:["setMax","updateMax","checkReachedMax","notifyAll"]}}},{actions:{setRate:(0,R.f0)({rate:(e,t)=>{let{rate:n}=t;return n}}),setMax:(0,R.f0)((e,t)=>{let{rate:n}=e,{grade:i}=t,a=n&&n.maximum_participants||i.availability_count;return i.availability_count<a&&(a=i.availability_count),{max:a}}),registerCount:(0,R.f0)({tracking:(e,t)=>{let{tracking:n,rate:i}=e,{context:a}=t;return i.id&&(n[i.id]||(n[i.id]={}),n[i.id][[a.id]]=a),n}}),calculateTotal:(0,R.f0)({total:e=>{let{tracking:t,rate:n}=e;return n.id?Object.values(t[n.id]).reduce((e,t)=>{let{count:n}=t;return e+n},0):0}}),checkReachedMax:(0,R.f0)((e,t)=>({reached_max:e.total===e.max})),notifyAll:(e,t)=>er(e,"REACHED_MAX",{reached_max:e.reached_max}),queryAll:(e,t)=>er(e,"HOW_MANY"),updateMax:(e,t)=>er(e,"SET_MAX",{max:e.max}),spawnParticipants:(0,R.f0)({participants:e=>{let{participants:t,rate:n,pricing_categories:i}=e;return n&&n&&n.pricing?{...t,[n.id]:n.pricing.map((e,t)=>{let a=i[e.pricing_category_id],r=ei(e,a,0===t?n.minimum_participants:0);return{...r,ref:(0,Y.Cs)(et.withContext(r))}})}:t}}),announceParticipants:(0,R.lj)((e,t)=>{let{tracking:n,rate:i}=e;if(i.id)return{type:"SET_PARTICIPANTS",participants:n[i.id]}}),notifyExtras:(0,R.lj)(e=>{let{total:t}=e;return{type:"TOTAL_PARTICIPANTS",total:t}})}}),er=(e,t,n)=>{let{participants:i,rate:a}=e;i&&a&&i[a.id]&&i[a.id].forEach(e=>{let{ref:i}=e;return i.send(t,n)})},eo=(e,t)=>{let{declined_pickup_text:n,custom_pickup_allowed:i}=t;return(0,D.J)({id:"pickup",context:{config:e,declined_pickup_text:n,custom_pickup_allowed:i,pickups:[],selected_pickup:null},initial:"initializing",states:{initializing:{invoke:{id:"fetch-pickup",src:"invokeFetchPickup",onDone:{target:"prepare",actions:["fetchPickupDone","selectSinglePickup","announcePickupTrue"]},onError:"failed_loading"}},failed_loading:{},prepare:{always:[{target:"ready",cond:"doWeHavePickup"},{target:"not_applicable"}]},ready:{initial:"pickup_active",states:{pickup_active:{entry:"announcePickupTrue",initial:"undecided",on:{TOGGLE:"inactive"},states:{undecided:{always:[{target:"choosen",cond:"alreadyChoosen"}],on:{SELECT_PICKUP:"choosen"}},choosen:{on:{SELECT_PICKUP:"choosen"},entry:["setPickup","announcePickupTrue"]},error:{}}},inactive:{entry:"announcePickupFalse",on:{TOGGLE:"pickup_active"}}}},not_applicable:{}}},{actions:{fetchPickupDone:(0,R.f0)({pickups:(e,t)=>{let{custom_pickup_allowed:n}=e,i=t.data.pickup_places.map(ec);return n&&i.unshift({id:"custompickup",value:"custom - address",label:"I'll type the address (next step)"}),i}}),selectSinglePickup:(0,R.f0)({selected_pickup:e=>{let{selected_pickup:t,pickups:n}=e;return 1===n.length?n[0]:t}}),setPickup:(0,R.f0)({selected_pickup:(e,t)=>t.selected_pickup?t.selected_pickup:e.selected_pickup}),announcePickupTrue:(0,R.lj)(e=>{let{selected_pickup:t}=e;return{type:"SET_PICKUP",pickup:!0,selected_pickup:t}}),announcePickupFalse:(0,R.lj)(e=>{let{selected_pickup:t}=e;return{type:"SET_PICKUP",pickup:!1,selected_pickup:t}})},guards:{doWeHavePickup:e=>{let{pickups:t}=e;return t.length>0}
1,alreadyChoosen:e=>{let{selected_pickup:t}=e;return t}},services:{invokeFetchPickup:e=>{let{config:{booking_api:t,vendor:n,activity_id:i,current_language:a}}=e;return A.ZP.get(new URL("".concat(n,"/").concat(i,"/pickup"),t).href,{searchParams:{lang:a}}).then(e=>e.json())}}})},ec=e=>({...e,value:es(e),label:e.title}),es=e=>[e.title.replace("Please wait at",""),e.full_address].join(" "),el=(e,t)=>{let{transfer_product_id:n,transfer_type:i}=t;return(0,D.J)({id:"transfer",context:{config:e,activity:{},transfer_type:i,transfer_product_id:n,transfers:[],selected_transfer:null},initial:"initializing",states:{initializing:{always:[{target:"getting_transfer",cond:"isTransferEnabled"},{target:"not_applicable"}]},getting_activity:{invoke:{id:"fetch-activity",src:"invokeFetchActivity",onDone:{target:"getting_transfer",actions:["fetchActivityDone"]},onError:"failed_loading"}},getting_transfer:{invoke:{id:"fetch-transfer",src:"invokeFetchTransfer",onDone:{target:"prepare",actions:["fetchTransferDone"]},onError:"failed_loading"}},failed_loading:{},prepare:{always:[{target:"ready",cond:"doWeHaveTransfer"},{target:"not_applicable"}]},ready:{initial:"transfer_active",states:{transfer_active:{entry:"announceTransferTrue",initial:"undecided",on:{TOGGLE:"inactive"},states:{undecided:{on:{SELECT_TRANSFER:"choosen"}},choosen:{on:{SELECT_TRANSFER:"choosen"},entry:["setTransfer","announceTransferTrue"]},error:{}}},inactive:{entry:"announceTransferFalse",on:{TOGGLE:"transfer_active"}}}},not_applicable:{}}},{actions:{fetchActivityDone:(0,R.f0)({activity:(e,t)=>t.data}),fetchTransferDone:(0,R.f0)({transfers:(e,t)=>{let{transfer_type:n}=e,i=[];return"dropoff"===n?i=t.data.dropoff_places:"pickup"===n&&(i=t.data.pickup_places),i=i.map(ed)}}),setTransfer:(0,R.f0)({selected_transfer:(e,t)=>t.selected_transfer}),announceTransferTrue:(0,R.lj)(e=>{let{selected_transfer:t}=e;return{type:"SET_TRANSFER",transfer:!0,selected_transfer:t}}),announceTransferFalse:(0,R.lj)(e=>{let{selected_transfer:t}=e;return{type:"SET_TRANSFER",transfer:!1,selected_transfer:t}})},guards:{doWeHaveTransfer:e=>{let{transfers:t}=e;return t.length>0},isTransferEnabled:e=>{let{transfer_product_id:t,transfer_type:n}=e;return t&&n}},services:{invokeFetchActivity:e=>{let{transfer_product_id:t,config:{booking_api:n,vendor:i,current_language:a}}=e;return A.ZP.get(new URL("".concat(i,"/").concat(t),n).href,{searchParams:{lang:a}}).then(e=>e.json())},invokeFetchTransfer:e=>{let{transfer_product_id:t,config:{booking_api:n,vendor:i,current_language:a}}=e;return A.ZP.get(new URL("".concat(i,"/").concat(t,"/pickup"),n).href,{searchParams:{lang:a}}).then(e=>e.json())}}})},ed=e=>({...e,value:eu(e),label:e.title}),eu=e=>[e.title.replace("Please wait at ",""),e.full_address].join(" ");var ep=n(5513);let em=e=>(0,D.J)({id:"booking",context:{config:e,data:{},selected_rate:{},selected_departure:{},selected_participants:{},selected_extras:{},pickup:null,selected_pickup:null,dropoff:null,selected_dropoff:null,transfer:null,selected_transfer:null,selected_location:null,fulfilment_message:"",return_enabled:!1,return_active:!1,return_inventory_product_id:null,total_amount:0},initial:"loading",states:{loading:{invoke:{id:"fetch-activity",src:"invokeFetchActivity",onDone:{target:"loaded",actions:["fetchActivityDone","preppReturnProduct"]},onError:"failed_loading"}},loaded:{invoke:[{id:"availabilty_service",src:"invokeAvailabilityMachine"},{id:"participants_service",src:"invokeParticipantsMachine"},{id:"extras_service",src:"invokeExtrasMachine"},{id:"pickup_service",src:"invokePickupMachine"},{id:"dropoff_service",src:"invokeDropoffMachine"},{id:"transfer_service",src:"invokeTransferMachine"}],on:{REFRESH:"loading",TOTAL_PARTICIPANTS:{actions:(e,t,n)=>{let{state:i}=n,{extras_service:a}=i.children;a.send("TOTAL_PARTICIPANTS",{total:t.total})}}}},failed_loading:{on:{RETRY:"loading"}},fetch_cart_payload:{invoke:{id:"fetch-payload",src:"requestPayload",onDone:{target:"submit",actions:["preparePayload"]},onError:"failed_submitting"}},submit:{invoke:{id:"post-booking",src:"invokePostBooking",onDone:{target:"submitted",actions:["postBookingAnalytics","postBookingDone","postBookingDoneCheckError"]},onError:"failed_submitting"}},submitted:{entry:"redirect"},failed_submitting:{on:{RETRY:"submit"}}},on:{"TOGGLE-RETURN":{actions:"toggleReturn"},SUBMIT:[{cond:"missingDepartureDate",actions:["clearFulfilment",()=>console.log("======== missingDepartureDate"),(0,R.f0)({fulfilment_message:"missingDepartureDate"})]},{cond:"toFewParticipants",actions:["clearFulfilment",()=>console.log("======== toFewParticipants"),(0,R.f0)({fulfilment_message:"getlocal.language-javascript.booking-widget.min-reuqire",fulfilment_extras:e=>{let{grade:t,selected_rate:n}=e;return y(t,n)}})]},{cond:"toManyParticipants",actions:["clearFulfilment",()=>console.log("======== toManyParticipants"),(0,R.f0)({fulfilment_message:"toManyParticipants"})]},{cond:"missingPickupPlace",actions:["clearFulfilment",()=>console.log("======== missingPickupPlace"),(0,R.f0)({fulfilment_message:"getlocal.language-javascript.booking-widget.select-pickup-location"})]},{cond:"missingDropoffPlace",actions:["clearFulfilment",()=>console.log("======== missingDropoffPlace"),(0,R.f0)({fulfilment_message:"getlocal.language-javascript.choose-dropoff-location"})]},{target:"fetch_cart_payload"}],SELECTED_RATE:{actions:["setSelectedRate","notifySelectedRate"]},AVAILABLE_GRADE:{actions:["setAvilabilityGrade","notifyAvilabilityGrade"]},SET_PARTICIPANTS:{actions:["setParticipants"]},SET_EXTRAS_ITEMS:{actions:["setExtrasItems"]},SET_PICKUP:{actions:["setPickup","adjustExistingLocations","setLocation"]},SET_DROPOFF:{actions:["setDropoff","adjustExistingLocations","setLocation"]},SET_TRANSFER:{actions:["setTransfer","adjustExistingLocations","setLocation"]},SELECTED_DEPARTURE:{actions:["setDeparture"]},MESSAGE:{actions:"incomingMessage"},SET_CURRENCY:{actions:"setCurrency"},SET_TOTAL_AMOUNT:{actions:"setTotalAmount"}}},{actions:{setSelectedRate:(0,R.f0)({selected_rate:(e,t)=>
1{let{selected_rate:n}=t;return n}}),notifySelectedRate:(e,t,n)=>{let{selected_rate:i}=e,{state:a}=n,{participants_service:r,extras_service:o}=a.children;r.send("SET_RATE",{rate:i}),o.send("SET_RATE",{rate:i})},setAvilabilityGrade:(0,R.f0)({grade:(e,t)=>{let{grade:n}=t;return n}}),notifyAvilabilityGrade:(e,t,n)=>{let{grade:i}=e,{state:a}=n,{participants_service:r}=a.children;r.send("AVAILABLE_GRADE",{grade:i})},setParticipants:(0,R.f0)({selected_participants:(e,t)=>{let{participants:n}=t;return n}}),setExtrasItems:(0,R.f0)({selected_extras:(e,t)=>{let{items:n}=t;return n}}),setPickup:(0,R.f0)({pickup:(e,t)=>{let{pickup:n}=t;return n},selected_pickup:(e,t)=>{let{selected_pickup:n}=t;return n}}),setDropoff:(0,R.f0)({dropoff:(e,t)=>{let{dropoff:n}=t;return n},selected_dropoff:(e,t)=>{let{selected_dropoff:n}=t;return n}}),setTransfer:(0,R.f0)({transfer:(e,t)=>{let{transfer:n}=t;return n},selected_transfer:(e,t)=>{let{selected_transfer:n}=t;return n}}),adjustExistingLocations:(0,R.f0)((e,t)=>{let{data:{transfer_type:n}}=e,{transfer:i}=t;if(n&&i){if("dropoff"===n)return{selected_dropoff:null};if("pickup"===n)return{selected_pickup:null}}else if(!i)return{selected_transfer:null};return{}}),setLocation:(0,R.f0)({selected_location:(e,t)=>{let{selected_transfer:n,selected_pickup:i,selected_dropoff:a}=t;return n||i||a}}),setDeparture:(0,R.f0)({selected_departure:(e,t)=>{let{selected_departure:n}=t;return n}}),fetchActivityDone:(0,R.f0)({data:(e,t)=>t.data,return_inventory_product_id:(e,t)=>t.data.return_inventory_product_id}),preppReturnProduct:(0,R.f0)({return_enabled:e=>{let{data:{id:t}}=e,n=localStorage.getItem("ongoing_return");return Number(t)!==Number(n)},return_active:e=>{let{return_inventory_product_id:t}=e;return!!t}}),toggleReturn:(0,R.f0)({return_active:e=>{let{return_active:t}=e;return!t}}),preparePayload:(0,R.f0)({order:(e,t)=>t.data}),postBookingAnalytics:e=>{let{config:t,data:n,order:i,total_amount:a}=e,{analytics:r={}}=t,{providers:o=[]}=r;o.map(e=>{if("meta"===e.name&&e.active){let e={content_ids:[t.product_id,t.activity_id],content_name:n.title,content_type:"product",value:t.total_amount,currency:ep.env.NEXT_PUBLIC_CURRENCY_DEFAULT};L.R(e)}if("google-analytics-4"===e.name&&e.active){let e={items:[{item_name:n.title,item_id:t.activity_id}],content_id:t.product_id,content_type:"product",value:t.total_amount,currency:ep.env.NEXT_PUBLIC_CURRENCY_DEFAULT};I.R(e)}})},postBookingDone:(0,R.f0)({session_id:(e,t)=>{let{response:n={}}=t.data;return n.sessionId}}),postBookingDoneCheckError:(0,R.f0)({fulfilment_message:(e,t)=>t.data.message||""}),incomingMessage:(0,R.f0)((e,t)=>{let{payload:n}=t;return{...n}}),setCurrency:(0,R.f0)({config:(e,t)=>{let{config:n}=e,{payload:i}=t,{display_currency:a,currency_rate:r}=i;return{...n,display_currency:a,currency_rate:r}}}),setTotalAmount:(0,R.f0)({total_amount:(e,t)=>{let{total_amount:n}=e,{payload:i}=t,{total_amount:a}=i;return a}}),redirect:e=>{let{fulfilment_message:t,return_enabled:n,return_active:i,return_inventory_product_id:a}=e;if(!t){if(n&&i){localStorage.setItem("ongoing_return",a);let e=22112===Number(a)?10727156:22141===Number(a)?2967033283:948692===Number(a)?3682960105:948698===Number(a)?2069444307:void console.warn("Missing lookup for return product id:",a);window.location.href="/product/"+e}else localStorage.setItem("ongoing_return",""),window.location.href="/cart"}},clearFulfilment:(0,R.f0)(()=>({fulfilment_message:"",fulfilment_extras:!1}))},guards:{missingDepartureDate:e=>{let{selected_departure:t}=e;return!t||!t.id},toFewParticipants:e=>{let{grade:t,selected_participants:n,selected_rate:i}=e,a=Object.values(n);return 0===a.length||a.reduce((e,t)=>{let{count:n}=t;return e+n},0)<y(t,i)},toManyParticipants:e=>{let{grade:t,selected_participants:n,selected_rate:i}=e,a=Object.values(n);return 0===a.length||a.reduce((e,t)=>{let{count:n}=t;return e+n},0)>[Number(t&&t.availability_count,Number(i&&i.maximum_participants))].sort().slice(-1)[0]},missingPickupPlace:e=>{let{pickup:t,selected_pickup:n,selected_rate:i,transfer:a,selected_transfer:r,data:{transfer_type:o}}=e;
1return("pickup"!==o||!a||!r)&&!!t&&!!i&&!!i.pickup&&"UNAVAILABLE"!==i.pickup.selection_type&&"PRESELECTED"!==i.pickup.selection_type&&(!n||!n.id)},missingDropoffPlace:e=>{let{dropoff:t,selected_dropoff:n,selected_rate:i,transfer:a,selected_transfer:r,data:{transfer_type:o}}=e;return("dropoff"!==o||!a||!r)&&!!t&&!!i&&!!i.dropoff&&"UNAVAILABLE"!==i.dropoff.selection_type&&(!n||!n.id)}},services:{invokeAvailabilityMachine:e=>{let{config:t,data:n}=e;return W(t,n)},invokePickupMachine:e=>{let{config:t,data:n}=e;return!!n.pickup&&eo(t,n)},invokeDropoffMachine:e=>{let{config:t,data:n}=e;return!!n.dropoff&&q(t,n)},invokeTransferMachine:e=>{let{config:t,data:n}=e;return el(t,n)},invokeParticipantsMachine:e=>{let{data:t,selected_rate:n}=e;return ea(n,t.pricing_categories)},invokeExtrasMachine:()=>Q(),invokeFetchActivity:e=>{let{config:{booking_api:t,vendor:n,activity_id:i,current_language:a}}=e;return A.ZP.get(new URL("".concat(n,"/").concat(i),t).href,{searchParams:{lang:a}}).then(e=>e.json())},invokePostBooking:e=>{let{config:{submit_url:t,cart_id:n=""},order:i}=e;return A.ZP.post(new URL("",t).href,{json:i}).then(e=>e.json())},requestPayload:e=>O()(e)}}),ef=(e,t)=>e*t;var eg=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=ef(e,n);return t||(console.log("WARN: Missing currency, falling back on EUR"),t="EUR"),new Intl.NumberFormat("en",{style:"currency",currency:t}).format(i)};let eh=e=>{let{state:t,send:n,selected_rate:a}=e,{dropoff:r}=a;if(r&&"OPTIONAL"===r.selection_type){let e=t.matches("ready.dropoff_active");return(0,i.jsxs)("div",{className:"controls",children:[(0,i.jsx)("input",{type:"checkbox",id:"toggle-dropoff",checked:e,onChange:e=>{n({type:"TOGGLE"})},className:"switch-checkbox"}),(0,i.jsx)("label",{htmlFor:"toggle-dropoff",className:"switch"})]})}return null},ex=e=>{let{selected_rate:t,pricing_categories:n,display_currency:a,currency_rate:r,current_language:o,...c}=e,{pricing:s,dropoff:l}=t;if("INCLUDED_IN_PRICE"===l.pricing_type)return(0,i.jsx)("div",{className:"prices",children:m("getlocal.language-javascript.booking-widget.free-drop-off",o)});let d=s.map(e=>{let{pricing_category_id:o,dropoff_price:c,currency:s}=e;return c?(0,i.jsxs)("div",{children:[t.dropoff&&t.dropoff.priced_per_person?n[o].title:t.title,": ",(0,i.jsx)("span",{className:"price",children:eg(c,a||s,r)})]},"dropoff_"+o):null}).filter(Boolean);return d.length||d.push((0,i.jsx)("div",{children:(0,i.jsx)("span",{className:"price",children:eg(0,a,r)})},"dropoff_price_missing")),(0,i.jsx)("div",{className:"prices",children:d})},ey=e=>{let{state:t,send:n,current_language:a}=e,{dropoffs:r,selected_dropoff:o}=t.context;return t.matches("ready.dropoff_active")?(0,i.jsxs)("div",{className:"location boxed-item",children:[(0,i.jsx)("span",{children:m("getlocal.language-javascript.choose-dropoff-location",a)}),(0,i.jsx)(_.ZP,{className:"booking-widget-dropoff-selector",classNamePrefix:"dropoff-selector",value:o,onChange:e=>{n({type:"SELECT_PICKUP",selected_dropoff:e})},options:r})]}):null},ev=e=>{let{state:t}=e;return t.matches("ready.inactive")?(0,i.jsx)("div",{className:"instructions boxed-item",children:(0,i.jsx)("p",{dangerouslySetInnerHTML:{__html:t.context.declined_dropoff_text}})}):null};var e_=e=>{let{machine:t}=e,[n]=t,{dropoff_service:a}=n.children;if(!a||!a.initialized)return null;let[r,o]=(0,f.L)(a);if(!r.matches("ready"))return null;let{config:{current_language:c,display_currency:s,currency_rate:l},selected_rate:d,data:{pricing_categories:u}}=n.context;if(!d)return null;let{dropoff:p}=d;return p&&"UNAVAILABLE"!==p.selection_type?(0,i.jsx)("section",{className:"booking-widget-dropoff","data-machine":a.machine.id,"data-state":r.toStrings().join(" "),children:(0,i.jsxs)("div",{className:"boxed",children:[(0,i.jsxs)("div",{className:"details boxed-item input-container",children:[(0,i.jsx)(ex,{display_currency:s,currency_rate:l,selected_rate:d,pricing_categories:u,current_language:c}),(0,i.jsx)(eh,{state:r,send:o,selected_rate:d})]}),(0,i.jsx)(ey,{state:r,send:o,current_language:c}),(0,i.jsx)(ev,{state:r})]})}):null};let eb=e=>{let{direction:t,disabled:n,send:a}=e,r="direction-"+t;return n&&(r+=" disabled"),(0,i.jsx)("span",{className:r,children:(0,i.jsx)("button",{className:"",onClick:e=>{a("up"===t?"INC":"DEC")},disabled:n,children:(0,i.jsx)("span",{className:ej(t),children:eT(t)})})})},ek={dwn:"fa fa-minus",up:"fa fa-plus"},ej=e=>ek[e],eT=e=>"up"===e?"+":"-";var ew=e=>{let{service:t}=e,[n,a]=(0,f.L)(t.ref),{count:r}=n.context;return(0,i.jsxs)("div",{className:"count","data-machine":t.ref.machine.id,"data-state":n.toStrings().join(" "),children:[(0,i.jsx)(eb,{direction:"dwn",disabled:n.matches("disabled")||n.matches("minimum"),send:a}),(0,i.jsx)("input",{type:"number",pattern:"[0-9]*",inputMode:"numeric",value:r,readOnly:!0,tabIndex:-1}),(0,i.jsx)(eb,{direction:"up",disabled:n.matches("disabled")||n.matches("maximum"),send:a})]})};let eE=e=>(0,i.jsx)("div",{className:"boxed-item",children:(0,i.jsxs)("div",{className:"input-container",children:[(0,i.jsx)(eN,{...e}),(0,i.jsx)(ew,{...e})]})}),eN=e=>{let{service:t,display_currency:n,currency_rate:a}=e,[r]=(0,f.L)(t.ref),{title:o,price:c,priced_per_person:s}=r.context,l=eg(c,n,a);return(0,i.jsxs)("label",{className:"extra-selector-ttl","data-machine":t.ref.machine.id,"data-state":r.toStrings().join(" "),children:[o,(0,i.jsx)("br",{}),(0,i.jsx)("span",{className:"price",children:l}),(0,i.jsx)("span",{className:"price_type",children:s?" (p. pers)":""})]})};var eC=e=>{let{machine:t,service:n}=e,[a]=t,{config:{display_currency:r,currency_rate:o,current_language:c}}=a.context,[s]=(0,f.L)(n),{active_categories:l}=s.context;return l.length?(0,i.jsxs)("section",{className:"booking-widget-extras","data-machine":n.machine.id,"data-state":s.toStrings().join(" "),children:[(0,i.jsx)("h3",{children:m("getlocal.checkout.optional-extra-title",c)}),(0,i.jsx)("div",{className:"boxed",children:l.map(e=>(0,i.jsx)(eE,{service:e,display_currency:r,currency_rate:o},e.id))})]}):null};function eP(e){let{state:t}=e;if(t.matches("idle"))return null;let{config:{current_language:n},fulfilment_message:a,fulfilment_extras:r}=t.context;return a?(0,i.jsx)("section",{className:"booking-widget-fulfilment",children:(0,i.jsx)("div",{className:"fulfilment-notification",children:(0,i.jsxs)("p",{children:[m(a,n),r?" ".concat(r):""]})})}):null}let eS=e=>(0,i.jsx)("div",{className:"participant boxed-item",children:(0,i.jsxs)("div",{className:"input-container",children:[(0,i.jsx)(eA,{...e}),(0,i.jsx)(ew,{...e})]})}),eA=e=>{let{service:t,display_currency:n,currency_rate:a}=e,[r]=(0,f.L)(t.ref),{title:o,amount:c,currency:s,inactive:l}=r.context,d=eD(r.context),u=eg(c,n||s,a);return(0,i.jsxs)("label",{className:"participant-name"+(l?" disabled_text str
1ikethrough":""),"data-machine":t.ref.machine.id,"data-state":r.toStrings().join(" "),children:[o,d,(0,i.jsx)("br",{}),(0,i.jsx)("span",{className:"price",children:u})]})},eD=function(){let{min_age:e,max_age:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e||t?e&&!t?" (".concat(e,"+)"):" (".concat(e," - ").concat(t,")"):""},eR=e=>{let{grade:t,selected_rate:n}=e,a=y(t,n);return a<=1?null:(0,i.jsxs)("div",{children:["min of ",a," participants"]})};var eL=e=>{let{machine:t,service:n}=e,[a]=t,{config:{current_language:r,display_currency:o,currency_rate:c},grade:s,selected_rate:l}=a.context,[d]=(0,f.L)(n),{participants:u,rate:p}=d.context;if(!u||!p)return null;let g=u[p.id];return(0,i.jsxs)("section",{className:"booking-widget-participants","data-machine":n.machine.id,"data-state":d.toStrings().join(" "),children:[(0,i.jsx)("h3",{children:m("getlocal.language-javascript.booking-widget.participants-title",r)}),(0,i.jsx)("div",{className:"boxed",children:g?g.map(e=>(0,i.jsx)(eS,{service:e,display_currency:o,currency_rate:c},e.id)):null}),(0,i.jsx)(eR,{grade:s,selected_rate:l})]})};let eI=e=>{let{state:t,send:n,selected_rate:a}=e,{pickup:r}=a;if(r&&"OPTIONAL"===r.selection_type){let e=t.matches("ready.pickup_active");return(0,i.jsxs)("div",{className:"controls",children:[(0,i.jsx)("input",{type:"checkbox",id:"toggle-pickup",checked:e,onChange:e=>{n({type:"TOGGLE"})},className:"switch-checkbox"}),(0,i.jsx)("label",{htmlFor:"toggle-pickup",className:"switch"})]})}return null},eM=e=>{let{selected_rate:t,pricing_categories:n,display_currency:a,currency_rate:r,current_language:o,...c}=e,{pickup:s,pricing:l}=t;if("INCLUDED_IN_PRICE"===s.pricing_type)return(0,i.jsx)("div",{className:"prices",children:m("getlocal.language-javascript.booking-widget.free-pickup",o)});let d=l.map(e=>{let{pricing_category_id:o,pickup_price:c,currency:s}=e;return c?(0,i.jsxs)("div",{children:[t.pickup&&t.pickup.priced_per_person?n[o].title:t.title,": ",(0,i.jsx)("span",{className:"price",children:eg(c,a||s,r)})]},"pickup_"+o):null}).filter(Boolean);return d.length||d.push((0,i.jsx)("div",{children:(0,i.jsx)("span",{className:"price",children:eg(0,a,r)})},"pickup_price_missing")),(0,i.jsx)("div",{className:"prices",children:d})},eO=e=>{let{state:t,send:n,current_language:a}=e,{pickups:r,selected_pickup:o}=t.context;return t.matches("ready.pickup_active")?(0,i.jsxs)("div",{className:"location boxed-item",children:[(0,i.jsx)("span",{children:m("getlocal.language-javascript.choose-pickup-location",a)}),(0,i.jsx)(_.ZP,{className:"booking-widget-pickup-selector",classNamePrefix:"pickup-selector",value:o,onChange:e=>{n({type:"SELECT_PICKUP",selected_pickup:e})},options:r})]}):null},eF=e=>{let{state:t}=e;return t.matches("ready.pickup_active.choosen")||!t.matches("ready.inactive")?null:(0,i.jsx)("div",{className:"instructions boxed-item",children:(0,i.jsx)("p",{dangerouslySetInnerHTML:{__html:t.context.declined_pickup_text}})})};var eU=e=>{let{machine:t}=e,[n]=t,{pickup_service:a}=n.children;if(!a||!a.initialized)return null;let[r,o]=(0,f.L)(a);if(!r.matches("ready"))return null;let{config:{current_language:c,display_currency:s,currency_rate:l},selected_rate:d,data:{pricing_categories:u}}=n.context;if(!d)return null;let{pickup:p}=d;if(!p||"UNAVAILABLE"===p.selection_type)return null;let{pickups:g}=r.context,h=1===g.length;return(0,i.jsxs)("section",{className:"booking-widget-pickup","data-machine":a.machine.id,"data-state":r.toStrings().join(" "),children:[(0,i.jsx)("h3",{children:m("getlocal.language-javascript.booking-widget.want-to-pickup",c)}),(0,i.jsxs)("div",{className:"boxed",children:[(0,i.jsxs)("div",{className:"details boxed-item input-container",children:[(0,i.jsx)(eM,{display_currency:s,currency_rate:l,selected_rate:d,pricing_categories:u,current_language:c}),(0,i.jsx)(eI,{state:r,send:o,selected_rate:d})]}),h?(0,i.jsx)(()=>r.matches("ready.pickup_active")?(0,i.jsx)("div",{className:"location boxed-item",children:"Pickup from ".concat(g[0].title)}):null,{}):(0,i.jsx)(eO,{state:r,send:o,current_language:c}),(0,i.jsx)(eF,{state:r})]})]})};function eB(e){let{state:t,send:n}=e;if(t.matches("idle"))return null;let{config:{advanced_summary:a,current_language:r}}=t.context;return a?(0,i.jsxs)("section",{className:"booking-widget-summary",children:[(0,i.jsx)("h3",{children:m("summary",r)}),(0,i.jsx)(eG,{context:t.context}),(0,i.jsxs)("div",{children:[(0,i.jsx)(ez,{context:t.context}),(0,i.jsx)(eq,{context:t.context}),(0,i.jsx)(eH,{context:t.context}),(0,i.jsx)(eY,{context:t.context}),(0,i.jsx)(eZ,{context:t.context}),(0,i.jsx)(eX,{state:t}),(0,i.jsx)("hr",{}),(0,i.jsx)(e0,{send:n,context:t.context,advanced_summary:a})]})]}):(0,i.jsx)("section",{className:"booking-widget-summary",children:(0,i.jsxs)("div",{className:"total",children:[(0,i.jsxs)("em",{children:[m("getlocal.checkout.total",r)," "]}),(0,i.jsx)(e0,{send:n,context:t.context,showZero:!0})]})})}let eG=e=>{let{context:t}=e;return(0,i.jsx)("h4",{children:t.data&&t.data.title})},ez=e=>{let{context:t}
1=e,{config:{current_language:n},selected_participants:a}=t;return a&&Object.keys(a).length?(0,i.jsxs)("div",{children:[(0,i.jsx)("b",{children:m("getlocal.checkout.ticket",n)}),(0,i.jsx)("br",{}),(0,i.jsx)(eW,{context:t})]}):null},eW=e=>{let{context:{config:{display_currency:t,currency_rate:n},selected_participants:a,selected_rate:r}}=e;if(r.priced_per_person)return Object.values(a).map(e=>{let{id:a,count:r,title:o,currency:c,amount:s}=e;if(!r)return null;let l=eg(s,t||c,n);return(0,i.jsx)("div",{children:"".concat(o,": ").concat(r," x ").concat(l)},a)});{let{id:e,title:o}=r,{currency:c,amount:s}=Object.values(a)[0],l=eg(s,t||c,n);return(0,i.jsx)("div",{children:"".concat(o,": ").concat(l)},e)}},eq=e=>{let{context:t}=e,{config:{current_language:n},selected_extras:a}=t;return a&&Object.keys(a).length?(0,i.jsxs)("div",{children:[(0,i.jsx)("b",{children:m("getlocal.checkout.optional-extra-title",n)}),(0,i.jsx)("br",{}),(0,i.jsx)(eJ,{context:t})]}):null},eJ=e=>{let{context:{config:{display_currency:t,currency_rate:n},selected_rate:{extras:a},selected_extras:r}}=e;return Object.entries(r).map(e=>{let[r,o]=e;if(!o)return null;let{title:c,price:s}=e1(r,a);return s=eg(s,t||"ISK",n),(0,i.jsx)("div",{children:"".concat(c,": ").concat(o," x ").concat(s)},r)})},eH=e=>{let{context:t}=e,{config:{current_language:n},selected_departure:a}=t;if(!a||!a.id)return null;let r=h(a.localDateTimeStart);return(0,i.jsxs)("div",{children:[(0,i.jsx)("b",{children:m("getlocal.tour.travel-date",n)}),(0,i.jsx)("br",{}),b(r,!0)," ",(0,i.jsxs)("em",{children:["[id: ",a.id,"]"]}),(0,i.jsx)("br",{}),a.label?" - "+a.label:null]})},eY=e=>{let{context:t}=e,{config:{current_language:n},pickup:a}=t;return a?(0,i.jsxs)("div",{children:[(0,i.jsx)("b",{children:m("pickup",n)}),(0,i.jsx)("br",{}),a?(0,i.jsx)(e$,{context:t}):"No",(0,i.jsx)(eV,{context:t})]}):null},eV=e=>{let{context:{config:{display_currency:t,currency_rate:n},selected_pickup:a}}=e,{value:r}=a||{};return r||(r="No Location selected"),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("em",{children:r}),(0,i.jsx)("br",{})]})},eZ=e=>{let{context:t}=e,{config:{current_language:n},dropoff:a}=t;return a?(0,i.jsxs)("div",{children:[(0,i.jsx)("b",{children:m("dropoff",n)}),(0,i.jsx)("br",{}),a?(0,i.jsx)(e$,{context:t}):"No",(0,i.jsx)(eK,{context:t})]}):null},eK=e=>{let{context:{config:{display_currency:t,currency_rate:n},selected_dropoff:a}}=e,{value:r}=a||{};return r||(r="No Location selected"),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("em",{children:r}),(0,i.jsx)("br",{})]})},eX=e=>{let{state:t}=e,{context:n}=t,{config:{current_language:a},transfer:r}=n;if(!r)return null;let{transfer_service:o}=t.children;if(!o)return null;let[c,s]=(0,f.L)(o),{rates:l}=c.context.activity;return(0,i.jsxs)("div",{children:[(0,i.jsx)("b",{children:m("addon_transfer",a)}),(0,i.jsx)("br",{}),r?(0,i.jsx)(e$,{context:n}):"No",(0,i.jsx)(eQ,{context:n})]})},eQ=e=>{let{context:{config:{display_currency:t,currency_rate:n},selected_transfer:a}}=e,{value:r}=a||{};return r||(r="No Location selected"),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("em",{children:r}),(0,i.jsx)("br",{})]})},e$=e=>{let{context:{config:{display_currency:t,currency_rate:n},selected_participants:a}}=e;return Object.values(a).map(e=>{let{id:a,count:r,title:o,currency:c,pickup_price:s}=e;if(!r)return null;let l=eg(s,t||c,n);return(0,i.jsx)("div",{children:"".concat(o,": ").concat(r," x ").concat(l)},a)})},e0=e=>{let{context:t,showZero:n,advanced_summary:r,send:o}=e,{config:{display_currency:c,currency_rate:s},data:{default_currency:l}}=t,d=e2(t),u=e5(t),p=e4(t),m=e3(t),f=e6(t),g=d+u+p+m+f;if(!n&&!g)return null;(0,a.useEffect)(()=>{o({type:"SET_TOTAL_AMOUNT",payload:{total_amount:g}})},[g,o]);let h=c||l;return r?(0,i.jsxs)("div",{children:[(0,i.jsxs)("span",{children:["ticket_prices: ",d]}),(0,i.jsx)("br",{}),(0,i.jsxs)("span",{children:["extras_prices: ",u]}),(0,i.jsx)("br",{}),(0,i.jsxs)("span",{children:["pickup_prices: ",p]}),(0,i.jsx)("br",{}),(0,i.jsxs)("span",{children:["dropoff_prices: ",m]}),(0,i.jsx)("br",{}),(0,i.jsxs)("span",{children:["transfer_prices: ",f]}),(0,i.jsx)("br",{}),(0,i.jsxs)("span",{children:["total: ",g]}),(0,i.jsx)("br",{}),(0,i.jsxs)("span",{children:["Total: ",eg(g,h,s)]})]}):(0,i.jsx)("span",{children:eg(g,h,s)})},e1=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return t.find(t=>String(t.id)===String(e))},e2=e=>{let{selected_participants:t,selected_rate:n}=e;return n&&n.priced_per_person?Object.values(t).reduce((e,t)=>
1{let{amount:n=0,count:i=0}=t;return e+n*i},0):n&&n.pricing&&n.pricing.length&&n.pricing[0].amount||0},e5=e=>{let{selected_extras:t,selected_rate:n}=e;if(!n)return 0;let{extras:i}=n,a=0;return Object.entries(t).forEach(e=>{let[t,n]=e,r=e1(t,i);r&&r.price&&(a+=r.price*n)}),a},e4=e=>{let{pickup:t,selected_participants:n,selected_rate:i}=e;if(!t)return 0;if(i&&i.pickup){if("INCLUDED_IN_PRICE"===i.pickup.pricing_type)return 0;if(i.pickup.priced_per_person)return Object.values(n).reduce((e,t)=>{let{pickup_price:n,count:i}=t;return e+n*i},0)}return i&&i.pricing&&i.pricing.length&&i.pricing[0].pickup_price||0},e3=e=>{let{dropoff:t,selected_participants:n,selected_rate:i}=e;if(!t)return 0;if(i&&i.dropoff){if("INCLUDED_IN_PRICE"===i.dropoff.pricing_type)return 0;if(i.dropoff.priced_per_person)return Object.values(n).reduce((e,t)=>{let{dropoff_price:n,count:i}=t;return e+n*i},0)}return i&&i.pricing&&i.pricing.length&&i.pricing[0].dropoff_price||0},e6=e=>{let{transfer:t,selected_participants:n,selected_transfer:i}=e;if(!t||!i)return 0;let a={16118:1100,103710:550,16470:0};return Object.values(n).reduce((e,t)=>{let{pricing_category_id:n,count:i}=t;return e+a[n]*i},0)},e9=e=>{let{service:t,display_currency:n,currency_rate:a,participant:r}=e,[o]=(0,f.L)(t.ref),{title:c}=o.context,{id:s,tiered:l}=r;return l&&l.length?(0,i.jsxs)("div",{className:"participant-price-list boxed-item","data-machine":t.ref.machine.id,"data-state":o.toStrings().join(" "),children:[(0,i.jsx)(e7,{title:c}),(0,i.jsx)("br",{}),l.map(e=>(0,i.jsx)(e8,{tiere:e,currency:n,currency_rate:a},"tiered_".concat(s,"_").concat(e.min)))]}):null},e7=e=>{let{title:t}=e;return(0,i.jsx)("label",{className:"participant-name",children:t})},e8=e=>{let{tiere:t,currency:n,currency_rate:a}=e,{min:r,max:o,amount:c}=t,s=eg(c,n,a),l="";l=r===o?r:o?"".concat(r," - ").concat(o):"".concat(r," or more");let d="".concat(l," participant").concat(1===Number(l)?"":"s",":");return(0,i.jsxs)("div",{className:"input-container tiered-category",children:[(0,i.jsx)("label",{className:"tiered-range",children:d}),(0,i.jsx)("label",{className:"tiered-price",children:s})]})};var te=e=>{let{machine:t,service:n}=e,[a]=t,{config:{current_language:r,display_currency:o,currency_rate:c}}=a.context,[s]=(0,f.L)(n),{participants:l,rate:d}=s.context;if(!l||!d)return null;let u=l[d.id];return u&&u[0]&&!u[0].tiered?null:(0,i.jsxs)("section",{className:"booking-widget-tiered-pricelist","data-machine":n.machine.id,"data-state":s.toStrings().join(" "),children:[(0,i.jsx)("h3",{children:m("getlocal.language-javascript.booking-widget.pricing-per-participant",r)}),(0,i.jsx)("div",{className:"boxed",children:u?u.map(e=>(0,i.jsx)(e9,{service:e,display_currency:o,currency_rate:c,participant:e},e.id)):null})]})};function tt(e){let{state:t,send:n}=e,{return_inventory_product_id:a,return_enabled:r,return_active:o}=t.context;return r&&a?(0,i.jsxs)("section",{className:"booking-widget-pickup","data-state":t.toStrings().join(" "),children:[(0,i.jsx)("h3",{children:"Save on return transfer"}),(0,i.jsx)("div",{className:"boxed",children:(0,i.jsxs)("div",{className:"details boxed-item input-container",children:[(0,i.jsx)(tn,{}),(0,i.jsxs)("div",{className:"controls",children:[(0,i.jsx)("input",{type:"checkbox",id:"toggle-tur-return",checked:o,onChange:e=>{console.log("toggleTurReturn"),n({type:"TOGGLE-RETURN"})},className:"switch-checkbox"}),(0,i.jsx)("label",{htmlFor:"toggle-tur-return",className:"switch"})]})]})})]}):null}let tn=()=>(0,i.jsx)("div",{className:"prices",children:"Add return in the next step"});var ti=n(8745),ta=n.n(ti);let tr=e=>{let{current_language:t,parent_state:n,base_state:a,base_send:r,state:o,send:c}=e,{selected_location:s}=n.context,{pickups:l,dropoffs:d}=a.context,{transfer_type:u,transfers:p}=o.context;if(!o.matches("ready.transfer_active"))return null;let f=[];if("dropoff"===u){if(!a.matches("ready.dropoff_active"))return null;f=d}else if("pickup"===u){if(!a.matches("ready.pickup_active"))return null;f=l}let g=[{label:"Free",options:f},{label:"Smartbus - 1100 ISK",options:p}],h="dropoff"===u?m("getlocal.language-javascript.choose-dropoff-location",t):m("getlocal.language-javascript.choose-pickup-location",t);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{className:"location boxed-item",children:[(0,i.jsx)("span",{children:h}),(0,i.jsx)(_.ZP,{className:"booking-widget-dropoff-selector",classNamePrefix:"dropoff-selector",value:s,onChange:e=>{f.find(t=>{let{id:n}=t;return e.id===n})?r({type:"SELECT_PICKUP",selected_dropoff:e,selected_pickup:e}):p.find(t=>{let{id:n}=t;return e.id===n})&&c({type:"SELECT_TRANSFER",selected_transfer:e})},options:g})]}),(0,i.jsx)(to,{})]})},to=()=>(0,i.jsx)("div",{className:"instructions boxed-item",children:(0,i.jsxs)("p",{className:"text-xs",children:["Add a drop off to your accommodation or nearest bus stop for extra charge. Select from a list of 200+ locations. Check out more information about the"," ",(0,i.jsx)(ta(),{href:"/our-locations-and-meeting-points",className:"underline",children:"SmartBus service"}),"."]})});var tc=e=>{let{machine:t}=e,[n]=t,{transfer_service:a,dropoff_service:r,pickup_service:o}=n.children;if(!a||!a.initialized)return null;let{config:{current_language:c,display_currency:s,currency_rate:l},selected_rate:d,data:{pricing_categories:u,transfer_type:p}}=n.context,m=(0,f.L)(a),g="dropoff"===p?(0,f.L)(r):(0,f.L)(o),[h,x]=m,[y,v]=g;if(!h.matches("ready")||!y.matches("ready")||!d)return null;let{dropoff:_,pickup:b}=d;return("dropoff"!==p||_&&"UNAVAILABLE"!==_.selection_type)&&("pickup"!==p||b&&"UNAVAILABLE"!==b.selection_type)?(0,i.jsx)("section",{className:"booking-widget-dropoff","data-machine":a.machine.id,"data-state":h.toStrings().join(" "),children:(0,i.jsx)(()=>(0,i.jsx)("div",{className:"boxed",children:(0,i.jsx)(tr,{parent_state:n,state:h,send:x,base_state:y,base_send:v,current_language:c})}),{})}):null};function ts(e){let{state:t,send:n}=e,{config:{current_language:a,disabled_payment_provider:r,book_now_text_enabled:o},return_enabled:c,return_active:s}=t.context,l=m("getlocal.language-javascript.add-to-cart",a);return(c&&s&&(l="Continue to next step"),o&&(l="Book Now"),r)?(0,i.jsx)("div",{children:(0,i.jsx)("button",{disabled:!0,className:"button",style:{background:"#9e9e9e",transform:"rotate(-10deg)"},children:"Out of Order"})}):(0,i.jsx)("div",{children:(0,i.jsx)("button",{className:"button",onClick:e=>{n({type:"SUBMIT"})},children:l})})}var tl=e=>{let{message:t,config:n}=e,r=em(n),{currency:o}=(0,a.useContext)(d.Z),c=(0,l.e)(r,{devTools:!1}
1),[s,u]=c,{participants_service:p,extras_service:m}=s.children,{config:{current_language:f,tiered_price_list:g},data:{transfer_type:h}}=s.context;return(0,a.useEffect)(()=>{o.conversion_enabled&&o.conversion?u({type:"SET_CURRENCY",payload:{display_currency:o.conversion.second.code,currency_rate:o.conversion.rate}}):u({type:"SET_CURRENCY",payload:{display_currency:o.default_currency.code,currency_rate:1}})},[o]),(0,i.jsxs)("section",{className:"booking-widget","data-machine":r.id,"data-state":s.toStrings().join(" "),children:[(0,i.jsx)(S,{machine:c}),p&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(eL,{machine:c,service:p}),g&&(0,i.jsx)(te,{machine:c,service:p})]}),m&&(0,i.jsx)(eC,{machine:c,service:m}),"pickup"===h?(0,i.jsx)(tc,{machine:c}):(0,i.jsx)(eU,{machine:c}),"dropoff"===h?(0,i.jsx)(tc,{machine:c}):(0,i.jsx)(e_,{machine:c}),(0,i.jsx)(tt,{state:s,send:u}),(0,i.jsx)(eB,{send:u,state:s}),(0,i.jsx)(eP,{state:s}),(0,i.jsx)("br",{}),(0,i.jsx)("br",{}),(0,i.jsx)(ts,{state:s,send:u})]})};let td=e=>{let{config:t,message:n}=e;return(0,i.jsx)(tl,{config:t,message:n})};var tu=n(1818),tp=n(5799);let tm=e=>{let{showTitle:t=!0,titleStyle:n,title:a,content:r,className:o}=e;return(0,i.jsxs)("div",{className:o,children:[t?(0,i.jsx)("h2",{className:n,children:a}):null,(0,i.jsx)("article",{className:"prose mt-1 w-full max-w-none",children:(0,i.jsx)(c.R,{...r})})]})},tf=e=>{let{product:t}=e,{videos:n}=t.inventory_product_ref;return n&&n.length?n.map(e=>{let{video_id:t}=e;return(0,i.jsx)(s.uW,{video:{video_id:t}},"yt_vid_"+t)}):null};var tg=!0,th=()=>{let{site:e,data:t,locale:n,currency:r}=(0,a.useContext)(d.Z),{name:c,product_page_type:l,analytics:u,id:p,integrations:m,booking_component_type:f}=e,g="product_hero"===l,{product:h}=t,{conversion:x}=r;if(!h)return null;let{_id:y,inventory_product_ref:v}=h,{title:_,excerpt:b="",price:k,inventory:j}=v,{amount:T}=v&&k||{},w=window.location.origin?window.location.origin:"",E=(e.payment_providers||[]).filter(e=>e.active),N={analytics:u,targetElementId:"root",booking_api:"".concat(w,"/api/booking-api/"),submit_url:"".concat(w,"/api/cart-api"),advanced_summary:!1,default_language:"en",current_language:"en",display_currency:r.conversion_enabled&&r.conversion?r.conversion.second.code:r.default_currency.code,currency_rate:r.conversion_enabled&&r.conversion?r.conversion.rate:1,vendor:"next-func",activity_id:h.inventory_product_ref.inventory_id,product_id:y,cart_id:"1234567",disabled_payment_provider:0===E.length,book_now_text_enabled:"I17y2xlEk0Uki0rZllzC"===p},C={"@type":"Offer",priceCurrency:r.default_currency.code,price:T},P={"@type":"Product",name:_,description:b,image:h.inventory_product_ref.cover_image.src,offers:C};(0,a.useEffect)(()=>{u&&u.providers&&u.providers.forEach(e=>{if("meta"===e.name&&e.active){let e={value:T,currency:r.default_currency.code,content_name:_,content_type:"product",content_ids:[y]};L.Kw(e)}if("google-analytics-4"===e.name&&e.active){let e={value:T,currency:r.default_currency.code,items:[{item_id:y,item_name:_,affiliation:j}]};I.zJ(e)}})},[JSON.stringify(u),r.default_currency.code,T,y,_,j]);let S=(null==m?void 0:m.find(e=>"tripadvisor-product-rating"===e.name&&e.enabled))&&v.tripadvisor_product_review,A="".concat(_," - ").concat(c);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(o(),{children:[(0,i.jsx)("title",{children:A}),(0,i.jsx)("meta",{name:"description",content:b})]}),(0,i.jsx)(tu.A,{children:(0,i.jsxs)(s.fu,{product:h,has_product_hero:g,booking_widget:"none"===f?(0,i.jsx)(i.Fragment,{}):(0,i.jsx)(td,{config:N}),locale:n,conversion:x,product_review:S,popover_text:"Book Now",children:[g?null:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("span",{className:"block h-5"}),(0,i.jsx)(s.kC,{product:h,hide_single_image:g})]}),h.inventory_product_ref.description?(0,i.jsx)(tm,{showTitle:!1,className:g?"col-span-2 lg:mt-3":"col-span-2 mt-5",title:"Description",titleStyle:"text-xl font-bold tracking-tight sm:text-2xl",content:h.inventory_product_ref.description}):(0,i.jsx)(i.Fragment,{}),g&&h.images&&h.images.length>1?(0,i.jsx)("div",{className:"col-span-2",children:(0,i.jsx)(s.kC,{product:h})}):null,g?null:(0,i.jsx)(tf,{product:h}),(0,i.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[h.inventory_product_ref.included?(0,i.jsx)(tm,{className:"mt-5",title:"What's included",titleStyle:"text-l font-bold tracking-tight sm:text-xl",content:h.inventory_product_ref.included}):(0,i.jsx)(i.Fragment,{}),h.inventory_product_ref.excluded?(0,i.jsx)(tm,{className:"mt-5",title:"What's not included",titleStyle:"text-l font-bold tracking-tight sm:text-xl",content:h.inventory_product_ref.excluded}):(0,i.jsx)(i.Fragment,{}),h.inventory_product_ref.requirements?(0,i.jsx)(tm,{className:"mt-5",title:"What do I need to bring",titleStyle:"text-l font-bold tracking-tight sm:text-xl",content:h.inventory_product_ref.requirements}):(0,i.jsx)(i.Fragment,{}),h.inventory_product_ref.attention?(0,i.jsx)(tm,{className:"mt-5",title:"Attention",titleStyle:"text-l font-bold tracking-tight sm:text-xl",content:h.inventory_product_ref.attention}):(0,i.jsx)(i.Fragment,{})]}),g?(0,i.jsx)(tf,{product:h}):null]})}),(0,i.jsx)(tp.h,{graphs:[P]})]})}},2520:function(e){"use strict";e.exports=JSON.parse('{"en.getlocal":{"blog":{"show-more":"Show more","tour-recommend":"Recommended experiences"},"checkout":{"agent-reference-message":"The external booking reference can be used to uniquely identify this booking (Optional)","agreement":"I agree to the","apply":"Apply","avilable-option":"Available options","card-number":"Card Number","cart
1-empty":"Cart is empty.","complete-order":"Complete your order","confirm":"Confirm","confirmyourorder":"By submitting the order you confirm that you agree to our","continue-payment":"Continue","continue-shopping":"Continue Shopping","cross-sell-list-description":"Recommended for you","cross-sell-list-title":"Check out these other great tours and activities","customer-invoice":"Customer invoice:","cvc":"CVC number","discount-amount":"Discount amount","discount-applied":"Discount has been applied","discountamount":"Discount amount","discountapplied":"Discount has been applied","drop-off":"Where should we drop you off?","edit":"Edit","edit-your-order":"Edit your order","enter-promo-code":"Please enter promo code","excluded":"Excluded","expire-date":"Expiration mm / yy","external-booking-reference":"External booking reference","final-order":"<h2>You’ve got mail!</h2><p>Your ticket should be in your inbox. You don’t need to print it, just show it when you go on the tour.</p><p>Double check pickup times as usually pickup starts early.</p><h3>Have to change or cancel?</h3><p>Email us and we’ll try to make everything all right.</p>","free":"Free","goto-agent-checkout":"Get Invoice","goto-checkout":"Go to Checkout","have-promo-code":"Have a promo code?","havepromocode":"Have a promo code?","here-your-receipt":"Here’s your receipt","included":"Included","including":"Including","including-vat":"Including VAT","information":"Information","mycart":"Your order","name":"Name on card","needdetail":"We just need some details","no":"No","no-tax":"No Tax","optional":"Optional extras","optional-extra-title":"Optional extras","or":"OR","original-currency":"Payment will be in ","pay-online":"Pay online","pay-submit-order":"Pay and submit order","pay-with-credit-card":"Pay online with a credit card","payment":"Payment information","payment-error":"We were not able to submit the order, please fix the following:","payment-step-3":"Payment (Step 3 of 3)","payment-type":"Payment will be in ","paypalintro":"To complete the order please click \\"Check out with PayPal\\" below. If you are not able to pay with PayPal please contact us to complete your booking with a cash payment, credit card or bank transfer.","per-booking":"p. booking","per-person":"p. pers","personal-info":"Personal Information","phone-note":"Just in case we need to contact you if there are changes or delays. Please make sure to include the country code.","phone-number":"Your phone number with country code","pick-up":"Where should we pick you up?","please-check-mail":"Please check your email","price":"Price","price-not-found":"Price not found","proceed-checkout":"Proceed to checkout","product":"Product","promocode-not-found":"Promo code not found.","qty":"Qty.","receipt":"Receipt","receipt-page-title":"Congratulations!","remove":"Remove","review-order":"Your order details","select":"Select","send-notification-to-main-contact":"Send notification to main contact","send-voucher":"We’ll send the voucher and receipt to this email. No spam, we promise.","show-price-in-notification":"Show price in notification","subtotal":"Subtotal","tell-us":"Contact information","terms":"terms and conditions.","ticket":"Ticket","total":"Total","total-order-value":"Total value of order is","total-value":"Total value of order is","unicredit":"Complete secure payment through Unicredit","value-based-currency":"* Value in  :currencyname based on latest currency rates","yes":"Yes","your-order":"Your booking id is"},"general-settings":{"404-pagenot-found":"<h1>404</h1><p>Page not found</p>","be-right-back":"Be right back.","book-now":"Book Now","calendar-edit":{"booking-cacelled-successfully":"Booking cancelled successfully....","booking-canceled":"Booking has been cancelled","booking-detail":"Booking details","booking-edit-description":" <h2>Manage your booking</h2><p>Need to make changes to your booking or cancel? </p><p>Just log-in with your booking number and email address. This will allow you to change the date/time for your booking,choose the best pick up location or request a refund for your cancellation</p>","booking-id-required":"Booking id is required.","booking-login-description":" <h2>Manage your booking</h2><p>Need to make changes to your booking or cancel? </p><p>Just log-in with your booking number and email address. This will allow you to change the date/time for your booking, choose the best pick up location or request a refund for your cancellation</p>","booking-not-match":"Booking detail not match, please check your booking detail....","cancel-booking":"Cancel this booking","departure-place":"Departure has taken place","download-pdf":"Download voucher in PDF format","edit-booking":"Edit your booking","lastname-required":"Lastname is required.","passengers-detail":"Passenger details","something-went-wrong":"Something went wrong please try again"},"confirm-password":"Confirm Password","deposit":"Deposit","edit":"Edit","email":"Email","global-ssl":"Secure SSL payments.","header":{"agentlogin":"Agents","agentlogout":"Logout","choose-currency":"Cho
1ose currency","choose-language":"Choose language","home":"Home","my":"My"},"hrs":"hrs","login":"Login","pages-title":{"404error":"404 Error","blog":"Blog","booking-edit":"Booking Detail","checkout":"Checkout","favourite":"My favourite tours","last-minute-deal":"Last Minute Deals","page-not-found":"Page not found(404)","receipt":"Receipt","search-tour":"Search results","special-offer":"Special offers, last minute & package deals"},"password":"Password","remove":"Remove","reset-password":"Reset Password","save":"Save","session-expired":"Your session is expired or cart items are expired.","something-went-wrong":"Something went wrong.","submit":"Submit","total":"Total"},"language-javascript":{"add-to-cart":"Add to Cart","added-to-my":"Added to my","affiliate":"Affiliate","agent-enter-email":"Enter Email","agent-enter-password":"Enter Password","agentemail":"Email","agentlogin":"Login","agentlogout":"Logout","agentpassword":"Password","agenttitle":"Agents","book":"Book","book-now":"Book Now","book-pay":"Book now and Pay","booking-widget":{"departures":"Departures","drop-off-hotel":"Drop off to Hotel","drop-off-hotel-free":"Free hotel drop off","free-drop-off":"Free drop off","free-pickup":"Free pick up","min-reuqire":"This tour requires a minimum of ","participants":" participants","participants-title":"Participants","pricing-per-participant":"Pricing per participant","rates":"Rates","select-pickup-location":"Please select pickup Location.","something-went-wrong":"Somthing went wrong, please try again.","total-value":"Total value of tour must be over 0, please select another type of participant.","tour-require-min-participants":"This tour requires a minimum of 1 participants","want-drop-off":"Want to be dropped off?","want-to-
1pickup":"Want to be picked up","where-should-pickup":"Where should we pick you up?"},"card-expire-date":"Please provide Card expiry date.","card-expire-error":"Please check the dates, the card seems expired.","choose-dropoff-location":"Please choose dropoff location.","choose-pickup-location":"Please choose pickup location.","contact-form-error":"Some error occurred, please try again.","credit-card-not-valid":"Credit card number isn\'t valid.","cvc-not-valid":"CVC number isn\'t valid.","enquiry":"Enquiry","error-occured":"An error has occurred","free":"Free","included":"Included","invalid-format":"in valid format","next-step":"Next step","no-availabilites":"Sorry, there are no availabilities for this month","no-availabilites-found":"Sorry, there are no availabilities found.","no-offer-availabile":"Sorry, there are no offer available today","no-tour-found":"No tour found","no-tours-found":"No tours were found during your search, please remove some of the filters to see what we can find","number-is-correct":"Please make sure card number is correct","order-reserved":"Your order has already been reserved. You can not go back. Please make payment and confirm your order.","people":"People","person":"Person","please-enter":"Please enter ","provide-card-number":"Please provide Card number.","provide-cvc":"Please provide CVC number.","provide-date-expired":"The provided date has expired.","provide-name-card":"Please provide name on card.","see-detail":"See details","select-affiliate":"Select affiliate","select-drop-date-time":"Dropoff date & time must be after pickup date and time.","show-more-articles":"Show more articles","sold-out":"Sold Out","something-went-wrong":"Somthing went wrong, please try again.","total":"Total","yes-pickup":"Yes, please pick me up"},"paymentlabel":{"creditcard":"Credit Card","other":"Other","paypal":"PayPal"},"search":{"activity":"Activity","algolia-search-title":"What would you like to do?","anything-else":"Anything Else?","attribute":"Attribute","city":"City","country":"* Country","dates":"Dates","difficulty":"Difficulty","duration":"Duration","hide-filter":"Hide filter","howmany-you":"How many are you?","language":"Language","multi-day":"Multi Day","no-results":"No Results","people":"People","person":"Person","price":"Price","reset-filter":"Reset Filter","search":"Search","search-placeholder":"Looking for...","selectlocation":"Select Location","show-filter":"Show Filter","single-day":"Single Day","sort-by":"Sorty by: ","starting-time":"Starting time","tour-found":"Tour Found","tours-found":"Tours Found","when-coming":"When are you coming?"},"tour":{"add-to-my":"Add to my","audio-lang":"Audio Language","availability":"Availability","average-rating":"Average rating","book-multi-tours":"Book a multi day package with great tours and activities where you control the pace.","book-now":"Book Now","book-with-short-notice":"Book with short notice and save big! Every day we\'ll get a new selection of last minute offers from some of our best suppliers. Travel today or tomorrow and you’ll experience the best we have to offer at the best price.","cancellation-policy":"Cancellation policy","categories":"Categories","challenging":"Challenging","check-availability":"Check availability","checkcurrency":"Choose your currency and Book below","checkreview":"Check our Reviews","copy-link":"Copy a link to this list","customer-reviews":"Customer Reviews","customized-tour":"Enquire Now","day":" Day","days":" Days","deal-title":"<h2>Today’s last minute offers</h2>","demanding":"Demanding","description":"Description","discount-off":"off","duration":"Duration","easy":"Easy","edit-filter":"Show Filter","extreme":"Extreme","favourites-description":"Looks like you found something interesting! Why not share it with a partner or a friend. Just click the button below and the link to this page will be stored on your clipboard. You can then easily paste the link into an email or your favourite messenger. No signup required.","favourites-title":"My favourites","find-favourite":"Save your favourite tours by touching the heart, then you can access them later.","firendly-cancellation":"Friendly Cancellation policy","free":"Free","go":"Go","go-today":" Go Today","go-tomorrow":"Go Tomorrow","good-to-know":"Good to know","guest":"Guests","guided-lang":"Guided Language","highlights":"Highlights","hour":" Hour","hours":" Hours","hr":"hr","hrs":"hrs","important-information":"Important information","itinerary":"Itinerary","last-minute-offer":"Last Minute Offers","lucky-you":"We found <span class=\\"totalHits\\">5</span> results matching your search","maximum":"Maximum","meet-location":"Meet on location","meeting-points":"Meeting points","minutes":" Minutes","moderate":"Moderate","multi-day":"Multi Day","need-to-bring":"What do I need to bring","no-last-minute-deal":"Afraid there are no last minute offers today, please check again tomorrow","no-last-minute-offer":"Afraid there are no last minute offers right now. Please check again later","no-tour-found":"No tours found.","offer-info":"Save big with last minute offers and special package deals on tours and activities. <br> Every day we will have new offers and the best prices.","offer-title":" <h2>Today’s last minute offers</h2>","offer-travel-today":"Travel today or tomorrow and experience the best we have to offer at the best price.","pickup-available":"Pick up available","pickup-locations":"Pick up locations","preferred-
1period":"Preferred period","price":"Price","price-from":"Price from: ","private-request":"Private request","product-id":"Product ID:","rate-review":"Reviews","relevance":"Relevance","review-by":"By","review-content":"Review","review-date":"Travel date","review-name":"Name","review-rating":"Rating","review-showmore":"Show more","review-success":"Thank you for submitting your review","review-title":"Review title","review-viewmore":"View more","reviews":"reviews","reviews-anchor":"Reviews","search":"Search","see-detail":"See details","show-more-reviews":"Show more reviews","similar-tour":"Similar experiences","single-day":"Single Day","sort-by":"Sort by:","special-offer":"Special Offers","special-offer-package":"<h2>Package deals</h2>","submit-review":"Submit review","submit-your-review":"Submit your review","travel-date":"Date of Travel","very-easy":"Very easy","week":" Week","weeks":" Weeks","what-excluded":"What\'s excluded","what-included":"What\'s included","wifi":"WiFi"},"widget":{"contactus":{"adult":"adult","adults":"adults","checkin":"Check In Date","checkout":"Check Out Date","child-teens":"children/teens","contactnumber":"Telephone Number","contactusthankyou":"Thank you for contacting us! We will answer your request as soon as possible.","date-of-travel":"Date of travel","email":"Email Address","firstname":"First Name","guided-language":"Guided language","lastname":"Last Name","message":"Message","mobile-whatsapp":"Mobile/Whatsapp","name":"Name","noadults":"No of Adults","nochildren":"No of Children/Teens","submit":"Submit Your Request","tell-about-style":"Please provide your personal details and information about your adventure.","tellus":"Tell us about your travel plans"},"productlist":{"apply":"Apply","attention":"Attention","availability":"Availability","cancelpolicy":"Cancellation policy","description":"Description","general":"General","included":"Included","location":"Location","person":"Person","recommended":"Recommended","requirements":"Requirements","resetfilter":"Reset filter","search":"Search","showfilter":"Show Filter","sortbby":"Sort by","tourduration":"Duration of tour","tourprice":"Tour starting price","videos":"Videos"}}}}')}},function(e){e.O(0,[397,967,511,314,52,962,818,888,774,179],function(){return e(e.s=6158)}),_N_E=e.O()}]);

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.